create-nuxt-base 2.2.1 → 2.2.3

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,74 +2,77 @@
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.1](https://github.com/lenneTech/nuxt-base-starter/compare/v2.2.0...v2.2.1) (2026-02-04)
5
+ ### [2.2.3](https://github.com/lenneTech/nuxt-base-starter/compare/v2.2.2...v2.2.3) (2026-02-05)
6
6
 
7
7
 
8
8
  ### Bug Fixes
9
9
 
10
- * bundle lucide loader-circle icon to prevent runtime loading failure ([afc7ae7](https://github.com/lenneTech/nuxt-base-starter/commit/afc7ae79d70db283fe4b2042c624feaf6b6e65cc))
10
+ * fixes TypeScript errors ([8375d69](https://github.com/lenneTech/nuxt-base-starter/commit/8375d69dcfda5c334185843d08f0ff43dd0c501a))
11
11
 
12
- ## [2.2.0](https://github.com/lenneTech/nuxt-base-starter/compare/v2.1.4...v2.2.0) (2026-02-04)
12
+ ### [2.2.2](https://github.com/lenneTech/nuxt-base-starter/compare/v2.2.1...v2.2.2) (2026-02-04)
13
13
 
14
+ ### [2.2.1](https://github.com/lenneTech/nuxt-base-starter/compare/v2.2.0...v2.2.1) (2026-02-04)
15
+
16
+ ### Bug Fixes
17
+
18
+ - bundle lucide loader-circle icon to prevent runtime loading failure ([afc7ae7](https://github.com/lenneTech/nuxt-base-starter/commit/afc7ae79d70db283fe4b2042c624feaf6b6e65cc))
19
+
20
+ ## [2.2.0](https://github.com/lenneTech/nuxt-base-starter/compare/v2.1.4...v2.2.0) (2026-02-04)
14
21
 
15
22
  ### Features
16
23
 
17
- * improve registration and login with email verification, terms checkbox, and TS fixes ([dee6b95](https://github.com/lenneTech/nuxt-base-starter/commit/dee6b95b29890bdccf09570192f869397694b61f))
24
+ - improve registration and login with email verification, terms checkbox, and TS fixes ([dee6b95](https://github.com/lenneTech/nuxt-base-starter/commit/dee6b95b29890bdccf09570192f869397694b61f))
18
25
 
19
26
  ### [2.1.4](https://github.com/lenneTech/nuxt-base-starter/compare/v2.1.3...v2.1.4) (2026-01-26)
20
27
 
21
-
22
28
  ### Bug Fixes
23
29
 
24
- * generate QR code locally as SVG for password manager compatibility ([f4256e9](https://github.com/lenneTech/nuxt-base-starter/commit/f4256e94baf839b800cd5420c49ad9ed14a50f01))
30
+ - generate QR code locally as SVG for password manager compatibility ([f4256e9](https://github.com/lenneTech/nuxt-base-starter/commit/f4256e94baf839b800cd5420c49ad9ed14a50f01))
25
31
 
26
32
  ### [2.1.3](https://github.com/lenneTech/nuxt-base-starter/compare/v2.1.2...v2.1.3) (2026-01-26)
27
33
 
28
-
29
34
  ### Bug Fixes
30
35
 
31
- * remove trust device feature from 2FA authentication flow ([c631c83](https://github.com/lenneTech/nuxt-base-starter/commit/c631c839a1ae8ee902a7ab3678e034d99840972a))
36
+ - remove trust device feature from 2FA authentication flow ([c631c83](https://github.com/lenneTech/nuxt-base-starter/commit/c631c839a1ae8ee902a7ab3678e034d99840972a))
32
37
 
33
38
  ### [2.1.2](https://github.com/lenneTech/nuxt-base-starter/compare/v2.1.1...v2.1.2) (2026-01-24)
34
39
 
35
-
36
40
  ### Bug Fixes
37
41
 
38
- * **forms:** restore UForm/UAuthForm with Valibot schema validation ([aa5e93c](https://github.com/lenneTech/nuxt-base-starter/commit/aa5e93cdd19193cc4dd1153fc4f629407b0273f0))
42
+ - **forms:** restore UForm/UAuthForm with Valibot schema validation ([aa5e93c](https://github.com/lenneTech/nuxt-base-starter/commit/aa5e93cdd19193cc4dd1153fc4f629407b0273f0))
39
43
 
40
44
  ### [2.1.1](https://github.com/lenneTech/nuxt-base-starter/compare/v2.1.0...v2.1.1) (2026-01-24)
41
45
 
42
-
43
46
  ### Bug Fixes
44
47
 
45
- * update packages ([c5c733a](https://github.com/lenneTech/nuxt-base-starter/commit/c5c733ad07b6d5cee248b2f78d65a69b3b4369d4))
48
+ - update packages ([c5c733a](https://github.com/lenneTech/nuxt-base-starter/commit/c5c733ad07b6d5cee248b2f78d65a69b3b4369d4))
46
49
 
47
50
  ## [2.1.0](https://github.com/lenneTech/nuxt-base-starter/compare/v2.0.0...v2.1.0) (2026-01-24)
48
51
 
49
-
50
52
  ### Features
51
53
 
52
- * **tests, i18n:** add test infrastructure and error translation integration ([f8aff01](https://github.com/lenneTech/nuxt-base-starter/commit/f8aff01b5c763ea54cee270e10a1a29e2bece867))
54
+ - **tests, i18n:** add test infrastructure and error translation integration ([f8aff01](https://github.com/lenneTech/nuxt-base-starter/commit/f8aff01b5c763ea54cee270e10a1a29e2bece867))
53
55
 
54
56
  ## [2.0.0](https://github.com/lenneTech/nuxt-base-starter/compare/v1.2.0...v2.0.0) (2026-01-24)
55
57
 
56
-
57
58
  ### ⚠ BREAKING CHANGES
58
59
 
59
- * Local auth, upload, and utility files replaced by package
60
+ - Local auth, upload, and utility files replaced by package
60
61
 
61
62
  Migration to @lenne.tech/nuxt-extensions v1.0.1:
63
+
62
64
  - Remove local composables (use-better-auth, use-tus-upload, use-file, use-share, use-tw)
63
65
  - Remove local lib files (auth-client, auth-state)
64
66
  - Remove local plugins (auth-interceptor.client)
65
67
  - Remove local utils (crypto)
66
68
  - Remove local interfaces (upload.interface)
67
- - Remove local Transition components (now provided by package as Lt* prefix)
69
+ - Remove local Transition components (now provided by package as Lt\* prefix)
68
70
  - Simplify user.interface.ts to re-export LtUser from package
69
71
  - Update all imports to use auto-imported composables (useLtAuth, useLtTusUpload, etc.)
70
72
  - Update package.json to use npm package instead of yalc
71
73
 
72
74
  All authentication features now provided by the package:
75
+
73
76
  - Cookie/JWT dual-mode authentication
74
77
  - Passkey/WebAuthn support
75
78
  - 2FA/TOTP support
@@ -79,17 +82,15 @@ Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
79
82
 
80
83
  ### Bug Fixes
81
84
 
82
- * use exact version 1.0.1 for [@lenne](https://github.com/lenne).tech/nuxt-extensions ([fe8d4c2](https://github.com/lenneTech/nuxt-base-starter/commit/fe8d4c21575977bd093a304adc2e18c7edc61110))
85
+ - use exact version 1.0.1 for [@lenne](https://github.com/lenne).tech/nuxt-extensions ([fe8d4c2](https://github.com/lenneTech/nuxt-base-starter/commit/fe8d4c21575977bd093a304adc2e18c7edc61110))
83
86
 
84
-
85
- * migrate to [@lenne](https://github.com/lenne).tech/nuxt-extensions package ([4c8b732](https://github.com/lenneTech/nuxt-base-starter/commit/4c8b732b9d017a0ff7fb21ef09136dcd7fff81f0))
87
+ - migrate to [@lenne](https://github.com/lenne).tech/nuxt-extensions package ([4c8b732](https://github.com/lenneTech/nuxt-base-starter/commit/4c8b732b9d017a0ff7fb21ef09136dcd7fff81f0))
86
88
 
87
89
  ## [1.2.0](https://github.com/lenneTech/nuxt-base-starter/compare/v1.1.2...v1.2.0) (2026-01-22)
88
90
 
89
-
90
91
  ### Features
91
92
 
92
- * **auth:** add Cookie/JWT dual-mode authentication with automatic fallback ([8005425](https://github.com/lenneTech/nuxt-base-starter/commit/800542585dc22c1710f8bf587ee8371458454c79))
93
+ - **auth:** add Cookie/JWT dual-mode authentication with automatic fallback ([8005425](https://github.com/lenneTech/nuxt-base-starter/commit/800542585dc22c1710f8bf587ee8371458454c79))
93
94
 
94
95
  ### [1.1.2](https://github.com/lenneTech/nuxt-base-starter/compare/v1.1.1...v1.1.2) (2026-01-22)
95
96
 
@@ -7,8 +7,8 @@ import type { InferOutput } from 'valibot';
7
7
 
8
8
  import * as v from 'valibot';
9
9
 
10
- // Auth client from @lenne.tech/nuxt-extensions (auto-imported as ltAuthClient)
11
- const authClient = ltAuthClient;
10
+ // Auth client from @lenne.tech/nuxt-extensions
11
+ const authClient = useLtAuthClient();
12
12
 
13
13
  // ============================================================================
14
14
  // Props & Emits
@@ -118,7 +118,7 @@ const termsSchema = v.pipe(
118
118
  ),
119
119
  );
120
120
 
121
- const schema = computed(() => requireTerms.value ? termsSchema : baseSchema);
121
+ const schema = computed(() => (requireTerms.value ? termsSchema : baseSchema));
122
122
 
123
123
  type Schema = InferOutput<typeof baseSchema> | InferOutput<typeof termsSchema>;
124
124
 
@@ -243,8 +243,8 @@ async function skipPasskey(): Promise<void> {
243
243
  }"
244
244
  @submit="onSubmit"
245
245
  >
246
- <template v-if="requireTerms" #termsAccepted-field="{ state: formState }">
247
- <UCheckbox v-model="formState.termsAccepted">
246
+ <template v-if="requireTerms" #termsAccepted-field="slotProps">
247
+ <UCheckbox v-model="(slotProps as any).state.termsAccepted">
248
248
  <template #label>
249
249
  <span class="text-sm">
250
250
  Ich akzeptiere die
@@ -85,10 +85,11 @@ async function onSubmit(payload: FormSubmitEvent<Schema>): Promise<void> {
85
85
  loading.value = true;
86
86
 
87
87
  try {
88
- const { error } = await authClient.resetPassword({
88
+ const result = await authClient.resetPassword({
89
89
  newPassword: payload.data.password,
90
90
  token: token.value,
91
91
  });
92
+ const error = 'error' in result ? result.error : null;
92
93
 
93
94
  if (error) {
94
95
  toast.add({
@@ -165,7 +165,15 @@ onUnmounted(() => {
165
165
  </div>
166
166
 
167
167
  <div class="flex w-full flex-col gap-3">
168
- <UButton v-if="email" block :color="resendCooldown > 0 ? 'neutral' : 'primary'" :disabled="resendCooldown > 0" :loading="resending" :variant="resendCooldown > 0 ? 'outline' : 'solid'" @click="resendVerificationEmail">
168
+ <UButton
169
+ v-if="email"
170
+ block
171
+ :color="resendCooldown > 0 ? 'neutral' : 'primary'"
172
+ :disabled="resendCooldown > 0"
173
+ :loading="resending"
174
+ :variant="resendCooldown > 0 ? 'outline' : 'solid'"
175
+ @click="resendVerificationEmail"
176
+ >
169
177
  {{ resendCooldown > 0 ? `Neue E-Mail senden (${resendCooldown}s)` : 'Neue E-Mail senden' }}
170
178
  </UButton>
171
179
  <UButton block variant="outline" color="neutral" to="/auth/login">Zurück zur Anmeldung</UButton>
@@ -198,7 +206,15 @@ onUnmounted(() => {
198
206
  </UAlert>
199
207
 
200
208
  <div class="flex w-full flex-col gap-3">
201
- <UButton v-if="email" block :color="resendCooldown > 0 ? 'neutral' : 'primary'" :disabled="resendCooldown > 0" :loading="resending" :variant="resendCooldown > 0 ? 'subtle' : 'outline'" @click="resendVerificationEmail">
209
+ <UButton
210
+ v-if="email"
211
+ block
212
+ :color="resendCooldown > 0 ? 'neutral' : 'primary'"
213
+ :disabled="resendCooldown > 0"
214
+ :loading="resending"
215
+ :variant="resendCooldown > 0 ? 'subtle' : 'outline'"
216
+ @click="resendVerificationEmail"
217
+ >
202
218
  {{ resendCooldown > 0 ? `Bestätigungs-E-Mail erneut senden (${resendCooldown}s)` : 'Bestätigungs-E-Mail erneut senden' }}
203
219
  </UButton>
204
220
  <UButton block variant="outline" color="neutral" to="/auth/login">Zurück zur Anmeldung</UButton>
@@ -33,20 +33,21 @@
33
33
  "@tailwindcss/vite": "4.1.18",
34
34
  "@types/node": "25.0.6",
35
35
  "@types/qrcode": "1.5.6",
36
- "@vitejs/plugin-vue": "^6.0.3",
37
- "@vue/test-utils": "^2.4.6",
36
+ "@vitejs/plugin-vue": "6.0.3",
37
+ "@vue/test-utils": "2.4.6",
38
38
  "dayjs-nuxt": "2.1.11",
39
- "happy-dom": "^20.3.7",
39
+ "happy-dom": "20.3.7",
40
40
  "jsdom": "27.4.0",
41
- "lint-staged": "^16.2.7",
41
+ "lint-staged": "16.2.7",
42
+ "mongodb": "7.1.0",
42
43
  "nuxt": "4.2.2",
43
44
  "oxfmt": "latest",
44
45
  "oxlint": "latest",
45
46
  "rimraf": "6.1.2",
46
- "simple-git-hooks": "^2.13.1",
47
+ "simple-git-hooks": "2.13.1",
47
48
  "tailwindcss": "4.1.18",
48
49
  "typescript": "5.9.3",
49
- "vitest": "^3.2.4"
50
+ "vitest": "3.2.4"
50
51
  },
51
52
  "engines": {
52
53
  "node": ">=22",
@@ -1860,7 +1861,9 @@
1860
1861
  }
1861
1862
  },
1862
1863
  "node_modules/@isaacs/brace-expansion": {
1863
- "version": "5.0.0",
1864
+ "version": "5.0.1",
1865
+ "resolved": "https://registry.npmjs.org/@isaacs/brace-expansion/-/brace-expansion-5.0.1.tgz",
1866
+ "integrity": "sha512-WMz71T1JS624nWj2n2fnYAuPovhv7EUhk69R6i9dsVyzxt5eM3bjwvgk9L+APE1TRscGysAVMANkB0jh0LQZrQ==",
1864
1867
  "license": "MIT",
1865
1868
  "dependencies": {
1866
1869
  "@isaacs/balanced-match": "^4.0.1"
@@ -2433,6 +2436,16 @@
2433
2436
  "node": ">=18"
2434
2437
  }
2435
2438
  },
2439
+ "node_modules/@mongodb-js/saslprep": {
2440
+ "version": "1.4.5",
2441
+ "resolved": "https://registry.npmjs.org/@mongodb-js/saslprep/-/saslprep-1.4.5.tgz",
2442
+ "integrity": "sha512-k64Lbyb7ycCSXHSLzxVdb2xsKGPMvYZfCICXvDsI8Z65CeWQzTEKS4YmGbnqw+U9RBvLPTsB6UCmwkgsDTGWIw==",
2443
+ "devOptional": true,
2444
+ "license": "MIT",
2445
+ "dependencies": {
2446
+ "sparse-bitfield": "^3.0.3"
2447
+ }
2448
+ },
2436
2449
  "node_modules/@napi-rs/wasm-runtime": {
2437
2450
  "version": "1.1.1",
2438
2451
  "license": "MIT",
@@ -7216,6 +7229,13 @@
7216
7229
  "version": "0.0.21",
7217
7230
  "license": "MIT"
7218
7231
  },
7232
+ "node_modules/@types/webidl-conversions": {
7233
+ "version": "7.0.3",
7234
+ "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-7.0.3.tgz",
7235
+ "integrity": "sha512-CiJJvcRtIgzadHCYXw7dqEnMNRjhGZlYK05Mj9OyktqV8uVT8fD2BFOB7S1uwBE3Kj2Z+4UyPmFw/Ixgw/LAlA==",
7236
+ "devOptional": true,
7237
+ "license": "MIT"
7238
+ },
7219
7239
  "node_modules/@types/whatwg-mimetype": {
7220
7240
  "version": "3.0.2",
7221
7241
  "resolved": "https://registry.npmjs.org/@types/whatwg-mimetype/-/whatwg-mimetype-3.0.2.tgz",
@@ -7223,6 +7243,16 @@
7223
7243
  "dev": true,
7224
7244
  "license": "MIT"
7225
7245
  },
7246
+ "node_modules/@types/whatwg-url": {
7247
+ "version": "13.0.0",
7248
+ "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-13.0.0.tgz",
7249
+ "integrity": "sha512-N8WXpbE6Wgri7KUSvrmQcqrMllKZ9uxkYWMt+mCSGwNc0Hsw9VQTW7ApqI4XNrx6/SaM2QQJCzMPDEXE058s+Q==",
7250
+ "devOptional": true,
7251
+ "license": "MIT",
7252
+ "dependencies": {
7253
+ "@types/webidl-conversions": "*"
7254
+ }
7255
+ },
7226
7256
  "node_modules/@types/ws": {
7227
7257
  "version": "8.18.1",
7228
7258
  "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.18.1.tgz",
@@ -8499,6 +8529,16 @@
8499
8529
  "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
8500
8530
  }
8501
8531
  },
8532
+ "node_modules/bson": {
8533
+ "version": "7.2.0",
8534
+ "resolved": "https://registry.npmjs.org/bson/-/bson-7.2.0.tgz",
8535
+ "integrity": "sha512-YCEo7KjMlbNlyHhz7zAZNDpIpQbd+wOEHJYezv0nMYTn4x31eIUM2yomNNubclAt63dObUzKHWsBLJ9QcZNSnQ==",
8536
+ "devOptional": true,
8537
+ "license": "Apache-2.0",
8538
+ "engines": {
8539
+ "node": ">=20.19.0"
8540
+ }
8541
+ },
8502
8542
  "node_modules/buffer": {
8503
8543
  "version": "6.0.3",
8504
8544
  "funding": [
@@ -9957,7 +9997,9 @@
9957
9997
  }
9958
9998
  },
9959
9999
  "node_modules/fast-xml-parser": {
9960
- "version": "5.3.3",
10000
+ "version": "5.3.4",
10001
+ "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-5.3.4.tgz",
10002
+ "integrity": "sha512-EFd6afGmXlCx8H8WTZHhAoDaWaGyuIBoZJ2mknrNxug+aZKjkp0a0dlars9Izl+jF+7Gu1/5f/2h68cQpe0IiA==",
9961
10003
  "dev": true,
9962
10004
  "funding": [
9963
10005
  {
@@ -11929,6 +11971,13 @@
11929
11971
  "version": "2.0.0",
11930
11972
  "license": "MIT"
11931
11973
  },
11974
+ "node_modules/memory-pager": {
11975
+ "version": "1.5.0",
11976
+ "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz",
11977
+ "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==",
11978
+ "devOptional": true,
11979
+ "license": "MIT"
11980
+ },
11932
11981
  "node_modules/merge-stream": {
11933
11982
  "version": "2.0.0",
11934
11983
  "license": "MIT"
@@ -12083,6 +12132,105 @@
12083
12132
  "version": "4.6.7",
12084
12133
  "license": "MIT"
12085
12134
  },
12135
+ "node_modules/mongodb": {
12136
+ "version": "7.1.0",
12137
+ "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-7.1.0.tgz",
12138
+ "integrity": "sha512-kMfnKunbolQYwCIyrkxNJFB4Ypy91pYqua5NargS/f8ODNSJxT03ZU3n1JqL4mCzbSih8tvmMEMLpKTT7x5gCg==",
12139
+ "devOptional": true,
12140
+ "license": "Apache-2.0",
12141
+ "peer": true,
12142
+ "dependencies": {
12143
+ "@mongodb-js/saslprep": "^1.3.0",
12144
+ "bson": "^7.1.1",
12145
+ "mongodb-connection-string-url": "^7.0.0"
12146
+ },
12147
+ "engines": {
12148
+ "node": ">=20.19.0"
12149
+ },
12150
+ "peerDependencies": {
12151
+ "@aws-sdk/credential-providers": "^3.806.0",
12152
+ "@mongodb-js/zstd": "^7.0.0",
12153
+ "gcp-metadata": "^7.0.1",
12154
+ "kerberos": "^7.0.0",
12155
+ "mongodb-client-encryption": ">=7.0.0 <7.1.0",
12156
+ "snappy": "^7.3.2",
12157
+ "socks": "^2.8.6"
12158
+ },
12159
+ "peerDependenciesMeta": {
12160
+ "@aws-sdk/credential-providers": {
12161
+ "optional": true
12162
+ },
12163
+ "@mongodb-js/zstd": {
12164
+ "optional": true
12165
+ },
12166
+ "gcp-metadata": {
12167
+ "optional": true
12168
+ },
12169
+ "kerberos": {
12170
+ "optional": true
12171
+ },
12172
+ "mongodb-client-encryption": {
12173
+ "optional": true
12174
+ },
12175
+ "snappy": {
12176
+ "optional": true
12177
+ },
12178
+ "socks": {
12179
+ "optional": true
12180
+ }
12181
+ }
12182
+ },
12183
+ "node_modules/mongodb-connection-string-url": {
12184
+ "version": "7.0.1",
12185
+ "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-7.0.1.tgz",
12186
+ "integrity": "sha512-h0AZ9A7IDVwwHyMxmdMXKy+9oNlF0zFoahHiX3vQ8e3KFcSP3VmsmfvtRSuLPxmyv2vjIDxqty8smTgie/SNRQ==",
12187
+ "devOptional": true,
12188
+ "license": "Apache-2.0",
12189
+ "dependencies": {
12190
+ "@types/whatwg-url": "^13.0.0",
12191
+ "whatwg-url": "^14.1.0"
12192
+ },
12193
+ "engines": {
12194
+ "node": ">=20.19.0"
12195
+ }
12196
+ },
12197
+ "node_modules/mongodb-connection-string-url/node_modules/tr46": {
12198
+ "version": "5.1.1",
12199
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.1.1.tgz",
12200
+ "integrity": "sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==",
12201
+ "devOptional": true,
12202
+ "license": "MIT",
12203
+ "dependencies": {
12204
+ "punycode": "^2.3.1"
12205
+ },
12206
+ "engines": {
12207
+ "node": ">=18"
12208
+ }
12209
+ },
12210
+ "node_modules/mongodb-connection-string-url/node_modules/webidl-conversions": {
12211
+ "version": "7.0.0",
12212
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz",
12213
+ "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==",
12214
+ "devOptional": true,
12215
+ "license": "BSD-2-Clause",
12216
+ "engines": {
12217
+ "node": ">=12"
12218
+ }
12219
+ },
12220
+ "node_modules/mongodb-connection-string-url/node_modules/whatwg-url": {
12221
+ "version": "14.2.0",
12222
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.2.0.tgz",
12223
+ "integrity": "sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==",
12224
+ "devOptional": true,
12225
+ "license": "MIT",
12226
+ "dependencies": {
12227
+ "tr46": "^5.1.0",
12228
+ "webidl-conversions": "^7.0.0"
12229
+ },
12230
+ "engines": {
12231
+ "node": ">=18"
12232
+ }
12233
+ },
12086
12234
  "node_modules/motion-dom": {
12087
12235
  "version": "12.24.11",
12088
12236
  "license": "MIT",
@@ -14625,7 +14773,7 @@
14625
14773
  },
14626
14774
  "node_modules/punycode": {
14627
14775
  "version": "2.3.1",
14628
- "dev": true,
14776
+ "devOptional": true,
14629
14777
  "license": "MIT",
14630
14778
  "engines": {
14631
14779
  "node": ">=6"
@@ -15578,6 +15726,16 @@
15578
15726
  "node": ">=0.10.0"
15579
15727
  }
15580
15728
  },
15729
+ "node_modules/sparse-bitfield": {
15730
+ "version": "3.0.3",
15731
+ "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz",
15732
+ "integrity": "sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==",
15733
+ "devOptional": true,
15734
+ "license": "MIT",
15735
+ "dependencies": {
15736
+ "memory-pager": "^1.0.2"
15737
+ }
15738
+ },
15581
15739
  "node_modules/speakingurl": {
15582
15740
  "version": "14.0.1",
15583
15741
  "license": "BSD-3-Clause",
@@ -15885,9 +16043,9 @@
15885
16043
  }
15886
16044
  },
15887
16045
  "node_modules/tar": {
15888
- "version": "7.5.6",
15889
- "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.6.tgz",
15890
- "integrity": "sha512-xqUeu2JAIJpXyvskvU3uvQW8PAmHrtXp2KDuMJwQqW8Sqq0CaZBAQ+dKS3RBXVhU4wC5NjAdKrmh84241gO9cA==",
16046
+ "version": "7.5.7",
16047
+ "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.7.tgz",
16048
+ "integrity": "sha512-fov56fJiRuThVFXD6o6/Q354S7pnWMJIVlDBYijsTNx6jKSE4pvrDTs6lUnmGvNyfJwFQQwWy3owKz1ucIhveQ==",
15891
16049
  "license": "BlueOak-1.0.0",
15892
16050
  "dependencies": {
15893
16051
  "@isaacs/fs-minipass": "^4.0.0",
@@ -69,24 +69,21 @@
69
69
  "@tailwindcss/vite": "4.1.18",
70
70
  "@types/node": "25.0.6",
71
71
  "@types/qrcode": "1.5.6",
72
- "@vitejs/plugin-vue": "^6.0.3",
73
- "@vue/test-utils": "^2.4.6",
72
+ "@vitejs/plugin-vue": "6.0.3",
73
+ "@vue/test-utils": "2.4.6",
74
74
  "dayjs-nuxt": "2.1.11",
75
- "happy-dom": "^20.3.7",
75
+ "happy-dom": "20.3.7",
76
76
  "jsdom": "27.4.0",
77
- "lint-staged": "^16.2.7",
77
+ "lint-staged": "16.2.7",
78
+ "mongodb": "7.1.0",
78
79
  "nuxt": "4.2.2",
79
80
  "oxfmt": "latest",
80
81
  "oxlint": "latest",
81
82
  "rimraf": "6.1.2",
82
- "simple-git-hooks": "^2.13.1",
83
+ "simple-git-hooks": "2.13.1",
83
84
  "tailwindcss": "4.1.18",
84
85
  "typescript": "5.9.3",
85
- "vitest": "^3.2.4"
86
- },
87
- "engines": {
88
- "node": ">=22",
89
- "npm": ">=10"
86
+ "vitest": "3.2.4"
90
87
  },
91
88
  "simple-git-hooks": {
92
89
  "pre-commit": "npx lint-staged",
@@ -100,5 +97,9 @@
100
97
  "tests/**/*.ts": [
101
98
  "oxlint --fix"
102
99
  ]
100
+ },
101
+ "engines": {
102
+ "node": ">=22",
103
+ "npm": ">=10"
103
104
  }
104
105
  }