Skip to content

Commit 2dc48b0

Browse files
committed
Angular v19 upgrades and more
1 parent 2bf23f1 commit 2dc48b0

26 files changed

+4820
-4714
lines changed

app/angular.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@
6464
"routesFile": "prerendered-routes.txt"
6565
},
6666
"ssr": {
67-
"entry": "server.ts"
67+
"entry": "src/server.ts"
6868
}
6969
},
7070
"configurations": {
@@ -119,6 +119,7 @@
119119
"test": {
120120
"builder": "@angular-devkit/build-angular:karma",
121121
"options": {
122+
"builderMode": "application",
122123
"polyfills": ["zone.js", "zone.js/testing"],
123124
"tsConfig": "tsconfig.spec.json",
124125
"inlineStyleLanguage": "scss",

app/ngsw-config.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
{
22
"$schema": "./node_modules/@angular/service-worker/config/schema.json",
33
"index": "/index.csr.html",
4+
"applicationMaxAge": "30d",
45
"assetGroups": [
56
{
67
"name": "app",

app/package.json

Lines changed: 40 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -19,54 +19,55 @@
1919
},
2020
"private": true,
2121
"dependencies": {
22-
"@angular/animations": "^18.2.12",
23-
"@angular/cdk": "18.2.13",
24-
"@angular/common": "^18.2.12",
25-
"@angular/compiler": "^18.2.12",
26-
"@angular/core": "^18.2.12",
27-
"@angular/forms": "^18.2.12",
28-
"@angular/material": "18.2.13",
29-
"@angular/platform-browser": "^18.2.12",
30-
"@angular/platform-browser-dynamic": "^18.2.12",
31-
"@angular/platform-server": "^18.2.12",
32-
"@angular/router": "^18.2.12",
33-
"@angular/service-worker": "^18.2.12",
34-
"@angular/ssr": "^18.2.12",
35-
"@ngrx/operators": "^18.1.1",
36-
"@ngrx/signals": "^18.1.1",
37-
"consola": "^3.2.3",
38-
"express": "^4.21.1",
39-
"firebase": "^11.0.2",
40-
"ngxtension": "^4.1.0",
41-
"rxfire": "^6.0.6-canary.5cfad21",
22+
"@angular/animations": "^19.1.3",
23+
"@angular/cdk": "19.1.1",
24+
"@angular/common": "^19.1.3",
25+
"@angular/compiler": "^19.1.3",
26+
"@angular/core": "^19.1.3",
27+
"@angular/forms": "^19.1.3",
28+
"@angular/material": "19.1.1",
29+
"@angular/platform-browser": "^19.1.3",
30+
"@angular/platform-browser-dynamic": "^19.1.3",
31+
"@angular/platform-server": "^19.1.3",
32+
"@angular/router": "^19.1.3",
33+
"@angular/service-worker": "^19.1.3",
34+
"@angular/ssr": "^19.1.4",
35+
"@ngrx/operators": "^19.0.0",
36+
"@ngrx/signals": "^19.0.0",
37+
"consola": "^3.3.3",
38+
"express": "^4.21.2",
39+
"firebase": "^11.2.0",
40+
"ngxtension": "^4.2.1",
41+
"rxfire": "^6.1.0",
4242
"rxjs": "~7.8.0",
4343
"tslib": "^2.8.1",
44-
"zone.js": "~0.14.10"
44+
"zone.js": "~0.15.0"
4545
},
4646
"devDependencies": {
47-
"@angular-devkit/build-angular": "^18.2.12",
48-
"@angular/cli": "^18.2.12",
49-
"@angular/compiler-cli": "^18.2.12",
50-
"@ngrx/eslint-plugin": "^18.1.1",
51-
"@types/express": "^4.17.17",
52-
"@types/jasmine": "~5.1.0",
53-
"@types/node": "^22.9.0",
54-
"angular-eslint": "18.4.1",
47+
"@angular-devkit/build-angular": "^19.1.4",
48+
"@angular/cli": "^19.1.4",
49+
"@angular/compiler-cli": "^19.1.3",
50+
"@ngrx/eslint-plugin": "^19.0.0",
51+
"@types/express": "^5.0.0",
52+
"@types/jasmine": "~5.1.5",
53+
"@types/node": "^22.10.10",
54+
"angular-eslint": "19.0.2",
5555
"autoprefixer": "^10.4.20",
56-
"eslint": "^9.15.0",
57-
"eslint-config-prettier": "^9.1.0",
58-
"jasmine-core": "~5.4.0",
56+
"eslint": "^9.17.0",
57+
"eslint-config-prettier": "^10.0.1",
58+
"jasmine-core": "~5.5.0",
5959
"karma": "~6.4.4",
6060
"karma-chrome-launcher": "~3.2.0",
6161
"karma-coverage": "~2.2.0",
6262
"karma-jasmine": "~5.1.0",
6363
"karma-jasmine-html-reporter": "~2.1.0",
64-
"ng-mocks": "^14.13.1",
64+
"ng-mocks": "^14.13.2",
6565
"postcss": "^8.4.49",
66-
"prettier": "^3.3.3",
67-
"prettier-plugin-tailwindcss": "^0.6.8",
68-
"tailwindcss": "^3.4.15",
69-
"typescript": "~5.5.4",
70-
"typescript-eslint": "^8.15.0"
71-
}
66+
"prettier": "^3.4.2",
67+
"prettier-plugin-tailwindcss": "^0.6.11",
68+
"tailwindcss": "^3.4.17",
69+
"typescript": "~5.7.3",
70+
"typescript-eslint": "^8.21.0"
71+
},
72+
"packageManager": "pnpm@9.15.0+sha512.76e2379760a4328ec4415815bcd6628dee727af3779aaa4c914e3944156c4299921a89f976381ee107d41f12cfa4b66681ca9c718f0668fa0831ed4c6d8ba56c"
7273
}

app/pnpm-lock.yaml

Lines changed: 2941 additions & 3143 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/server.ts

Lines changed: 0 additions & 60 deletions
This file was deleted.

app/src/app/app.component.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ const logger = createLogger('AppComponent');
1010

1111
@Component({
1212
selector: 'app-root',
13-
standalone: true,
1413
imports: [RouterOutlet, MatSnackBarModule],
1514
template: ` <router-outlet /> `,
1615
styles: [],

app/src/app/app.config.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { ApplicationConfig, isDevMode, provideZoneChangeDetection } from '@angular/core';
22
import { MAT_FORM_FIELD_DEFAULT_OPTIONS } from '@angular/material/form-field';
3-
import { provideClientHydration } from '@angular/platform-browser';
3+
import { provideClientHydration, withEventReplay } from '@angular/platform-browser';
44
import { provideAnimationsAsync } from '@angular/platform-browser/animations/async';
55
import { provideRouter, withComponentInputBinding, withRouterConfig } from '@angular/router';
66
import { provideServiceWorker } from '@angular/service-worker';
@@ -14,7 +14,7 @@ export const appConfig: ApplicationConfig = {
1414
withComponentInputBinding(),
1515
withRouterConfig({ paramsInheritanceStrategy: 'always' }),
1616
),
17-
provideClientHydration(),
17+
provideClientHydration(withEventReplay()),
1818
provideAnimationsAsync(),
1919
provideServiceWorker('ngsw-worker.js', {
2020
enabled: !isDevMode(),

app/src/app/login/feature/login-flow.component.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import { LoginFlowStore } from './login-flow.store';
88

99
@Component({
1010
selector: 'app-login-flow',
11-
standalone: true,
1211
imports: [RouterLink, MatButtonModule, MatIconModule, MatSnackBarModule, LoginFormComponent],
1312
providers: [LoginFlowStore],
1413
template: `

app/src/app/login/feature/login-flow.store.ts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { effect, inject } from '@angular/core';
1+
import { effect, inject, untracked } from '@angular/core';
22
import { ActivatedRoute, Router } from '@angular/router';
33
import { AuthStore } from '@app-shared/auth/data/auth.store';
44
import { createLogger } from '@app-shared/logger';
@@ -165,14 +165,14 @@ export const LoginFlowStore = signalStore(
165165
effect(() => logger.log('State:', getState(store)));
166166

167167
// Listen for changes to the user and trigger completion once we have one.
168-
effect(
169-
() => {
170-
if (store.user()) {
168+
effect(() => {
169+
const user = store.user();
170+
if (user) {
171+
untracked(() => {
171172
void store.completeLogin();
172-
}
173-
},
174-
{ allowSignalWrites: true },
175-
);
173+
});
174+
}
175+
});
176176
},
177177
}),
178178
);

app/src/app/login/feature/login-page.component.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import { LoginFlowComponent } from './login-flow.component';
44

55
@Component({
66
selector: 'app-login-page',
7-
standalone: true,
87
template: `
98
@defer {
109
<section class="flex justify-center py-6">

0 commit comments

Comments
 (0)