create-nuxt-base 2.1.3 → 2.1.4
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,13 @@
|
|
|
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.1.4](https://github.com/lenneTech/nuxt-base-starter/compare/v2.1.3...v2.1.4) (2026-01-26)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
* generate QR code locally as SVG for password manager compatibility ([f4256e9](https://github.com/lenneTech/nuxt-base-starter/commit/f4256e94baf839b800cd5420c49ad9ed14a50f01))
|
|
11
|
+
|
|
5
12
|
### [2.1.3](https://github.com/lenneTech/nuxt-base-starter/compare/v2.1.2...v2.1.3) (2026-01-26)
|
|
6
13
|
|
|
7
14
|
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
import type { FormSubmitEvent } from '@nuxt/ui';
|
|
6
6
|
import type { InferOutput } from 'valibot';
|
|
7
7
|
|
|
8
|
+
import QRCode from 'qrcode';
|
|
8
9
|
import * as v from 'valibot';
|
|
9
10
|
|
|
10
11
|
import ModalBackupCodes from '~/components/Modal/ModalBackupCodes.vue';
|
|
@@ -31,6 +32,7 @@ const authClient = useLtAuthClient();
|
|
|
31
32
|
// ============================================================================
|
|
32
33
|
const loading = ref<boolean>(false);
|
|
33
34
|
const totpUri = ref<string>('');
|
|
35
|
+
const qrCodeSvg = ref<string>('');
|
|
34
36
|
const backupCodes = ref<string[]>([]);
|
|
35
37
|
const showTotpSetup = ref<boolean>(false);
|
|
36
38
|
const show2FADisable = ref<boolean>(false);
|
|
@@ -184,6 +186,17 @@ async function enable2FA(payload: FormSubmitEvent<PasswordSchema>): Promise<void
|
|
|
184
186
|
|
|
185
187
|
totpUri.value = data?.totpURI ?? '';
|
|
186
188
|
backupCodes.value = data?.backupCodes ?? [];
|
|
189
|
+
|
|
190
|
+
// Generate QR code as SVG for better password manager compatibility
|
|
191
|
+
if (totpUri.value) {
|
|
192
|
+
qrCodeSvg.value = await QRCode.toString(totpUri.value, {
|
|
193
|
+
type: 'svg',
|
|
194
|
+
width: 200,
|
|
195
|
+
margin: 2,
|
|
196
|
+
errorCorrectionLevel: 'M',
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
|
|
187
200
|
showTotpSetup.value = true;
|
|
188
201
|
enable2FAForm.password = '';
|
|
189
202
|
} finally {
|
|
@@ -209,6 +222,13 @@ async function loadPasskeys(): Promise<void> {
|
|
|
209
222
|
}
|
|
210
223
|
}
|
|
211
224
|
|
|
225
|
+
function resetTotpSetup(): void {
|
|
226
|
+
showTotpSetup.value = false;
|
|
227
|
+
totpForm.code = '';
|
|
228
|
+
totpUri.value = '';
|
|
229
|
+
qrCodeSvg.value = '';
|
|
230
|
+
}
|
|
231
|
+
|
|
212
232
|
async function openBackupCodesModal(codes: string[] = []): Promise<void> {
|
|
213
233
|
const modal = overlay.create(ModalBackupCodes, {
|
|
214
234
|
props: {
|
|
@@ -246,8 +266,7 @@ async function verifyTotp(payload: FormSubmitEvent<TotpSchema>): Promise<void> {
|
|
|
246
266
|
title: 'Erfolg',
|
|
247
267
|
});
|
|
248
268
|
|
|
249
|
-
|
|
250
|
-
totpForm.code = '';
|
|
269
|
+
resetTotpSetup();
|
|
251
270
|
await openBackupCodesModal(backupCodes.value);
|
|
252
271
|
} finally {
|
|
253
272
|
loading.value = false;
|
|
@@ -301,7 +320,8 @@ async function verifyTotp(payload: FormSubmitEvent<TotpSchema>): Promise<void> {
|
|
|
301
320
|
<p class="text-sm text-muted">Scanne den QR-Code mit deiner Authenticator-App (z.B. Google Authenticator, Authy) und gib den Code ein.</p>
|
|
302
321
|
|
|
303
322
|
<div class="flex justify-center">
|
|
304
|
-
|
|
323
|
+
<!-- eslint-disable-next-line vue/no-v-html -->
|
|
324
|
+
<div v-if="qrCodeSvg" class="rounded-lg bg-white p-2" v-html="qrCodeSvg" />
|
|
305
325
|
</div>
|
|
306
326
|
|
|
307
327
|
<UForm :schema="totpSchema" :state="totpForm" class="space-y-4" @submit="verifyTotp">
|
|
@@ -310,7 +330,7 @@ async function verifyTotp(payload: FormSubmitEvent<TotpSchema>): Promise<void> {
|
|
|
310
330
|
</UFormField>
|
|
311
331
|
<div class="flex gap-2">
|
|
312
332
|
<UButton type="submit" :loading="loading"> Verifizieren </UButton>
|
|
313
|
-
<UButton variant="outline" color="neutral" @click="
|
|
333
|
+
<UButton variant="outline" color="neutral" @click="resetTotpSetup"> Abbrechen </UButton>
|
|
314
334
|
</div>
|
|
315
335
|
</UForm>
|
|
316
336
|
</div>
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
"@pinia/nuxt": "0.11.3",
|
|
17
17
|
"@vueuse/nuxt": "14.1.0",
|
|
18
18
|
"better-auth": "1.4.10",
|
|
19
|
+
"qrcode": "1.5.4",
|
|
19
20
|
"tus-js-client": "4.3.1",
|
|
20
21
|
"valibot": "1.2.0"
|
|
21
22
|
},
|
|
@@ -30,6 +31,7 @@
|
|
|
30
31
|
"@tailwindcss/typography": "0.5.19",
|
|
31
32
|
"@tailwindcss/vite": "4.1.18",
|
|
32
33
|
"@types/node": "25.0.6",
|
|
34
|
+
"@types/qrcode": "1.5.6",
|
|
33
35
|
"@vitejs/plugin-vue": "^6.0.3",
|
|
34
36
|
"@vue/test-utils": "^2.4.6",
|
|
35
37
|
"dayjs-nuxt": "2.1.11",
|
|
@@ -7185,6 +7187,16 @@
|
|
|
7185
7187
|
"version": "7.0.3",
|
|
7186
7188
|
"license": "MIT"
|
|
7187
7189
|
},
|
|
7190
|
+
"node_modules/@types/qrcode": {
|
|
7191
|
+
"version": "1.5.6",
|
|
7192
|
+
"resolved": "https://registry.npmjs.org/@types/qrcode/-/qrcode-1.5.6.tgz",
|
|
7193
|
+
"integrity": "sha512-te7NQcV2BOvdj2b1hCAHzAoMNuj65kNBMz0KBaxM6c3VGBOhU0dURQKOtH8CFNI/dsKkwlv32p26qYQTWoB5bw==",
|
|
7194
|
+
"dev": true,
|
|
7195
|
+
"license": "MIT",
|
|
7196
|
+
"dependencies": {
|
|
7197
|
+
"@types/node": "*"
|
|
7198
|
+
}
|
|
7199
|
+
},
|
|
7188
7200
|
"node_modules/@types/resolve": {
|
|
7189
7201
|
"version": "1.20.2",
|
|
7190
7202
|
"license": "MIT"
|
|
@@ -8556,6 +8568,15 @@
|
|
|
8556
8568
|
"node": ">=8"
|
|
8557
8569
|
}
|
|
8558
8570
|
},
|
|
8571
|
+
"node_modules/camelcase": {
|
|
8572
|
+
"version": "5.3.1",
|
|
8573
|
+
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
|
|
8574
|
+
"integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
|
|
8575
|
+
"license": "MIT",
|
|
8576
|
+
"engines": {
|
|
8577
|
+
"node": ">=6"
|
|
8578
|
+
}
|
|
8579
|
+
},
|
|
8559
8580
|
"node_modules/camelize": {
|
|
8560
8581
|
"version": "1.0.1",
|
|
8561
8582
|
"dev": true,
|
|
@@ -9341,6 +9362,15 @@
|
|
|
9341
9362
|
}
|
|
9342
9363
|
}
|
|
9343
9364
|
},
|
|
9365
|
+
"node_modules/decamelize": {
|
|
9366
|
+
"version": "1.2.0",
|
|
9367
|
+
"resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
|
|
9368
|
+
"integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==",
|
|
9369
|
+
"license": "MIT",
|
|
9370
|
+
"engines": {
|
|
9371
|
+
"node": ">=0.10.0"
|
|
9372
|
+
}
|
|
9373
|
+
},
|
|
9344
9374
|
"node_modules/decimal.js": {
|
|
9345
9375
|
"version": "10.6.0",
|
|
9346
9376
|
"dev": true,
|
|
@@ -9445,6 +9475,12 @@
|
|
|
9445
9475
|
"node": ">=0.3.1"
|
|
9446
9476
|
}
|
|
9447
9477
|
},
|
|
9478
|
+
"node_modules/dijkstrajs": {
|
|
9479
|
+
"version": "1.0.3",
|
|
9480
|
+
"resolved": "https://registry.npmjs.org/dijkstrajs/-/dijkstrajs-1.0.3.tgz",
|
|
9481
|
+
"integrity": "sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==",
|
|
9482
|
+
"license": "MIT"
|
|
9483
|
+
},
|
|
9448
9484
|
"node_modules/dom-serializer": {
|
|
9449
9485
|
"version": "2.0.0",
|
|
9450
9486
|
"license": "MIT",
|
|
@@ -9981,6 +10017,19 @@
|
|
|
9981
10017
|
"node": ">=8"
|
|
9982
10018
|
}
|
|
9983
10019
|
},
|
|
10020
|
+
"node_modules/find-up": {
|
|
10021
|
+
"version": "4.1.0",
|
|
10022
|
+
"resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
|
|
10023
|
+
"integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
|
|
10024
|
+
"license": "MIT",
|
|
10025
|
+
"dependencies": {
|
|
10026
|
+
"locate-path": "^5.0.0",
|
|
10027
|
+
"path-exists": "^4.0.0"
|
|
10028
|
+
},
|
|
10029
|
+
"engines": {
|
|
10030
|
+
"node": ">=8"
|
|
10031
|
+
}
|
|
10032
|
+
},
|
|
9984
10033
|
"node_modules/fontaine": {
|
|
9985
10034
|
"version": "0.7.0",
|
|
9986
10035
|
"license": "MIT",
|
|
@@ -11580,6 +11629,18 @@
|
|
|
11580
11629
|
"url": "https://github.com/sponsors/antfu"
|
|
11581
11630
|
}
|
|
11582
11631
|
},
|
|
11632
|
+
"node_modules/locate-path": {
|
|
11633
|
+
"version": "5.0.0",
|
|
11634
|
+
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
|
|
11635
|
+
"integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
|
|
11636
|
+
"license": "MIT",
|
|
11637
|
+
"dependencies": {
|
|
11638
|
+
"p-locate": "^4.1.0"
|
|
11639
|
+
},
|
|
11640
|
+
"engines": {
|
|
11641
|
+
"node": ">=8"
|
|
11642
|
+
}
|
|
11643
|
+
},
|
|
11583
11644
|
"node_modules/lodash": {
|
|
11584
11645
|
"version": "4.17.23",
|
|
11585
11646
|
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.23.tgz",
|
|
@@ -13573,6 +13634,42 @@
|
|
|
13573
13634
|
}
|
|
13574
13635
|
}
|
|
13575
13636
|
},
|
|
13637
|
+
"node_modules/p-limit": {
|
|
13638
|
+
"version": "2.3.0",
|
|
13639
|
+
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
|
|
13640
|
+
"integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
|
|
13641
|
+
"license": "MIT",
|
|
13642
|
+
"dependencies": {
|
|
13643
|
+
"p-try": "^2.0.0"
|
|
13644
|
+
},
|
|
13645
|
+
"engines": {
|
|
13646
|
+
"node": ">=6"
|
|
13647
|
+
},
|
|
13648
|
+
"funding": {
|
|
13649
|
+
"url": "https://github.com/sponsors/sindresorhus"
|
|
13650
|
+
}
|
|
13651
|
+
},
|
|
13652
|
+
"node_modules/p-locate": {
|
|
13653
|
+
"version": "4.1.0",
|
|
13654
|
+
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
|
|
13655
|
+
"integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
|
|
13656
|
+
"license": "MIT",
|
|
13657
|
+
"dependencies": {
|
|
13658
|
+
"p-limit": "^2.2.0"
|
|
13659
|
+
},
|
|
13660
|
+
"engines": {
|
|
13661
|
+
"node": ">=8"
|
|
13662
|
+
}
|
|
13663
|
+
},
|
|
13664
|
+
"node_modules/p-try": {
|
|
13665
|
+
"version": "2.2.0",
|
|
13666
|
+
"resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
|
|
13667
|
+
"integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
|
|
13668
|
+
"license": "MIT",
|
|
13669
|
+
"engines": {
|
|
13670
|
+
"node": ">=6"
|
|
13671
|
+
}
|
|
13672
|
+
},
|
|
13576
13673
|
"node_modules/package-json-from-dist": {
|
|
13577
13674
|
"version": "1.0.1",
|
|
13578
13675
|
"license": "BlueOak-1.0.0"
|
|
@@ -13656,6 +13753,15 @@
|
|
|
13656
13753
|
"version": "1.0.1",
|
|
13657
13754
|
"license": "MIT"
|
|
13658
13755
|
},
|
|
13756
|
+
"node_modules/path-exists": {
|
|
13757
|
+
"version": "4.0.0",
|
|
13758
|
+
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
|
|
13759
|
+
"integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
|
|
13760
|
+
"license": "MIT",
|
|
13761
|
+
"engines": {
|
|
13762
|
+
"node": ">=8"
|
|
13763
|
+
}
|
|
13764
|
+
},
|
|
13659
13765
|
"node_modules/path-key": {
|
|
13660
13766
|
"version": "3.1.1",
|
|
13661
13767
|
"license": "MIT",
|
|
@@ -13784,6 +13890,15 @@
|
|
|
13784
13890
|
"node": ">=18"
|
|
13785
13891
|
}
|
|
13786
13892
|
},
|
|
13893
|
+
"node_modules/pngjs": {
|
|
13894
|
+
"version": "5.0.0",
|
|
13895
|
+
"resolved": "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz",
|
|
13896
|
+
"integrity": "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==",
|
|
13897
|
+
"license": "MIT",
|
|
13898
|
+
"engines": {
|
|
13899
|
+
"node": ">=10.13.0"
|
|
13900
|
+
}
|
|
13901
|
+
},
|
|
13787
13902
|
"node_modules/postcss": {
|
|
13788
13903
|
"version": "8.5.6",
|
|
13789
13904
|
"funding": [
|
|
@@ -14526,6 +14641,90 @@
|
|
|
14526
14641
|
"node": ">=16.0.0"
|
|
14527
14642
|
}
|
|
14528
14643
|
},
|
|
14644
|
+
"node_modules/qrcode": {
|
|
14645
|
+
"version": "1.5.4",
|
|
14646
|
+
"resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.5.4.tgz",
|
|
14647
|
+
"integrity": "sha512-1ca71Zgiu6ORjHqFBDpnSMTR2ReToX4l1Au1VFLyVeBTFavzQnv5JxMFr3ukHVKpSrSA2MCk0lNJSykjUfz7Zg==",
|
|
14648
|
+
"license": "MIT",
|
|
14649
|
+
"peer": true,
|
|
14650
|
+
"dependencies": {
|
|
14651
|
+
"dijkstrajs": "^1.0.1",
|
|
14652
|
+
"pngjs": "^5.0.0",
|
|
14653
|
+
"yargs": "^15.3.1"
|
|
14654
|
+
},
|
|
14655
|
+
"bin": {
|
|
14656
|
+
"qrcode": "bin/qrcode"
|
|
14657
|
+
},
|
|
14658
|
+
"engines": {
|
|
14659
|
+
"node": ">=10.13.0"
|
|
14660
|
+
}
|
|
14661
|
+
},
|
|
14662
|
+
"node_modules/qrcode/node_modules/cliui": {
|
|
14663
|
+
"version": "6.0.0",
|
|
14664
|
+
"resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz",
|
|
14665
|
+
"integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
|
|
14666
|
+
"license": "ISC",
|
|
14667
|
+
"dependencies": {
|
|
14668
|
+
"string-width": "^4.2.0",
|
|
14669
|
+
"strip-ansi": "^6.0.0",
|
|
14670
|
+
"wrap-ansi": "^6.2.0"
|
|
14671
|
+
}
|
|
14672
|
+
},
|
|
14673
|
+
"node_modules/qrcode/node_modules/wrap-ansi": {
|
|
14674
|
+
"version": "6.2.0",
|
|
14675
|
+
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
|
|
14676
|
+
"integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
|
|
14677
|
+
"license": "MIT",
|
|
14678
|
+
"dependencies": {
|
|
14679
|
+
"ansi-styles": "^4.0.0",
|
|
14680
|
+
"string-width": "^4.1.0",
|
|
14681
|
+
"strip-ansi": "^6.0.0"
|
|
14682
|
+
},
|
|
14683
|
+
"engines": {
|
|
14684
|
+
"node": ">=8"
|
|
14685
|
+
}
|
|
14686
|
+
},
|
|
14687
|
+
"node_modules/qrcode/node_modules/y18n": {
|
|
14688
|
+
"version": "4.0.3",
|
|
14689
|
+
"resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz",
|
|
14690
|
+
"integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==",
|
|
14691
|
+
"license": "ISC"
|
|
14692
|
+
},
|
|
14693
|
+
"node_modules/qrcode/node_modules/yargs": {
|
|
14694
|
+
"version": "15.4.1",
|
|
14695
|
+
"resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz",
|
|
14696
|
+
"integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==",
|
|
14697
|
+
"license": "MIT",
|
|
14698
|
+
"dependencies": {
|
|
14699
|
+
"cliui": "^6.0.0",
|
|
14700
|
+
"decamelize": "^1.2.0",
|
|
14701
|
+
"find-up": "^4.1.0",
|
|
14702
|
+
"get-caller-file": "^2.0.1",
|
|
14703
|
+
"require-directory": "^2.1.1",
|
|
14704
|
+
"require-main-filename": "^2.0.0",
|
|
14705
|
+
"set-blocking": "^2.0.0",
|
|
14706
|
+
"string-width": "^4.2.0",
|
|
14707
|
+
"which-module": "^2.0.0",
|
|
14708
|
+
"y18n": "^4.0.0",
|
|
14709
|
+
"yargs-parser": "^18.1.2"
|
|
14710
|
+
},
|
|
14711
|
+
"engines": {
|
|
14712
|
+
"node": ">=8"
|
|
14713
|
+
}
|
|
14714
|
+
},
|
|
14715
|
+
"node_modules/qrcode/node_modules/yargs-parser": {
|
|
14716
|
+
"version": "18.1.3",
|
|
14717
|
+
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
|
|
14718
|
+
"integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
|
|
14719
|
+
"license": "ISC",
|
|
14720
|
+
"dependencies": {
|
|
14721
|
+
"camelcase": "^5.0.0",
|
|
14722
|
+
"decamelize": "^1.2.0"
|
|
14723
|
+
},
|
|
14724
|
+
"engines": {
|
|
14725
|
+
"node": ">=6"
|
|
14726
|
+
}
|
|
14727
|
+
},
|
|
14529
14728
|
"node_modules/quansync": {
|
|
14530
14729
|
"version": "0.2.11",
|
|
14531
14730
|
"funding": [
|
|
@@ -14722,6 +14921,12 @@
|
|
|
14722
14921
|
"node": ">=0.10.0"
|
|
14723
14922
|
}
|
|
14724
14923
|
},
|
|
14924
|
+
"node_modules/require-main-filename": {
|
|
14925
|
+
"version": "2.0.0",
|
|
14926
|
+
"resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
|
|
14927
|
+
"integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
|
|
14928
|
+
"license": "ISC"
|
|
14929
|
+
},
|
|
14725
14930
|
"node_modules/requires-port": {
|
|
14726
14931
|
"version": "1.0.0",
|
|
14727
14932
|
"license": "MIT"
|
|
@@ -15118,6 +15323,12 @@
|
|
|
15118
15323
|
"url": "https://opencollective.com/express"
|
|
15119
15324
|
}
|
|
15120
15325
|
},
|
|
15326
|
+
"node_modules/set-blocking": {
|
|
15327
|
+
"version": "2.0.0",
|
|
15328
|
+
"resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
|
|
15329
|
+
"integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==",
|
|
15330
|
+
"license": "ISC"
|
|
15331
|
+
},
|
|
15121
15332
|
"node_modules/set-cookie-parser": {
|
|
15122
15333
|
"version": "2.7.2",
|
|
15123
15334
|
"license": "MIT"
|
|
@@ -17617,6 +17828,12 @@
|
|
|
17617
17828
|
"node": "^18.17.0 || >=20.5.0"
|
|
17618
17829
|
}
|
|
17619
17830
|
},
|
|
17831
|
+
"node_modules/which-module": {
|
|
17832
|
+
"version": "2.0.1",
|
|
17833
|
+
"resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz",
|
|
17834
|
+
"integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==",
|
|
17835
|
+
"license": "ISC"
|
|
17836
|
+
},
|
|
17620
17837
|
"node_modules/why-is-node-running": {
|
|
17621
17838
|
"version": "2.3.0",
|
|
17622
17839
|
"resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz",
|
|
@@ -52,6 +52,7 @@
|
|
|
52
52
|
"@pinia/nuxt": "0.11.3",
|
|
53
53
|
"@vueuse/nuxt": "14.1.0",
|
|
54
54
|
"better-auth": "1.4.10",
|
|
55
|
+
"qrcode": "1.5.4",
|
|
55
56
|
"tus-js-client": "4.3.1",
|
|
56
57
|
"valibot": "1.2.0"
|
|
57
58
|
},
|
|
@@ -66,6 +67,7 @@
|
|
|
66
67
|
"@tailwindcss/typography": "0.5.19",
|
|
67
68
|
"@tailwindcss/vite": "4.1.18",
|
|
68
69
|
"@types/node": "25.0.6",
|
|
70
|
+
"@types/qrcode": "1.5.6",
|
|
69
71
|
"@vitejs/plugin-vue": "^6.0.3",
|
|
70
72
|
"@vue/test-utils": "^2.4.6",
|
|
71
73
|
"dayjs-nuxt": "2.1.11",
|
package/package.json
CHANGED