update packages
This commit is contained in:
@@ -16,6 +16,38 @@ npm start
|
||||
|
||||
`npm start` führt `ng serve` aus. Die Standard-Serve-Konfiguration ist `development`.
|
||||
|
||||
## Abhängigkeiten und Sicherheitsupdates
|
||||
|
||||
Build, Entwicklungsserver und Tests verwenden direkt `@angular/build`. Der ältere
|
||||
Wrapper `@angular-devkit/build-angular` wird nicht benötigt. `less` ist als
|
||||
Entwicklungsabhängigkeit erforderlich, damit die LESS-Styles kompiliert werden.
|
||||
|
||||
Stand 25. Oktober 2026 ist Firebase auf `12.18.0` festgesetzt, weil `12.19.0`
|
||||
unvollständige Typdefinitionen für `Temporal.Instant` enthält. Bei einem späteren
|
||||
Firebase-Update muss dieser Compilerfehler erneut geprüft werden.
|
||||
|
||||
Die `overrides` in `package.json` haben folgende Gründe:
|
||||
|
||||
- `@firebase/app`: eine gemeinsame App-Instanz für alle Firebase-Dienste;
|
||||
unterschiedliche Versionen können zu „Service firestore is not available“ führen.
|
||||
- Firestore → `@grpc/grpc-js`: Sicherheitsupdate innerhalb der Hauptversion 1.
|
||||
- Angular Build → `undici`: Sicherheitsupdate innerhalb der Hauptversion 7.
|
||||
- gaxios 6 → `uuid`: Version 11 enthält die Sicherheitskorrektur und unterstützt
|
||||
weiterhin CommonJS sowie den von gaxios verwendeten `v4`-Aufruf.
|
||||
- `qs`: Sicherheitsupdate innerhalb der Hauptversion 6.
|
||||
|
||||
Bei Updates der übergeordneten Pakete prüfen, ob diese Overrides entfernt werden
|
||||
können. Danach `npm test -- --watch=false`, `npm run build:dev` und `npm audit`
|
||||
ausführen.
|
||||
|
||||
Es verbleiben drei moderate Audit-Meldungen aus derselben Kette:
|
||||
`firebase-tools` → `@google-cloud/pubsub` → `@opentelemetry/core`.
|
||||
Firebase CLI 15.34.1 verlangt noch Pub/Sub 5; die korrigierte OpenTelemetry-Version
|
||||
2.8 liegt außerhalb dessen Abhängigkeitsbereichs. Ein erzwungener Wechsel auf
|
||||
Pub/Sub 6 oder OpenTelemetry 2 ist ohne Prüfung der CLI-Kompatibilität keine
|
||||
geeignete Korrektur. `npm audit fix --force` schlägt stattdessen ein Downgrade der
|
||||
Firebase CLI vor und sollte dafür nicht verwendet werden.
|
||||
|
||||
## Firebase-Konfiguration
|
||||
|
||||
`src/environments/environment.ts` und `src/environments/environment.prod.ts` importieren beide `src/environments/firebase.ts`. Diese Datei ist nicht versioniert und muss lokal vorhanden sein. In CI wird sie aus Secrets erzeugt.
|
||||
|
||||
Generated
+3857
-13802
File diff suppressed because it is too large
Load Diff
+29
-16
@@ -9,27 +9,27 @@
|
||||
"deploy-beta": "ng b && firebase hosting:channel:deploy beta",
|
||||
"test": "ng test",
|
||||
"lint": "ng lint --fix",
|
||||
"update": "ng update @angular/cdk @angular/cli @angular/core @angular/material && ncu -u && npm i && npm fix"
|
||||
"update": "ng update @angular/cdk @angular/cli @angular/core @angular/material && ncu -u && npm i && npm audit fix"
|
||||
},
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"@angular/animations": "^21.2.2",
|
||||
"@angular/animations": "^21.2.25",
|
||||
"@angular/cdk": "^21.2.1",
|
||||
"@angular/common": "^21.2.2",
|
||||
"@angular/compiler": "^21.2.2",
|
||||
"@angular/core": "^21.2.2",
|
||||
"@angular/fire": "21.0.0-rc.0",
|
||||
"@angular/forms": "^21.2.2",
|
||||
"@angular/common": "^21.2.25",
|
||||
"@angular/compiler": "^21.2.25",
|
||||
"@angular/core": "^21.2.25",
|
||||
"@angular/fire": "21.0.0-rc.2",
|
||||
"@angular/forms": "^21.2.25",
|
||||
"@angular/material": "^21.2.1",
|
||||
"@angular/platform-browser": "^21.2.2",
|
||||
"@angular/platform-browser-dynamic": "^21.2.2",
|
||||
"@angular/router": "^21.2.2",
|
||||
"@angular/service-worker": "^21.2.2",
|
||||
"@angular/platform-browser": "^21.2.25",
|
||||
"@angular/platform-browser-dynamic": "^21.2.25",
|
||||
"@angular/router": "^21.2.25",
|
||||
"@angular/service-worker": "^21.2.25",
|
||||
"@fortawesome/angular-fontawesome": "^4.0.0",
|
||||
"@fortawesome/fontawesome-svg-core": "^7.2.0",
|
||||
"@fortawesome/free-solid-svg-icons": "^7.2.0",
|
||||
"docx": "^9.6.0",
|
||||
"firebase": "^12.10.0",
|
||||
"firebase": "12.18.0",
|
||||
"ngx-mat-select-search": "^8.0.4",
|
||||
"qrcode": "^1.5.4",
|
||||
"rxjs": "~7.8.1",
|
||||
@@ -38,16 +38,15 @@
|
||||
"zone.js": "~0.15.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@angular-devkit/architect": "0.2102.1",
|
||||
"@angular-devkit/build-angular": "^21.2.1",
|
||||
"@angular-eslint/builder": "21.3.0",
|
||||
"@angular-eslint/eslint-plugin": "21.3.0",
|
||||
"@angular-eslint/eslint-plugin-template": "21.3.0",
|
||||
"@angular-eslint/schematics": "21.3.0",
|
||||
"@angular-eslint/template-parser": "21.3.0",
|
||||
"@angular/build": "^21.2.28",
|
||||
"@angular/cli": "^21.2.1",
|
||||
"@angular/compiler-cli": "^21.2.2",
|
||||
"@angular/language-service": "^21.2.2",
|
||||
"@angular/compiler-cli": "^21.2.25",
|
||||
"@angular/language-service": "^21.2.25",
|
||||
"@typescript-eslint/eslint-plugin": "^8.57.0",
|
||||
"@typescript-eslint/parser": "^8.57.0",
|
||||
"angular-eslint": "^21.3.1",
|
||||
@@ -56,8 +55,22 @@
|
||||
"eslint-plugin-prettier": "^5.5.5",
|
||||
"firebase-tools": "^15.9.1",
|
||||
"jsdom": "^29.0.0",
|
||||
"less": "^4.9.1",
|
||||
"prettier": "^3.8.1",
|
||||
"typescript": "~5.9.3",
|
||||
"vitest": "^4.1.0"
|
||||
},
|
||||
"overrides": {
|
||||
"@angular/build": {
|
||||
"undici": "^7.30.1"
|
||||
},
|
||||
"@firebase/firestore": {
|
||||
"@grpc/grpc-js": "^1.14.6"
|
||||
},
|
||||
"gaxios@6": {
|
||||
"uuid": "^11.1.1"
|
||||
},
|
||||
"qs": "^6.16.0",
|
||||
"@firebase/app": "0.16.2"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -45,6 +45,7 @@ const routes: Routes = [
|
||||
{
|
||||
path: 'brand',
|
||||
loadChildren: () => import('./modules/brand/brand.module').then(m => m.BrandModule),
|
||||
canActivate: [AuthGuard],
|
||||
},
|
||||
{
|
||||
path: 'guest',
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<div class="brand">
|
||||
<app-logo></app-logo>
|
||||
<div class="copyright">© 2019 - 2026 - Benjamin Ifland</div>
|
||||
<div class="copyright"><span class="version">v{{ version }}</span> © 2026 - Benjamin Ifland</div>
|
||||
</div>
|
||||
|
||||
@@ -10,3 +10,7 @@
|
||||
transform: scale(0.5) translateY(-50%);
|
||||
}
|
||||
}
|
||||
|
||||
.version {
|
||||
font-size: 0.7em;
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import {Component} from '@angular/core';
|
||||
import {LogoComponent} from '../../widget-modules/components/logo/logo.component';
|
||||
import {version} from '../../../../package.json';
|
||||
|
||||
@Component({
|
||||
selector: 'app-brand',
|
||||
@@ -7,4 +8,6 @@ import {LogoComponent} from '../../widget-modules/components/logo/logo.component
|
||||
styleUrls: ['./brand.component.less'],
|
||||
imports: [LogoComponent],
|
||||
})
|
||||
export class BrandComponent {}
|
||||
export class BrandComponent {
|
||||
protected readonly version = version;
|
||||
}
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
"experimentalDecorators": true,
|
||||
"module": "es2020",
|
||||
"moduleResolution": "bundler",
|
||||
"resolveJsonModule": true,
|
||||
"importHelpers": true,
|
||||
"target": "ES2022",
|
||||
"strict": true,
|
||||
|
||||
Reference in New Issue
Block a user