diff --git a/app/components/header/HeaderAuth.vue b/app/components/header/HeaderAuth.vue
index 37645dd..53eb1eb 100644
--- a/app/components/header/HeaderAuth.vue
+++ b/app/components/header/HeaderAuth.vue
@@ -1,6 +1,5 @@
-
-
-
-
-
-
+
+
+
+
diff --git a/app/pages/tokens.vue b/app/pages/tokens.vue
index 320c193..657ca36 100644
--- a/app/pages/tokens.vue
+++ b/app/pages/tokens.vue
@@ -14,9 +14,9 @@ useSeoMeta({
ogDescription: page.value.description,
})
-const { data: tokens, refresh } = await useApi().api>('/api/token')
+const { data: tokens, refresh } = await useApi().fetch>('/api/token')
-
+
diff --git a/app/pages/users/index.vue b/app/pages/users/index.vue
index 1710255..65d89e9 100644
--- a/app/pages/users/index.vue
+++ b/app/pages/users/index.vue
@@ -2,7 +2,7 @@
import type { Pen } from '@prisma/client'
import { formatDistance } from 'date-fns'
import type { MetapiResponse } from '~/types/metapi'
-import type { Cartridge, User } from '~/types/models'
+import type { User } from '~/types/models'
useCrumb().add('Users')
@@ -29,7 +29,7 @@ const columns = [
},
]
-const { data: users, refresh } = await useApi().api>('/api/user')
+const { data: users } = await useApi().fetch>('/api/user')
diff --git a/app/types/auth.d.ts b/app/types/auth.d.ts
new file mode 100644
index 0000000..52af32b
--- /dev/null
+++ b/app/types/auth.d.ts
@@ -0,0 +1,3 @@
+declare module '#auth-utils' {
+ interface User extends import('~/types/models').User
+}
\ No newline at end of file
diff --git a/app/types/models.d.ts b/app/types/models.d.ts
index ec81c34..81e3625 100644
--- a/app/types/models.d.ts
+++ b/app/types/models.d.ts
@@ -22,6 +22,7 @@ export interface UserPayload {
export interface User extends PrismaUser {
payload: UserPayload
isAdmin: boolean
+ hash: string
}
export interface Shot extends PrismaShot {
diff --git a/nuxt.config.ts b/nuxt.config.ts
index c4687e2..16b7650 100644
--- a/nuxt.config.ts
+++ b/nuxt.config.ts
@@ -2,7 +2,14 @@
export default defineNuxtConfig({
devtools: { enabled: true },
extends: ['@nuxt/ui-pro'],
- modules: ['@nuxt/ui', '@prisma/nuxt', '@nuxt/eslint', '@nuxt/content', '@nuxt/image'],
+ modules: [
+ '@nuxt/ui',
+ '@prisma/nuxt',
+ '@nuxt/eslint',
+ '@nuxt/content',
+ '@nuxt/image',
+ 'nuxt-auth-utils',
+ ],
eslint: {
config: {
standalone: false,
diff --git a/package.json b/package.json
index 12f04d2..256d61f 100644
--- a/package.json
+++ b/package.json
@@ -27,9 +27,11 @@
"@prisma/nuxt": "^0.0.35",
"@types/ua-parser-js": "^0.7.39",
"nuxt": "^3.12.4",
+ "nuxt-auth-utils": "^0.3.2",
"openid-client": "^5.6.5",
"prisma": "^5.18.0",
"ua-parser-js": "^1.0.38",
"zod": "^3.23.8"
- }
+ },
+ "packageManager": "pnpm@8.7.0+sha1.4a6f863625170af87d027789f72662e0601ecb57"
}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 2af3b6c..c7840b4 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -10,14 +10,14 @@ importers:
dependencies:
'@nuxt/ui-pro':
specifier: ^1.4.1
- version: 1.4.1(magicast@0.3.4)(rollup@4.20.0)(vite@5.4.0(@types/node@22.2.0)(terser@5.31.5))(vue@3.4.37(typescript@5.5.4))
+ version: 1.4.1(vite@5.4.0)(vue@3.4.37)
date-fns:
specifier: ^3.6.0
version: 3.6.0
devDependencies:
'@antfu/eslint-config':
specifier: ^2.25.1
- version: 2.25.1(@typescript-eslint/utils@8.1.0(eslint@9.0.0-rc.0)(typescript@5.5.4))(@vue/compiler-sfc@3.4.37)(eslint@9.0.0-rc.0)(typescript@5.5.4)
+ version: 2.25.1(@vue/compiler-sfc@3.4.37)(eslint@8.57.0)(typescript@5.5.4)
'@iconify-json/logos':
specifier: ^1.1.44
version: 1.1.44
@@ -26,28 +26,31 @@ importers:
version: 1.1.68
'@nuxt/content':
specifier: ^2.13.2
- version: 2.13.2(ioredis@5.4.1)(magicast@0.3.4)(nuxt@3.12.4(@parcel/watcher@2.4.1)(@types/node@22.2.0)(eslint@9.0.0-rc.0)(ioredis@5.4.1)(magicast@0.3.4)(optionator@0.9.4)(rollup@4.20.0)(terser@5.31.5)(typescript@5.5.4)(vite@5.4.0(@types/node@22.2.0)(terser@5.31.5)))(rollup@4.20.0)(vue@3.4.37(typescript@5.5.4))
+ version: 2.13.2(nuxt@3.12.4)(vue@3.4.37)
'@nuxt/devtools':
specifier: ^1.3.9
- version: 1.3.9(rollup@4.20.0)(vite@5.4.0(@types/node@22.2.0)(terser@5.31.5))
+ version: 1.3.9(vite@5.4.0)
'@nuxt/eslint':
specifier: ^0.5.0
- version: 0.5.0(eslint@9.0.0-rc.0)(magicast@0.3.4)(rollup@4.20.0)(typescript@5.5.4)(vite@5.4.0(@types/node@22.2.0)(terser@5.31.5))
+ version: 0.5.0(eslint@8.57.0)(typescript@5.5.4)(vite@5.4.0)
'@nuxt/image':
specifier: ^1.7.0
- version: 1.7.0(ioredis@5.4.1)(magicast@0.3.4)(rollup@4.20.0)
+ version: 1.7.0
'@prisma/client':
specifier: ^5.18.0
version: 5.18.0(prisma@5.18.0)
'@prisma/nuxt':
specifier: ^0.0.35
- version: 0.0.35(magicast@0.3.4)(prisma@5.18.0)(rollup@4.20.0)(vite@5.4.0(@types/node@22.2.0)(terser@5.31.5))
+ version: 0.0.35(prisma@5.18.0)(vite@5.4.0)
'@types/ua-parser-js':
specifier: ^0.7.39
version: 0.7.39
nuxt:
specifier: ^3.12.4
- version: 3.12.4(@parcel/watcher@2.4.1)(@types/node@22.2.0)(eslint@9.0.0-rc.0)(ioredis@5.4.1)(magicast@0.3.4)(optionator@0.9.4)(rollup@4.20.0)(terser@5.31.5)(typescript@5.5.4)(vite@5.4.0(@types/node@22.2.0)(terser@5.31.5))
+ version: 3.12.4(eslint@8.57.0)(typescript@5.5.4)(vite@5.4.0)
+ nuxt-auth-utils:
+ specifier: ^0.3.2
+ version: 0.3.2
openid-client:
specifier: ^5.6.5
version: 5.6.5
@@ -754,13 +757,13 @@ packages:
peerDependencies:
eslint: ^8.50.0 || ^9.0.0
- '@eslint/eslintrc@3.1.0':
- resolution: {integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ '@eslint/eslintrc@2.1.4':
+ resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
- '@eslint/js@9.0.0-rc.0':
- resolution: {integrity: sha512-xKe0bSy6LRzfoibzCo7QcpdspzLOm80hLUtVdtLMYGjGioELbRizJIxMLZb6jl0BOmIexLtOBr3Tgdtj4eGaEQ==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ '@eslint/js@8.57.0':
+ resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
'@eslint/js@9.9.0':
resolution: {integrity: sha512-hhetes6ZHP3BlXLxmd8K2SNgkhNSi+UcecbnwWKwpP7kyi/uC75DJ1lOOBO3xrC4jyojtGE3YxKZPHfk4yrgug==}
@@ -2605,10 +2608,6 @@ packages:
resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
- eslint-scope@8.0.2:
- resolution: {integrity: sha512-6E4xmrTw5wtxnLA5wYL3WDfhZ/1bUBGOXV0zQvVRDOtrR8D0p6W7fs3JweNYhwRYeGvd/1CKX2se0/2s7Q/nJA==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
-
eslint-typegen@0.3.0:
resolution: {integrity: sha512-NXuFC16JBS8H11cD8DJcmSzpv2+MljyDvksSbx4ak5zXebk7SEFMIdk/idYGXgevs0Lz4BClYG7b4MtD0+tFVg==}
peerDependencies:
@@ -2622,9 +2621,9 @@ packages:
resolution: {integrity: sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- eslint@9.0.0-rc.0:
- resolution: {integrity: sha512-Xc4DSm5oJZyv/KFk3yoUhZNTyTsbXZTtyIGjhle0QSC9J/QPhdCC0U9c1RRmWqAoqZWVDnctWqFhaHVHJ1II2g==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ eslint@8.57.0:
+ resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
hasBin: true
espree@10.1.0:
@@ -2713,9 +2712,9 @@ packages:
fastq@1.17.1:
resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==}
- file-entry-cache@8.0.0:
- resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==}
- engines: {node: '>=16.0.0'}
+ file-entry-cache@6.0.1:
+ resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
+ engines: {node: ^10.12.0 || >=12.0.0}
file-uri-to-path@1.0.0:
resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==}
@@ -2740,9 +2739,9 @@ packages:
resolution: {integrity: sha512-YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g==}
engines: {node: '>=18'}
- flat-cache@4.0.1:
- resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==}
- engines: {node: '>=16'}
+ flat-cache@3.2.0:
+ resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==}
+ engines: {node: ^10.12.0 || >=12.0.0}
flat@6.0.1:
resolution: {integrity: sha512-/3FfIa8mbrg3xE7+wAhWeV+bd7L2Mof+xtZb5dRDKZ+wDvYJK4WDYeIOuOhre5Yv5aQObZrlbRmk3RTSiuQBtw==}
@@ -2873,10 +2872,6 @@ packages:
resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==}
engines: {node: '>=8'}
- globals@14.0.0:
- resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==}
- engines: {node: '>=18'}
-
globals@15.9.0:
resolution: {integrity: sha512-SmSKyLLKFbSr6rptvP8izbyxJL4ILwqO9Jg23UA0sDlGlu58V59D1//I3vlc0KJphVdUR7vMjHIplYnzBxorQA==}
engines: {node: '>=18'}
@@ -3780,6 +3775,9 @@ packages:
engines: {node: ^16.10.0 || >=18.0.0}
hasBin: true
+ nuxt-auth-utils@0.3.2:
+ resolution: {integrity: sha512-A2gRelkEQxLoosIUw6TFFsMaq06XJ6dVdUYKRSKzxfMepBUq5v7GXiw+gZ9TVAXb0YjN9obmqJOBzf2qNI77yw==}
+
nuxt@3.12.4:
resolution: {integrity: sha512-/ddvyc2kgYYIN2UEjP8QIz48O/W3L0lZm7wChIDbOCj0vF/yLLeZHBaTb3aNvS9Hwp269nfjrm8j/mVxQK4RhA==}
engines: {node: ^14.18.0 || >=16.10.0}
@@ -5328,42 +5326,42 @@ snapshots:
'@jridgewell/gen-mapping': 0.3.5
'@jridgewell/trace-mapping': 0.3.25
- '@antfu/eslint-config@2.25.1(@typescript-eslint/utils@8.1.0(eslint@9.0.0-rc.0)(typescript@5.5.4))(@vue/compiler-sfc@3.4.37)(eslint@9.0.0-rc.0)(typescript@5.5.4)':
+ '@antfu/eslint-config@2.25.1(@vue/compiler-sfc@3.4.37)(eslint@8.57.0)(typescript@5.5.4)':
dependencies:
'@antfu/install-pkg': 0.3.4
'@clack/prompts': 0.7.0
- '@stylistic/eslint-plugin': 2.6.2(eslint@9.0.0-rc.0)(typescript@5.5.4)
- '@typescript-eslint/eslint-plugin': 8.1.0(@typescript-eslint/parser@8.1.0(eslint@9.0.0-rc.0)(typescript@5.5.4))(eslint@9.0.0-rc.0)(typescript@5.5.4)
- '@typescript-eslint/parser': 8.1.0(eslint@9.0.0-rc.0)(typescript@5.5.4)
- '@vitest/eslint-plugin': 1.0.1(@typescript-eslint/utils@8.1.0(eslint@9.0.0-rc.0)(typescript@5.5.4))(eslint@9.0.0-rc.0)(typescript@5.5.4)
- eslint: 9.0.0-rc.0
+ '@stylistic/eslint-plugin': 2.6.2(eslint@8.57.0)(typescript@5.5.4)
+ '@typescript-eslint/eslint-plugin': 8.1.0(@typescript-eslint/parser@8.1.0)(eslint@8.57.0)(typescript@5.5.4)
+ '@typescript-eslint/parser': 8.1.0(eslint@8.57.0)(typescript@5.5.4)
+ '@vitest/eslint-plugin': 1.0.1(eslint@8.57.0)(typescript@5.5.4)
+ eslint: 8.57.0
eslint-config-flat-gitignore: 0.1.8
eslint-flat-config-utils: 0.3.0
- eslint-merge-processors: 0.1.0(eslint@9.0.0-rc.0)
- eslint-plugin-antfu: 2.3.5(eslint@9.0.0-rc.0)
- eslint-plugin-command: 0.2.3(eslint@9.0.0-rc.0)
- eslint-plugin-eslint-comments: 3.2.0(eslint@9.0.0-rc.0)
- eslint-plugin-import-x: 3.1.0(eslint@9.0.0-rc.0)(typescript@5.5.4)
- eslint-plugin-jsdoc: 50.0.1(eslint@9.0.0-rc.0)
- eslint-plugin-jsonc: 2.16.0(eslint@9.0.0-rc.0)
- eslint-plugin-markdown: 5.1.0(eslint@9.0.0-rc.0)
- eslint-plugin-n: 17.10.2(eslint@9.0.0-rc.0)
+ eslint-merge-processors: 0.1.0(eslint@8.57.0)
+ eslint-plugin-antfu: 2.3.5(eslint@8.57.0)
+ eslint-plugin-command: 0.2.3(eslint@8.57.0)
+ eslint-plugin-eslint-comments: 3.2.0(eslint@8.57.0)
+ eslint-plugin-import-x: 3.1.0(eslint@8.57.0)(typescript@5.5.4)
+ eslint-plugin-jsdoc: 50.0.1(eslint@8.57.0)
+ eslint-plugin-jsonc: 2.16.0(eslint@8.57.0)
+ eslint-plugin-markdown: 5.1.0(eslint@8.57.0)
+ eslint-plugin-n: 17.10.2(eslint@8.57.0)
eslint-plugin-no-only-tests: 3.1.0
- eslint-plugin-perfectionist: 3.1.3(eslint@9.0.0-rc.0)(typescript@5.5.4)(vue-eslint-parser@9.4.3(eslint@9.0.0-rc.0))
- eslint-plugin-regexp: 2.6.0(eslint@9.0.0-rc.0)
- eslint-plugin-toml: 0.11.1(eslint@9.0.0-rc.0)
- eslint-plugin-unicorn: 55.0.0(eslint@9.0.0-rc.0)
- eslint-plugin-unused-imports: 4.1.3(@typescript-eslint/eslint-plugin@8.1.0(@typescript-eslint/parser@8.1.0(eslint@9.0.0-rc.0)(typescript@5.5.4))(eslint@9.0.0-rc.0)(typescript@5.5.4))(eslint@9.0.0-rc.0)
- eslint-plugin-vue: 9.27.0(eslint@9.0.0-rc.0)
- eslint-plugin-yml: 1.14.0(eslint@9.0.0-rc.0)
- eslint-processor-vue-blocks: 0.1.2(@vue/compiler-sfc@3.4.37)(eslint@9.0.0-rc.0)
+ eslint-plugin-perfectionist: 3.1.3(eslint@8.57.0)(typescript@5.5.4)(vue-eslint-parser@9.4.3)
+ eslint-plugin-regexp: 2.6.0(eslint@8.57.0)
+ eslint-plugin-toml: 0.11.1(eslint@8.57.0)
+ eslint-plugin-unicorn: 55.0.0(eslint@8.57.0)
+ eslint-plugin-unused-imports: 4.1.3(@typescript-eslint/eslint-plugin@8.1.0)(eslint@8.57.0)
+ eslint-plugin-vue: 9.27.0(eslint@8.57.0)
+ eslint-plugin-yml: 1.14.0(eslint@8.57.0)
+ eslint-processor-vue-blocks: 0.1.2(@vue/compiler-sfc@3.4.37)(eslint@8.57.0)
globals: 15.9.0
jsonc-eslint-parser: 2.4.0
local-pkg: 0.5.0
parse-gitignore: 2.0.0
picocolors: 1.0.1
toml-eslint-parser: 0.10.0
- vue-eslint-parser: 9.4.3(eslint@9.0.0-rc.0)
+ vue-eslint-parser: 9.4.3(eslint@8.57.0)
yaml-eslint-parser: 1.2.3
yargs: 17.7.2
transitivePeerDependencies:
@@ -5848,9 +5846,9 @@ snapshots:
'@esbuild/win32-x64@0.23.0':
optional: true
- '@eslint-community/eslint-utils@4.4.0(eslint@9.0.0-rc.0)':
+ '@eslint-community/eslint-utils@4.4.0(eslint@8.57.0)':
dependencies:
- eslint: 9.0.0-rc.0
+ eslint: 8.57.0
eslint-visitor-keys: 3.4.3
'@eslint-community/regexpp@4.11.0': {}
@@ -5863,7 +5861,7 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@eslint/config-inspector@0.5.2(eslint@9.0.0-rc.0)':
+ '@eslint/config-inspector@0.5.2(eslint@8.57.0)':
dependencies:
'@eslint/config-array': 0.17.1
'@voxpelli/config-array-find-files': 0.1.2(@eslint/config-array@0.17.1)
@@ -5871,7 +5869,7 @@ snapshots:
cac: 6.7.14
chokidar: 3.6.0
esbuild: 0.21.5
- eslint: 9.0.0-rc.0
+ eslint: 8.57.0
fast-glob: 3.3.2
find-up: 7.0.0
get-port-please: 3.1.2
@@ -5888,12 +5886,12 @@ snapshots:
- uWebSockets.js
- utf-8-validate
- '@eslint/eslintrc@3.1.0':
+ '@eslint/eslintrc@2.1.4':
dependencies:
ajv: 6.12.6
debug: 4.3.6
- espree: 10.1.0
- globals: 14.0.0
+ espree: 9.6.1
+ globals: 13.24.0
ignore: 5.3.2
import-fresh: 3.3.0
js-yaml: 4.1.0
@@ -5902,7 +5900,7 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@eslint/js@9.0.0-rc.0': {}
+ '@eslint/js@8.57.0': {}
'@eslint/js@9.9.0': {}
@@ -5917,9 +5915,9 @@ snapshots:
dependencies:
tailwindcss: 3.4.9
- '@headlessui/vue@1.7.22(vue@3.4.37(typescript@5.5.4))':
+ '@headlessui/vue@1.7.22(vue@3.4.37)':
dependencies:
- '@tanstack/vue-virtual': 3.8.6(vue@3.4.37(typescript@5.5.4))
+ '@tanstack/vue-virtual': 3.8.6(vue@3.4.37)
vue: 3.4.37(typescript@5.5.4)
'@humanwhocodes/config-array@0.11.14':
@@ -5968,7 +5966,7 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@iconify/vue@4.1.3-beta.1(vue@3.4.37(typescript@5.5.4))':
+ '@iconify/vue@4.1.3-beta.1(vue@3.4.37)':
dependencies:
'@iconify/types': 2.0.0
vue: 3.4.37(typescript@5.5.4)
@@ -6076,13 +6074,13 @@ snapshots:
'@nodelib/fs.scandir': 3.0.0
fastq: 1.17.1
- '@nuxt/content@2.13.2(ioredis@5.4.1)(magicast@0.3.4)(nuxt@3.12.4(@parcel/watcher@2.4.1)(@types/node@22.2.0)(eslint@9.0.0-rc.0)(ioredis@5.4.1)(magicast@0.3.4)(optionator@0.9.4)(rollup@4.20.0)(terser@5.31.5)(typescript@5.5.4)(vite@5.4.0(@types/node@22.2.0)(terser@5.31.5)))(rollup@4.20.0)(vue@3.4.37(typescript@5.5.4))':
+ '@nuxt/content@2.13.2(nuxt@3.12.4)(vue@3.4.37)':
dependencies:
- '@nuxt/kit': 3.12.4(magicast@0.3.4)(rollup@4.20.0)
- '@nuxtjs/mdc': 0.8.3(magicast@0.3.4)(rollup@4.20.0)
- '@vueuse/core': 10.11.1(vue@3.4.37(typescript@5.5.4))
- '@vueuse/head': 2.0.0(vue@3.4.37(typescript@5.5.4))
- '@vueuse/nuxt': 10.11.1(magicast@0.3.4)(nuxt@3.12.4(@parcel/watcher@2.4.1)(@types/node@22.2.0)(eslint@9.0.0-rc.0)(ioredis@5.4.1)(magicast@0.3.4)(optionator@0.9.4)(rollup@4.20.0)(terser@5.31.5)(typescript@5.5.4)(vite@5.4.0(@types/node@22.2.0)(terser@5.31.5)))(rollup@4.20.0)(vue@3.4.37(typescript@5.5.4))
+ '@nuxt/kit': 3.12.4(magicast@0.3.4)
+ '@nuxtjs/mdc': 0.8.3
+ '@vueuse/core': 10.11.1(vue@3.4.37)
+ '@vueuse/head': 2.0.0(vue@3.4.37)
+ '@vueuse/nuxt': 10.11.1(nuxt@3.12.4)(vue@3.4.37)
consola: 3.2.3
defu: 6.1.4
destr: 2.0.3
@@ -6131,12 +6129,12 @@ snapshots:
'@nuxt/devalue@2.0.2': {}
- '@nuxt/devtools-kit@1.3.9(magicast@0.3.4)(rollup@4.20.0)(vite@5.4.0(@types/node@22.2.0)(terser@5.31.5))':
+ '@nuxt/devtools-kit@1.3.9(magicast@0.3.4)(vite@5.4.0)':
dependencies:
- '@nuxt/kit': 3.12.4(magicast@0.3.4)(rollup@4.20.0)
- '@nuxt/schema': 3.12.4(rollup@4.20.0)
+ '@nuxt/kit': 3.12.4(magicast@0.3.4)
+ '@nuxt/schema': 3.12.4
execa: 7.2.0
- vite: 5.4.0(@types/node@22.2.0)(terser@5.31.5)
+ vite: 5.4.0
transitivePeerDependencies:
- magicast
- rollup
@@ -6155,13 +6153,13 @@ snapshots:
rc9: 2.1.2
semver: 7.6.3
- '@nuxt/devtools@1.3.9(rollup@4.20.0)(vite@5.4.0(@types/node@22.2.0)(terser@5.31.5))':
+ '@nuxt/devtools@1.3.9(vite@5.4.0)':
dependencies:
'@antfu/utils': 0.7.10
- '@nuxt/devtools-kit': 1.3.9(magicast@0.3.4)(rollup@4.20.0)(vite@5.4.0(@types/node@22.2.0)(terser@5.31.5))
+ '@nuxt/devtools-kit': 1.3.9(magicast@0.3.4)(vite@5.4.0)
'@nuxt/devtools-wizard': 1.3.9
- '@nuxt/kit': 3.12.4(magicast@0.3.4)(rollup@4.20.0)
- '@vue/devtools-core': 7.3.3(vite@5.4.0(@types/node@22.2.0)(terser@5.31.5))
+ '@nuxt/kit': 3.12.4(magicast@0.3.4)
+ '@vue/devtools-core': 7.3.3(vite@5.4.0)
'@vue/devtools-kit': 7.3.3
birpc: 0.2.17
consola: 3.2.3
@@ -6190,9 +6188,9 @@ snapshots:
simple-git: 3.25.0
sirv: 2.0.4
unimport: 3.10.0(rollup@4.20.0)
- vite: 5.4.0(@types/node@22.2.0)(terser@5.31.5)
- vite-plugin-inspect: 0.8.5(@nuxt/kit@3.12.4(magicast@0.3.4)(rollup@4.20.0))(rollup@4.20.0)(vite@5.4.0(@types/node@22.2.0)(terser@5.31.5))
- vite-plugin-vue-inspector: 5.1.3(vite@5.4.0(@types/node@22.2.0)(terser@5.31.5))
+ vite: 5.4.0
+ vite-plugin-inspect: 0.8.5(@nuxt/kit@3.12.4)(vite@5.4.0)
+ vite-plugin-vue-inspector: 5.1.3(vite@5.4.0)
which: 3.0.1
ws: 8.18.0
transitivePeerDependencies:
@@ -6201,51 +6199,51 @@ snapshots:
- supports-color
- utf-8-validate
- '@nuxt/eslint-config@0.5.0(eslint@9.0.0-rc.0)(typescript@5.5.4)':
+ '@nuxt/eslint-config@0.5.0(eslint@8.57.0)(typescript@5.5.4)':
dependencies:
'@eslint/js': 9.9.0
- '@nuxt/eslint-plugin': 0.5.0(eslint@9.0.0-rc.0)(typescript@5.5.4)
+ '@nuxt/eslint-plugin': 0.5.0(eslint@8.57.0)(typescript@5.5.4)
'@rushstack/eslint-patch': 1.10.4
- '@stylistic/eslint-plugin': 2.6.2(eslint@9.0.0-rc.0)(typescript@5.5.4)
- '@typescript-eslint/eslint-plugin': 8.1.0(@typescript-eslint/parser@8.1.0(eslint@9.0.0-rc.0)(typescript@5.5.4))(eslint@9.0.0-rc.0)(typescript@5.5.4)
- '@typescript-eslint/parser': 8.1.0(eslint@9.0.0-rc.0)(typescript@5.5.4)
- eslint: 9.0.0-rc.0
+ '@stylistic/eslint-plugin': 2.6.2(eslint@8.57.0)(typescript@5.5.4)
+ '@typescript-eslint/eslint-plugin': 8.1.0(@typescript-eslint/parser@8.1.0)(eslint@8.57.0)(typescript@5.5.4)
+ '@typescript-eslint/parser': 8.1.0(eslint@8.57.0)(typescript@5.5.4)
+ eslint: 8.57.0
eslint-config-flat-gitignore: 0.1.8
eslint-flat-config-utils: 0.3.0
- eslint-plugin-import-x: 3.1.0(eslint@9.0.0-rc.0)(typescript@5.5.4)
- eslint-plugin-jsdoc: 48.11.0(eslint@9.0.0-rc.0)
- eslint-plugin-regexp: 2.6.0(eslint@9.0.0-rc.0)
- eslint-plugin-unicorn: 55.0.0(eslint@9.0.0-rc.0)
- eslint-plugin-vue: 9.27.0(eslint@9.0.0-rc.0)
+ eslint-plugin-import-x: 3.1.0(eslint@8.57.0)(typescript@5.5.4)
+ eslint-plugin-jsdoc: 48.11.0(eslint@8.57.0)
+ eslint-plugin-regexp: 2.6.0(eslint@8.57.0)
+ eslint-plugin-unicorn: 55.0.0(eslint@8.57.0)
+ eslint-plugin-vue: 9.27.0(eslint@8.57.0)
globals: 15.9.0
local-pkg: 0.5.0
pathe: 1.1.2
tslib: 2.6.3
- vue-eslint-parser: 9.4.3(eslint@9.0.0-rc.0)
+ vue-eslint-parser: 9.4.3(eslint@8.57.0)
transitivePeerDependencies:
- supports-color
- typescript
- '@nuxt/eslint-plugin@0.5.0(eslint@9.0.0-rc.0)(typescript@5.5.4)':
+ '@nuxt/eslint-plugin@0.5.0(eslint@8.57.0)(typescript@5.5.4)':
dependencies:
'@typescript-eslint/types': 8.1.0
- '@typescript-eslint/utils': 8.1.0(eslint@9.0.0-rc.0)(typescript@5.5.4)
- eslint: 9.0.0-rc.0
+ '@typescript-eslint/utils': 8.1.0(eslint@8.57.0)(typescript@5.5.4)
+ eslint: 8.57.0
transitivePeerDependencies:
- supports-color
- typescript
- '@nuxt/eslint@0.5.0(eslint@9.0.0-rc.0)(magicast@0.3.4)(rollup@4.20.0)(typescript@5.5.4)(vite@5.4.0(@types/node@22.2.0)(terser@5.31.5))':
+ '@nuxt/eslint@0.5.0(eslint@8.57.0)(typescript@5.5.4)(vite@5.4.0)':
dependencies:
- '@eslint/config-inspector': 0.5.2(eslint@9.0.0-rc.0)
- '@nuxt/devtools-kit': 1.3.9(magicast@0.3.4)(rollup@4.20.0)(vite@5.4.0(@types/node@22.2.0)(terser@5.31.5))
- '@nuxt/eslint-config': 0.5.0(eslint@9.0.0-rc.0)(typescript@5.5.4)
- '@nuxt/eslint-plugin': 0.5.0(eslint@9.0.0-rc.0)(typescript@5.5.4)
- '@nuxt/kit': 3.12.4(magicast@0.3.4)(rollup@4.20.0)
+ '@eslint/config-inspector': 0.5.2(eslint@8.57.0)
+ '@nuxt/devtools-kit': 1.3.9(magicast@0.3.4)(vite@5.4.0)
+ '@nuxt/eslint-config': 0.5.0(eslint@8.57.0)(typescript@5.5.4)
+ '@nuxt/eslint-plugin': 0.5.0(eslint@8.57.0)(typescript@5.5.4)
+ '@nuxt/kit': 3.12.4(magicast@0.3.4)
chokidar: 3.6.0
- eslint: 9.0.0-rc.0
+ eslint: 8.57.0
eslint-flat-config-utils: 0.3.0
- eslint-typegen: 0.3.0(eslint@9.0.0-rc.0)
+ eslint-typegen: 0.3.0(eslint@8.57.0)
find-up: 7.0.0
get-port-please: 3.1.2
mlly: 1.7.1
@@ -6261,14 +6259,14 @@ snapshots:
- utf-8-validate
- vite
- '@nuxt/icon@1.4.5(magicast@0.3.4)(rollup@4.20.0)(vite@5.4.0(@types/node@22.2.0)(terser@5.31.5))(vue@3.4.37(typescript@5.5.4))':
+ '@nuxt/icon@1.4.5(vite@5.4.0)(vue@3.4.37)':
dependencies:
'@iconify/collections': 1.0.448
'@iconify/types': 2.0.0
'@iconify/utils': 2.1.30
- '@iconify/vue': 4.1.3-beta.1(vue@3.4.37(typescript@5.5.4))
- '@nuxt/devtools-kit': 1.3.9(magicast@0.3.4)(rollup@4.20.0)(vite@5.4.0(@types/node@22.2.0)(terser@5.31.5))
- '@nuxt/kit': 3.12.4(magicast@0.3.4)(rollup@4.20.0)
+ '@iconify/vue': 4.1.3-beta.1(vue@3.4.37)
+ '@nuxt/devtools-kit': 1.3.9(magicast@0.3.4)(vite@5.4.0)
+ '@nuxt/kit': 3.12.4(magicast@0.3.4)
consola: 3.2.3
fast-glob: 3.3.2
local-pkg: 0.5.0
@@ -6281,9 +6279,9 @@ snapshots:
- vite
- vue
- '@nuxt/image@1.7.0(ioredis@5.4.1)(magicast@0.3.4)(rollup@4.20.0)':
+ '@nuxt/image@1.7.0':
dependencies:
- '@nuxt/kit': 3.12.4(magicast@0.3.4)(rollup@4.20.0)
+ '@nuxt/kit': 3.12.4(magicast@0.3.4)
consola: 3.2.3
defu: 6.1.4
h3: 1.12.0
@@ -6294,7 +6292,7 @@ snapshots:
std-env: 3.7.0
ufo: 1.5.4
optionalDependencies:
- ipx: 2.1.0(ioredis@5.4.1)
+ ipx: 2.1.0
transitivePeerDependencies:
- '@azure/app-configuration'
- '@azure/cosmos'
@@ -6314,9 +6312,9 @@ snapshots:
- supports-color
- uWebSockets.js
- '@nuxt/kit@3.12.4(magicast@0.3.4)(rollup@4.20.0)':
+ '@nuxt/kit@3.12.4(magicast@0.3.4)':
dependencies:
- '@nuxt/schema': 3.12.4(rollup@4.20.0)
+ '@nuxt/schema': 3.12.4
c12: 1.11.1(magicast@0.3.4)
consola: 3.2.3
defu: 6.1.4
@@ -6341,7 +6339,7 @@ snapshots:
- rollup
- supports-color
- '@nuxt/schema@3.12.4(rollup@4.20.0)':
+ '@nuxt/schema@3.12.4':
dependencies:
compatx: 0.1.8
consola: 3.2.3
@@ -6359,9 +6357,9 @@ snapshots:
- rollup
- supports-color
- '@nuxt/telemetry@2.5.4(magicast@0.3.4)(rollup@4.20.0)':
+ '@nuxt/telemetry@2.5.4':
dependencies:
- '@nuxt/kit': 3.12.4(magicast@0.3.4)(rollup@4.20.0)
+ '@nuxt/kit': 3.12.4(magicast@0.3.4)
ci-info: 4.0.0
consola: 3.2.3
create-require: 1.1.1
@@ -6383,11 +6381,11 @@ snapshots:
- rollup
- supports-color
- '@nuxt/ui-pro@1.4.1(magicast@0.3.4)(rollup@4.20.0)(vite@5.4.0(@types/node@22.2.0)(terser@5.31.5))(vue@3.4.37(typescript@5.5.4))':
+ '@nuxt/ui-pro@1.4.1(vite@5.4.0)(vue@3.4.37)':
dependencies:
'@iconify-json/vscode-icons': 1.1.37
- '@nuxt/ui': 2.18.4(magicast@0.3.4)(rollup@4.20.0)(vite@5.4.0(@types/node@22.2.0)(terser@5.31.5))(vue@3.4.37(typescript@5.5.4))
- '@vueuse/core': 10.11.1(vue@3.4.37(typescript@5.5.4))
+ '@nuxt/ui': 2.18.4(vite@5.4.0)(vue@3.4.37)
+ '@vueuse/core': 10.11.1(vue@3.4.37)
defu: 6.1.4
git-url-parse: 14.1.0
ofetch: 1.3.4
@@ -6395,7 +6393,7 @@ snapshots:
pathe: 1.1.2
pkg-types: 1.1.3
tailwind-merge: 2.5.2
- vue3-smooth-dnd: 0.0.6(vue@3.4.37(typescript@5.5.4))
+ vue3-smooth-dnd: 0.0.6(vue@3.4.37)
transitivePeerDependencies:
- '@vue/composition-api'
- async-validator
@@ -6417,23 +6415,23 @@ snapshots:
- vite
- vue
- '@nuxt/ui@2.18.4(magicast@0.3.4)(rollup@4.20.0)(vite@5.4.0(@types/node@22.2.0)(terser@5.31.5))(vue@3.4.37(typescript@5.5.4))':
+ '@nuxt/ui@2.18.4(vite@5.4.0)(vue@3.4.37)':
dependencies:
'@headlessui/tailwindcss': 0.2.1(tailwindcss@3.4.9)
- '@headlessui/vue': 1.7.22(vue@3.4.37(typescript@5.5.4))
+ '@headlessui/vue': 1.7.22(vue@3.4.37)
'@iconify-json/heroicons': 1.1.24
- '@nuxt/icon': 1.4.5(magicast@0.3.4)(rollup@4.20.0)(vite@5.4.0(@types/node@22.2.0)(terser@5.31.5))(vue@3.4.37(typescript@5.5.4))
- '@nuxt/kit': 3.12.4(magicast@0.3.4)(rollup@4.20.0)
- '@nuxtjs/color-mode': 3.4.2(magicast@0.3.4)(rollup@4.20.0)
- '@nuxtjs/tailwindcss': 6.12.1(magicast@0.3.4)(rollup@4.20.0)
+ '@nuxt/icon': 1.4.5(vite@5.4.0)(vue@3.4.37)
+ '@nuxt/kit': 3.12.4(magicast@0.3.4)
+ '@nuxtjs/color-mode': 3.4.2
+ '@nuxtjs/tailwindcss': 6.12.1
'@popperjs/core': 2.11.8
'@tailwindcss/aspect-ratio': 0.4.2(tailwindcss@3.4.9)
'@tailwindcss/container-queries': 0.1.1(tailwindcss@3.4.9)
'@tailwindcss/forms': 0.5.7(tailwindcss@3.4.9)
'@tailwindcss/typography': 0.5.14(tailwindcss@3.4.9)
- '@vueuse/core': 10.11.1(vue@3.4.37(typescript@5.5.4))
- '@vueuse/integrations': 10.11.1(fuse.js@6.6.2)(vue@3.4.37(typescript@5.5.4))
- '@vueuse/math': 10.11.1(vue@3.4.37(typescript@5.5.4))
+ '@vueuse/core': 10.11.1(vue@3.4.37)
+ '@vueuse/integrations': 10.11.1(fuse.js@6.6.2)(vue@3.4.37)
+ '@vueuse/math': 10.11.1(vue@3.4.37)
defu: 6.1.4
fuse.js: 6.6.2
ohash: 1.1.3
@@ -6462,12 +6460,12 @@ snapshots:
- vite
- vue
- '@nuxt/vite-builder@3.12.4(@types/node@22.2.0)(eslint@9.0.0-rc.0)(magicast@0.3.4)(optionator@0.9.4)(rollup@4.20.0)(terser@5.31.5)(typescript@5.5.4)(vue@3.4.37(typescript@5.5.4))':
+ '@nuxt/vite-builder@3.12.4(eslint@8.57.0)(typescript@5.5.4)(vue@3.4.37)':
dependencies:
- '@nuxt/kit': 3.12.4(magicast@0.3.4)(rollup@4.20.0)
+ '@nuxt/kit': 3.12.4(magicast@0.3.4)
'@rollup/plugin-replace': 5.0.7(rollup@4.20.0)
- '@vitejs/plugin-vue': 5.1.2(vite@5.4.0(@types/node@22.2.0)(terser@5.31.5))(vue@3.4.37(typescript@5.5.4))
- '@vitejs/plugin-vue-jsx': 4.0.0(vite@5.4.0(@types/node@22.2.0)(terser@5.31.5))(vue@3.4.37(typescript@5.5.4))
+ '@vitejs/plugin-vue': 5.1.2(vite@5.4.0)(vue@3.4.37)
+ '@vitejs/plugin-vue-jsx': 4.0.0(vite@5.4.0)(vue@3.4.37)
autoprefixer: 10.4.20(postcss@8.4.41)
clear: 0.1.0
consola: 3.2.3
@@ -6493,9 +6491,9 @@ snapshots:
ufo: 1.5.4
unenv: 1.10.0
unplugin: 1.12.1
- vite: 5.4.0(@types/node@22.2.0)(terser@5.31.5)
- vite-node: 2.0.5(@types/node@22.2.0)(terser@5.31.5)
- vite-plugin-checker: 0.7.2(eslint@9.0.0-rc.0)(optionator@0.9.4)(typescript@5.5.4)(vite@5.4.0(@types/node@22.2.0)(terser@5.31.5))
+ vite: 5.4.0
+ vite-node: 2.0.5
+ vite-plugin-checker: 0.7.2(eslint@8.57.0)(typescript@5.5.4)(vite@5.4.0)
vue: 3.4.37(typescript@5.5.4)
vue-bundle-renderer: 2.1.0
transitivePeerDependencies:
@@ -6521,9 +6519,9 @@ snapshots:
- vti
- vue-tsc
- '@nuxtjs/color-mode@3.4.2(magicast@0.3.4)(rollup@4.20.0)':
+ '@nuxtjs/color-mode@3.4.2':
dependencies:
- '@nuxt/kit': 3.12.4(magicast@0.3.4)(rollup@4.20.0)
+ '@nuxt/kit': 3.12.4(magicast@0.3.4)
pathe: 1.1.2
pkg-types: 1.1.3
semver: 7.6.3
@@ -6532,9 +6530,9 @@ snapshots:
- rollup
- supports-color
- '@nuxtjs/mdc@0.8.3(magicast@0.3.4)(rollup@4.20.0)':
+ '@nuxtjs/mdc@0.8.3':
dependencies:
- '@nuxt/kit': 3.12.4(magicast@0.3.4)(rollup@4.20.0)
+ '@nuxt/kit': 3.12.4(magicast@0.3.4)
'@shikijs/transformers': 1.12.1
'@types/hast': 3.0.4
'@types/mdast': 4.0.4
@@ -6574,9 +6572,9 @@ snapshots:
- rollup
- supports-color
- '@nuxtjs/tailwindcss@6.12.1(magicast@0.3.4)(rollup@4.20.0)':
+ '@nuxtjs/tailwindcss@6.12.1':
dependencies:
- '@nuxt/kit': 3.12.4(magicast@0.3.4)(rollup@4.20.0)
+ '@nuxt/kit': 3.12.4(magicast@0.3.4)
autoprefixer: 10.4.20(postcss@8.4.41)
consola: 3.2.3
defu: 6.1.4
@@ -6666,7 +6664,7 @@ snapshots:
'@popperjs/core@2.11.8': {}
'@prisma/client@5.18.0(prisma@5.18.0)':
- optionalDependencies:
+ dependencies:
prisma: 5.18.0
'@prisma/debug@5.18.0': {}
@@ -6690,10 +6688,10 @@ snapshots:
dependencies:
'@prisma/debug': 5.18.0
- '@prisma/nuxt@0.0.35(magicast@0.3.4)(prisma@5.18.0)(rollup@4.20.0)(vite@5.4.0(@types/node@22.2.0)(terser@5.31.5))':
+ '@prisma/nuxt@0.0.35(prisma@5.18.0)(vite@5.4.0)':
dependencies:
- '@nuxt/devtools-kit': 1.3.9(magicast@0.3.4)(rollup@4.20.0)(vite@5.4.0(@types/node@22.2.0)(terser@5.31.5))
- '@nuxt/kit': 3.12.4(magicast@0.3.4)(rollup@4.20.0)
+ '@nuxt/devtools-kit': 1.3.9(magicast@0.3.4)(vite@5.4.0)
+ '@nuxt/kit': 3.12.4(magicast@0.3.4)
'@prisma/client': 5.18.0(prisma@5.18.0)
chalk: 5.3.0
defu: 6.1.4
@@ -6708,9 +6706,8 @@ snapshots:
'@rollup/plugin-alias@5.1.0(rollup@4.20.0)':
dependencies:
- slash: 4.0.0
- optionalDependencies:
rollup: 4.20.0
+ slash: 4.0.0
'@rollup/plugin-commonjs@25.0.8(rollup@4.20.0)':
dependencies:
@@ -6720,7 +6717,6 @@ snapshots:
glob: 8.1.0
is-reference: 1.2.1
magic-string: 0.30.11
- optionalDependencies:
rollup: 4.20.0
'@rollup/plugin-inject@5.0.5(rollup@4.20.0)':
@@ -6728,13 +6724,11 @@ snapshots:
'@rollup/pluginutils': 5.1.0(rollup@4.20.0)
estree-walker: 2.0.2
magic-string: 0.30.11
- optionalDependencies:
rollup: 4.20.0
'@rollup/plugin-json@6.1.0(rollup@4.20.0)':
dependencies:
'@rollup/pluginutils': 5.1.0(rollup@4.20.0)
- optionalDependencies:
rollup: 4.20.0
'@rollup/plugin-node-resolve@15.2.3(rollup@4.20.0)':
@@ -6745,23 +6739,20 @@ snapshots:
is-builtin-module: 3.2.1
is-module: 1.0.0
resolve: 1.22.8
- optionalDependencies:
rollup: 4.20.0
'@rollup/plugin-replace@5.0.7(rollup@4.20.0)':
dependencies:
'@rollup/pluginutils': 5.1.0(rollup@4.20.0)
magic-string: 0.30.11
- optionalDependencies:
rollup: 4.20.0
'@rollup/plugin-terser@0.4.4(rollup@4.20.0)':
dependencies:
+ rollup: 4.20.0
serialize-javascript: 6.0.2
smob: 1.5.0
terser: 5.31.5
- optionalDependencies:
- rollup: 4.20.0
'@rollup/pluginutils@4.2.1':
dependencies:
@@ -6773,7 +6764,6 @@ snapshots:
'@types/estree': 1.0.5
estree-walker: 2.0.2
picomatch: 2.3.1
- optionalDependencies:
rollup: 4.20.0
'@rollup/rollup-android-arm-eabi@4.20.0':
@@ -6840,49 +6830,49 @@ snapshots:
'@socket.io/component-emitter@3.1.2': {}
- '@stylistic/eslint-plugin-js@2.6.2(eslint@9.0.0-rc.0)':
+ '@stylistic/eslint-plugin-js@2.6.2(eslint@8.57.0)':
dependencies:
'@types/eslint': 9.6.0
acorn: 8.12.1
- eslint: 9.0.0-rc.0
+ eslint: 8.57.0
eslint-visitor-keys: 4.0.0
espree: 10.1.0
- '@stylistic/eslint-plugin-jsx@2.6.2(eslint@9.0.0-rc.0)':
+ '@stylistic/eslint-plugin-jsx@2.6.2(eslint@8.57.0)':
dependencies:
- '@stylistic/eslint-plugin-js': 2.6.2(eslint@9.0.0-rc.0)
+ '@stylistic/eslint-plugin-js': 2.6.2(eslint@8.57.0)
'@types/eslint': 9.6.0
- eslint: 9.0.0-rc.0
+ eslint: 8.57.0
estraverse: 5.3.0
picomatch: 4.0.2
- '@stylistic/eslint-plugin-plus@2.6.2(eslint@9.0.0-rc.0)(typescript@5.5.4)':
+ '@stylistic/eslint-plugin-plus@2.6.2(eslint@8.57.0)(typescript@5.5.4)':
dependencies:
'@types/eslint': 9.6.0
- '@typescript-eslint/utils': 8.1.0(eslint@9.0.0-rc.0)(typescript@5.5.4)
- eslint: 9.0.0-rc.0
+ '@typescript-eslint/utils': 8.1.0(eslint@8.57.0)(typescript@5.5.4)
+ eslint: 8.57.0
transitivePeerDependencies:
- supports-color
- typescript
- '@stylistic/eslint-plugin-ts@2.6.2(eslint@9.0.0-rc.0)(typescript@5.5.4)':
+ '@stylistic/eslint-plugin-ts@2.6.2(eslint@8.57.0)(typescript@5.5.4)':
dependencies:
- '@stylistic/eslint-plugin-js': 2.6.2(eslint@9.0.0-rc.0)
+ '@stylistic/eslint-plugin-js': 2.6.2(eslint@8.57.0)
'@types/eslint': 9.6.0
- '@typescript-eslint/utils': 8.1.0(eslint@9.0.0-rc.0)(typescript@5.5.4)
- eslint: 9.0.0-rc.0
+ '@typescript-eslint/utils': 8.1.0(eslint@8.57.0)(typescript@5.5.4)
+ eslint: 8.57.0
transitivePeerDependencies:
- supports-color
- typescript
- '@stylistic/eslint-plugin@2.6.2(eslint@9.0.0-rc.0)(typescript@5.5.4)':
+ '@stylistic/eslint-plugin@2.6.2(eslint@8.57.0)(typescript@5.5.4)':
dependencies:
- '@stylistic/eslint-plugin-js': 2.6.2(eslint@9.0.0-rc.0)
- '@stylistic/eslint-plugin-jsx': 2.6.2(eslint@9.0.0-rc.0)
- '@stylistic/eslint-plugin-plus': 2.6.2(eslint@9.0.0-rc.0)(typescript@5.5.4)
- '@stylistic/eslint-plugin-ts': 2.6.2(eslint@9.0.0-rc.0)(typescript@5.5.4)
+ '@stylistic/eslint-plugin-js': 2.6.2(eslint@8.57.0)
+ '@stylistic/eslint-plugin-jsx': 2.6.2(eslint@8.57.0)
+ '@stylistic/eslint-plugin-plus': 2.6.2(eslint@8.57.0)(typescript@5.5.4)
+ '@stylistic/eslint-plugin-ts': 2.6.2(eslint@8.57.0)(typescript@5.5.4)
'@types/eslint': 9.6.0
- eslint: 9.0.0-rc.0
+ eslint: 8.57.0
transitivePeerDependencies:
- supports-color
- typescript
@@ -6910,7 +6900,7 @@ snapshots:
'@tanstack/virtual-core@3.8.6': {}
- '@tanstack/vue-virtual@3.8.6(vue@3.4.37(typescript@5.5.4))':
+ '@tanstack/vue-virtual@3.8.6(vue@3.4.37)':
dependencies:
'@tanstack/virtual-core': 3.8.6
vue: 3.4.37(typescript@5.5.4)
@@ -6969,33 +6959,31 @@ snapshots:
'@types/web-bluetooth@0.0.20': {}
- '@typescript-eslint/eslint-plugin@8.1.0(@typescript-eslint/parser@8.1.0(eslint@9.0.0-rc.0)(typescript@5.5.4))(eslint@9.0.0-rc.0)(typescript@5.5.4)':
+ '@typescript-eslint/eslint-plugin@8.1.0(@typescript-eslint/parser@8.1.0)(eslint@8.57.0)(typescript@5.5.4)':
dependencies:
'@eslint-community/regexpp': 4.11.0
- '@typescript-eslint/parser': 8.1.0(eslint@9.0.0-rc.0)(typescript@5.5.4)
+ '@typescript-eslint/parser': 8.1.0(eslint@8.57.0)(typescript@5.5.4)
'@typescript-eslint/scope-manager': 8.1.0
- '@typescript-eslint/type-utils': 8.1.0(eslint@9.0.0-rc.0)(typescript@5.5.4)
- '@typescript-eslint/utils': 8.1.0(eslint@9.0.0-rc.0)(typescript@5.5.4)
+ '@typescript-eslint/type-utils': 8.1.0(eslint@8.57.0)(typescript@5.5.4)
+ '@typescript-eslint/utils': 8.1.0(eslint@8.57.0)(typescript@5.5.4)
'@typescript-eslint/visitor-keys': 8.1.0
- eslint: 9.0.0-rc.0
+ eslint: 8.57.0
graphemer: 1.4.0
ignore: 5.3.2
natural-compare: 1.4.0
ts-api-utils: 1.3.0(typescript@5.5.4)
- optionalDependencies:
typescript: 5.5.4
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/parser@8.1.0(eslint@9.0.0-rc.0)(typescript@5.5.4)':
+ '@typescript-eslint/parser@8.1.0(eslint@8.57.0)(typescript@5.5.4)':
dependencies:
'@typescript-eslint/scope-manager': 8.1.0
'@typescript-eslint/types': 8.1.0
'@typescript-eslint/typescript-estree': 8.1.0(typescript@5.5.4)
'@typescript-eslint/visitor-keys': 8.1.0
debug: 4.3.6
- eslint: 9.0.0-rc.0
- optionalDependencies:
+ eslint: 8.57.0
typescript: 5.5.4
transitivePeerDependencies:
- supports-color
@@ -7010,13 +6998,12 @@ snapshots:
'@typescript-eslint/types': 8.1.0
'@typescript-eslint/visitor-keys': 8.1.0
- '@typescript-eslint/type-utils@8.1.0(eslint@9.0.0-rc.0)(typescript@5.5.4)':
+ '@typescript-eslint/type-utils@8.1.0(eslint@8.57.0)(typescript@5.5.4)':
dependencies:
'@typescript-eslint/typescript-estree': 8.1.0(typescript@5.5.4)
- '@typescript-eslint/utils': 8.1.0(eslint@9.0.0-rc.0)(typescript@5.5.4)
+ '@typescript-eslint/utils': 8.1.0(eslint@8.57.0)(typescript@5.5.4)
debug: 4.3.6
ts-api-utils: 1.3.0(typescript@5.5.4)
- optionalDependencies:
typescript: 5.5.4
transitivePeerDependencies:
- eslint
@@ -7036,7 +7023,6 @@ snapshots:
minimatch: 9.0.5
semver: 7.6.3
ts-api-utils: 1.3.0(typescript@5.5.4)
- optionalDependencies:
typescript: 5.5.4
transitivePeerDependencies:
- supports-color
@@ -7051,29 +7037,28 @@ snapshots:
minimatch: 9.0.5
semver: 7.6.3
ts-api-utils: 1.3.0(typescript@5.5.4)
- optionalDependencies:
typescript: 5.5.4
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/utils@7.18.0(eslint@9.0.0-rc.0)(typescript@5.5.4)':
+ '@typescript-eslint/utils@7.18.0(eslint@8.57.0)(typescript@5.5.4)':
dependencies:
- '@eslint-community/eslint-utils': 4.4.0(eslint@9.0.0-rc.0)
+ '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0)
'@typescript-eslint/scope-manager': 7.18.0
'@typescript-eslint/types': 7.18.0
'@typescript-eslint/typescript-estree': 7.18.0(typescript@5.5.4)
- eslint: 9.0.0-rc.0
+ eslint: 8.57.0
transitivePeerDependencies:
- supports-color
- typescript
- '@typescript-eslint/utils@8.1.0(eslint@9.0.0-rc.0)(typescript@5.5.4)':
+ '@typescript-eslint/utils@8.1.0(eslint@8.57.0)(typescript@5.5.4)':
dependencies:
- '@eslint-community/eslint-utils': 4.4.0(eslint@9.0.0-rc.0)
+ '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0)
'@typescript-eslint/scope-manager': 8.1.0
'@typescript-eslint/types': 8.1.0
'@typescript-eslint/typescript-estree': 8.1.0(typescript@5.5.4)
- eslint: 9.0.0-rc.0
+ eslint: 8.57.0
transitivePeerDependencies:
- supports-color
- typescript
@@ -7109,7 +7094,7 @@ snapshots:
'@unhead/schema': 1.9.16
'@unhead/shared': 1.9.16
- '@unhead/vue@1.9.16(vue@3.4.37(typescript@5.5.4))':
+ '@unhead/vue@1.9.16(vue@3.4.37)':
dependencies:
'@unhead/schema': 1.9.16
'@unhead/shared': 1.9.16
@@ -7135,26 +7120,24 @@ snapshots:
- encoding
- supports-color
- '@vitejs/plugin-vue-jsx@4.0.0(vite@5.4.0(@types/node@22.2.0)(terser@5.31.5))(vue@3.4.37(typescript@5.5.4))':
+ '@vitejs/plugin-vue-jsx@4.0.0(vite@5.4.0)(vue@3.4.37)':
dependencies:
'@babel/core': 7.25.2
'@babel/plugin-transform-typescript': 7.25.2(@babel/core@7.25.2)
'@vue/babel-plugin-jsx': 1.2.2(@babel/core@7.25.2)
- vite: 5.4.0(@types/node@22.2.0)(terser@5.31.5)
+ vite: 5.4.0
vue: 3.4.37(typescript@5.5.4)
transitivePeerDependencies:
- supports-color
- '@vitejs/plugin-vue@5.1.2(vite@5.4.0(@types/node@22.2.0)(terser@5.31.5))(vue@3.4.37(typescript@5.5.4))':
+ '@vitejs/plugin-vue@5.1.2(vite@5.4.0)(vue@3.4.37)':
dependencies:
- vite: 5.4.0(@types/node@22.2.0)(terser@5.31.5)
+ vite: 5.4.0
vue: 3.4.37(typescript@5.5.4)
- '@vitest/eslint-plugin@1.0.1(@typescript-eslint/utils@8.1.0(eslint@9.0.0-rc.0)(typescript@5.5.4))(eslint@9.0.0-rc.0)(typescript@5.5.4)':
+ '@vitest/eslint-plugin@1.0.1(eslint@8.57.0)(typescript@5.5.4)':
dependencies:
- eslint: 9.0.0-rc.0
- optionalDependencies:
- '@typescript-eslint/utils': 8.1.0(eslint@9.0.0-rc.0)(typescript@5.5.4)
+ eslint: 8.57.0
typescript: 5.5.4
'@voxpelli/config-array-find-files@0.1.2(@eslint/config-array@0.17.1)':
@@ -7162,7 +7145,7 @@ snapshots:
'@eslint/config-array': 0.17.1
'@nodelib/fs.walk': 2.0.0
- '@vue-macros/common@1.12.2(rollup@4.20.0)(vue@3.4.37(typescript@5.5.4))':
+ '@vue-macros/common@1.12.2(vue@3.4.37)':
dependencies:
'@babel/types': 7.25.2
'@rollup/pluginutils': 5.1.0(rollup@4.20.0)
@@ -7170,7 +7153,6 @@ snapshots:
ast-kit: 1.0.1
local-pkg: 0.5.0
magic-string-ast: 0.6.2
- optionalDependencies:
vue: 3.4.37(typescript@5.5.4)
transitivePeerDependencies:
- rollup
@@ -7179,6 +7161,7 @@ snapshots:
'@vue/babel-plugin-jsx@1.2.2(@babel/core@7.25.2)':
dependencies:
+ '@babel/core': 7.25.2
'@babel/helper-module-imports': 7.22.15
'@babel/helper-plugin-utils': 7.24.8
'@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.25.2)
@@ -7190,8 +7173,6 @@ snapshots:
camelcase: 6.3.0
html-tags: 3.3.1
svg-tags: 1.0.0
- optionalDependencies:
- '@babel/core': 7.25.2
transitivePeerDependencies:
- supports-color
@@ -7236,14 +7217,14 @@ snapshots:
'@vue/devtools-api@6.6.3': {}
- '@vue/devtools-core@7.3.3(vite@5.4.0(@types/node@22.2.0)(terser@5.31.5))':
+ '@vue/devtools-core@7.3.3(vite@5.4.0)':
dependencies:
'@vue/devtools-kit': 7.3.3
'@vue/devtools-shared': 7.3.8
mitt: 3.0.1
nanoid: 3.3.7
pathe: 1.1.2
- vite-hot-client: 0.2.3(vite@5.4.0(@types/node@22.2.0)(terser@5.31.5))
+ vite-hot-client: 0.2.3(vite@5.4.0)
transitivePeerDependencies:
- vite
@@ -7277,7 +7258,7 @@ snapshots:
'@vue/shared': 3.4.37
csstype: 3.1.3
- '@vue/server-renderer@3.4.37(vue@3.4.37(typescript@5.5.4))':
+ '@vue/server-renderer@3.4.37(vue@3.4.37)':
dependencies:
'@vue/compiler-ssr': 3.4.37
'@vue/shared': 3.4.37
@@ -7285,53 +7266,52 @@ snapshots:
'@vue/shared@3.4.37': {}
- '@vueuse/core@10.11.1(vue@3.4.37(typescript@5.5.4))':
+ '@vueuse/core@10.11.1(vue@3.4.37)':
dependencies:
'@types/web-bluetooth': 0.0.20
'@vueuse/metadata': 10.11.1
- '@vueuse/shared': 10.11.1(vue@3.4.37(typescript@5.5.4))
- vue-demi: 0.14.10(vue@3.4.37(typescript@5.5.4))
+ '@vueuse/shared': 10.11.1(vue@3.4.37)
+ vue-demi: 0.14.10(vue@3.4.37)
transitivePeerDependencies:
- '@vue/composition-api'
- vue
- '@vueuse/head@2.0.0(vue@3.4.37(typescript@5.5.4))':
+ '@vueuse/head@2.0.0(vue@3.4.37)':
dependencies:
'@unhead/dom': 1.9.16
'@unhead/schema': 1.9.16
'@unhead/ssr': 1.9.16
- '@unhead/vue': 1.9.16(vue@3.4.37(typescript@5.5.4))
+ '@unhead/vue': 1.9.16(vue@3.4.37)
vue: 3.4.37(typescript@5.5.4)
- '@vueuse/integrations@10.11.1(fuse.js@6.6.2)(vue@3.4.37(typescript@5.5.4))':
+ '@vueuse/integrations@10.11.1(fuse.js@6.6.2)(vue@3.4.37)':
dependencies:
- '@vueuse/core': 10.11.1(vue@3.4.37(typescript@5.5.4))
- '@vueuse/shared': 10.11.1(vue@3.4.37(typescript@5.5.4))
- vue-demi: 0.14.10(vue@3.4.37(typescript@5.5.4))
- optionalDependencies:
+ '@vueuse/core': 10.11.1(vue@3.4.37)
+ '@vueuse/shared': 10.11.1(vue@3.4.37)
fuse.js: 6.6.2
+ vue-demi: 0.14.10(vue@3.4.37)
transitivePeerDependencies:
- '@vue/composition-api'
- vue
- '@vueuse/math@10.11.1(vue@3.4.37(typescript@5.5.4))':
+ '@vueuse/math@10.11.1(vue@3.4.37)':
dependencies:
- '@vueuse/shared': 10.11.1(vue@3.4.37(typescript@5.5.4))
- vue-demi: 0.14.10(vue@3.4.37(typescript@5.5.4))
+ '@vueuse/shared': 10.11.1(vue@3.4.37)
+ vue-demi: 0.14.10(vue@3.4.37)
transitivePeerDependencies:
- '@vue/composition-api'
- vue
'@vueuse/metadata@10.11.1': {}
- '@vueuse/nuxt@10.11.1(magicast@0.3.4)(nuxt@3.12.4(@parcel/watcher@2.4.1)(@types/node@22.2.0)(eslint@9.0.0-rc.0)(ioredis@5.4.1)(magicast@0.3.4)(optionator@0.9.4)(rollup@4.20.0)(terser@5.31.5)(typescript@5.5.4)(vite@5.4.0(@types/node@22.2.0)(terser@5.31.5)))(rollup@4.20.0)(vue@3.4.37(typescript@5.5.4))':
+ '@vueuse/nuxt@10.11.1(nuxt@3.12.4)(vue@3.4.37)':
dependencies:
- '@nuxt/kit': 3.12.4(magicast@0.3.4)(rollup@4.20.0)
- '@vueuse/core': 10.11.1(vue@3.4.37(typescript@5.5.4))
+ '@nuxt/kit': 3.12.4(magicast@0.3.4)
+ '@vueuse/core': 10.11.1(vue@3.4.37)
'@vueuse/metadata': 10.11.1
local-pkg: 0.5.0
- nuxt: 3.12.4(@parcel/watcher@2.4.1)(@types/node@22.2.0)(eslint@9.0.0-rc.0)(ioredis@5.4.1)(magicast@0.3.4)(optionator@0.9.4)(rollup@4.20.0)(terser@5.31.5)(typescript@5.5.4)(vite@5.4.0(@types/node@22.2.0)(terser@5.31.5))
- vue-demi: 0.14.10(vue@3.4.37(typescript@5.5.4))
+ nuxt: 3.12.4(eslint@8.57.0)(typescript@5.5.4)(vite@5.4.0)
+ vue-demi: 0.14.10(vue@3.4.37)
transitivePeerDependencies:
- '@vue/composition-api'
- magicast
@@ -7339,9 +7319,9 @@ snapshots:
- supports-color
- vue
- '@vueuse/shared@10.11.1(vue@3.4.37(typescript@5.5.4))':
+ '@vueuse/shared@10.11.1(vue@3.4.37)':
dependencies:
- vue-demi: 0.14.10(vue@3.4.37(typescript@5.5.4))
+ vue-demi: 0.14.10(vue@3.4.37)
transitivePeerDependencies:
- '@vue/composition-api'
- vue
@@ -7574,14 +7554,13 @@ snapshots:
dotenv: 16.4.5
giget: 1.2.3
jiti: 1.21.6
+ magicast: 0.3.4
mlly: 1.7.1
ohash: 1.1.3
pathe: 1.1.2
perfect-debounce: 1.0.0
pkg-types: 1.1.3
rc9: 2.1.2
- optionalDependencies:
- magicast: 0.3.4
cac@6.7.14: {}
@@ -8124,9 +8103,9 @@ snapshots:
escape-string-regexp@5.0.0: {}
- eslint-compat-utils@0.5.1(eslint@9.0.0-rc.0):
+ eslint-compat-utils@0.5.1(eslint@8.57.0):
dependencies:
- eslint: 9.0.0-rc.0
+ eslint: 8.57.0
semver: 7.6.3
eslint-config-flat-gitignore@0.1.8:
@@ -8147,39 +8126,39 @@ snapshots:
transitivePeerDependencies:
- supports-color
- eslint-merge-processors@0.1.0(eslint@9.0.0-rc.0):
+ eslint-merge-processors@0.1.0(eslint@8.57.0):
dependencies:
- eslint: 9.0.0-rc.0
+ eslint: 8.57.0
- eslint-plugin-antfu@2.3.5(eslint@9.0.0-rc.0):
+ eslint-plugin-antfu@2.3.5(eslint@8.57.0):
dependencies:
'@antfu/utils': 0.7.10
- eslint: 9.0.0-rc.0
+ eslint: 8.57.0
- eslint-plugin-command@0.2.3(eslint@9.0.0-rc.0):
+ eslint-plugin-command@0.2.3(eslint@8.57.0):
dependencies:
'@es-joy/jsdoccomment': 0.43.1
- eslint: 9.0.0-rc.0
+ eslint: 8.57.0
- eslint-plugin-es-x@7.8.0(eslint@9.0.0-rc.0):
+ eslint-plugin-es-x@7.8.0(eslint@8.57.0):
dependencies:
- '@eslint-community/eslint-utils': 4.4.0(eslint@9.0.0-rc.0)
+ '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0)
'@eslint-community/regexpp': 4.11.0
- eslint: 9.0.0-rc.0
- eslint-compat-utils: 0.5.1(eslint@9.0.0-rc.0)
+ eslint: 8.57.0
+ eslint-compat-utils: 0.5.1(eslint@8.57.0)
- eslint-plugin-eslint-comments@3.2.0(eslint@9.0.0-rc.0):
+ eslint-plugin-eslint-comments@3.2.0(eslint@8.57.0):
dependencies:
escape-string-regexp: 1.0.5
- eslint: 9.0.0-rc.0
+ eslint: 8.57.0
ignore: 5.3.2
- eslint-plugin-import-x@3.1.0(eslint@9.0.0-rc.0)(typescript@5.5.4):
+ eslint-plugin-import-x@3.1.0(eslint@8.57.0)(typescript@5.5.4):
dependencies:
- '@typescript-eslint/utils': 7.18.0(eslint@9.0.0-rc.0)(typescript@5.5.4)
+ '@typescript-eslint/utils': 7.18.0(eslint@8.57.0)(typescript@5.5.4)
debug: 4.3.6
doctrine: 3.0.0
- eslint: 9.0.0-rc.0
+ eslint: 8.57.0
eslint-import-resolver-node: 0.3.9
get-tsconfig: 4.7.6
is-glob: 4.0.3
@@ -8191,14 +8170,14 @@ snapshots:
- supports-color
- typescript
- eslint-plugin-jsdoc@48.11.0(eslint@9.0.0-rc.0):
+ eslint-plugin-jsdoc@48.11.0(eslint@8.57.0):
dependencies:
'@es-joy/jsdoccomment': 0.46.0
are-docs-informative: 0.0.2
comment-parser: 1.4.1
debug: 4.3.6
escape-string-regexp: 4.0.0
- eslint: 9.0.0-rc.0
+ eslint: 8.57.0
espree: 10.1.0
esquery: 1.6.0
parse-imports: 2.1.1
@@ -8208,14 +8187,14 @@ snapshots:
transitivePeerDependencies:
- supports-color
- eslint-plugin-jsdoc@50.0.1(eslint@9.0.0-rc.0):
+ eslint-plugin-jsdoc@50.0.1(eslint@8.57.0):
dependencies:
'@es-joy/jsdoccomment': 0.46.0
are-docs-informative: 0.0.2
comment-parser: 1.4.1
debug: 4.3.6
escape-string-regexp: 4.0.0
- eslint: 9.0.0-rc.0
+ eslint: 8.57.0
espree: 10.1.0
esquery: 1.6.0
parse-imports: 2.1.1
@@ -8225,30 +8204,30 @@ snapshots:
transitivePeerDependencies:
- supports-color
- eslint-plugin-jsonc@2.16.0(eslint@9.0.0-rc.0):
+ eslint-plugin-jsonc@2.16.0(eslint@8.57.0):
dependencies:
- '@eslint-community/eslint-utils': 4.4.0(eslint@9.0.0-rc.0)
- eslint: 9.0.0-rc.0
- eslint-compat-utils: 0.5.1(eslint@9.0.0-rc.0)
+ '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0)
+ eslint: 8.57.0
+ eslint-compat-utils: 0.5.1(eslint@8.57.0)
espree: 9.6.1
graphemer: 1.4.0
jsonc-eslint-parser: 2.4.0
natural-compare: 1.4.0
synckit: 0.6.2
- eslint-plugin-markdown@5.1.0(eslint@9.0.0-rc.0):
+ eslint-plugin-markdown@5.1.0(eslint@8.57.0):
dependencies:
- eslint: 9.0.0-rc.0
+ eslint: 8.57.0
mdast-util-from-markdown: 0.8.5
transitivePeerDependencies:
- supports-color
- eslint-plugin-n@17.10.2(eslint@9.0.0-rc.0):
+ eslint-plugin-n@17.10.2(eslint@8.57.0):
dependencies:
- '@eslint-community/eslint-utils': 4.4.0(eslint@9.0.0-rc.0)
+ '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0)
enhanced-resolve: 5.17.1
- eslint: 9.0.0-rc.0
- eslint-plugin-es-x: 7.8.0(eslint@9.0.0-rc.0)
+ eslint: 8.57.0
+ eslint-plugin-es-x: 7.8.0(eslint@8.57.0)
get-tsconfig: 4.7.6
globals: 15.9.0
ignore: 5.3.2
@@ -8257,48 +8236,47 @@ snapshots:
eslint-plugin-no-only-tests@3.1.0: {}
- eslint-plugin-perfectionist@3.1.3(eslint@9.0.0-rc.0)(typescript@5.5.4)(vue-eslint-parser@9.4.3(eslint@9.0.0-rc.0)):
+ eslint-plugin-perfectionist@3.1.3(eslint@8.57.0)(typescript@5.5.4)(vue-eslint-parser@9.4.3):
dependencies:
'@typescript-eslint/types': 8.1.0
- '@typescript-eslint/utils': 8.1.0(eslint@9.0.0-rc.0)(typescript@5.5.4)
- eslint: 9.0.0-rc.0
+ '@typescript-eslint/utils': 8.1.0(eslint@8.57.0)(typescript@5.5.4)
+ eslint: 8.57.0
minimatch: 10.0.1
natural-compare-lite: 1.4.0
- optionalDependencies:
- vue-eslint-parser: 9.4.3(eslint@9.0.0-rc.0)
+ vue-eslint-parser: 9.4.3(eslint@8.57.0)
transitivePeerDependencies:
- supports-color
- typescript
- eslint-plugin-regexp@2.6.0(eslint@9.0.0-rc.0):
+ eslint-plugin-regexp@2.6.0(eslint@8.57.0):
dependencies:
- '@eslint-community/eslint-utils': 4.4.0(eslint@9.0.0-rc.0)
+ '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0)
'@eslint-community/regexpp': 4.11.0
comment-parser: 1.4.1
- eslint: 9.0.0-rc.0
+ eslint: 8.57.0
jsdoc-type-pratt-parser: 4.1.0
refa: 0.12.1
regexp-ast-analysis: 0.7.1
scslre: 0.3.0
- eslint-plugin-toml@0.11.1(eslint@9.0.0-rc.0):
+ eslint-plugin-toml@0.11.1(eslint@8.57.0):
dependencies:
debug: 4.3.6
- eslint: 9.0.0-rc.0
- eslint-compat-utils: 0.5.1(eslint@9.0.0-rc.0)
+ eslint: 8.57.0
+ eslint-compat-utils: 0.5.1(eslint@8.57.0)
lodash: 4.17.21
toml-eslint-parser: 0.10.0
transitivePeerDependencies:
- supports-color
- eslint-plugin-unicorn@55.0.0(eslint@9.0.0-rc.0):
+ eslint-plugin-unicorn@55.0.0(eslint@8.57.0):
dependencies:
'@babel/helper-validator-identifier': 7.24.7
- '@eslint-community/eslint-utils': 4.4.0(eslint@9.0.0-rc.0)
+ '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0)
ci-info: 4.0.0
clean-regexp: 1.0.0
core-js-compat: 3.38.0
- eslint: 9.0.0-rc.0
+ eslint: 8.57.0
esquery: 1.6.0
globals: 15.9.0
indent-string: 4.0.0
@@ -8311,56 +8289,50 @@ snapshots:
semver: 7.6.3
strip-indent: 3.0.0
- eslint-plugin-unused-imports@4.1.3(@typescript-eslint/eslint-plugin@8.1.0(@typescript-eslint/parser@8.1.0(eslint@9.0.0-rc.0)(typescript@5.5.4))(eslint@9.0.0-rc.0)(typescript@5.5.4))(eslint@9.0.0-rc.0):
+ eslint-plugin-unused-imports@4.1.3(@typescript-eslint/eslint-plugin@8.1.0)(eslint@8.57.0):
dependencies:
- eslint: 9.0.0-rc.0
- optionalDependencies:
- '@typescript-eslint/eslint-plugin': 8.1.0(@typescript-eslint/parser@8.1.0(eslint@9.0.0-rc.0)(typescript@5.5.4))(eslint@9.0.0-rc.0)(typescript@5.5.4)
+ '@typescript-eslint/eslint-plugin': 8.1.0(@typescript-eslint/parser@8.1.0)(eslint@8.57.0)(typescript@5.5.4)
+ eslint: 8.57.0
- eslint-plugin-vue@9.27.0(eslint@9.0.0-rc.0):
+ eslint-plugin-vue@9.27.0(eslint@8.57.0):
dependencies:
- '@eslint-community/eslint-utils': 4.4.0(eslint@9.0.0-rc.0)
- eslint: 9.0.0-rc.0
+ '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0)
+ eslint: 8.57.0
globals: 13.24.0
natural-compare: 1.4.0
nth-check: 2.1.1
postcss-selector-parser: 6.1.2
semver: 7.6.3
- vue-eslint-parser: 9.4.3(eslint@9.0.0-rc.0)
+ vue-eslint-parser: 9.4.3(eslint@8.57.0)
xml-name-validator: 4.0.0
transitivePeerDependencies:
- supports-color
- eslint-plugin-yml@1.14.0(eslint@9.0.0-rc.0):
+ eslint-plugin-yml@1.14.0(eslint@8.57.0):
dependencies:
debug: 4.3.6
- eslint: 9.0.0-rc.0
- eslint-compat-utils: 0.5.1(eslint@9.0.0-rc.0)
+ eslint: 8.57.0
+ eslint-compat-utils: 0.5.1(eslint@8.57.0)
lodash: 4.17.21
natural-compare: 1.4.0
yaml-eslint-parser: 1.2.3
transitivePeerDependencies:
- supports-color
- eslint-processor-vue-blocks@0.1.2(@vue/compiler-sfc@3.4.37)(eslint@9.0.0-rc.0):
+ eslint-processor-vue-blocks@0.1.2(@vue/compiler-sfc@3.4.37)(eslint@8.57.0):
dependencies:
'@vue/compiler-sfc': 3.4.37
- eslint: 9.0.0-rc.0
+ eslint: 8.57.0
eslint-scope@7.2.2:
dependencies:
esrecurse: 4.3.0
estraverse: 5.3.0
- eslint-scope@8.0.2:
- dependencies:
- esrecurse: 4.3.0
- estraverse: 5.3.0
-
- eslint-typegen@0.3.0(eslint@9.0.0-rc.0):
+ eslint-typegen@0.3.0(eslint@8.57.0):
dependencies:
'@types/eslint': 9.6.0
- eslint: 9.0.0-rc.0
+ eslint: 8.57.0
json-schema-to-typescript-lite: 14.0.1
ohash: 1.1.3
@@ -8368,34 +8340,38 @@ snapshots:
eslint-visitor-keys@4.0.0: {}
- eslint@9.0.0-rc.0:
+ eslint@8.57.0:
dependencies:
- '@eslint-community/eslint-utils': 4.4.0(eslint@9.0.0-rc.0)
+ '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0)
'@eslint-community/regexpp': 4.11.0
- '@eslint/eslintrc': 3.1.0
- '@eslint/js': 9.0.0-rc.0
+ '@eslint/eslintrc': 2.1.4
+ '@eslint/js': 8.57.0
'@humanwhocodes/config-array': 0.11.14
'@humanwhocodes/module-importer': 1.0.1
'@nodelib/fs.walk': 1.2.8
+ '@ungap/structured-clone': 1.2.0
ajv: 6.12.6
chalk: 4.1.2
cross-spawn: 7.0.3
debug: 4.3.6
+ doctrine: 3.0.0
escape-string-regexp: 4.0.0
- eslint-scope: 8.0.2
- eslint-visitor-keys: 4.0.0
- espree: 10.1.0
+ eslint-scope: 7.2.2
+ eslint-visitor-keys: 3.4.3
+ espree: 9.6.1
esquery: 1.6.0
esutils: 2.0.3
fast-deep-equal: 3.1.3
- file-entry-cache: 8.0.0
+ file-entry-cache: 6.0.1
find-up: 5.0.0
glob-parent: 6.0.2
+ globals: 13.24.0
graphemer: 1.4.0
ignore: 5.3.2
imurmurhash: 0.1.4
is-glob: 4.0.3
is-path-inside: 3.0.3
+ js-yaml: 4.1.0
json-stable-stringify-without-jsonify: 1.0.1
levn: 0.4.1
lodash.merge: 4.6.2
@@ -8513,9 +8489,9 @@ snapshots:
dependencies:
reusify: 1.0.4
- file-entry-cache@8.0.0:
+ file-entry-cache@6.0.1:
dependencies:
- flat-cache: 4.0.1
+ flat-cache: 3.2.0
file-uri-to-path@1.0.0: {}
@@ -8541,10 +8517,11 @@ snapshots:
path-exists: 5.0.0
unicorn-magic: 0.1.0
- flat-cache@4.0.1:
+ flat-cache@3.2.0:
dependencies:
flatted: 3.3.1
keyv: 4.5.4
+ rimraf: 3.0.2
flat@6.0.1: {}
@@ -8685,8 +8662,6 @@ snapshots:
dependencies:
type-fest: 0.20.2
- globals@14.0.0: {}
-
globals@15.9.0: {}
globby@11.1.0:
@@ -8904,7 +8879,7 @@ snapshots:
transitivePeerDependencies:
- supports-color
- ipx@2.1.0(ioredis@5.4.1):
+ ipx@2.1.0:
dependencies:
'@fastify/accept-negotiator': 1.1.0
citty: 0.1.6
@@ -9724,7 +9699,7 @@ snapshots:
negotiator@0.6.3: {}
- nitropack@2.9.7(magicast@0.3.4):
+ nitropack@2.9.7:
dependencies:
'@cloudflare/kv-asset-handler': 0.3.4
'@netlify/functions': 2.8.1
@@ -9880,17 +9855,31 @@ snapshots:
optionalDependencies:
fsevents: 2.3.3
- nuxt@3.12.4(@parcel/watcher@2.4.1)(@types/node@22.2.0)(eslint@9.0.0-rc.0)(ioredis@5.4.1)(magicast@0.3.4)(optionator@0.9.4)(rollup@4.20.0)(terser@5.31.5)(typescript@5.5.4)(vite@5.4.0(@types/node@22.2.0)(terser@5.31.5)):
+ nuxt-auth-utils@0.3.2:
+ dependencies:
+ '@nuxt/kit': 3.12.4(magicast@0.3.4)
+ defu: 6.1.4
+ hookable: 5.5.3
+ ofetch: 1.3.4
+ ohash: 1.1.3
+ pathe: 1.1.2
+ uncrypto: 0.1.3
+ transitivePeerDependencies:
+ - magicast
+ - rollup
+ - supports-color
+
+ nuxt@3.12.4(eslint@8.57.0)(typescript@5.5.4)(vite@5.4.0):
dependencies:
'@nuxt/devalue': 2.0.2
- '@nuxt/devtools': 1.3.9(rollup@4.20.0)(vite@5.4.0(@types/node@22.2.0)(terser@5.31.5))
- '@nuxt/kit': 3.12.4(magicast@0.3.4)(rollup@4.20.0)
- '@nuxt/schema': 3.12.4(rollup@4.20.0)
- '@nuxt/telemetry': 2.5.4(magicast@0.3.4)(rollup@4.20.0)
- '@nuxt/vite-builder': 3.12.4(@types/node@22.2.0)(eslint@9.0.0-rc.0)(magicast@0.3.4)(optionator@0.9.4)(rollup@4.20.0)(terser@5.31.5)(typescript@5.5.4)(vue@3.4.37(typescript@5.5.4))
+ '@nuxt/devtools': 1.3.9(vite@5.4.0)
+ '@nuxt/kit': 3.12.4(magicast@0.3.4)
+ '@nuxt/schema': 3.12.4
+ '@nuxt/telemetry': 2.5.4
+ '@nuxt/vite-builder': 3.12.4(eslint@8.57.0)(typescript@5.5.4)(vue@3.4.37)
'@unhead/dom': 1.9.16
'@unhead/ssr': 1.9.16
- '@unhead/vue': 1.9.16(vue@3.4.37(typescript@5.5.4))
+ '@unhead/vue': 1.9.16(vue@3.4.37)
'@vue/shared': 3.4.37
acorn: 8.12.1
c12: 1.11.1(magicast@0.3.4)
@@ -9914,7 +9903,7 @@ snapshots:
knitwork: 1.1.0
magic-string: 0.30.11
mlly: 1.7.1
- nitropack: 2.9.7(magicast@0.3.4)
+ nitropack: 2.9.7
nuxi: 3.12.0
nypm: 0.3.9
ofetch: 1.3.4
@@ -9934,16 +9923,13 @@ snapshots:
unenv: 1.10.0
unimport: 3.10.0(rollup@4.20.0)
unplugin: 1.12.1
- unplugin-vue-router: 0.10.3(rollup@4.20.0)(vue-router@4.4.3(vue@3.4.37(typescript@5.5.4)))(vue@3.4.37(typescript@5.5.4))
+ unplugin-vue-router: 0.10.3(vue-router@4.4.3)(vue@3.4.37)
unstorage: 1.10.2(ioredis@5.4.1)
untyped: 1.4.2
vue: 3.4.37(typescript@5.5.4)
vue-bundle-renderer: 2.1.0
vue-devtools-stub: 0.1.0
- vue-router: 4.4.3(vue@3.4.37(typescript@5.5.4))
- optionalDependencies:
- '@parcel/watcher': 2.4.1
- '@types/node': 22.2.0
+ vue-router: 4.4.3(vue@3.4.37)
transitivePeerDependencies:
- '@azure/app-configuration'
- '@azure/cosmos'
@@ -10263,9 +10249,8 @@ snapshots:
postcss-load-config@4.0.2(postcss@8.4.41):
dependencies:
lilconfig: 3.1.2
- yaml: 2.5.0
- optionalDependencies:
postcss: 8.4.41
+ yaml: 2.5.0
postcss-merge-longhand@7.0.3(postcss@8.4.41):
dependencies:
@@ -10685,10 +10670,9 @@ snapshots:
dependencies:
open: 8.4.2
picomatch: 2.3.1
+ rollup: 4.20.0
source-map: 0.7.4
yargs: 17.7.2
- optionalDependencies:
- rollup: 4.20.0
rollup@4.20.0:
dependencies:
@@ -11300,11 +11284,11 @@ snapshots:
universalify@2.0.1: {}
- unplugin-vue-router@0.10.3(rollup@4.20.0)(vue-router@4.4.3(vue@3.4.37(typescript@5.5.4)))(vue@3.4.37(typescript@5.5.4)):
+ unplugin-vue-router@0.10.3(vue-router@4.4.3)(vue@3.4.37):
dependencies:
'@babel/types': 7.25.2
'@rollup/pluginutils': 5.1.0(rollup@4.20.0)
- '@vue-macros/common': 1.12.2(rollup@4.20.0)(vue@3.4.37(typescript@5.5.4))
+ '@vue-macros/common': 1.12.2(vue@3.4.37)
ast-walker-scope: 0.6.2
chokidar: 3.6.0
fast-glob: 3.3.2
@@ -11314,9 +11298,8 @@ snapshots:
pathe: 1.1.2
scule: 1.3.0
unplugin: 1.12.1
+ vue-router: 4.4.3(vue@3.4.37)
yaml: 2.5.0
- optionalDependencies:
- vue-router: 4.4.3(vue@3.4.37(typescript@5.5.4))
transitivePeerDependencies:
- rollup
- vue
@@ -11334,14 +11317,13 @@ snapshots:
chokidar: 3.6.0
destr: 2.0.3
h3: 1.12.0
+ ioredis: 5.4.1
listhen: 1.7.2
lru-cache: 10.4.3
mri: 1.2.0
node-fetch-native: 1.6.4
ofetch: 1.3.4
ufo: 1.5.4
- optionalDependencies:
- ioredis: 5.4.1
transitivePeerDependencies:
- uWebSockets.js
@@ -11411,17 +11393,17 @@ snapshots:
unist-util-stringify-position: 4.0.0
vfile-message: 4.0.2
- vite-hot-client@0.2.3(vite@5.4.0(@types/node@22.2.0)(terser@5.31.5)):
+ vite-hot-client@0.2.3(vite@5.4.0):
dependencies:
- vite: 5.4.0(@types/node@22.2.0)(terser@5.31.5)
+ vite: 5.4.0
- vite-node@2.0.5(@types/node@22.2.0)(terser@5.31.5):
+ vite-node@2.0.5:
dependencies:
cac: 6.7.14
debug: 4.3.6
pathe: 1.1.2
tinyrainbow: 1.2.0
- vite: 5.4.0(@types/node@22.2.0)(terser@5.31.5)
+ vite: 5.4.0
transitivePeerDependencies:
- '@types/node'
- less
@@ -11433,31 +11415,30 @@ snapshots:
- supports-color
- terser
- vite-plugin-checker@0.7.2(eslint@9.0.0-rc.0)(optionator@0.9.4)(typescript@5.5.4)(vite@5.4.0(@types/node@22.2.0)(terser@5.31.5)):
+ vite-plugin-checker@0.7.2(eslint@8.57.0)(typescript@5.5.4)(vite@5.4.0):
dependencies:
'@babel/code-frame': 7.24.7
ansi-escapes: 4.3.2
chalk: 4.1.2
chokidar: 3.6.0
commander: 8.3.0
+ eslint: 8.57.0
fast-glob: 3.3.2
fs-extra: 11.2.0
npm-run-path: 4.0.1
strip-ansi: 6.0.1
tiny-invariant: 1.3.3
- vite: 5.4.0(@types/node@22.2.0)(terser@5.31.5)
+ typescript: 5.5.4
+ vite: 5.4.0
vscode-languageclient: 7.0.0
vscode-languageserver: 7.0.0
vscode-languageserver-textdocument: 1.0.12
vscode-uri: 3.0.8
- optionalDependencies:
- eslint: 9.0.0-rc.0
- optionator: 0.9.4
- typescript: 5.5.4
- vite-plugin-inspect@0.8.5(@nuxt/kit@3.12.4(magicast@0.3.4)(rollup@4.20.0))(rollup@4.20.0)(vite@5.4.0(@types/node@22.2.0)(terser@5.31.5)):
+ vite-plugin-inspect@0.8.5(@nuxt/kit@3.12.4)(vite@5.4.0):
dependencies:
'@antfu/utils': 0.7.10
+ '@nuxt/kit': 3.12.4(magicast@0.3.4)
'@rollup/pluginutils': 5.1.0(rollup@4.20.0)
debug: 4.3.6
error-stack-parser-es: 0.1.5
@@ -11466,14 +11447,12 @@ snapshots:
perfect-debounce: 1.0.0
picocolors: 1.0.1
sirv: 2.0.4
- vite: 5.4.0(@types/node@22.2.0)(terser@5.31.5)
- optionalDependencies:
- '@nuxt/kit': 3.12.4(magicast@0.3.4)(rollup@4.20.0)
+ vite: 5.4.0
transitivePeerDependencies:
- rollup
- supports-color
- vite-plugin-vue-inspector@5.1.3(vite@5.4.0(@types/node@22.2.0)(terser@5.31.5)):
+ vite-plugin-vue-inspector@5.1.3(vite@5.4.0):
dependencies:
'@babel/core': 7.25.2
'@babel/plugin-proposal-decorators': 7.24.7(@babel/core@7.25.2)
@@ -11484,19 +11463,17 @@ snapshots:
'@vue/compiler-dom': 3.4.37
kolorist: 1.8.0
magic-string: 0.30.11
- vite: 5.4.0(@types/node@22.2.0)(terser@5.31.5)
+ vite: 5.4.0
transitivePeerDependencies:
- supports-color
- vite@5.4.0(@types/node@22.2.0)(terser@5.31.5):
+ vite@5.4.0:
dependencies:
esbuild: 0.21.5
postcss: 8.4.41
rollup: 4.20.0
optionalDependencies:
- '@types/node': 22.2.0
fsevents: 2.3.3
- terser: 5.31.5
vscode-jsonrpc@6.0.0: {}
@@ -11525,16 +11502,16 @@ snapshots:
dependencies:
ufo: 1.5.4
- vue-demi@0.14.10(vue@3.4.37(typescript@5.5.4)):
+ vue-demi@0.14.10(vue@3.4.37):
dependencies:
vue: 3.4.37(typescript@5.5.4)
vue-devtools-stub@0.1.0: {}
- vue-eslint-parser@9.4.3(eslint@9.0.0-rc.0):
+ vue-eslint-parser@9.4.3(eslint@8.57.0):
dependencies:
debug: 4.3.6
- eslint: 9.0.0-rc.0
+ eslint: 8.57.0
eslint-scope: 7.2.2
eslint-visitor-keys: 3.4.3
espree: 9.6.1
@@ -11544,12 +11521,12 @@ snapshots:
transitivePeerDependencies:
- supports-color
- vue-router@4.4.3(vue@3.4.37(typescript@5.5.4)):
+ vue-router@4.4.3(vue@3.4.37):
dependencies:
'@vue/devtools-api': 6.6.3
vue: 3.4.37(typescript@5.5.4)
- vue3-smooth-dnd@0.0.6(vue@3.4.37(typescript@5.5.4)):
+ vue3-smooth-dnd@0.0.6(vue@3.4.37):
dependencies:
smooth-dnd: 0.12.1
vue: 3.4.37(typescript@5.5.4)
@@ -11559,9 +11536,8 @@ snapshots:
'@vue/compiler-dom': 3.4.37
'@vue/compiler-sfc': 3.4.37
'@vue/runtime-dom': 3.4.37
- '@vue/server-renderer': 3.4.37(vue@3.4.37(typescript@5.5.4))
+ '@vue/server-renderer': 3.4.37(vue@3.4.37)
'@vue/shared': 3.4.37
- optionalDependencies:
typescript: 5.5.4
web-namespaces@2.0.1: {}
diff --git a/server/middleware/auth.ts b/server/middleware/auth.ts
deleted file mode 100644
index 1729db4..0000000
--- a/server/middleware/auth.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-export default defineEventHandler(async (event) => {
- const gatedRoutes = [
- 'logout',
- '/api/me',
- '/api/token',
- ]
-
- const token = auth.bearer(event)
- if (token && auth.verify(useRuntimeConfig(event), token) === true)
- await auth.set(token)
- if (gatedRoutes.some(route => getRequestURL(event).pathname.startsWith(route)))
- if (!auth.user())
- return metapi().error(event, 'Not Authenticated', 401)
-})
diff --git a/server/routes/cartridge.ts b/server/routes/cartridge.ts
index 87d6b3d..2b1dee0 100644
--- a/server/routes/cartridge.ts
+++ b/server/routes/cartridge.ts
@@ -2,11 +2,11 @@ import { z } from 'zod'
import { cartridgeContents, cartridgeMgs, cartridgeMls } from '~/utils/shared'
const index = defineEventHandler(async (event) => {
- if (!middleware.requireAuth()) return metapi().notFound(event)
+ const { user } = await requireUserSession(event)
return metapi().render(
await prisma.cartridge.findMany({
where: {
- userId: auth.user().id,
+ userId: user.id,
},
include: {
pen: true,
@@ -17,6 +17,7 @@ const index = defineEventHandler(async (event) => {
})
const create = defineEventHandler(async (event) => {
+ const { user } = await requireUserSession(event)
const schema = z.object({
content: z.enum(cartridgeContents as [string, ...string[]]),
ml: z.enum(cartridgeMls as [string, ...string[]]),
@@ -29,7 +30,7 @@ const create = defineEventHandler(async (event) => {
content: parsed.data.content,
ml: parsed.data.ml,
mg: parsed.data.mg,
- userId: auth.user().id,
+ userId: user.id,
},
})
@@ -37,6 +38,7 @@ const create = defineEventHandler(async (event) => {
})
const get = defineEventHandler(async (event) => {
+ const { user } = await requireUserSession(event)
const schema = z.object({ id: z.number() })
const parsed = schema.safeParse({ id: event.context.params?.id })
if (!parsed.success) return metapi().error(event, parsed.error.issues, 403)
@@ -44,17 +46,18 @@ const get = defineEventHandler(async (event) => {
return metapi().renderNullError(event, await prisma.cartridge.findUnique({
where: {
id: parsed.data.id,
- userId: auth.user().id,
+ userId: user.id,
},
}))
})
const remove = defineEventHandler(async (event) => {
+ const { user } = await requireUserSession(event)
const id = event.context.params?.id
await prisma.cartridge.delete({
where: {
id: Number.parseInt(id as string),
- userId: auth.user().id,
+ userId: user.id,
},
})
return metapi().success('cartridge deleted')
diff --git a/server/routes/logout.ts b/server/routes/logout.ts
index 279accd..faae91e 100644
--- a/server/routes/logout.ts
+++ b/server/routes/logout.ts
@@ -1,11 +1,11 @@
export default defineEventHandler(async (event) => {
+ const { user } = await requireUserSession(event)
await prisma.token.delete({
where: {
- userId: auth.user().id,
- hash: auth.hash(),
+ userId: user.id,
+ hash: user.hash,
},
})
- deleteCookie(event, 'token')
- auth.clear()
+ await clearUserSession(event)
return metapi().success('logged out')
})
diff --git a/server/routes/me.ts b/server/routes/me.ts
index 56f3150..9e830e3 100644
--- a/server/routes/me.ts
+++ b/server/routes/me.ts
@@ -1,9 +1,10 @@
-export default defineEventHandler(async () => {
+export default defineEventHandler(async (event) => {
+ const { user } = await requireUserSession(event)
/*
await prisma.$queryRaw`UPDATE bio.users SET updatedAt = NOW() WHERE id = ${auth.user().id};`
await prisma.$queryRaw`UPDATE bio.tokens SET updatedAt = NOW() WHERE hash = ${auth.hash()};`
*/
- await prisma.user.update({ where: { id: auth.user().id }, data: { updatedAt: new Date() } })
- await prisma.token.update({ where: { hash: auth.hash() }, data: { updatedAt: new Date() } })
- return metapi().render(auth.user())
+ await prisma.user.update({ where: { id: user.id }, data: { updatedAt: new Date() } })
+ await prisma.token.update({ where: { userId: user.id, hash: user.hash }, data: { updatedAt: new Date() } })
+ return metapi().render(user)
})
diff --git a/server/routes/oauth.ts b/server/routes/oauth.ts
index 447c137..3715042 100644
--- a/server/routes/oauth.ts
+++ b/server/routes/oauth.ts
@@ -1,8 +1,7 @@
import crypto from 'node:crypto'
-import type { Prisma, User } from '@prisma/client'
-import type { OAuthPayload, TokenLocation } from '~/types/oauth'
-import { cookieOptions } from '~/utils/shared'
-import type { UserPayload } from '~/types/models'
+import type { Prisma } from '@prisma/client'
+import type { User, UserPayload } from '~/types/models'
+import type { TokenLocation } from '~/types/oauth'
const redirect = defineEventHandler(async (event) => {
const provider = oauthProvider(event.context.params?.provider, useRuntimeConfig(event))
@@ -22,7 +21,7 @@ const callback = defineEventHandler(async (event) => {
where: {
email: userPayload.info.email,
},
- })
+ }) as unknown as User
if (!user)
user = await prisma.user.create({
@@ -43,7 +42,7 @@ const callback = defineEventHandler(async (event) => {
],
},
},
- })
+ }) as unknown as User
else
await prisma.provider.upsert({
where: {
@@ -86,7 +85,8 @@ const callback = defineEventHandler(async (event) => {
},
})
- setCookie(event, 'token', token.hash, cookieOptions)
+ user.hash = token.hash
+ await setUserSession(event, { user })
event.node.res.setHeader('Content-Type', 'text/html')
event.node.res.end(``)
diff --git a/server/routes/pen.ts b/server/routes/pen.ts
index 2407f0d..120e306 100644
--- a/server/routes/pen.ts
+++ b/server/routes/pen.ts
@@ -2,11 +2,11 @@ import { z } from 'zod'
import { penColors } from '~/utils/shared'
const index = defineEventHandler(async (event) => {
- if (!middleware.requireAuth()) return metapi().notFound(event)
+ const { user } = await requireUserSession(event)
return metapi().render(
await prisma.pen.findMany({
where: {
- userId: BigInt(auth.user().id),
+ userId: BigInt(user.id),
},
include: {
cartridge: {
@@ -20,16 +20,15 @@ const index = defineEventHandler(async (event) => {
})
const create = defineEventHandler(async (event) => {
- const schema = z.object({
- color: z.enum(penColors as [string, ...string[]]),
- })
+ const { user } = await requireUserSession(event)
+ const schema = z.object({ color: z.enum(penColors as [string, ...string[]]) })
const parsed = schema.safeParse(await readBody(event))
if (!parsed.success) return metapi().error(event, parsed.error.issues, 400)
const pen = await prisma.pen.create({
data: {
color: parsed.data.color,
// user: { connect: { id: BigInt(auth.user().id) } },
- userId: BigInt(auth.user().id),
+ userId: BigInt(user.id),
cartridgeId: null,
},
})
@@ -38,6 +37,7 @@ const create = defineEventHandler(async (event) => {
})
const update = defineEventHandler(async (event) => {
+ const { user } = await requireUserSession(event)
const schema = z.object({
id: z.number(),
cartridgeId: z.number().optional(),
@@ -50,7 +50,7 @@ const update = defineEventHandler(async (event) => {
const pen = await prisma.pen.update({
where: {
id: parsed.data.id,
- userId: BigInt(auth.user().id),
+ userId: user.id,
},
data: {
cartridgeId: parsed.data.cartridgeId ? BigInt(parsed.data.cartridgeId) : null,
@@ -61,6 +61,7 @@ const update = defineEventHandler(async (event) => {
})
const get = defineEventHandler(async (event) => {
+ const { user } = await requireUserSession(event)
const schema = z.object({ id: z.number() })
const parsed = schema.safeParse({ id: Number.parseInt(event.context.params?.id as string) })
if (!parsed.success) return metapi().error(event, parsed.error.issues, 403)
@@ -68,17 +69,18 @@ const get = defineEventHandler(async (event) => {
return metapi().renderNullError(event, await prisma.pen.findUnique({
where: {
id: parsed.data.id,
- userId: BigInt(auth.user().id),
+ userId: user.id,
},
}))
})
const remove = defineEventHandler(async (event) => {
+ const { user } = await requireUserSession(event)
const id = event.context.params?.id
const pen = await prisma.pen.findFirst({
where: {
id: Number.parseInt(id as string),
- userId: BigInt(auth.user().id),
+ userId: user.id,
},
})
@@ -88,7 +90,7 @@ const remove = defineEventHandler(async (event) => {
await prisma.pen.delete({
where: {
id: Number.parseInt(id as string),
- userId: BigInt(auth.user().id),
+ userId: user.id,
},
})
return metapi().success('pen deleted')
diff --git a/server/routes/token.ts b/server/routes/token.ts
index d7ab371..7b9dad4 100644
--- a/server/routes/token.ts
+++ b/server/routes/token.ts
@@ -1,25 +1,27 @@
import { z } from 'zod'
const index = defineEventHandler(async (event) => {
+ const { user } = await requireUserSession(event)
return metapi().render(
await prisma.$extends({
result: {
token: {
isCurrent: {
needs: { hash: true },
- compute({ hash }) { return hash === auth.bearer(event) },
+ compute({ hash }) { return hash === user.hash },
},
},
},
}).token.findMany({
where: {
- userId: auth.user().id,
+ userId: user.id,
},
}),
)
})
const get = defineEventHandler(async (event) => {
+ const { user } = await requireUserSession(event)
const schema = z.object({ id: z.number() })
const parsed = schema.safeParse({ id: event.context.params?.id })
if (!parsed.success) return metapi().error(event, parsed.error.issues, 403)
@@ -27,17 +29,18 @@ const get = defineEventHandler(async (event) => {
return metapi().renderNullError(event, await prisma.token.findUnique({
where: {
id: parsed.data.id,
- userId: auth.user().id,
+ userId: user.id,
},
}))
})
const remove = defineEventHandler(async (event) => {
+ const { user } = await requireUserSession(event)
const id = event.context.params?.id
await prisma.token.delete({
where: {
id: Number.parseInt(id as string),
- userId: auth.user().id,
+ userId: user.id,
},
})
return metapi().success('token deleted')
diff --git a/server/routes/user.ts b/server/routes/user.ts
index a7c0719..7a93e05 100644
--- a/server/routes/user.ts
+++ b/server/routes/user.ts
@@ -1,7 +1,8 @@
import { z } from 'zod'
const index = defineEventHandler(async (event) => {
- if (!middleware.requireAdmin()) return metapi().notFound(event)
+ const { user } = await requireUserSession(event)
+ if (!user.isAdmin) return metapi().notFound(event)
return metapi().render(
await prisma.user.findMany({
include: {
@@ -24,18 +25,19 @@ const index = defineEventHandler(async (event) => {
})
const get = defineEventHandler(async (event) => {
- if (!middleware.requireAdmin()) return metapi().notFound(event)
+ const { user } = await requireUserSession(event)
+ if (!user.isAdmin) return metapi().notFound(event)
const schema = z.object({ id: z.number() })
const parsed = schema.safeParse({ id: Number.parseInt(event.context.params?.id as string) })
if (!parsed.success) return metapi().error(event, parsed.error.issues, 403)
- const user = await prisma.user.findUnique({
+ const userModel = await prisma.user.findUnique({
where: {
id: parsed.data.id,
},
})
- return metapi().renderNullError(event, user)
+ return metapi().renderNullError(event, userModel)
})
export default {
diff --git a/server/utils/auth.ts b/server/utils/auth.ts
deleted file mode 100644
index b5a59e0..0000000
--- a/server/utils/auth.ts
+++ /dev/null
@@ -1,44 +0,0 @@
-import type { H3Event } from 'h3'
-import type { Token } from '@prisma/client'
-import type { RuntimeConfig } from 'nuxt/schema'
-import type { User } from '~/types/models'
-
-let token: Token & { user: User } | null = null
-
-const bearer = (event: H3Event): string | undefined =>
- (event.node.req.headers.authentication as string)?.split(' ')[1] || getCookie(event, 'token')
-
-const set = async (hash: string): Promise => {
- token = await prisma.token.findUnique({
- where: {
- hash,
- },
- include: {
- user: true,
- },
- }) as (Token & { user: User }) | null
- return token?.user as User
-}
-
-const verify = (cfg: RuntimeConfig, token?: string): boolean =>
- !!token && token.length === (65 + cfg.public.prefix.length)
-
-const isAuth = (): boolean => !!token
-
-const user = (): User => token?.user as User
-
-const hash = (): string | undefined => token?.hash
-
-const clear = (): void => {
- token = null
-}
-
-export const auth = {
- set,
- verify,
- isAuth,
- user,
- hash,
- clear,
- bearer,
-}
diff --git a/server/utils/middleware.ts b/server/utils/middleware.ts
deleted file mode 100644
index 54b47c0..0000000
--- a/server/utils/middleware.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-const requireAuth = () => auth.user() !== undefined
-const requireAdmin = () => requireAuth() && auth.user().isAdmin
-
-export const middleware = {
- requireAuth,
- requireAdmin,
-}