|
12 | 12 | - `UseViteDevelopmentServer` now exposes a `PackageManagerCommand` option (defaults to "npm") to configure which package manager runs the dev script. Improved error messages when the configured package manager is not installed. |
13 | 13 | - Fix: `no-sort-in-computed` eslint rule false positive when sorting a locally-declared array variable inside `computed()`. |
14 | 14 | - Fix: Handle the possibility that Audit logging's `AuditInterceptor` can end up singleton under specific EF usage patterns (e.g. `AddDbContextFactory` + not using `OnConfiguring`). |
| 15 | +- Re-exported `isAxiosError` from `coalesce-vue` to avoid phantom dependency on `axios`. |
15 | 16 |
|
16 | 17 | ## Template Changes |
17 | 18 | - Added Vuetify 4 CSS layer ordering to `index.html` to work around Vite 8/Rolldown CSS ordering bugs. |
18 | | -- Replaced deprecated `typeface-roboto` with `@fontsource/roboto/latin.css` and `@fontsource/roboto/latin-italic.css`. |
| 19 | +- Replaced deprecated `typeface-roboto` package with `@fontsource/roboto/latin.css` and `@fontsource/roboto/latin-italic.css`. |
| 20 | +- The template now uses pnpm instead of npm for better DX. To migrate an existing project: |
| 21 | + 1. Install pnpm: `npm install -g pnpm@11` |
| 22 | + 2. Delete `package-lock.json`, and copy `pnpm-workspace.yaml` and the root `package.json` from the template into your solution root (next to your `.slnx`). Add your web project as a package in the workspace (`packages: - YourProject.Web`). |
| 23 | + 3. Run `pnpm install`. |
| 24 | + 4. In `Program.cs`, add `c.PackageManagerCommand = "pnpm";` to `UseViteDevelopmentServer` options. |
| 25 | + 5. Add any phantom dependencies that pnpm's strict `node_modules` structure reveals (e.g. `date-fns`, `date-fns-tz`). Build errors or runtime import failures will indicate which ones are missing. |
| 26 | + 6. Update CI/CD scripts to use `pnpm` instead of `npm`. Add a step to install pnpm. Run `pnpm install --frozen-lockfile` from the solution root. Replace other `npm` commands with `pnpm`. |
19 | 27 | - The first-party password/passkey login flow is now two-stage: enter username first, then choose between password, passkey, or a one-time email code. When `Passkeys` is enabled, users who sign in with password or email code are then prompted to create a passkey. |
20 | | -- `Role.Permissions` are no longer EF-mapped as enums. The EF property is now `List<string>`, with a `[NotMapped]` `PermissionEnums` wrapper that silently drops unrecognized values. This prevents `InvalidOperationException` when a `Permission` enum member is removed but old values remain in the database. |
| 28 | +- `Role.Permissions` are no longer EF-mapped as enums. The EF property is now `List<string>`, with a `[NotMapped] PermissionEnums` wrapper that drops unrecognized values. This prevents `InvalidOperationException` when a `Permission` enum member is removed but old values remain in the database. |
21 | 29 | - Added rate limiting to authentication pages (sign-in, register, forgot password, reset password, email confirmation, external login) to mitigate brute-force abuse. |
22 | 30 |
|
23 | 31 | # 6.4.0 |
|
0 commit comments