create-nuxt-base 2.5.2 → 2.6.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,28 +2,34 @@
|
|
|
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.6.0](https://github.com/lenneTech/nuxt-base-starter/compare/v2.5.3...v2.6.0) (2026-04-17)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
* **template:** harden check script with server-start verification and document vendor-mode workflow ([6521650](https://github.com/lenneTech/nuxt-base-starter/commit/65216500261c846a87c66f0cb7a1170a3d0ed2b9))
|
|
11
|
+
|
|
12
|
+
### [2.5.3](https://github.com/lenneTech/nuxt-base-starter/compare/v2.5.2...v2.5.3) (2026-04-06)
|
|
13
|
+
|
|
5
14
|
### [2.5.2](https://github.com/lenneTech/nuxt-base-starter/compare/v2.5.1...v2.5.2) (2026-04-04)
|
|
6
15
|
|
|
7
16
|
### [2.5.1](https://github.com/lenneTech/nuxt-base-starter/compare/v2.5.0...v2.5.1) (2026-03-16)
|
|
8
17
|
|
|
9
|
-
|
|
10
18
|
### Bug Fixes
|
|
11
19
|
|
|
12
|
-
|
|
20
|
+
- prevent build-time baked API URLs by defaulting to empty strings resolved at runtimeOC ([e577648](https://github.com/lenneTech/nuxt-base-starter/commit/e577648a287e18a76c72564d68bacc277b04a500))
|
|
13
21
|
|
|
14
22
|
## [2.5.0](https://github.com/lenneTech/nuxt-base-starter/compare/v2.3.1...v2.5.0) (2026-03-16)
|
|
15
23
|
|
|
16
|
-
|
|
17
24
|
### Features
|
|
18
25
|
|
|
19
|
-
|
|
26
|
+
- add production default dockerfile ([e338c93](https://github.com/lenneTech/nuxt-base-starter/commit/e338c9363a348c1a63d40a71301240c8e8478835))
|
|
20
27
|
|
|
21
28
|
## [2.4.0](https://github.com/lenneTech/nuxt-base-starter/compare/v2.3.1...v2.4.0) (2026-03-16)
|
|
22
29
|
|
|
23
|
-
|
|
24
30
|
### Features
|
|
25
31
|
|
|
26
|
-
|
|
32
|
+
- add production default dockerfile ([e338c93](https://github.com/lenneTech/nuxt-base-starter/commit/e338c9363a348c1a63d40a71301240c8e8478835))
|
|
27
33
|
|
|
28
34
|
### [2.3.1](https://github.com/lenneTech/nuxt-base-starter/compare/v2.3.0...v2.3.1) (2026-03-15)
|
|
29
35
|
|
|
@@ -58,9 +58,51 @@ pnpm run check # Full quality check (audit + format + lint + types + test
|
|
|
58
58
|
|
|
59
59
|
## Framework: @lenne.tech/nuxt-extensions
|
|
60
60
|
|
|
61
|
-
This project
|
|
62
|
-
|
|
63
|
-
|
|
61
|
+
This project consumes the framework in one of two modes:
|
|
62
|
+
|
|
63
|
+
- **npm mode (default):** `@lenne.tech/nuxt-extensions` is installed as
|
|
64
|
+
an npm dependency; framework source lives in
|
|
65
|
+
`node_modules/@lenne.tech/nuxt-extensions/`. Registered in
|
|
66
|
+
`nuxt.config.ts` via the module string `'@lenne.tech/nuxt-extensions'`.
|
|
67
|
+
- **vendor mode:** framework source is copied directly into
|
|
68
|
+
`app/core/` as first-class project code. No
|
|
69
|
+
`@lenne.tech/nuxt-extensions` npm dependency. Baseline + patch log
|
|
70
|
+
live in `app/core/VENDOR.md`. Updated via
|
|
71
|
+
`/lt-dev:frontend:update-nuxt-extensions-core`. Detect via:
|
|
72
|
+
`test -f app/core/VENDOR.md`.
|
|
73
|
+
|
|
74
|
+
**ALWAYS read the actual framework source** before guessing behavior —
|
|
75
|
+
in npm mode from `node_modules/@lenne.tech/nuxt-extensions/`, in
|
|
76
|
+
vendor mode directly from `app/core/`.
|
|
77
|
+
|
|
78
|
+
### Vendor Modification Policy
|
|
79
|
+
|
|
80
|
+
When this project is in vendor mode, the copy in `app/core/` exists
|
|
81
|
+
so Claude Code can read framework internals directly — it is a
|
|
82
|
+
**comprehension aid**, not a fork. Only edit `app/core/` when the
|
|
83
|
+
change is **generally useful to every nuxt-extensions consumer**:
|
|
84
|
+
|
|
85
|
+
- Bugfixes that apply to every consumer
|
|
86
|
+
- Broad framework enhancements (new composables, better defaults,
|
|
87
|
+
SSR fixes)
|
|
88
|
+
- Security vulnerability fixes
|
|
89
|
+
- Type/config compatibility fixes every consumer would hit
|
|
90
|
+
|
|
91
|
+
**Everything else stays out of `app/core/`.** Project-specific
|
|
92
|
+
business rules, customer branding, and proprietary integrations
|
|
93
|
+
belong in project code (`app/composables/`, `app/components/`,
|
|
94
|
+
`app/middleware/`, plugin overrides).
|
|
95
|
+
|
|
96
|
+
**Generally-useful changes MUST be submitted as an upstream PR** to
|
|
97
|
+
`github.com/lenneTech/nuxt-extensions`. Run
|
|
98
|
+
`/lt-dev:frontend:contribute-nuxt-extensions-core` to prepare the PR
|
|
99
|
+
— the agent filters cosmetic commits, categorizes each local change
|
|
100
|
+
as upstream-candidate vs. project-specific, and writes PR drafts for
|
|
101
|
+
human review. Letting useful fixes rot in a single project's vendor
|
|
102
|
+
tree is an anti-pattern: they belong upstream so every consumer
|
|
103
|
+
benefits and the local patch disappears on the next sync.
|
|
104
|
+
|
|
105
|
+
### Key Source Files (in node_modules/@lenne.tech/nuxt-extensions/ — npm mode; replace prefix with app/core/ in vendor mode)
|
|
64
106
|
|
|
65
107
|
| File | Purpose |
|
|
66
108
|
| --------------------------- | ---------------------------------------------------------- |
|
|
@@ -75,11 +117,18 @@ This project depends on `@lenne.tech/nuxt-extensions`. The framework source is a
|
|
|
75
117
|
|
|
76
118
|
### Rules
|
|
77
119
|
|
|
78
|
-
1. **ALWAYS read actual source code** from `node_modules/@lenne.tech/nuxt-extensions/`
|
|
120
|
+
1. **ALWAYS read actual source code** before guessing framework behavior — from `node_modules/@lenne.tech/nuxt-extensions/` in npm mode, or from `app/core/` in vendor mode
|
|
79
121
|
2. **NEVER re-implement** functionality that nuxt-extensions already provides — check composables first
|
|
80
122
|
3. **Use `useBetterAuth()`** for authentication — never implement auth manually
|
|
81
123
|
4. **When debugging auth issues**, read the auth proxy server route and middleware source
|
|
82
|
-
5. **Check
|
|
124
|
+
5. **Check runtime composables** before creating new composables — may already exist
|
|
125
|
+
6. **In vendor mode**, only edit `app/core/` for generally-useful changes and submit them upstream via `/lt-dev:frontend:contribute-nuxt-extensions-core`. Project-specific code belongs outside `app/core/`.
|
|
126
|
+
|
|
127
|
+
## Authentication
|
|
128
|
+
|
|
129
|
+
Auth is managed by `@lenne.tech/nuxt-extensions` via `useLtAuth()`. See the [nuxt-extensions CLAUDE.md](https://github.com/lenneTech/nuxt-extensions) for detailed auth cookie rules.
|
|
130
|
+
|
|
131
|
+
Key rule: Never manually write to the `lt-auth-state` cookie from custom middleware. Use `useLtAuth().setUser()` / `clearUser()` exclusively.
|
|
83
132
|
|
|
84
133
|
## Security Overrides (pnpm)
|
|
85
134
|
|
|
@@ -11,9 +11,9 @@
|
|
|
11
11
|
},
|
|
12
12
|
"scripts": {
|
|
13
13
|
"c": "pnpm run check",
|
|
14
|
-
"check": "pnpm audit && pnpm run format:check && pnpm run lint && pnpm test && pnpm run build &&
|
|
15
|
-
"check:fix": "pnpm install && pnpm audit --fix && pnpm run format && pnpm run lint:fix && pnpm test && pnpm run build &&
|
|
16
|
-
"check:naf": "pnpm install && pnpm run format && pnpm run lint:fix && pnpm test && pnpm run build &&
|
|
14
|
+
"check": "pnpm audit && pnpm run format:check && pnpm run lint && pnpm test && pnpm run build && bash scripts/check-server-start.sh",
|
|
15
|
+
"check:fix": "pnpm install && pnpm audit --fix && pnpm run format && pnpm run lint:fix && pnpm test && pnpm run build && bash scripts/check-server-start.sh",
|
|
16
|
+
"check:naf": "pnpm install && pnpm run format && pnpm run lint:fix && pnpm test && pnpm run build && bash scripts/check-server-start.sh",
|
|
17
17
|
"cf": "pnpm run check:fix",
|
|
18
18
|
"cnaf": "pnpm run check:naf",
|
|
19
19
|
"init": "pnpm install",
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
"dependencies": {
|
|
51
51
|
"@better-auth/passkey": "1.5.6",
|
|
52
52
|
"@lenne.tech/bug.lt": "latest",
|
|
53
|
-
"@lenne.tech/nuxt-extensions": "1.5.
|
|
53
|
+
"@lenne.tech/nuxt-extensions": "1.5.3",
|
|
54
54
|
"@nuxt/image": "2.0.0",
|
|
55
55
|
"@nuxt/ui": "4.6.1",
|
|
56
56
|
"@pinia/nuxt": "0.11.3",
|
|
@@ -61,7 +61,6 @@
|
|
|
61
61
|
"valibot": "1.3.1"
|
|
62
62
|
},
|
|
63
63
|
"devDependencies": {
|
|
64
|
-
"@hey-api/client-fetch": "0.13.1",
|
|
65
64
|
"@hey-api/openapi-ts": "0.95.0",
|
|
66
65
|
"@iconify-json/lucide": "1.2.101",
|
|
67
66
|
"@nuxt/devtools": "3.2.4",
|
|
@@ -40,8 +40,8 @@ importers:
|
|
|
40
40
|
specifier: latest
|
|
41
41
|
version: 1.6.5(@babel/parser@7.29.2)(crossws@0.3.5)(db0@0.3.4(@electric-sql/pglite@0.3.15)(drizzle-orm@0.45.1(@electric-sql/pglite@0.3.15)(@opentelemetry/api@1.9.1)(@prisma/client@7.4.2(prisma@7.4.2(@types/react@19.2.14)(magicast@0.5.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@6.0.2))(typescript@6.0.2))(kysely@0.28.15)(mysql2@3.15.3)(postgres@3.4.7)(prisma@7.4.2(@types/react@19.2.14)(magicast@0.5.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@6.0.2)))(mysql2@3.15.3))(embla-carousel@8.6.0)(ioredis@5.9.2)(magicast@0.5.2)(qrcode@1.5.4)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@6.0.2)(valibot@1.3.1(typescript@6.0.2))(vite@7.3.1(@types/node@25.5.2)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.0)(yaml@2.8.3))(vue-router@4.6.4(vue@3.5.30(typescript@6.0.2)))(vue@3.5.30(typescript@6.0.2))
|
|
42
42
|
'@lenne.tech/nuxt-extensions':
|
|
43
|
-
specifier: 1.5.
|
|
44
|
-
version: 1.5.
|
|
43
|
+
specifier: 1.5.3
|
|
44
|
+
version: 1.5.3(@better-auth/passkey@1.5.6(@better-auth/core@1.5.6(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.1)(better-call@1.3.2(zod@4.3.6))(jose@6.1.3)(kysely@0.28.15)(nanostores@1.1.1))(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-auth@1.5.6(b30780dc8bc760c93f1eee811a4ad078))(better-call@1.3.2(zod@4.3.6))(nanostores@1.1.1))(@playwright/test@1.59.1)(better-auth@1.5.6(b30780dc8bc760c93f1eee811a4ad078))(magicast@0.5.2)(nuxt@4.4.2(469ac8679250cf62c9e726a96ed146de))(tus-js-client@4.3.1)
|
|
45
45
|
'@nuxt/image':
|
|
46
46
|
specifier: 2.0.0
|
|
47
47
|
version: 2.0.0(crossws@0.3.5)(db0@0.3.4(@electric-sql/pglite@0.3.15)(drizzle-orm@0.45.1(@electric-sql/pglite@0.3.15)(@opentelemetry/api@1.9.1)(@prisma/client@7.4.2(prisma@7.4.2(@types/react@19.2.14)(magicast@0.5.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@6.0.2))(typescript@6.0.2))(kysely@0.28.15)(mysql2@3.15.3)(postgres@3.4.7)(prisma@7.4.2(@types/react@19.2.14)(magicast@0.5.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@6.0.2)))(mysql2@3.15.3))(ioredis@5.9.2)(magicast@0.5.2)
|
|
@@ -67,9 +67,6 @@ importers:
|
|
|
67
67
|
specifier: 1.3.1
|
|
68
68
|
version: 1.3.1(typescript@6.0.2)
|
|
69
69
|
devDependencies:
|
|
70
|
-
'@hey-api/client-fetch':
|
|
71
|
-
specifier: 0.13.1
|
|
72
|
-
version: 0.13.1(@hey-api/openapi-ts@0.95.0(magicast@0.5.2)(typescript@6.0.2))
|
|
73
70
|
'@hey-api/openapi-ts':
|
|
74
71
|
specifier: 0.95.0
|
|
75
72
|
version: 0.95.0(magicast@0.5.2)(typescript@6.0.2)
|
|
@@ -870,12 +867,6 @@ packages:
|
|
|
870
867
|
'@hexagon/base64@1.1.28':
|
|
871
868
|
resolution: {integrity: sha512-lhqDEAvWixy3bZ+UOYbPwUbBkwBq5C1LAJ/xPC8Oi+lL54oyakv/npbA0aU2hgCsx/1NUd4IBvV03+aUBWxerw==}
|
|
872
869
|
|
|
873
|
-
'@hey-api/client-fetch@0.13.1':
|
|
874
|
-
resolution: {integrity: sha512-29jBRYNdxVGlx5oewFgOrkulZckpIpBIRHth3uHFn1PrL2ucMy52FvWOY3U3dVx2go1Z3kUmMi6lr07iOpUqqA==}
|
|
875
|
-
deprecated: Starting with v0.73.0, this package is bundled directly inside @hey-api/openapi-ts.
|
|
876
|
-
peerDependencies:
|
|
877
|
-
'@hey-api/openapi-ts': < 2
|
|
878
|
-
|
|
879
870
|
'@hey-api/codegen-core@0.7.4':
|
|
880
871
|
resolution: {integrity: sha512-DGd9yeSQzflOWO3Y5mt1GRXkXH9O/yIMgbxPjwLI3jwu/3nAjoXXD26lEeFb6tclYlg0JAqTIs5d930G/qxHeA==}
|
|
881
872
|
engines: {node: '>=20.19.0'}
|
|
@@ -1001,8 +992,8 @@ packages:
|
|
|
1001
992
|
'@lenne.tech/bug.lt@1.6.5':
|
|
1002
993
|
resolution: {integrity: sha512-3aSfAcuizL8WvmDaHUlSjpLVdaeSRtNMrEPle7IoqA9VBmfaCfUKzOQmSdnz69Laeq6hn1a2P1HVcsj1QoOWuQ==}
|
|
1003
994
|
|
|
1004
|
-
'@lenne.tech/nuxt-extensions@1.5.
|
|
1005
|
-
resolution: {integrity: sha512-
|
|
995
|
+
'@lenne.tech/nuxt-extensions@1.5.3':
|
|
996
|
+
resolution: {integrity: sha512-CABvWvBUYiFtfYkOHKH9WbDbAwqNSkPJAlje5qX+KqbP5GCXP9BdIOejKKehsD+P7Wfs/pjTns4Fo6PvjuTyjQ==}
|
|
1006
997
|
peerDependencies:
|
|
1007
998
|
'@better-auth/passkey': '>=1.0.0'
|
|
1008
999
|
'@playwright/test': '>=1.0.0'
|
|
@@ -7856,10 +7847,6 @@ snapshots:
|
|
|
7856
7847
|
|
|
7857
7848
|
'@hexagon/base64@1.1.28': {}
|
|
7858
7849
|
|
|
7859
|
-
'@hey-api/client-fetch@0.13.1(@hey-api/openapi-ts@0.95.0(magicast@0.5.2)(typescript@6.0.2))':
|
|
7860
|
-
dependencies:
|
|
7861
|
-
'@hey-api/openapi-ts': 0.95.0(magicast@0.5.2)(typescript@6.0.2)
|
|
7862
|
-
|
|
7863
7850
|
'@hey-api/codegen-core@0.7.4(magicast@0.5.2)':
|
|
7864
7851
|
dependencies:
|
|
7865
7852
|
'@hey-api/types': 0.1.4
|
|
@@ -8071,7 +8058,7 @@ snapshots:
|
|
|
8071
8058
|
- vue-router
|
|
8072
8059
|
- yup
|
|
8073
8060
|
|
|
8074
|
-
'@lenne.tech/nuxt-extensions@1.5.
|
|
8061
|
+
'@lenne.tech/nuxt-extensions@1.5.3(@better-auth/passkey@1.5.6(@better-auth/core@1.5.6(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(@opentelemetry/api@1.9.1)(better-call@1.3.2(zod@4.3.6))(jose@6.1.3)(kysely@0.28.15)(nanostores@1.1.1))(@better-auth/utils@0.3.1)(@better-fetch/fetch@1.1.21)(better-auth@1.5.6(b30780dc8bc760c93f1eee811a4ad078))(better-call@1.3.2(zod@4.3.6))(nanostores@1.1.1))(@playwright/test@1.59.1)(better-auth@1.5.6(b30780dc8bc760c93f1eee811a4ad078))(magicast@0.5.2)(nuxt@4.4.2(469ac8679250cf62c9e726a96ed146de))(tus-js-client@4.3.1)':
|
|
8075
8062
|
dependencies:
|
|
8076
8063
|
'@nuxt/kit': 4.4.2(magicast@0.5.2)
|
|
8077
8064
|
better-auth: 1.5.6(b30780dc8bc760c93f1eee811a4ad078)
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
set -e
|
|
3
|
+
|
|
4
|
+
# Temp file for server output
|
|
5
|
+
LOG_FILE=$(mktemp)
|
|
6
|
+
|
|
7
|
+
# Start the built Nuxt server in background, redirect output to log file
|
|
8
|
+
# The build step already ran before this script is called
|
|
9
|
+
node .output/server/index.mjs > "$LOG_FILE" 2>&1 &
|
|
10
|
+
SERVER_PID=$!
|
|
11
|
+
|
|
12
|
+
# Show log output in real-time
|
|
13
|
+
tail -f "$LOG_FILE" &
|
|
14
|
+
TAIL_PID=$!
|
|
15
|
+
|
|
16
|
+
# Ensure cleanup on exit: kill server, tail, and remove temp file
|
|
17
|
+
trap 'kill $SERVER_PID $TAIL_PID 2>/dev/null; wait $SERVER_PID $TAIL_PID 2>/dev/null || true; rm -f "$LOG_FILE"' EXIT
|
|
18
|
+
|
|
19
|
+
# Wait for the Nitro server ready message (max 60 seconds)
|
|
20
|
+
for i in $(seq 1 60); do
|
|
21
|
+
if grep -q "Listening on\|Nitro ready\|Local:" "$LOG_FILE" 2>/dev/null; then
|
|
22
|
+
echo ""
|
|
23
|
+
echo "Server started successfully - check complete"
|
|
24
|
+
exit 0
|
|
25
|
+
fi
|
|
26
|
+
# Check if server process died unexpectedly
|
|
27
|
+
if ! kill -0 $SERVER_PID 2>/dev/null; then
|
|
28
|
+
echo ""
|
|
29
|
+
echo "Server process exited unexpectedly"
|
|
30
|
+
exit 1
|
|
31
|
+
fi
|
|
32
|
+
sleep 1
|
|
33
|
+
done
|
|
34
|
+
|
|
35
|
+
echo ""
|
|
36
|
+
echo "Server failed to start within 60 seconds"
|
|
37
|
+
exit 1
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-nuxt-base",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.6.0",
|
|
4
4
|
"description": "Starter to generate a configured environment with VueJS, Nuxt, Tailwind, Linting, Unit Tests, Playwright etc.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "lenne.Tech GmbH",
|
|
@@ -38,6 +38,9 @@
|
|
|
38
38
|
},
|
|
39
39
|
"pnpm": {
|
|
40
40
|
"overrides": {
|
|
41
|
+
"brace-expansion@>=4.0.0 <5.0.5": ">=5.0.5",
|
|
42
|
+
"handlebars@>=4.0.0 <=4.7.8": ">=4.7.9",
|
|
43
|
+
"lodash@>=4.0.0 <=4.17.23": ">=4.18.0",
|
|
41
44
|
"minimatch@<3.1.4": ">=3.1.4"
|
|
42
45
|
}
|
|
43
46
|
}
|