create-nuxt-base 2.3.1 → 2.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,20 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
4
 
5
+ ## [2.5.0](https://github.com/lenneTech/nuxt-base-starter/compare/v2.3.1...v2.5.0) (2026-03-16)
6
+
7
+
8
+ ### Features
9
+
10
+ * add production default dockerfile ([e338c93](https://github.com/lenneTech/nuxt-base-starter/commit/e338c9363a348c1a63d40a71301240c8e8478835))
11
+
12
+ ## [2.4.0](https://github.com/lenneTech/nuxt-base-starter/compare/v2.3.1...v2.4.0) (2026-03-16)
13
+
14
+
15
+ ### Features
16
+
17
+ * add production default dockerfile ([e338c93](https://github.com/lenneTech/nuxt-base-starter/commit/e338c9363a348c1a63d40a71301240c8e8478835))
18
+
5
19
  ### [2.3.1](https://github.com/lenneTech/nuxt-base-starter/compare/v2.3.0...v2.3.1) (2026-03-15)
6
20
 
7
21
  ## [2.3.0](https://github.com/lenneTech/nuxt-base-starter/compare/v2.2.8...v2.3.0) (2026-03-09)
@@ -11,6 +11,7 @@
11
11
 
12
12
  - `better-auth`, `@better-auth/passkey`, `tus-js-client` are peer dependencies of `@lenne.tech/nuxt-extensions` - keep in `dependencies`
13
13
  - `@nuxt/ui` and `@vueuse/nuxt` belong in `dependencies` (used in app/ source files with type imports)
14
+ - `@hey-api/client-fetch`: deprecated, moved to devDependencies (only used in openapi-ts.config.ts codegen config)
14
15
  - pnpm sometimes auto-moves packages to devDependencies during `-D` updates - watch and fix
15
16
 
16
17
  ## Security Overrides
@@ -22,38 +23,51 @@
22
23
 
23
24
  ## Deprecated Package Notes
24
25
 
25
- - `@hey-api/client-fetch`: deprecated ("bundled in @hey-api/openapi-ts since v0.73.0") but still a valid runtime HTTP client for generated API SDKs - KEEP in dependencies
26
- - `openapi-ts.config.ts` uses deprecated `lint`/`format` options; use `postProcess: ['eslint', 'prettier']` instead
26
+ - `@hey-api/client-fetch`: deprecated ("bundled in @hey-api/openapi-ts since v0.73.0"), moved to devDependencies (codegen config only, no runtime use)
27
+ - `openapi-ts.config.ts`: migrated from deprecated `lint`/`format` options to `postProcess: ['oxlint', 'oxfmt']`
27
28
  - `@nuxtjs/color-mode`: do NOT add to devDeps - @nuxt/ui brings its own 3.x internally; 4.0.0 would conflict
28
29
 
29
- ## Override Cleanup Notes (2026-03-09)
30
+ ## Override Cleanup Notes (2026-03-16)
30
31
 
31
32
  Removed as no longer needed:
32
33
 
33
- - `devalue@<=5.6.2` - nuxt requires ^5.6.2, latest is 5.6.3 (always picked)
34
- - `fast-xml-parser@>=5.0.0 <5.3.8` - @nuxtjs/sitemap requires ^5.3.3, latest is 5.4.2 (always safe)
35
- - `markdown-it@>=13.0.0 <14.1.1` - prosemirror-markdown requires ^14.0.0, latest is 14.1.1 (always picked)
36
- - `minimatch@>=5.0.0 <5.1.8` - readdir-glob installs minimatch 5.1.9 which is already >=5.1.8 (safe)
34
+ - `svgo@=4.0.0` - postcss-svgo now requires ^4.0.1, so 4.0.0 is never picked
35
+ - `devalue@<=5.6.2` (old) - replaced with `devalue@<=5.6.3` to cover new vulnerability in 5.6.3
36
+
37
+ Updated overrides:
38
+
39
+ - `hono@<4.12.4` → `hono@<4.12.7` - new vulnerability discovered in <4.12.7
40
+ - `tar@<=7.5.9` → `tar@<=7.5.10` - new vulnerability discovered in 7.5.10
41
+ - Added `devalue@<=5.6.3` - new vulnerability in devalue <=5.6.3 (proto pollution)
42
+ - Added `unhead@<=2.1.10` - new vulnerability in unhead <=2.1.10
37
43
 
38
44
  Still required (keep these overrides):
39
45
 
40
46
  - `@hono/node-server@<1.19.10` - @prisma/dev requires 1.19.9 exactly
41
- - `hono@<4.12.4` - @prisma/dev requires 4.11.4 exactly
47
+ - `devalue@<=5.6.3` - nuxt requires ^5.6.3 which picks vulnerable 5.6.3; 5.6.4 is safe
48
+ - `hono@<4.12.7` - @prisma/dev requires 4.11.4 exactly (new vuln <4.12.7)
42
49
  - `lodash@>=4.0.0 <=4.17.22` - @chevrotain/gast requires 4.17.21 exactly (vulnerable)
43
50
  - `minimatch@>=9.0.0 <9.0.7` - editorconfig 1.0.4 requires 9.0.1 exactly (in vulnerable range)
44
- - `rollup@>=4.0.0 <4.59.0` - vite requires ^4.43.0 which could pick <4.59.0
45
- - `serialize-javascript@<=7.0.2` - @rollup/plugin-terser requires ^6.0.1 (6.x is vulnerable)
46
- - `svgo@=4.0.0` - postcss-svgo requires ^4.0.0 which could pick 4.0.0 (vulnerable)
47
- - `tar@<=7.5.9` - @mapbox/node-pre-gyp requires ^7.4.0 (7.4.x is vulnerable)
51
+ - `rollup@>=4.0.0 <4.59.0` - vite requires range that could pick <4.59.0
52
+ - `serialize-javascript@<=7.0.2` - nitropack uses @rollup/plugin-terser@0.4.4 which requires ^6.0.1 (6.x is vulnerable)
53
+ - `tar@<=7.5.10` - @mapbox/node-pre-gyp requires ^7.4.0 (7.4.x-7.5.10 are vulnerable)
54
+ - `unhead@<=2.1.10` - @nuxt/ui/@nuxtjs/seo use @unhead/vue which pulls vulnerable unhead
48
55
 
49
- ## Version History (2026-03-09)
56
+ ## Version History (2026-03-16)
50
57
 
51
58
  After maintenance, all packages at latest:
52
59
 
53
- - `@lenne.tech/nuxt-extensions`: 1.3.0
54
- - `nuxt`: 4.3.1
55
- - `vitest`: 4.0.18 (major from 3.x)
56
- - `@nuxt/test-utils`: 4.0.0 (major from 3.x, requires vitest ^4.0.2)
57
- - `vitest` v4 + `@nuxt/test-utils` v4 must be updated together (compatibility requirement)
58
- - Residual vulnerabilities: 1 moderate (nanotar, unfixable)
59
- - Removed: `@nuxtjs/color-mode` from devDeps (unused, conflicts with @nuxt/ui's internal 3.5.2)
60
+ - `@better-auth/passkey`: 1.5.5 (from 1.5.4)
61
+ - `better-auth`: 1.5.5 (from 1.5.4)
62
+ - `@lenne.tech/nuxt-extensions`: 1.5.0
63
+ - `@iconify-json/lucide`: 1.2.98 (from 1.2.96)
64
+ - `@vitejs/plugin-vue`: 6.0.5 (from 6.0.4)
65
+ - `happy-dom`: 20.8.4 (from 20.8.3)
66
+ - `@types/node`: 25.5.0 (from 25.4.0)
67
+ - `lint-staged`: 16.4.0 (from 16.3.2)
68
+ - `nuxt`: 4.4.2 (from 4.3.1)
69
+ - `vitest`: 4.1.0 (from 4.0.18)
70
+ - `@hey-api/openapi-ts`: 0.94.2 (from 0.94.0)
71
+ - `jsdom`: 29.0.0 (from 28.1.0) - fixes undici vulnerabilities (jsdom 29 requires undici ^7.24.3)
72
+ - Residual vulnerabilities: 0
73
+ - `@hey-api/client-fetch`: moved from dependencies → devDependencies
@@ -0,0 +1,39 @@
1
+ # Stage 1: Install dependencies
2
+ FROM node:22-alpine@sha256:8094c002d08262dba12645a3b4a15cd6cd627d30bc782f53229a2ec13ee22a00 AS deps
3
+ WORKDIR /app
4
+ RUN corepack enable
5
+
6
+ # Copy workspace configuration
7
+ COPY package.json pnpm-lock.yaml pnpm-workspace.yaml .npmrc ./
8
+
9
+ # Copy all project manifests (required for pnpm workspace resolution)
10
+ COPY projects/api/package.json ./projects/api/
11
+ COPY projects/app/package.json ./projects/app/
12
+
13
+ # Install dependencies (--ignore-scripts prevents husky/simple-git-hooks errors in Docker)
14
+ RUN pnpm install --frozen-lockfile --ignore-scripts
15
+
16
+ # Stage 2: Build
17
+ FROM node:22-alpine@sha256:8094c002d08262dba12645a3b4a15cd6cd627d30bc782f53229a2ec13ee22a00 AS builder
18
+ WORKDIR /app
19
+ RUN corepack enable
20
+
21
+ COPY --from=deps /app ./
22
+ COPY projects/app/ ./projects/app/
23
+
24
+ RUN pnpm --filter app run build
25
+
26
+ # Stage 3: Production runner
27
+ FROM node:22-alpine@sha256:8094c002d08262dba12645a3b4a15cd6cd627d30bc782f53229a2ec13ee22a00 AS runner
28
+ WORKDIR /app
29
+ ENV NODE_ENV=production
30
+
31
+ # Non-root user
32
+ RUN addgroup -g 1001 -S nodejs && adduser -S nodejs -u 1001
33
+
34
+ # Nuxt output is self-contained (Nitro bundles all dependencies)
35
+ COPY --from=builder --chown=nodejs:nodejs /app/projects/app/.output ./.output
36
+
37
+ USER nodejs
38
+ EXPOSE 3000
39
+ CMD ["node", ".output/server/index.mjs"]
@@ -91,17 +91,17 @@ npm run generate-types
91
91
 
92
92
  ## Tech Stack
93
93
 
94
- | Technology | Version | Description |
95
- | --------------------- | ------- | -------------------------------- |
96
- | Nuxt | 4.2.x | Vue 3 meta-framework with SSR |
97
- | TypeScript | 5.9.x | Strict type checking |
98
- | Tailwind CSS | 4.1.x | Utility-first CSS (Vite plugin) |
99
- | NuxtUI | 4.3.x | Component library with dark mode |
100
- | Pinia | 0.11.x | State management |
101
- | Better Auth | 1.4.x | Authentication framework |
102
- | Playwright | 1.57.x | E2E testing |
103
- | @hey-api/client-fetch | 0.13.x | Type-safe API client |
104
- | Valibot | 1.2.x | Schema validation |
94
+ | Technology | Version | Description |
95
+ | ------------------- | ------- | -------------------------------- |
96
+ | Nuxt | 4.4.x | Vue 3 meta-framework with SSR |
97
+ | TypeScript | 5.9.x | Strict type checking |
98
+ | Tailwind CSS | 4.1.x | Utility-first CSS (Vite plugin) |
99
+ | NuxtUI | 4.3.x | Component library with dark mode |
100
+ | Pinia | 0.11.x | State management |
101
+ | Better Auth | 1.5.x | Authentication framework |
102
+ | Playwright | 1.57.x | E2E testing |
103
+ | @hey-api/openapi-ts | 0.94.x | API client code generation (dev) |
104
+ | Valibot | 1.2.x | Schema validation |
105
105
 
106
106
  ## Key Features
107
107
 
@@ -1,18 +1,10 @@
1
1
  import { defineConfig } from '@hey-api/openapi-ts';
2
2
 
3
3
  export default defineConfig({
4
- client: '@hey-api/client-fetch',
5
4
  input: process.env.NUXT_API_URL || 'http://127.0.0.1:3000/api-docs-json',
6
5
  output: {
7
- format: 'prettier',
8
- lint: 'eslint',
9
6
  path: './app/api-client',
7
+ postProcess: ['oxlint', 'oxfmt'],
10
8
  },
11
- plugins: [
12
- '@hey-api/sdk',
13
- {
14
- dates: true,
15
- name: '@hey-api/typescript',
16
- },
17
- ],
9
+ plugins: ['@hey-api/client-fetch', '@hey-api/sdk', '@hey-api/typescript', '@hey-api/transformers'],
18
10
  });
@@ -48,22 +48,22 @@
48
48
  "fix": "pnpm run lint:fix && pnpm run format"
49
49
  },
50
50
  "dependencies": {
51
- "@better-auth/passkey": "1.5.4",
52
- "@hey-api/client-fetch": "0.13.1",
51
+ "@better-auth/passkey": "1.5.5",
53
52
  "@lenne.tech/bug.lt": "latest",
54
- "@lenne.tech/nuxt-extensions": "1.3.0",
53
+ "@lenne.tech/nuxt-extensions": "1.5.0",
55
54
  "@nuxt/image": "2.0.0",
56
55
  "@nuxt/ui": "4.5.1",
57
56
  "@pinia/nuxt": "0.11.3",
58
57
  "@vueuse/nuxt": "14.2.1",
59
- "better-auth": "1.5.4",
58
+ "better-auth": "1.5.5",
60
59
  "qrcode": "1.5.4",
61
60
  "tus-js-client": "4.3.1",
62
61
  "valibot": "1.2.0"
63
62
  },
64
63
  "devDependencies": {
65
- "@hey-api/openapi-ts": "0.94.0",
66
- "@iconify-json/lucide": "1.2.96",
64
+ "@hey-api/client-fetch": "0.13.1",
65
+ "@hey-api/openapi-ts": "0.94.2",
66
+ "@iconify-json/lucide": "1.2.98",
67
67
  "@nuxt/devtools": "3.2.3",
68
68
  "@nuxt/test-utils": "4.0.0",
69
69
  "@nuxtjs/plausible": "3.0.2",
@@ -71,23 +71,23 @@
71
71
  "@playwright/test": "1.58.2",
72
72
  "@tailwindcss/typography": "0.5.19",
73
73
  "@tailwindcss/vite": "4.2.1",
74
- "@types/node": "25.4.0",
74
+ "@types/node": "25.5.0",
75
75
  "@types/qrcode": "1.5.6",
76
- "@vitejs/plugin-vue": "6.0.4",
76
+ "@vitejs/plugin-vue": "6.0.5",
77
77
  "@vue/test-utils": "2.4.6",
78
78
  "dayjs-nuxt": "2.1.11",
79
- "happy-dom": "20.8.3",
80
- "jsdom": "28.1.0",
81
- "lint-staged": "16.3.2",
79
+ "happy-dom": "20.8.4",
80
+ "jsdom": "29.0.0",
81
+ "lint-staged": "16.4.0",
82
82
  "mongodb": "7.1.0",
83
- "nuxt": "4.3.1",
83
+ "nuxt": "4.4.2",
84
84
  "oxfmt": "latest",
85
85
  "oxlint": "latest",
86
86
  "rimraf": "6.1.3",
87
87
  "simple-git-hooks": "2.13.1",
88
88
  "tailwindcss": "4.2.1",
89
89
  "typescript": "5.9.3",
90
- "vitest": "4.0.18"
90
+ "vitest": "4.1.0"
91
91
  },
92
92
  "simple-git-hooks": {
93
93
  "pre-commit": "npx lint-staged",
@@ -116,13 +116,14 @@
116
116
  ],
117
117
  "overrides": {
118
118
  "@hono/node-server@<1.19.10": ">=1.19.10",
119
- "hono@<4.12.4": ">=4.12.4",
119
+ "devalue@<=5.6.3": ">=5.6.4",
120
+ "hono@<4.12.7": ">=4.12.7",
120
121
  "lodash@>=4.0.0 <=4.17.22": ">=4.17.23",
121
122
  "minimatch@>=9.0.0 <9.0.7": ">=9.0.7",
122
123
  "rollup@>=4.0.0 <4.59.0": ">=4.59.0",
123
124
  "serialize-javascript@<=7.0.2": ">=7.0.3",
124
- "svgo@=4.0.0": ">=4.0.1",
125
- "tar@<=7.5.9": ">=7.5.10"
125
+ "tar@<=7.5.10": ">=7.5.11",
126
+ "unhead@<=2.1.10": ">=2.1.11"
126
127
  }
127
128
  }
128
129
  }