create-nuxt-base 2.2.6 → 2.2.8
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 +2 -0
- package/nuxt-base-template/.env.example +9 -8
- package/nuxt-base-template/.nuxtrc +1 -1
- package/nuxt-base-template/README.md +10 -9
- package/nuxt-base-template/app/pages/auth/register.vue +14 -10
- package/nuxt-base-template/nuxt.config.ts +14 -14
- package/nuxt-base-template/openapi-ts.config.ts +1 -1
- package/nuxt-base-template/package.json +37 -23
- package/nuxt-base-template/pnpm-lock.yaml +2725 -1484
- package/nuxt-base-template/server/api/iam/[...path].ts +2 -1
- package/package.json +8 -3
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,8 @@
|
|
|
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.2.8](https://github.com/lenneTech/nuxt-base-starter/compare/v2.2.7...v2.2.8) (2026-03-08)
|
|
6
|
+
|
|
5
7
|
### [2.2.5](https://github.com/lenneTech/nuxt-base-starter/compare/v2.2.4...v2.2.5) (2026-02-10)
|
|
6
8
|
|
|
7
9
|
### [2.2.4](https://github.com/lenneTech/nuxt-base-starter/compare/v2.2.3...v2.2.4) (2026-02-05)
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
NUXT_PUBLIC_SITE_URL=http://localhost:3001
|
|
2
|
+
NUXT_PUBLIC_APP_ENV=development
|
|
3
3
|
NODE_ENV=development
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
NUXT_API_URL=http://localhost:3000
|
|
5
|
+
NUXT_PUBLIC_API_URL=http://localhost:3000
|
|
6
|
+
NUXT_PUBLIC_WEB_PUSH_KEY=
|
|
7
|
+
NUXT_PUBLIC_STORAGE_PREFIX=base-dev
|
|
7
8
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
NUXT_LINEAR_API_KEY=
|
|
10
|
+
NUXT_LINEAR_TEAM_NAME=
|
|
11
|
+
NUXT_LINEAR_PROJECT_NAME=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
setups.@nuxt/test-utils="
|
|
1
|
+
setups.@nuxt/test-utils="4.0.0"
|
|
@@ -149,21 +149,22 @@ Create a `.env` file with the following variables:
|
|
|
149
149
|
|
|
150
150
|
```env
|
|
151
151
|
# Required
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
152
|
+
NUXT_PUBLIC_SITE_URL=http://localhost:3001
|
|
153
|
+
NUXT_API_URL=http://localhost:3000
|
|
154
|
+
NUXT_PUBLIC_API_URL=http://localhost:3000
|
|
155
|
+
NUXT_PUBLIC_APP_ENV=development
|
|
155
156
|
NODE_ENV=development
|
|
156
157
|
```
|
|
157
158
|
|
|
158
159
|
Optional variables:
|
|
159
160
|
|
|
160
161
|
```env
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
162
|
+
NUXT_PUBLIC_WEB_PUSH_KEY= # Web push notifications
|
|
163
|
+
NUXT_LINEAR_API_KEY= # Bug reporting
|
|
164
|
+
NUXT_LINEAR_TEAM_NAME= # Bug reporting
|
|
165
|
+
NUXT_LINEAR_PROJECT_NAME= # Bug reporting
|
|
166
|
+
NUXT_API_SCHEMA=../api/schema.gql # OpenAPI schema path
|
|
167
|
+
NUXT_PUBLIC_STORAGE_PREFIX=base-dev # Local storage prefix
|
|
167
168
|
```
|
|
168
169
|
|
|
169
170
|
## Project Structure
|
|
@@ -44,16 +44,20 @@ const showPasskeyPrompt = ref<boolean>(false);
|
|
|
44
44
|
const passkeyLoading = ref<boolean>(false);
|
|
45
45
|
|
|
46
46
|
// Redirect if registration is disabled
|
|
47
|
-
watch(
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
47
|
+
watch(
|
|
48
|
+
() => features.value.signUpEnabled,
|
|
49
|
+
(val) => {
|
|
50
|
+
if (val === false) {
|
|
51
|
+
toast.add({
|
|
52
|
+
color: 'warning',
|
|
53
|
+
description: 'Die Registrierung ist derzeit deaktiviert.',
|
|
54
|
+
title: 'Registrierung nicht verfügbar',
|
|
55
|
+
});
|
|
56
|
+
navigateTo('/auth/login');
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
{ immediate: true },
|
|
60
|
+
);
|
|
57
61
|
|
|
58
62
|
const requireTerms = computed(() => features.value.signUpChecks === true);
|
|
59
63
|
|
|
@@ -17,10 +17,10 @@ export default defineNuxtConfig({
|
|
|
17
17
|
// ============================================================================
|
|
18
18
|
// @ts-expect-error bug.lt module config - module temporarily disabled
|
|
19
19
|
bug: {
|
|
20
|
-
enabled: process.env.
|
|
21
|
-
linearApiKey: process.env.
|
|
22
|
-
linearProjectName: process.env.
|
|
23
|
-
linearTeamName: process.env.
|
|
20
|
+
enabled: process.env.NUXT_PUBLIC_APP_ENV !== 'production',
|
|
21
|
+
linearApiKey: process.env.NUXT_LINEAR_API_KEY,
|
|
22
|
+
linearProjectName: process.env.NUXT_LINEAR_PROJECT_NAME,
|
|
23
|
+
linearTeamName: process.env.NUXT_LINEAR_TEAM_NAME,
|
|
24
24
|
},
|
|
25
25
|
|
|
26
26
|
compatibilityDate: '2025-01-15',
|
|
@@ -49,7 +49,7 @@ export default defineNuxtConfig({
|
|
|
49
49
|
// ============================================================================
|
|
50
50
|
// Environment-specific Layers
|
|
51
51
|
// ============================================================================
|
|
52
|
-
extends: process.env.
|
|
52
|
+
extends: process.env.NUXT_PUBLIC_APP_ENV === 'development' ? ['./docs'] : [],
|
|
53
53
|
|
|
54
54
|
// ============================================================================
|
|
55
55
|
// Image Optimization
|
|
@@ -87,7 +87,7 @@ export default defineNuxtConfig({
|
|
|
87
87
|
// baseURL is used in production mode for cross-origin API requests
|
|
88
88
|
// In dev mode, Nuxt proxy is used (baseURL is ignored, requests go through /api/iam)
|
|
89
89
|
// In production, requests go directly to baseURL + basePath (e.g., https://api.example.com/iam)
|
|
90
|
-
baseURL: process.env.
|
|
90
|
+
baseURL: process.env.NUXT_API_URL || 'http://localhost:3000',
|
|
91
91
|
basePath: '/iam',
|
|
92
92
|
loginPath: '/auth/login',
|
|
93
93
|
twoFactorRedirectPath: '/auth/2fa',
|
|
@@ -138,7 +138,7 @@ export default defineNuxtConfig({
|
|
|
138
138
|
// Analytics (Plausible)
|
|
139
139
|
// ============================================================================
|
|
140
140
|
plausible: {
|
|
141
|
-
apiHost: process.env.
|
|
141
|
+
apiHost: process.env.NUXT_PLAUSIBLE_API_URL,
|
|
142
142
|
ignoredHostnames: ['localhost'],
|
|
143
143
|
},
|
|
144
144
|
|
|
@@ -153,13 +153,13 @@ export default defineNuxtConfig({
|
|
|
153
153
|
// Runtime Configuration (Environment Variables)
|
|
154
154
|
// ============================================================================
|
|
155
155
|
runtimeConfig: {
|
|
156
|
-
// Server-only
|
|
157
|
-
apiUrl:
|
|
156
|
+
// Server-only — NUXT_API_URL overrides this
|
|
157
|
+
apiUrl: 'http://localhost:3000',
|
|
158
158
|
public: {
|
|
159
|
-
// Client-side
|
|
160
|
-
apiUrl:
|
|
161
|
-
|
|
162
|
-
webPushKey:
|
|
159
|
+
// Client-side — NUXT_PUBLIC_API_URL overrides this
|
|
160
|
+
apiUrl: 'http://localhost:3000',
|
|
161
|
+
// NUXT_PUBLIC_WEB_PUSH_KEY overrides this
|
|
162
|
+
webPushKey: '',
|
|
163
163
|
},
|
|
164
164
|
},
|
|
165
165
|
|
|
@@ -168,7 +168,7 @@ export default defineNuxtConfig({
|
|
|
168
168
|
// ============================================================================
|
|
169
169
|
site: {
|
|
170
170
|
name: 'Nuxt Base Starter',
|
|
171
|
-
url: process.env.
|
|
171
|
+
url: process.env.NUXT_PUBLIC_SITE_URL,
|
|
172
172
|
},
|
|
173
173
|
|
|
174
174
|
// ============================================================================
|
|
@@ -2,7 +2,7 @@ import { defineConfig } from '@hey-api/openapi-ts';
|
|
|
2
2
|
|
|
3
3
|
export default defineConfig({
|
|
4
4
|
client: '@hey-api/client-fetch',
|
|
5
|
-
input: process.env.
|
|
5
|
+
input: process.env.NUXT_API_URL || 'http://127.0.0.1:3000/api-docs-json',
|
|
6
6
|
output: {
|
|
7
7
|
format: 'prettier',
|
|
8
8
|
lint: 'eslint',
|
|
@@ -48,47 +48,47 @@
|
|
|
48
48
|
"fix": "pnpm run lint:fix && pnpm run format"
|
|
49
49
|
},
|
|
50
50
|
"dependencies": {
|
|
51
|
-
"@better-auth/passkey": "1.4
|
|
51
|
+
"@better-auth/passkey": "1.5.4",
|
|
52
52
|
"@hey-api/client-fetch": "0.13.1",
|
|
53
53
|
"@lenne.tech/bug.lt": "latest",
|
|
54
|
-
"@lenne.tech/nuxt-extensions": "1.2.
|
|
54
|
+
"@lenne.tech/nuxt-extensions": "1.2.12",
|
|
55
55
|
"@nuxt/image": "2.0.0",
|
|
56
|
-
"@nuxt/ui": "4.
|
|
56
|
+
"@nuxt/ui": "4.5.1",
|
|
57
57
|
"@pinia/nuxt": "0.11.3",
|
|
58
|
-
"@vueuse/nuxt": "14.1
|
|
59
|
-
"better-auth": "1.4
|
|
58
|
+
"@vueuse/nuxt": "14.2.1",
|
|
59
|
+
"better-auth": "1.5.4",
|
|
60
60
|
"qrcode": "1.5.4",
|
|
61
61
|
"tus-js-client": "4.3.1",
|
|
62
62
|
"valibot": "1.2.0"
|
|
63
63
|
},
|
|
64
64
|
"devDependencies": {
|
|
65
|
-
"@hey-api/openapi-ts": "0.
|
|
66
|
-
"@iconify-json/lucide": "1.2.
|
|
67
|
-
"@nuxt/devtools": "3.
|
|
68
|
-
"@nuxt/test-utils": "
|
|
65
|
+
"@hey-api/openapi-ts": "0.94.0",
|
|
66
|
+
"@iconify-json/lucide": "1.2.96",
|
|
67
|
+
"@nuxt/devtools": "3.2.2",
|
|
68
|
+
"@nuxt/test-utils": "4.0.0",
|
|
69
69
|
"@nuxtjs/color-mode": "4.0.0",
|
|
70
|
-
"@nuxtjs/plausible": "
|
|
71
|
-
"@nuxtjs/seo": "3.
|
|
72
|
-
"@playwright/test": "1.
|
|
70
|
+
"@nuxtjs/plausible": "3.0.2",
|
|
71
|
+
"@nuxtjs/seo": "3.4.0",
|
|
72
|
+
"@playwright/test": "1.58.2",
|
|
73
73
|
"@tailwindcss/typography": "0.5.19",
|
|
74
|
-
"@tailwindcss/vite": "4.1
|
|
75
|
-
"@types/node": "25.
|
|
74
|
+
"@tailwindcss/vite": "4.2.1",
|
|
75
|
+
"@types/node": "25.3.5",
|
|
76
76
|
"@types/qrcode": "1.5.6",
|
|
77
|
-
"@vitejs/plugin-vue": "6.0.
|
|
77
|
+
"@vitejs/plugin-vue": "6.0.4",
|
|
78
78
|
"@vue/test-utils": "2.4.6",
|
|
79
79
|
"dayjs-nuxt": "2.1.11",
|
|
80
|
-
"happy-dom": "20.3
|
|
81
|
-
"jsdom": "
|
|
82
|
-
"lint-staged": "16.2
|
|
80
|
+
"happy-dom": "20.8.3",
|
|
81
|
+
"jsdom": "28.1.0",
|
|
82
|
+
"lint-staged": "16.3.2",
|
|
83
83
|
"mongodb": "7.1.0",
|
|
84
|
-
"nuxt": "4.
|
|
84
|
+
"nuxt": "4.3.1",
|
|
85
85
|
"oxfmt": "latest",
|
|
86
86
|
"oxlint": "latest",
|
|
87
|
-
"rimraf": "6.1.
|
|
87
|
+
"rimraf": "6.1.3",
|
|
88
88
|
"simple-git-hooks": "2.13.1",
|
|
89
|
-
"tailwindcss": "4.1
|
|
89
|
+
"tailwindcss": "4.2.1",
|
|
90
90
|
"typescript": "5.9.3",
|
|
91
|
-
"vitest": "
|
|
91
|
+
"vitest": "4.0.18"
|
|
92
92
|
},
|
|
93
93
|
"simple-git-hooks": {
|
|
94
94
|
"pre-commit": "npx lint-staged",
|
|
@@ -114,6 +114,20 @@
|
|
|
114
114
|
"sharp",
|
|
115
115
|
"simple-git-hooks",
|
|
116
116
|
"vue-demi"
|
|
117
|
-
]
|
|
117
|
+
],
|
|
118
|
+
"overrides": {
|
|
119
|
+
"@hono/node-server@<1.19.10": ">=1.19.10",
|
|
120
|
+
"devalue@<=5.6.2": ">=5.6.3",
|
|
121
|
+
"fast-xml-parser@>=5.0.0 <5.3.8": ">=5.3.8",
|
|
122
|
+
"hono@<4.12.4": ">=4.12.4",
|
|
123
|
+
"lodash@>=4.0.0 <=4.17.22": ">=4.17.23",
|
|
124
|
+
"markdown-it@>=13.0.0 <14.1.1": ">=14.1.1",
|
|
125
|
+
"minimatch@>=5.0.0 <5.1.8": ">=5.1.8",
|
|
126
|
+
"minimatch@>=9.0.0 <9.0.7": ">=9.0.7",
|
|
127
|
+
"rollup@>=4.0.0 <4.59.0": ">=4.59.0",
|
|
128
|
+
"serialize-javascript@<=7.0.2": ">=7.0.3",
|
|
129
|
+
"svgo@=4.0.0": ">=4.0.1",
|
|
130
|
+
"tar@<=7.5.9": ">=7.5.10"
|
|
131
|
+
}
|
|
118
132
|
}
|
|
119
133
|
}
|