|
7 | 7 | - `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. |
8 | 8 | - Fix: `no-sort-in-computed` eslint rule false positive when sorting a locally-declared array variable inside `computed()`. |
9 | 9 | - Fix: Handle the possibility that Audit logging's `AuditInterceptor` can end up singleton under specific EF usage patterns (e.g. `AddDbContextFactory` + not using `OnConfiguring`). |
| 10 | +- Re-exported `isAxiosError` from `coalesce-vue` to avoid phantom dependency on `axios`. |
10 | 11 |
|
11 | 12 | ## Template Changes |
12 | 13 | - Added Vuetify 4 CSS layer ordering to `index.html` to work around Vite 8/Rolldown CSS ordering bugs. |
13 | | -- Replaced deprecated `typeface-roboto` with `@fontsource/roboto/latin.css` and `@fontsource/roboto/latin-italic.css`. |
| 14 | +- Replaced deprecated `typeface-roboto` package with `@fontsource/roboto/latin.css` and `@fontsource/roboto/latin-italic.css`. |
| 15 | +- The template now uses pnpm instead of npm for better DX. To migrate an existing project: |
| 16 | + 1. Install pnpm: `npm install -g pnpm@11` |
| 17 | + 2. Delete `package-lock.json` and `node_modules`. |
| 18 | + 3. Run `pnpm install` to generate `pnpm-lock.yaml`. |
| 19 | + 4. In `package.json`, change the `"dev"` script to `"pnpm install && vite"`. |
| 20 | + 5. In `Program.cs`, add `c.PackageManagerCommand = "pnpm";` to `UseViteDevelopmentServer` options. |
| 21 | + 6. 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. |
| 22 | + 7. Update CI/CD scripts to use `pnpm` instead of `npm`, ensuring to add a step to install `pnpm` itself. Replace `npm ci` with `pnpm install --frozen-lockfile`. |
14 | 23 | - 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. |
15 | | -- `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. |
| 24 | +- `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. |
16 | 25 | - Added rate limiting to authentication pages (sign-in, register, forgot password, reset password, email confirmation, external login) to mitigate brute-force abuse. |
17 | 26 |
|
18 | 27 | # 6.4.0 |
|
0 commit comments