mirror of
https://github.com/BradNut/boredgame
synced 2025-09-08 17:40:22 +00:00
Slowly reverting tsyringe to test it that works better.
This commit is contained in:
parent
4dbc93f819
commit
e655c0d319
26 changed files with 358 additions and 406 deletions
|
|
@ -1 +1 @@
|
|||
22.1.0
|
||||
20.16.0
|
||||
26
package.json
26
package.json
|
|
@ -22,24 +22,21 @@
|
|||
"site:update": "pnpm update -i -L",
|
||||
"test:unit": "vitest"
|
||||
},
|
||||
"engines": {
|
||||
"node": "22.x"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@melt-ui/pp": "^0.3.2",
|
||||
"@melt-ui/svelte": "^0.83.0",
|
||||
"@playwright/test": "^1.45.3",
|
||||
"@sveltejs/adapter-auto": "^3.2.2",
|
||||
"@sveltejs/enhanced-img": "^0.3.1",
|
||||
"@sveltejs/kit": "^2.5.18",
|
||||
"@sveltejs/kit": "^2.5.20",
|
||||
"@sveltejs/vite-plugin-svelte": "^3.1.1",
|
||||
"@types/cookie": "^0.6.0",
|
||||
"@types/node": "^20.14.13",
|
||||
"@types/node": "^20.14.14",
|
||||
"@types/pg": "^8.11.6",
|
||||
"@typescript-eslint/eslint-plugin": "^7.17.0",
|
||||
"@typescript-eslint/parser": "^7.17.0",
|
||||
"@typescript-eslint/eslint-plugin": "^7.18.0",
|
||||
"@typescript-eslint/parser": "^7.18.0",
|
||||
"autoprefixer": "^10.4.19",
|
||||
"drizzle-kit": "^0.23.0",
|
||||
"drizzle-kit": "^0.23.1",
|
||||
"eslint": "^8.57.0",
|
||||
"eslint-config-prettier": "^9.1.0",
|
||||
"eslint-plugin-svelte": "^2.43.0",
|
||||
|
|
@ -58,7 +55,7 @@
|
|||
"satori": "^0.10.14",
|
||||
"satori-html": "^0.3.2",
|
||||
"svelte": "5.0.0-next.175",
|
||||
"svelte-check": "^3.8.4",
|
||||
"svelte-check": "^3.8.5",
|
||||
"svelte-headless-table": "^0.18.2",
|
||||
"svelte-meta-tags": "^3.1.2",
|
||||
"svelte-preprocess": "^6.0.2",
|
||||
|
|
@ -69,7 +66,7 @@
|
|||
"tailwindcss": "^3.4.7",
|
||||
"ts-node": "^10.9.2",
|
||||
"tslib": "^2.6.3",
|
||||
"tsx": "^4.16.2",
|
||||
"tsx": "^4.16.5",
|
||||
"typescript": "^5.5.4",
|
||||
"vite": "^5.3.5",
|
||||
"vitest": "^1.6.0",
|
||||
|
|
@ -86,14 +83,15 @@
|
|||
"@lukeed/uuid": "^2.0.1",
|
||||
"@neondatabase/serverless": "^0.9.4",
|
||||
"@paralleldrive/cuid2": "^2.2.2",
|
||||
"@resvg/resvg-js": "^2.6.2",
|
||||
"@sveltejs/adapter-node": "^5.2.0",
|
||||
"@sveltejs/adapter-vercel": "^5.4.1",
|
||||
"@types/feather-icons": "^4.29.4",
|
||||
"@vercel/og": "^0.5.20",
|
||||
"arctic": "^1.9.2",
|
||||
"bits-ui": "^0.21.12",
|
||||
"bits-ui": "^0.21.13",
|
||||
"boardgamegeekclient": "^1.9.1",
|
||||
"bullmq": "^5.11.0",
|
||||
"bullmq": "^5.12.0",
|
||||
"class-variance-authority": "^0.7.0",
|
||||
"clsx": "^2.1.1",
|
||||
"cookie": "^0.6.0",
|
||||
|
|
@ -103,7 +101,7 @@
|
|||
"feather-icons": "^4.29.2",
|
||||
"formsnap": "^1.0.1",
|
||||
"handlebars": "^4.7.8",
|
||||
"hono": "^4.5.2",
|
||||
"hono": "^4.5.3",
|
||||
"hono-rate-limiter": "^0.4.0",
|
||||
"html-entities": "^2.5.2",
|
||||
"iconify-icon": "^2.1.0",
|
||||
|
|
@ -118,8 +116,6 @@
|
|||
"qrcode": "^1.5.3",
|
||||
"radix-svelte": "^0.9.0",
|
||||
"rate-limit-redis": "^4.2.0",
|
||||
"reflect-metadata": "^0.2.2",
|
||||
"@resvg/resvg-js": "^2.6.2",
|
||||
"svelte-french-toast": "^1.2.0",
|
||||
"svelte-lazy-loader": "^1.0.0",
|
||||
"tailwind-merge": "^2.4.0",
|
||||
|
|
|
|||
357
pnpm-lock.yaml
357
pnpm-lock.yaml
|
|
@ -13,7 +13,7 @@ importers:
|
|||
version: 5.0.13
|
||||
'@hono/zod-validator':
|
||||
specifier: ^0.2.2
|
||||
version: 0.2.2(hono@4.5.2)(zod@3.23.8)
|
||||
version: 0.2.2(hono@4.5.3)(zod@3.23.8)
|
||||
'@iconify-icons/line-md':
|
||||
specifier: ^1.2.30
|
||||
version: 1.2.30
|
||||
|
|
@ -40,10 +40,10 @@ importers:
|
|||
version: 2.6.2
|
||||
'@sveltejs/adapter-node':
|
||||
specifier: ^5.2.0
|
||||
version: 5.2.0(@sveltejs/kit@2.5.18(@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.13)(sass@1.77.8)))(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.13)(sass@1.77.8)))
|
||||
version: 5.2.0(@sveltejs/kit@2.5.20(@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.14)(sass@1.77.8)))(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.14)(sass@1.77.8)))
|
||||
'@sveltejs/adapter-vercel':
|
||||
specifier: ^5.4.1
|
||||
version: 5.4.1(@sveltejs/kit@2.5.18(@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.13)(sass@1.77.8)))(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.13)(sass@1.77.8)))
|
||||
version: 5.4.1(@sveltejs/kit@2.5.20(@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.14)(sass@1.77.8)))(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.14)(sass@1.77.8)))
|
||||
'@types/feather-icons':
|
||||
specifier: ^4.29.4
|
||||
version: 4.29.4
|
||||
|
|
@ -54,14 +54,14 @@ importers:
|
|||
specifier: ^1.9.2
|
||||
version: 1.9.2
|
||||
bits-ui:
|
||||
specifier: ^0.21.12
|
||||
version: 0.21.12(svelte@5.0.0-next.175)
|
||||
specifier: ^0.21.13
|
||||
version: 0.21.13(svelte@5.0.0-next.175)
|
||||
boardgamegeekclient:
|
||||
specifier: ^1.9.1
|
||||
version: 1.9.1
|
||||
bullmq:
|
||||
specifier: ^5.11.0
|
||||
version: 5.11.0
|
||||
specifier: ^5.12.0
|
||||
version: 5.12.0
|
||||
class-variance-authority:
|
||||
specifier: ^0.7.0
|
||||
version: 0.7.0
|
||||
|
|
@ -85,16 +85,16 @@ importers:
|
|||
version: 4.29.2
|
||||
formsnap:
|
||||
specifier: ^1.0.1
|
||||
version: 1.0.1(svelte@5.0.0-next.175)(sveltekit-superforms@2.16.1(@sveltejs/kit@2.5.18(@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.13)(sass@1.77.8)))(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.13)(sass@1.77.8)))(svelte@5.0.0-next.175))
|
||||
version: 1.0.1(svelte@5.0.0-next.175)(sveltekit-superforms@2.16.1(@sveltejs/kit@2.5.20(@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.14)(sass@1.77.8)))(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.14)(sass@1.77.8)))(svelte@5.0.0-next.175))
|
||||
handlebars:
|
||||
specifier: ^4.7.8
|
||||
version: 4.7.8
|
||||
hono:
|
||||
specifier: ^4.5.2
|
||||
version: 4.5.2
|
||||
specifier: ^4.5.3
|
||||
version: 4.5.3
|
||||
hono-rate-limiter:
|
||||
specifier: ^0.4.0
|
||||
version: 0.4.0(hono@4.5.2)
|
||||
version: 0.4.0(hono@4.5.3)
|
||||
html-entities:
|
||||
specifier: ^2.5.2
|
||||
version: 2.5.2
|
||||
|
|
@ -148,10 +148,10 @@ importers:
|
|||
version: 2.4.0
|
||||
tailwind-variants:
|
||||
specifier: ^0.2.1
|
||||
version: 0.2.1(tailwindcss@3.4.7(ts-node@10.9.2(@types/node@20.14.13)(typescript@5.5.4)))
|
||||
version: 0.2.1(tailwindcss@3.4.7(ts-node@10.9.2(@types/node@20.14.14)(typescript@5.5.4)))
|
||||
tailwindcss-animate:
|
||||
specifier: ^1.0.7
|
||||
version: 1.0.7(tailwindcss@3.4.7(ts-node@10.9.2(@types/node@20.14.13)(typescript@5.5.4)))
|
||||
version: 1.0.7(tailwindcss@3.4.7(ts-node@10.9.2(@types/node@20.14.14)(typescript@5.5.4)))
|
||||
zod-to-json-schema:
|
||||
specifier: ^3.23.2
|
||||
version: 3.23.2(zod@3.23.8)
|
||||
|
|
@ -167,37 +167,37 @@ importers:
|
|||
version: 1.45.3
|
||||
'@sveltejs/adapter-auto':
|
||||
specifier: ^3.2.2
|
||||
version: 3.2.2(@sveltejs/kit@2.5.18(@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.13)(sass@1.77.8)))(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.13)(sass@1.77.8)))
|
||||
version: 3.2.2(@sveltejs/kit@2.5.20(@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.14)(sass@1.77.8)))(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.14)(sass@1.77.8)))
|
||||
'@sveltejs/enhanced-img':
|
||||
specifier: ^0.3.1
|
||||
version: 0.3.1(rollup@4.18.1)(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.13)(sass@1.77.8))
|
||||
version: 0.3.1(rollup@4.18.1)(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.14)(sass@1.77.8))
|
||||
'@sveltejs/kit':
|
||||
specifier: ^2.5.18
|
||||
version: 2.5.18(@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.13)(sass@1.77.8)))(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.13)(sass@1.77.8))
|
||||
specifier: ^2.5.20
|
||||
version: 2.5.20(@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.14)(sass@1.77.8)))(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.14)(sass@1.77.8))
|
||||
'@sveltejs/vite-plugin-svelte':
|
||||
specifier: ^3.1.1
|
||||
version: 3.1.1(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.13)(sass@1.77.8))
|
||||
version: 3.1.1(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.14)(sass@1.77.8))
|
||||
'@types/cookie':
|
||||
specifier: ^0.6.0
|
||||
version: 0.6.0
|
||||
'@types/node':
|
||||
specifier: ^20.14.13
|
||||
version: 20.14.13
|
||||
specifier: ^20.14.14
|
||||
version: 20.14.14
|
||||
'@types/pg':
|
||||
specifier: ^8.11.6
|
||||
version: 8.11.6
|
||||
'@typescript-eslint/eslint-plugin':
|
||||
specifier: ^7.17.0
|
||||
version: 7.17.0(@typescript-eslint/parser@7.17.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4)
|
||||
specifier: ^7.18.0
|
||||
version: 7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4)
|
||||
'@typescript-eslint/parser':
|
||||
specifier: ^7.17.0
|
||||
version: 7.17.0(eslint@8.57.0)(typescript@5.5.4)
|
||||
specifier: ^7.18.0
|
||||
version: 7.18.0(eslint@8.57.0)(typescript@5.5.4)
|
||||
autoprefixer:
|
||||
specifier: ^10.4.19
|
||||
version: 10.4.19(postcss@8.4.40)
|
||||
drizzle-kit:
|
||||
specifier: ^0.23.0
|
||||
version: 0.23.0
|
||||
specifier: ^0.23.1
|
||||
version: 0.23.1
|
||||
eslint:
|
||||
specifier: ^8.57.0
|
||||
version: 8.57.0
|
||||
|
|
@ -206,7 +206,7 @@ importers:
|
|||
version: 9.1.0(eslint@8.57.0)
|
||||
eslint-plugin-svelte:
|
||||
specifier: ^2.43.0
|
||||
version: 2.43.0(eslint@8.57.0)(svelte@5.0.0-next.175)(ts-node@10.9.2(@types/node@20.14.13)(typescript@5.5.4))
|
||||
version: 2.43.0(eslint@8.57.0)(svelte@5.0.0-next.175)(ts-node@10.9.2(@types/node@20.14.14)(typescript@5.5.4))
|
||||
just-clone:
|
||||
specifier: ^6.2.0
|
||||
version: 6.2.0
|
||||
|
|
@ -230,7 +230,7 @@ importers:
|
|||
version: 16.1.0(postcss@8.4.40)
|
||||
postcss-load-config:
|
||||
specifier: ^5.1.0
|
||||
version: 5.1.0(jiti@1.21.6)(postcss@8.4.40)(tsx@4.16.2)
|
||||
version: 5.1.0(jiti@1.21.6)(postcss@8.4.40)(tsx@4.16.5)
|
||||
postcss-preset-env:
|
||||
specifier: ^9.6.0
|
||||
version: 9.6.0(postcss@8.4.40)
|
||||
|
|
@ -253,8 +253,8 @@ importers:
|
|||
specifier: 5.0.0-next.175
|
||||
version: 5.0.0-next.175
|
||||
svelte-check:
|
||||
specifier: ^3.8.4
|
||||
version: 3.8.4(postcss-load-config@5.1.0(jiti@1.21.6)(postcss@8.4.40)(tsx@4.16.2))(postcss@8.4.40)(sass@1.77.8)(svelte@5.0.0-next.175)
|
||||
specifier: ^3.8.5
|
||||
version: 3.8.5(postcss-load-config@5.1.0(jiti@1.21.6)(postcss@8.4.40)(tsx@4.16.5))(postcss@8.4.40)(sass@1.77.8)(svelte@5.0.0-next.175)
|
||||
svelte-headless-table:
|
||||
specifier: ^0.18.2
|
||||
version: 0.18.2(svelte@5.0.0-next.175)
|
||||
|
|
@ -263,40 +263,40 @@ importers:
|
|||
version: 3.1.2(svelte@5.0.0-next.175)(typescript@5.5.4)
|
||||
svelte-preprocess:
|
||||
specifier: ^6.0.2
|
||||
version: 6.0.2(postcss-load-config@5.1.0(jiti@1.21.6)(postcss@8.4.40)(tsx@4.16.2))(postcss@8.4.40)(sass@1.77.8)(svelte@5.0.0-next.175)(typescript@5.5.4)
|
||||
version: 6.0.2(postcss-load-config@5.1.0(jiti@1.21.6)(postcss@8.4.40)(tsx@4.16.5))(postcss@8.4.40)(sass@1.77.8)(svelte@5.0.0-next.175)(typescript@5.5.4)
|
||||
svelte-sequential-preprocessor:
|
||||
specifier: ^2.0.1
|
||||
version: 2.0.1
|
||||
sveltekit-flash-message:
|
||||
specifier: ^2.4.4
|
||||
version: 2.4.4(@sveltejs/kit@2.5.18(@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.13)(sass@1.77.8)))(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.13)(sass@1.77.8)))(svelte@5.0.0-next.175)
|
||||
version: 2.4.4(@sveltejs/kit@2.5.20(@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.14)(sass@1.77.8)))(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.14)(sass@1.77.8)))(svelte@5.0.0-next.175)
|
||||
sveltekit-rate-limiter:
|
||||
specifier: ^0.5.2
|
||||
version: 0.5.2(@sveltejs/kit@2.5.18(@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.13)(sass@1.77.8)))(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.13)(sass@1.77.8)))
|
||||
version: 0.5.2(@sveltejs/kit@2.5.20(@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.14)(sass@1.77.8)))(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.14)(sass@1.77.8)))
|
||||
sveltekit-superforms:
|
||||
specifier: ^2.16.1
|
||||
version: 2.16.1(@sveltejs/kit@2.5.18(@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.13)(sass@1.77.8)))(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.13)(sass@1.77.8)))(svelte@5.0.0-next.175)
|
||||
version: 2.16.1(@sveltejs/kit@2.5.20(@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.14)(sass@1.77.8)))(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.14)(sass@1.77.8)))(svelte@5.0.0-next.175)
|
||||
tailwindcss:
|
||||
specifier: ^3.4.7
|
||||
version: 3.4.7(ts-node@10.9.2(@types/node@20.14.13)(typescript@5.5.4))
|
||||
version: 3.4.7(ts-node@10.9.2(@types/node@20.14.14)(typescript@5.5.4))
|
||||
ts-node:
|
||||
specifier: ^10.9.2
|
||||
version: 10.9.2(@types/node@20.14.13)(typescript@5.5.4)
|
||||
version: 10.9.2(@types/node@20.14.14)(typescript@5.5.4)
|
||||
tslib:
|
||||
specifier: ^2.6.3
|
||||
version: 2.6.3
|
||||
tsx:
|
||||
specifier: ^4.16.2
|
||||
version: 4.16.2
|
||||
specifier: ^4.16.5
|
||||
version: 4.16.5
|
||||
typescript:
|
||||
specifier: ^5.5.4
|
||||
version: 5.5.4
|
||||
vite:
|
||||
specifier: ^5.3.5
|
||||
version: 5.3.5(@types/node@20.14.13)(sass@1.77.8)
|
||||
version: 5.3.5(@types/node@20.14.14)(sass@1.77.8)
|
||||
vitest:
|
||||
specifier: ^1.6.0
|
||||
version: 1.6.0(@types/node@20.14.13)(sass@1.77.8)
|
||||
version: 1.6.0(@types/node@20.14.14)(sass@1.77.8)
|
||||
zod:
|
||||
specifier: ^3.23.8
|
||||
version: 3.23.8
|
||||
|
|
@ -565,6 +565,9 @@ packages:
|
|||
peerDependencies:
|
||||
postcss: ^8.4
|
||||
|
||||
'@drizzle-team/brocli@0.8.2':
|
||||
resolution: {integrity: sha512-zTrFENsqGvOkBOuHDC1pXCkDXNd2UhP4lI3gYGhQ1R1SPeAAfqzPsV1dcpMy4uNU6kB5VpU5NGhvwxVNETR02A==}
|
||||
|
||||
'@emnapi/core@0.45.0':
|
||||
resolution: {integrity: sha512-DPWjcUDQkCeEM4VnljEOEcXdAD7pp8zSZsgOujk/LGIwCXWbXJngin+MO4zbH429lzeC3WbYLGjE2MaUOwzpyw==}
|
||||
|
||||
|
|
@ -1964,8 +1967,8 @@ packages:
|
|||
svelte: ^4.0.0 || ^5.0.0-next.0
|
||||
vite: '>= 5.0.0'
|
||||
|
||||
'@sveltejs/kit@2.5.18':
|
||||
resolution: {integrity: sha512-+g06hvpVAnH7b4CDjhnTDgFWBKBiQJpuSmQeGYOuzbO3SC3tdYjRNlDCrafvDtKbGiT2uxY5Dn9qdEUGVZdWOQ==}
|
||||
'@sveltejs/kit@2.5.20':
|
||||
resolution: {integrity: sha512-47rJ5BoYwURE/Rp7FNMLp3NzdbWC9DQ/PmKd0mebxT2D/PrPxZxcLImcD3zsWdX2iS6oJk8ITJbO/N2lWnnUqA==}
|
||||
engines: {node: '>=18.13'}
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
|
|
@ -2018,8 +2021,8 @@ packages:
|
|||
'@types/json-schema@7.0.15':
|
||||
resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
|
||||
|
||||
'@types/node@20.14.13':
|
||||
resolution: {integrity: sha512-+bHoGiZb8UiQ0+WEtmph2IWQCjIqg8MDZMAV+ppRRhUZnquF5mQkP/9vpSwJClEiSM/C7fZZExPzfU0vJTyp8w==}
|
||||
'@types/node@20.14.14':
|
||||
resolution: {integrity: sha512-d64f00982fS9YoOgJkAMolK7MN8Iq3TDdVjchbYHdEmjth/DHowx82GnoA+tVUAN+7vxfYUgAzi+JXbKNd2SDQ==}
|
||||
|
||||
'@types/pg@8.11.6':
|
||||
resolution: {integrity: sha512-/2WmmBXHLsfRqzfHW7BNZ8SbYzE8OSk7i3WjFYvfgRHj7S1xj+16Je5fUKv3lVdVzk/zn9TXOqf+avFCFIE0yQ==}
|
||||
|
|
@ -2033,8 +2036,8 @@ packages:
|
|||
'@types/validator@13.12.0':
|
||||
resolution: {integrity: sha512-nH45Lk7oPIJ1RVOF6JgFI6Dy0QpHEzq4QecZhvguxYPDwT8c93prCMqAtiIttm39voZ+DDR+qkNnMpJmMBRqag==}
|
||||
|
||||
'@typescript-eslint/eslint-plugin@7.17.0':
|
||||
resolution: {integrity: sha512-pyiDhEuLM3PuANxH7uNYan1AaFs5XE0zw1hq69JBvGvE7gSuEoQl1ydtEe/XQeoC3GQxLXyOVa5kNOATgM638A==}
|
||||
'@typescript-eslint/eslint-plugin@7.18.0':
|
||||
resolution: {integrity: sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==}
|
||||
engines: {node: ^18.18.0 || >=20.0.0}
|
||||
peerDependencies:
|
||||
'@typescript-eslint/parser': ^7.0.0
|
||||
|
|
@ -2044,8 +2047,8 @@ packages:
|
|||
typescript:
|
||||
optional: true
|
||||
|
||||
'@typescript-eslint/parser@7.17.0':
|
||||
resolution: {integrity: sha512-puiYfGeg5Ydop8eusb/Hy1k7QmOU6X3nvsqCgzrB2K4qMavK//21+PzNE8qeECgNOIoertJPUC1SpegHDI515A==}
|
||||
'@typescript-eslint/parser@7.18.0':
|
||||
resolution: {integrity: sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==}
|
||||
engines: {node: ^18.18.0 || >=20.0.0}
|
||||
peerDependencies:
|
||||
eslint: ^8.56.0
|
||||
|
|
@ -2054,12 +2057,12 @@ packages:
|
|||
typescript:
|
||||
optional: true
|
||||
|
||||
'@typescript-eslint/scope-manager@7.17.0':
|
||||
resolution: {integrity: sha512-0P2jTTqyxWp9HiKLu/Vemr2Rg1Xb5B7uHItdVZ6iAenXmPo4SZ86yOPCJwMqpCyaMiEHTNqizHfsbmCFT1x9SA==}
|
||||
'@typescript-eslint/scope-manager@7.18.0':
|
||||
resolution: {integrity: sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==}
|
||||
engines: {node: ^18.18.0 || >=20.0.0}
|
||||
|
||||
'@typescript-eslint/type-utils@7.17.0':
|
||||
resolution: {integrity: sha512-XD3aaBt+orgkM/7Cei0XNEm1vwUxQ958AOLALzPlbPqb8C1G8PZK85tND7Jpe69Wualri81PLU+Zc48GVKIMMA==}
|
||||
'@typescript-eslint/type-utils@7.18.0':
|
||||
resolution: {integrity: sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==}
|
||||
engines: {node: ^18.18.0 || >=20.0.0}
|
||||
peerDependencies:
|
||||
eslint: ^8.56.0
|
||||
|
|
@ -2068,12 +2071,12 @@ packages:
|
|||
typescript:
|
||||
optional: true
|
||||
|
||||
'@typescript-eslint/types@7.17.0':
|
||||
resolution: {integrity: sha512-a29Ir0EbyKTKHnZWbNsrc/gqfIBqYPwj3F2M+jWE/9bqfEHg0AMtXzkbUkOG6QgEScxh2+Pz9OXe11jHDnHR7A==}
|
||||
'@typescript-eslint/types@7.18.0':
|
||||
resolution: {integrity: sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==}
|
||||
engines: {node: ^18.18.0 || >=20.0.0}
|
||||
|
||||
'@typescript-eslint/typescript-estree@7.17.0':
|
||||
resolution: {integrity: sha512-72I3TGq93t2GoSBWI093wmKo0n6/b7O4j9o8U+f65TVD0FS6bI2180X5eGEr8MA8PhKMvYe9myZJquUT2JkCZw==}
|
||||
'@typescript-eslint/typescript-estree@7.18.0':
|
||||
resolution: {integrity: sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==}
|
||||
engines: {node: ^18.18.0 || >=20.0.0}
|
||||
peerDependencies:
|
||||
typescript: '*'
|
||||
|
|
@ -2081,14 +2084,14 @@ packages:
|
|||
typescript:
|
||||
optional: true
|
||||
|
||||
'@typescript-eslint/utils@7.17.0':
|
||||
resolution: {integrity: sha512-r+JFlm5NdB+JXc7aWWZ3fKSm1gn0pkswEwIYsrGPdsT2GjsRATAKXiNtp3vgAAO1xZhX8alIOEQnNMl3kbTgJw==}
|
||||
'@typescript-eslint/utils@7.18.0':
|
||||
resolution: {integrity: sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==}
|
||||
engines: {node: ^18.18.0 || >=20.0.0}
|
||||
peerDependencies:
|
||||
eslint: ^8.56.0
|
||||
|
||||
'@typescript-eslint/visitor-keys@7.17.0':
|
||||
resolution: {integrity: sha512-RVGC9UhPOCsfCdI9pU++K4nD7to+jTcMIbXTSOcrLqUEW6gF2pU1UUbYJKc9cvcRSK1UDeMJ7pdMxf4bhMpV/A==}
|
||||
'@typescript-eslint/visitor-keys@7.18.0':
|
||||
resolution: {integrity: sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==}
|
||||
engines: {node: ^18.18.0 || >=20.0.0}
|
||||
|
||||
'@ungap/structured-clone@1.2.0':
|
||||
|
|
@ -2259,8 +2262,8 @@ packages:
|
|||
bindings@1.5.0:
|
||||
resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==}
|
||||
|
||||
bits-ui@0.21.12:
|
||||
resolution: {integrity: sha512-Cf0iB+ZKwA0ZjkpixrhrZK9PC6pGPFleW/65Xc/z0lpGvWaFtdOhiYEntCHHxZ0VihP3aJaG0OBhUBIbmAePaA==}
|
||||
bits-ui@0.21.13:
|
||||
resolution: {integrity: sha512-7nmOh6Ig7ND4DXZHv1FhNsY9yUGrad0+mf3tc4YN//3MgnJT1LnHtk4HZAKgmxCOe7txSX7/39LtYHbkrXokAQ==}
|
||||
peerDependencies:
|
||||
svelte: ^4.0.0 || ^5.0.0-next.118
|
||||
|
||||
|
|
@ -2306,8 +2309,8 @@ packages:
|
|||
resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==}
|
||||
engines: {node: '>=6'}
|
||||
|
||||
bullmq@5.11.0:
|
||||
resolution: {integrity: sha512-qVzyWGZqie3VHaYEgRXhId/j8ebfmj6MExEJyUByMsUJA5pVciVle3hKLer5fyMwtQ8lTMP7GwhXV/NZ+HzlRA==}
|
||||
bullmq@5.12.0:
|
||||
resolution: {integrity: sha512-kOtSQx9ymylslsLNFD0xOMJM9mHqnq3x6KD7+DYkHByWe0HFRdblpYKhZyL4uR3rwaKZwzOrJVl3RwRaDjZxSg==}
|
||||
|
||||
bytes@3.1.2:
|
||||
resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==}
|
||||
|
|
@ -2524,6 +2527,15 @@ packages:
|
|||
supports-color:
|
||||
optional: true
|
||||
|
||||
debug@4.3.6:
|
||||
resolution: {integrity: sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==}
|
||||
engines: {node: '>=6.0'}
|
||||
peerDependencies:
|
||||
supports-color: '*'
|
||||
peerDependenciesMeta:
|
||||
supports-color:
|
||||
optional: true
|
||||
|
||||
decamelize@1.2.0:
|
||||
resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
|
|
@ -2606,8 +2618,8 @@ packages:
|
|||
resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==}
|
||||
engines: {node: '>=12'}
|
||||
|
||||
drizzle-kit@0.23.0:
|
||||
resolution: {integrity: sha512-w9jE97z193dd4jzAyj4Uv2SOh8Ydue70Ki6W0awy4bGM1aPXan6zD6Yv+nNTA6oGgNTDl2MJFxutjHG4fden5g==}
|
||||
drizzle-kit@0.23.1:
|
||||
resolution: {integrity: sha512-posGQhj8/K4S4CPhk7BO9+IcpNdIh96t0DvcAr/NvMKhPhe5D0MELzmpq9R2MpmSP3fd+Z3upwidtetrw7xnjg==}
|
||||
hasBin: true
|
||||
|
||||
drizzle-orm@0.32.1:
|
||||
|
|
@ -3070,8 +3082,8 @@ packages:
|
|||
peerDependencies:
|
||||
hono: ^4.1.1
|
||||
|
||||
hono@4.5.2:
|
||||
resolution: {integrity: sha512-93P8XEALrHAUGRZoqXs8MDL3w9mDgRpbW9Sy5x4LS7srg78bKUw7EGynxze+Ft1e/rLGmDAbxeSTMu6dHUSRDw==}
|
||||
hono@4.5.3:
|
||||
resolution: {integrity: sha512-r26WwwbKD3BAYdfB294knNnegNda7VfV1tVn66D9Kvl9WQTdrR+5eKdoeaQNHQcC3Gr0KBikzAtjd6VsRGVSaw==}
|
||||
engines: {node: '>=16.0.0'}
|
||||
|
||||
html-entities@2.5.2:
|
||||
|
|
@ -4340,8 +4352,8 @@ packages:
|
|||
resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
|
||||
engines: {node: '>= 0.4'}
|
||||
|
||||
svelte-check@3.8.4:
|
||||
resolution: {integrity: sha512-61aHMkdinWyH8BkkTX9jPLYxYzaAAz/FK/VQqdr2FiCQQ/q04WCwDlpGbHff1GdrMYTmW8chlTFvRWL9k0A8vg==}
|
||||
svelte-check@3.8.5:
|
||||
resolution: {integrity: sha512-3OGGgr9+bJ/+1nbPgsvulkLC48xBsqsgtc8Wam281H4G9F5v3mYGa2bHRsPuwHC5brKl4AxJH95QF73kmfihGQ==}
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
svelte: ^3.55.0 || ^4.0.0-next.0 || ^4.0.0 || ^5.0.0-next.0
|
||||
|
|
@ -4617,8 +4629,8 @@ packages:
|
|||
tslib@2.6.3:
|
||||
resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==}
|
||||
|
||||
tsx@4.16.2:
|
||||
resolution: {integrity: sha512-C1uWweJDgdtX2x600HjaFaucXTilT7tgUZHbOE4+ypskZ1OP8CRCSDkCxG6Vya9EwaFIVagWwpaVAn5wzypaqQ==}
|
||||
tsx@4.16.5:
|
||||
resolution: {integrity: sha512-ArsiAQHEW2iGaqZ8fTA1nX0a+lN5mNTyuGRRO6OW3H/Yno1y9/t1f9YOI1Cfoqz63VAthn++ZYcbDP7jPflc+A==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
hasBin: true
|
||||
|
||||
|
|
@ -5153,6 +5165,8 @@ snapshots:
|
|||
dependencies:
|
||||
postcss: 8.4.40
|
||||
|
||||
'@drizzle-team/brocli@0.8.2': {}
|
||||
|
||||
'@emnapi/core@0.45.0':
|
||||
dependencies:
|
||||
tslib: 2.6.3
|
||||
|
|
@ -5525,9 +5539,9 @@ snapshots:
|
|||
'@hapi/hoek': 9.3.0
|
||||
optional: true
|
||||
|
||||
'@hono/zod-validator@0.2.2(hono@4.5.2)(zod@3.23.8)':
|
||||
'@hono/zod-validator@0.2.2(hono@4.5.3)(zod@3.23.8)':
|
||||
dependencies:
|
||||
hono: 4.5.2
|
||||
hono: 4.5.3
|
||||
zod: 3.23.8
|
||||
|
||||
'@humanwhocodes/config-array@0.11.14':
|
||||
|
|
@ -6116,41 +6130,41 @@ snapshots:
|
|||
'@sodaru/yup-to-json-schema@2.0.1':
|
||||
optional: true
|
||||
|
||||
'@sveltejs/adapter-auto@3.2.2(@sveltejs/kit@2.5.18(@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.13)(sass@1.77.8)))(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.13)(sass@1.77.8)))':
|
||||
'@sveltejs/adapter-auto@3.2.2(@sveltejs/kit@2.5.20(@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.14)(sass@1.77.8)))(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.14)(sass@1.77.8)))':
|
||||
dependencies:
|
||||
'@sveltejs/kit': 2.5.18(@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.13)(sass@1.77.8)))(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.13)(sass@1.77.8))
|
||||
'@sveltejs/kit': 2.5.20(@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.14)(sass@1.77.8)))(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.14)(sass@1.77.8))
|
||||
import-meta-resolve: 4.1.0
|
||||
|
||||
'@sveltejs/adapter-node@5.2.0(@sveltejs/kit@2.5.18(@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.13)(sass@1.77.8)))(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.13)(sass@1.77.8)))':
|
||||
'@sveltejs/adapter-node@5.2.0(@sveltejs/kit@2.5.20(@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.14)(sass@1.77.8)))(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.14)(sass@1.77.8)))':
|
||||
dependencies:
|
||||
'@rollup/plugin-commonjs': 26.0.1(rollup@4.18.1)
|
||||
'@rollup/plugin-json': 6.1.0(rollup@4.18.1)
|
||||
'@rollup/plugin-node-resolve': 15.2.3(rollup@4.18.1)
|
||||
'@sveltejs/kit': 2.5.18(@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.13)(sass@1.77.8)))(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.13)(sass@1.77.8))
|
||||
'@sveltejs/kit': 2.5.20(@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.14)(sass@1.77.8)))(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.14)(sass@1.77.8))
|
||||
rollup: 4.18.1
|
||||
|
||||
'@sveltejs/adapter-vercel@5.4.1(@sveltejs/kit@2.5.18(@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.13)(sass@1.77.8)))(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.13)(sass@1.77.8)))':
|
||||
'@sveltejs/adapter-vercel@5.4.1(@sveltejs/kit@2.5.20(@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.14)(sass@1.77.8)))(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.14)(sass@1.77.8)))':
|
||||
dependencies:
|
||||
'@sveltejs/kit': 2.5.18(@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.13)(sass@1.77.8)))(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.13)(sass@1.77.8))
|
||||
'@sveltejs/kit': 2.5.20(@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.14)(sass@1.77.8)))(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.14)(sass@1.77.8))
|
||||
'@vercel/nft': 0.27.2
|
||||
esbuild: 0.21.5
|
||||
transitivePeerDependencies:
|
||||
- encoding
|
||||
- supports-color
|
||||
|
||||
'@sveltejs/enhanced-img@0.3.1(rollup@4.18.1)(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.13)(sass@1.77.8))':
|
||||
'@sveltejs/enhanced-img@0.3.1(rollup@4.18.1)(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.14)(sass@1.77.8))':
|
||||
dependencies:
|
||||
magic-string: 0.30.10
|
||||
svelte: 5.0.0-next.175
|
||||
svelte-parse-markup: 0.1.5(svelte@5.0.0-next.175)
|
||||
vite: 5.3.5(@types/node@20.14.13)(sass@1.77.8)
|
||||
vite: 5.3.5(@types/node@20.14.14)(sass@1.77.8)
|
||||
vite-imagetools: 7.0.2(rollup@4.18.1)
|
||||
transitivePeerDependencies:
|
||||
- rollup
|
||||
|
||||
'@sveltejs/kit@2.5.18(@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.13)(sass@1.77.8)))(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.13)(sass@1.77.8))':
|
||||
'@sveltejs/kit@2.5.20(@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.14)(sass@1.77.8)))(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.14)(sass@1.77.8))':
|
||||
dependencies:
|
||||
'@sveltejs/vite-plugin-svelte': 3.1.1(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.13)(sass@1.77.8))
|
||||
'@sveltejs/vite-plugin-svelte': 3.1.1(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.14)(sass@1.77.8))
|
||||
'@types/cookie': 0.6.0
|
||||
cookie: 0.6.0
|
||||
devalue: 5.0.0
|
||||
|
|
@ -6164,28 +6178,28 @@ snapshots:
|
|||
sirv: 2.0.4
|
||||
svelte: 5.0.0-next.175
|
||||
tiny-glob: 0.2.9
|
||||
vite: 5.3.5(@types/node@20.14.13)(sass@1.77.8)
|
||||
vite: 5.3.5(@types/node@20.14.14)(sass@1.77.8)
|
||||
|
||||
'@sveltejs/vite-plugin-svelte-inspector@2.1.0(@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.13)(sass@1.77.8)))(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.13)(sass@1.77.8))':
|
||||
'@sveltejs/vite-plugin-svelte-inspector@2.1.0(@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.14)(sass@1.77.8)))(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.14)(sass@1.77.8))':
|
||||
dependencies:
|
||||
'@sveltejs/vite-plugin-svelte': 3.1.1(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.13)(sass@1.77.8))
|
||||
'@sveltejs/vite-plugin-svelte': 3.1.1(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.14)(sass@1.77.8))
|
||||
debug: 4.3.4
|
||||
svelte: 5.0.0-next.175
|
||||
vite: 5.3.5(@types/node@20.14.13)(sass@1.77.8)
|
||||
vite: 5.3.5(@types/node@20.14.14)(sass@1.77.8)
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.13)(sass@1.77.8))':
|
||||
'@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.14)(sass@1.77.8))':
|
||||
dependencies:
|
||||
'@sveltejs/vite-plugin-svelte-inspector': 2.1.0(@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.13)(sass@1.77.8)))(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.13)(sass@1.77.8))
|
||||
'@sveltejs/vite-plugin-svelte-inspector': 2.1.0(@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.14)(sass@1.77.8)))(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.14)(sass@1.77.8))
|
||||
debug: 4.3.4
|
||||
deepmerge: 4.3.1
|
||||
kleur: 4.1.5
|
||||
magic-string: 0.30.10
|
||||
svelte: 5.0.0-next.175
|
||||
svelte-hmr: 0.16.0(svelte@5.0.0-next.175)
|
||||
vite: 5.3.5(@types/node@20.14.13)(sass@1.77.8)
|
||||
vitefu: 0.2.5(vite@5.3.5(@types/node@20.14.13)(sass@1.77.8))
|
||||
vite: 5.3.5(@types/node@20.14.14)(sass@1.77.8)
|
||||
vitefu: 0.2.5(vite@5.3.5(@types/node@20.14.14)(sass@1.77.8))
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
|
|
@ -6215,13 +6229,13 @@ snapshots:
|
|||
'@types/json-schema@7.0.15':
|
||||
optional: true
|
||||
|
||||
'@types/node@20.14.13':
|
||||
'@types/node@20.14.14':
|
||||
dependencies:
|
||||
undici-types: 5.26.5
|
||||
|
||||
'@types/pg@8.11.6':
|
||||
dependencies:
|
||||
'@types/node': 20.14.13
|
||||
'@types/node': 20.14.14
|
||||
pg-protocol: 1.6.1
|
||||
pg-types: 4.0.2
|
||||
|
||||
|
|
@ -6232,14 +6246,14 @@ snapshots:
|
|||
'@types/validator@13.12.0':
|
||||
optional: true
|
||||
|
||||
'@typescript-eslint/eslint-plugin@7.17.0(@typescript-eslint/parser@7.17.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4)':
|
||||
'@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4)':
|
||||
dependencies:
|
||||
'@eslint-community/regexpp': 4.10.0
|
||||
'@typescript-eslint/parser': 7.17.0(eslint@8.57.0)(typescript@5.5.4)
|
||||
'@typescript-eslint/scope-manager': 7.17.0
|
||||
'@typescript-eslint/type-utils': 7.17.0(eslint@8.57.0)(typescript@5.5.4)
|
||||
'@typescript-eslint/utils': 7.17.0(eslint@8.57.0)(typescript@5.5.4)
|
||||
'@typescript-eslint/visitor-keys': 7.17.0
|
||||
'@typescript-eslint/parser': 7.18.0(eslint@8.57.0)(typescript@5.5.4)
|
||||
'@typescript-eslint/scope-manager': 7.18.0
|
||||
'@typescript-eslint/type-utils': 7.18.0(eslint@8.57.0)(typescript@5.5.4)
|
||||
'@typescript-eslint/utils': 7.18.0(eslint@8.57.0)(typescript@5.5.4)
|
||||
'@typescript-eslint/visitor-keys': 7.18.0
|
||||
eslint: 8.57.0
|
||||
graphemer: 1.4.0
|
||||
ignore: 5.3.1
|
||||
|
|
@ -6250,12 +6264,12 @@ snapshots:
|
|||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@typescript-eslint/parser@7.17.0(eslint@8.57.0)(typescript@5.5.4)':
|
||||
'@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.5.4)':
|
||||
dependencies:
|
||||
'@typescript-eslint/scope-manager': 7.17.0
|
||||
'@typescript-eslint/types': 7.17.0
|
||||
'@typescript-eslint/typescript-estree': 7.17.0(typescript@5.5.4)
|
||||
'@typescript-eslint/visitor-keys': 7.17.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)
|
||||
'@typescript-eslint/visitor-keys': 7.18.0
|
||||
debug: 4.3.4
|
||||
eslint: 8.57.0
|
||||
optionalDependencies:
|
||||
|
|
@ -6263,16 +6277,16 @@ snapshots:
|
|||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@typescript-eslint/scope-manager@7.17.0':
|
||||
'@typescript-eslint/scope-manager@7.18.0':
|
||||
dependencies:
|
||||
'@typescript-eslint/types': 7.17.0
|
||||
'@typescript-eslint/visitor-keys': 7.17.0
|
||||
'@typescript-eslint/types': 7.18.0
|
||||
'@typescript-eslint/visitor-keys': 7.18.0
|
||||
|
||||
'@typescript-eslint/type-utils@7.17.0(eslint@8.57.0)(typescript@5.5.4)':
|
||||
'@typescript-eslint/type-utils@7.18.0(eslint@8.57.0)(typescript@5.5.4)':
|
||||
dependencies:
|
||||
'@typescript-eslint/typescript-estree': 7.17.0(typescript@5.5.4)
|
||||
'@typescript-eslint/utils': 7.17.0(eslint@8.57.0)(typescript@5.5.4)
|
||||
debug: 4.3.5
|
||||
'@typescript-eslint/typescript-estree': 7.18.0(typescript@5.5.4)
|
||||
'@typescript-eslint/utils': 7.18.0(eslint@8.57.0)(typescript@5.5.4)
|
||||
debug: 4.3.6
|
||||
eslint: 8.57.0
|
||||
ts-api-utils: 1.3.0(typescript@5.5.4)
|
||||
optionalDependencies:
|
||||
|
|
@ -6280,12 +6294,12 @@ snapshots:
|
|||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@typescript-eslint/types@7.17.0': {}
|
||||
'@typescript-eslint/types@7.18.0': {}
|
||||
|
||||
'@typescript-eslint/typescript-estree@7.17.0(typescript@5.5.4)':
|
||||
'@typescript-eslint/typescript-estree@7.18.0(typescript@5.5.4)':
|
||||
dependencies:
|
||||
'@typescript-eslint/types': 7.17.0
|
||||
'@typescript-eslint/visitor-keys': 7.17.0
|
||||
'@typescript-eslint/types': 7.18.0
|
||||
'@typescript-eslint/visitor-keys': 7.18.0
|
||||
debug: 4.3.4
|
||||
globby: 11.1.0
|
||||
is-glob: 4.0.3
|
||||
|
|
@ -6297,20 +6311,20 @@ snapshots:
|
|||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@typescript-eslint/utils@7.17.0(eslint@8.57.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@8.57.0)
|
||||
'@typescript-eslint/scope-manager': 7.17.0
|
||||
'@typescript-eslint/types': 7.17.0
|
||||
'@typescript-eslint/typescript-estree': 7.17.0(typescript@5.5.4)
|
||||
'@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: 8.57.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
- typescript
|
||||
|
||||
'@typescript-eslint/visitor-keys@7.17.0':
|
||||
'@typescript-eslint/visitor-keys@7.18.0':
|
||||
dependencies:
|
||||
'@typescript-eslint/types': 7.17.0
|
||||
'@typescript-eslint/types': 7.18.0
|
||||
eslint-visitor-keys: 3.4.3
|
||||
|
||||
'@ungap/structured-clone@1.2.0': {}
|
||||
|
|
@ -6499,7 +6513,7 @@ snapshots:
|
|||
dependencies:
|
||||
file-uri-to-path: 1.0.0
|
||||
|
||||
bits-ui@0.21.12(svelte@5.0.0-next.175):
|
||||
bits-ui@0.21.13(svelte@5.0.0-next.175):
|
||||
dependencies:
|
||||
'@internationalized/date': 3.5.5
|
||||
'@melt-ui/svelte': 0.76.2(svelte@5.0.0-next.175)
|
||||
|
|
@ -6568,7 +6582,7 @@ snapshots:
|
|||
|
||||
builtin-modules@3.3.0: {}
|
||||
|
||||
bullmq@5.11.0:
|
||||
bullmq@5.12.0:
|
||||
dependencies:
|
||||
cron-parser: 4.9.0
|
||||
ioredis: 5.4.1
|
||||
|
|
@ -6770,6 +6784,10 @@ snapshots:
|
|||
dependencies:
|
||||
ms: 2.1.2
|
||||
|
||||
debug@4.3.6:
|
||||
dependencies:
|
||||
ms: 2.1.2
|
||||
|
||||
decamelize@1.2.0: {}
|
||||
|
||||
deep-eql@4.1.3:
|
||||
|
|
@ -6826,8 +6844,9 @@ snapshots:
|
|||
|
||||
dotenv@16.4.5: {}
|
||||
|
||||
drizzle-kit@0.23.0:
|
||||
drizzle-kit@0.23.1:
|
||||
dependencies:
|
||||
'@drizzle-team/brocli': 0.8.2
|
||||
'@esbuild-kit/esm-loader': 2.6.5
|
||||
esbuild: 0.19.12
|
||||
esbuild-register: 3.5.0(esbuild@0.19.12)
|
||||
|
|
@ -7001,7 +7020,7 @@ snapshots:
|
|||
dependencies:
|
||||
eslint: 8.57.0
|
||||
|
||||
eslint-plugin-svelte@2.43.0(eslint@8.57.0)(svelte@5.0.0-next.175)(ts-node@10.9.2(@types/node@20.14.13)(typescript@5.5.4)):
|
||||
eslint-plugin-svelte@2.43.0(eslint@8.57.0)(svelte@5.0.0-next.175)(ts-node@10.9.2(@types/node@20.14.14)(typescript@5.5.4)):
|
||||
dependencies:
|
||||
'@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0)
|
||||
'@jridgewell/sourcemap-codec': 1.4.15
|
||||
|
|
@ -7010,7 +7029,7 @@ snapshots:
|
|||
esutils: 2.0.3
|
||||
known-css-properties: 0.34.0
|
||||
postcss: 8.4.40
|
||||
postcss-load-config: 3.1.4(postcss@8.4.40)(ts-node@10.9.2(@types/node@20.14.13)(typescript@5.5.4))
|
||||
postcss-load-config: 3.1.4(postcss@8.4.40)(ts-node@10.9.2(@types/node@20.14.14)(typescript@5.5.4))
|
||||
postcss-safe-parser: 6.0.0(postcss@8.4.40)
|
||||
postcss-selector-parser: 6.1.0
|
||||
semver: 7.6.2
|
||||
|
|
@ -7237,11 +7256,11 @@ snapshots:
|
|||
cross-spawn: 7.0.3
|
||||
signal-exit: 4.1.0
|
||||
|
||||
formsnap@1.0.1(svelte@5.0.0-next.175)(sveltekit-superforms@2.16.1(@sveltejs/kit@2.5.18(@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.13)(sass@1.77.8)))(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.13)(sass@1.77.8)))(svelte@5.0.0-next.175)):
|
||||
formsnap@1.0.1(svelte@5.0.0-next.175)(sveltekit-superforms@2.16.1(@sveltejs/kit@2.5.20(@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.14)(sass@1.77.8)))(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.14)(sass@1.77.8)))(svelte@5.0.0-next.175)):
|
||||
dependencies:
|
||||
nanoid: 5.0.7
|
||||
svelte: 5.0.0-next.175
|
||||
sveltekit-superforms: 2.16.1(@sveltejs/kit@2.5.18(@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.13)(sass@1.77.8)))(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.13)(sass@1.77.8)))(svelte@5.0.0-next.175)
|
||||
sveltekit-superforms: 2.16.1(@sveltejs/kit@2.5.20(@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.14)(sass@1.77.8)))(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.14)(sass@1.77.8)))(svelte@5.0.0-next.175)
|
||||
|
||||
forwarded@0.2.0: {}
|
||||
|
||||
|
|
@ -7373,11 +7392,11 @@ snapshots:
|
|||
|
||||
hex-rgb@4.3.0: {}
|
||||
|
||||
hono-rate-limiter@0.4.0(hono@4.5.2):
|
||||
hono-rate-limiter@0.4.0(hono@4.5.3):
|
||||
dependencies:
|
||||
hono: 4.5.2
|
||||
hono: 4.5.3
|
||||
|
||||
hono@4.5.2: {}
|
||||
hono@4.5.3: {}
|
||||
|
||||
html-entities@2.5.2: {}
|
||||
|
||||
|
|
@ -8090,30 +8109,30 @@ snapshots:
|
|||
'@csstools/utilities': 1.0.0(postcss@8.4.40)
|
||||
postcss: 8.4.40
|
||||
|
||||
postcss-load-config@3.1.4(postcss@8.4.40)(ts-node@10.9.2(@types/node@20.14.13)(typescript@5.5.4)):
|
||||
postcss-load-config@3.1.4(postcss@8.4.40)(ts-node@10.9.2(@types/node@20.14.14)(typescript@5.5.4)):
|
||||
dependencies:
|
||||
lilconfig: 2.1.0
|
||||
yaml: 1.10.2
|
||||
optionalDependencies:
|
||||
postcss: 8.4.40
|
||||
ts-node: 10.9.2(@types/node@20.14.13)(typescript@5.5.4)
|
||||
ts-node: 10.9.2(@types/node@20.14.14)(typescript@5.5.4)
|
||||
|
||||
postcss-load-config@4.0.2(postcss@8.4.40)(ts-node@10.9.2(@types/node@20.14.13)(typescript@5.5.4)):
|
||||
postcss-load-config@4.0.2(postcss@8.4.40)(ts-node@10.9.2(@types/node@20.14.14)(typescript@5.5.4)):
|
||||
dependencies:
|
||||
lilconfig: 3.1.1
|
||||
yaml: 2.4.3
|
||||
optionalDependencies:
|
||||
postcss: 8.4.40
|
||||
ts-node: 10.9.2(@types/node@20.14.13)(typescript@5.5.4)
|
||||
ts-node: 10.9.2(@types/node@20.14.14)(typescript@5.5.4)
|
||||
|
||||
postcss-load-config@5.1.0(jiti@1.21.6)(postcss@8.4.40)(tsx@4.16.2):
|
||||
postcss-load-config@5.1.0(jiti@1.21.6)(postcss@8.4.40)(tsx@4.16.5):
|
||||
dependencies:
|
||||
lilconfig: 3.1.1
|
||||
yaml: 2.4.2
|
||||
optionalDependencies:
|
||||
jiti: 1.21.6
|
||||
postcss: 8.4.40
|
||||
tsx: 4.16.2
|
||||
tsx: 4.16.5
|
||||
|
||||
postcss-logical@7.0.1(postcss@8.4.40):
|
||||
dependencies:
|
||||
|
|
@ -8684,14 +8703,14 @@ snapshots:
|
|||
|
||||
supports-preserve-symlinks-flag@1.0.0: {}
|
||||
|
||||
svelte-check@3.8.4(postcss-load-config@5.1.0(jiti@1.21.6)(postcss@8.4.40)(tsx@4.16.2))(postcss@8.4.40)(sass@1.77.8)(svelte@5.0.0-next.175):
|
||||
svelte-check@3.8.5(postcss-load-config@5.1.0(jiti@1.21.6)(postcss@8.4.40)(tsx@4.16.5))(postcss@8.4.40)(sass@1.77.8)(svelte@5.0.0-next.175):
|
||||
dependencies:
|
||||
'@jridgewell/trace-mapping': 0.3.25
|
||||
chokidar: 3.6.0
|
||||
picocolors: 1.0.0
|
||||
sade: 1.8.1
|
||||
svelte: 5.0.0-next.175
|
||||
svelte-preprocess: 5.1.4(postcss-load-config@5.1.0(jiti@1.21.6)(postcss@8.4.40)(tsx@4.16.2))(postcss@8.4.40)(sass@1.77.8)(svelte@5.0.0-next.175)(typescript@5.5.4)
|
||||
svelte-preprocess: 5.1.4(postcss-load-config@5.1.0(jiti@1.21.6)(postcss@8.4.40)(tsx@4.16.5))(postcss@8.4.40)(sass@1.77.8)(svelte@5.0.0-next.175)(typescript@5.5.4)
|
||||
typescript: 5.5.4
|
||||
transitivePeerDependencies:
|
||||
- '@babel/core'
|
||||
|
|
@ -8747,7 +8766,7 @@ snapshots:
|
|||
dependencies:
|
||||
svelte: 5.0.0-next.175
|
||||
|
||||
svelte-preprocess@5.1.4(postcss-load-config@5.1.0(jiti@1.21.6)(postcss@8.4.40)(tsx@4.16.2))(postcss@8.4.40)(sass@1.77.8)(svelte@5.0.0-next.175)(typescript@5.5.4):
|
||||
svelte-preprocess@5.1.4(postcss-load-config@5.1.0(jiti@1.21.6)(postcss@8.4.40)(tsx@4.16.5))(postcss@8.4.40)(sass@1.77.8)(svelte@5.0.0-next.175)(typescript@5.5.4):
|
||||
dependencies:
|
||||
'@types/pug': 2.0.10
|
||||
detect-indent: 6.1.0
|
||||
|
|
@ -8757,16 +8776,16 @@ snapshots:
|
|||
svelte: 5.0.0-next.175
|
||||
optionalDependencies:
|
||||
postcss: 8.4.40
|
||||
postcss-load-config: 5.1.0(jiti@1.21.6)(postcss@8.4.40)(tsx@4.16.2)
|
||||
postcss-load-config: 5.1.0(jiti@1.21.6)(postcss@8.4.40)(tsx@4.16.5)
|
||||
sass: 1.77.8
|
||||
typescript: 5.5.4
|
||||
|
||||
svelte-preprocess@6.0.2(postcss-load-config@5.1.0(jiti@1.21.6)(postcss@8.4.40)(tsx@4.16.2))(postcss@8.4.40)(sass@1.77.8)(svelte@5.0.0-next.175)(typescript@5.5.4):
|
||||
svelte-preprocess@6.0.2(postcss-load-config@5.1.0(jiti@1.21.6)(postcss@8.4.40)(tsx@4.16.5))(postcss@8.4.40)(sass@1.77.8)(svelte@5.0.0-next.175)(typescript@5.5.4):
|
||||
dependencies:
|
||||
svelte: 5.0.0-next.175
|
||||
optionalDependencies:
|
||||
postcss: 8.4.40
|
||||
postcss-load-config: 5.1.0(jiti@1.21.6)(postcss@8.4.40)(tsx@4.16.2)
|
||||
postcss-load-config: 5.1.0(jiti@1.21.6)(postcss@8.4.40)(tsx@4.16.5)
|
||||
sass: 1.77.8
|
||||
typescript: 5.5.4
|
||||
|
||||
|
|
@ -8821,19 +8840,19 @@ snapshots:
|
|||
magic-string: 0.30.10
|
||||
zimmerframe: 1.1.2
|
||||
|
||||
sveltekit-flash-message@2.4.4(@sveltejs/kit@2.5.18(@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.13)(sass@1.77.8)))(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.13)(sass@1.77.8)))(svelte@5.0.0-next.175):
|
||||
sveltekit-flash-message@2.4.4(@sveltejs/kit@2.5.20(@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.14)(sass@1.77.8)))(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.14)(sass@1.77.8)))(svelte@5.0.0-next.175):
|
||||
dependencies:
|
||||
'@sveltejs/kit': 2.5.18(@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.13)(sass@1.77.8)))(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.13)(sass@1.77.8))
|
||||
'@sveltejs/kit': 2.5.20(@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.14)(sass@1.77.8)))(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.14)(sass@1.77.8))
|
||||
svelte: 5.0.0-next.175
|
||||
|
||||
sveltekit-rate-limiter@0.5.2(@sveltejs/kit@2.5.18(@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.13)(sass@1.77.8)))(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.13)(sass@1.77.8))):
|
||||
sveltekit-rate-limiter@0.5.2(@sveltejs/kit@2.5.20(@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.14)(sass@1.77.8)))(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.14)(sass@1.77.8))):
|
||||
dependencies:
|
||||
'@isaacs/ttlcache': 1.4.1
|
||||
'@sveltejs/kit': 2.5.18(@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.13)(sass@1.77.8)))(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.13)(sass@1.77.8))
|
||||
'@sveltejs/kit': 2.5.20(@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.14)(sass@1.77.8)))(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.14)(sass@1.77.8))
|
||||
|
||||
sveltekit-superforms@2.16.1(@sveltejs/kit@2.5.18(@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.13)(sass@1.77.8)))(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.13)(sass@1.77.8)))(svelte@5.0.0-next.175):
|
||||
sveltekit-superforms@2.16.1(@sveltejs/kit@2.5.20(@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.14)(sass@1.77.8)))(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.14)(sass@1.77.8)))(svelte@5.0.0-next.175):
|
||||
dependencies:
|
||||
'@sveltejs/kit': 2.5.18(@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.13)(sass@1.77.8)))(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.13)(sass@1.77.8))
|
||||
'@sveltejs/kit': 2.5.20(@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.14)(sass@1.77.8)))(svelte@5.0.0-next.175)(vite@5.3.5(@types/node@20.14.14)(sass@1.77.8))
|
||||
devalue: 5.0.0
|
||||
just-clone: 6.2.0
|
||||
memoize-weak: 1.0.2
|
||||
|
|
@ -8858,16 +8877,16 @@ snapshots:
|
|||
|
||||
tailwind-merge@2.4.0: {}
|
||||
|
||||
tailwind-variants@0.2.1(tailwindcss@3.4.7(ts-node@10.9.2(@types/node@20.14.13)(typescript@5.5.4))):
|
||||
tailwind-variants@0.2.1(tailwindcss@3.4.7(ts-node@10.9.2(@types/node@20.14.14)(typescript@5.5.4))):
|
||||
dependencies:
|
||||
tailwind-merge: 2.4.0
|
||||
tailwindcss: 3.4.7(ts-node@10.9.2(@types/node@20.14.13)(typescript@5.5.4))
|
||||
tailwindcss: 3.4.7(ts-node@10.9.2(@types/node@20.14.14)(typescript@5.5.4))
|
||||
|
||||
tailwindcss-animate@1.0.7(tailwindcss@3.4.7(ts-node@10.9.2(@types/node@20.14.13)(typescript@5.5.4))):
|
||||
tailwindcss-animate@1.0.7(tailwindcss@3.4.7(ts-node@10.9.2(@types/node@20.14.14)(typescript@5.5.4))):
|
||||
dependencies:
|
||||
tailwindcss: 3.4.7(ts-node@10.9.2(@types/node@20.14.13)(typescript@5.5.4))
|
||||
tailwindcss: 3.4.7(ts-node@10.9.2(@types/node@20.14.14)(typescript@5.5.4))
|
||||
|
||||
tailwindcss@3.4.7(ts-node@10.9.2(@types/node@20.14.13)(typescript@5.5.4)):
|
||||
tailwindcss@3.4.7(ts-node@10.9.2(@types/node@20.14.14)(typescript@5.5.4)):
|
||||
dependencies:
|
||||
'@alloc/quick-lru': 5.2.0
|
||||
arg: 5.0.2
|
||||
|
|
@ -8886,7 +8905,7 @@ snapshots:
|
|||
postcss: 8.4.40
|
||||
postcss-import: 15.1.0(postcss@8.4.40)
|
||||
postcss-js: 4.0.1(postcss@8.4.40)
|
||||
postcss-load-config: 4.0.2(postcss@8.4.40)(ts-node@10.9.2(@types/node@20.14.13)(typescript@5.5.4))
|
||||
postcss-load-config: 4.0.2(postcss@8.4.40)(ts-node@10.9.2(@types/node@20.14.14)(typescript@5.5.4))
|
||||
postcss-nested: 6.0.1(postcss@8.4.40)
|
||||
postcss-selector-parser: 6.1.0
|
||||
resolve: 1.22.8
|
||||
|
|
@ -8953,14 +8972,14 @@ snapshots:
|
|||
|
||||
ts-interface-checker@0.1.13: {}
|
||||
|
||||
ts-node@10.9.2(@types/node@20.14.13)(typescript@5.5.4):
|
||||
ts-node@10.9.2(@types/node@20.14.14)(typescript@5.5.4):
|
||||
dependencies:
|
||||
'@cspotcode/source-map-support': 0.8.1
|
||||
'@tsconfig/node10': 1.0.11
|
||||
'@tsconfig/node12': 1.0.11
|
||||
'@tsconfig/node14': 1.0.3
|
||||
'@tsconfig/node16': 1.0.4
|
||||
'@types/node': 20.14.13
|
||||
'@types/node': 20.14.14
|
||||
acorn: 8.11.3
|
||||
acorn-walk: 8.3.2
|
||||
arg: 4.1.3
|
||||
|
|
@ -8976,7 +8995,7 @@ snapshots:
|
|||
|
||||
tslib@2.6.3: {}
|
||||
|
||||
tsx@4.16.2:
|
||||
tsx@4.16.5:
|
||||
dependencies:
|
||||
esbuild: 0.21.5
|
||||
get-tsconfig: 4.7.5
|
||||
|
|
@ -9061,13 +9080,13 @@ snapshots:
|
|||
transitivePeerDependencies:
|
||||
- rollup
|
||||
|
||||
vite-node@1.6.0(@types/node@20.14.13)(sass@1.77.8):
|
||||
vite-node@1.6.0(@types/node@20.14.14)(sass@1.77.8):
|
||||
dependencies:
|
||||
cac: 6.7.14
|
||||
debug: 4.3.4
|
||||
pathe: 1.1.2
|
||||
picocolors: 1.0.0
|
||||
vite: 5.3.5(@types/node@20.14.13)(sass@1.77.8)
|
||||
vite: 5.3.5(@types/node@20.14.14)(sass@1.77.8)
|
||||
transitivePeerDependencies:
|
||||
- '@types/node'
|
||||
- less
|
||||
|
|
@ -9078,21 +9097,21 @@ snapshots:
|
|||
- supports-color
|
||||
- terser
|
||||
|
||||
vite@5.3.5(@types/node@20.14.13)(sass@1.77.8):
|
||||
vite@5.3.5(@types/node@20.14.14)(sass@1.77.8):
|
||||
dependencies:
|
||||
esbuild: 0.21.5
|
||||
postcss: 8.4.40
|
||||
rollup: 4.17.2
|
||||
optionalDependencies:
|
||||
'@types/node': 20.14.13
|
||||
'@types/node': 20.14.14
|
||||
fsevents: 2.3.3
|
||||
sass: 1.77.8
|
||||
|
||||
vitefu@0.2.5(vite@5.3.5(@types/node@20.14.13)(sass@1.77.8)):
|
||||
vitefu@0.2.5(vite@5.3.5(@types/node@20.14.14)(sass@1.77.8)):
|
||||
optionalDependencies:
|
||||
vite: 5.3.5(@types/node@20.14.13)(sass@1.77.8)
|
||||
vite: 5.3.5(@types/node@20.14.14)(sass@1.77.8)
|
||||
|
||||
vitest@1.6.0(@types/node@20.14.13)(sass@1.77.8):
|
||||
vitest@1.6.0(@types/node@20.14.14)(sass@1.77.8):
|
||||
dependencies:
|
||||
'@vitest/expect': 1.6.0
|
||||
'@vitest/runner': 1.6.0
|
||||
|
|
@ -9111,11 +9130,11 @@ snapshots:
|
|||
strip-literal: 2.1.0
|
||||
tinybench: 2.8.0
|
||||
tinypool: 0.8.4
|
||||
vite: 5.3.5(@types/node@20.14.13)(sass@1.77.8)
|
||||
vite-node: 1.6.0(@types/node@20.14.13)(sass@1.77.8)
|
||||
vite: 5.3.5(@types/node@20.14.14)(sass@1.77.8)
|
||||
vite-node: 1.6.0(@types/node@20.14.14)(sass@1.77.8)
|
||||
why-is-node-running: 2.2.2
|
||||
optionalDependencies:
|
||||
'@types/node': 20.14.13
|
||||
'@types/node': 20.14.14
|
||||
transitivePeerDependencies:
|
||||
- less
|
||||
- lightningcss
|
||||
|
|
|
|||
|
|
@ -1,22 +1,11 @@
|
|||
// import * as Sentry from '@sentry/sveltekit';
|
||||
import 'reflect-metadata'
|
||||
import { hc } from 'hono/client';
|
||||
import { sequence } from '@sveltejs/kit/hooks';
|
||||
import { redirect, type Handle } from '@sveltejs/kit';
|
||||
import { dev } from '$app/environment';
|
||||
import { lucia } from '$lib/server/auth';
|
||||
import type { ApiRoutes } from '$lib/server/api';
|
||||
import { parseApiResponse } from '$lib/utils/api';
|
||||
import { StatusCodes } from '$lib/constants/status-codes';
|
||||
|
||||
// TODO: Fix Sentry as it is not working on SvelteKit v2
|
||||
// Sentry.init({
|
||||
// dsn: 'https://742e43279df93a3c4a4a78c12eb1f879@o4506057768632320.ingest.sentry.io/4506057770401792',
|
||||
// tracesSampleRate: 1,
|
||||
// environment: dev ? 'development' : 'production',
|
||||
// enabled: !dev
|
||||
// });
|
||||
|
||||
const apiClient: Handle = async ({ event, resolve }) => {
|
||||
/* ------------------------------ Register api ------------------------------ */
|
||||
const { api } = hc<ApiRoutes>('/', {
|
||||
|
|
@ -27,14 +16,18 @@ const apiClient: Handle = async ({ event, resolve }) => {
|
|||
}
|
||||
});
|
||||
|
||||
/* ----------------------------- Logging Request ---------------------------- */
|
||||
console.log('Request Method:', event.request.method);
|
||||
console.log('Request URL:', event.request.url);
|
||||
|
||||
/* ----------------------------- Auth functions ----------------------------- */
|
||||
async function getAuthedUser() {
|
||||
const { data } = await api.iam.user.$get().then(parseApiResponse)
|
||||
const { data } = await api.user.me.$get().then(parseApiResponse)
|
||||
return data && data.user;
|
||||
}
|
||||
|
||||
async function getAuthedUserOrThrow() {
|
||||
const { data } = await api.iam.user.$get().then(parseApiResponse);
|
||||
const { data } = await api.user.me.$get().then(parseApiResponse);
|
||||
if (!data || !data.user) throw redirect(StatusCodes.TEMPORARY_REDIRECT, '/');
|
||||
return data?.user;
|
||||
}
|
||||
|
|
@ -50,49 +43,4 @@ const apiClient: Handle = async ({ event, resolve }) => {
|
|||
return response;
|
||||
};
|
||||
|
||||
export const authentication: Handle = async function ({ event, resolve }) {
|
||||
event.locals.startTimer = Date.now();
|
||||
|
||||
const ip = event.request.headers.get('x-forwarded-for') as string;
|
||||
const country = event.request.headers.get('x-vercel-ip-country') as string;
|
||||
event.locals.ip = dev ? '127.0.0.1' : ip; // || event.getClientAddress();
|
||||
event.locals.country = dev ? 'us' : country;
|
||||
|
||||
const sessionId = event.cookies.get(lucia.sessionCookieName);
|
||||
if (!sessionId) {
|
||||
event.locals.user = null;
|
||||
event.locals.session = null;
|
||||
return resolve(event);
|
||||
}
|
||||
|
||||
const { session, user } = await lucia.validateSession(sessionId);
|
||||
if (session && session.fresh) {
|
||||
const sessionCookie = lucia.createSessionCookie(session.id);
|
||||
console.log('sessionCookie', JSON.stringify(sessionCookie, null, 2));
|
||||
// sveltekit types deviates from the de-facto standard, you can use 'as any' too
|
||||
event.cookies.set(sessionCookie.name, sessionCookie.value, {
|
||||
path: '.',
|
||||
...sessionCookie.attributes,
|
||||
});
|
||||
}
|
||||
console.log('session from hooks', JSON.stringify(session, null, 2));
|
||||
if (!session) {
|
||||
const sessionCookie = lucia.createBlankSessionCookie();
|
||||
console.log('blank sessionCookie', JSON.stringify(sessionCookie, null, 2));
|
||||
event.cookies.set(sessionCookie.name, sessionCookie.value, {
|
||||
path: '.',
|
||||
...sessionCookie.attributes,
|
||||
});
|
||||
}
|
||||
event.locals.user = user;
|
||||
event.locals.session = session;
|
||||
|
||||
return resolve(event);
|
||||
};
|
||||
|
||||
export const handle: Handle = sequence(
|
||||
// Sentry.sentryHandle(),
|
||||
authentication,
|
||||
apiClient
|
||||
);
|
||||
// export const handleError = Sentry.handleErrorWithSentry();
|
||||
export const handle: Handle = sequence(apiClient);
|
||||
|
|
|
|||
|
|
@ -1,11 +1,11 @@
|
|||
import { Hono } from 'hono';
|
||||
import { injectable } from 'tsyringe';
|
||||
// import { injectable } from 'tsyringe';
|
||||
import type { HonoTypes } from '../types';
|
||||
import { requireAuth } from "../middleware/auth.middleware";
|
||||
import type { Controller } from '../interfaces/controller.interface';
|
||||
|
||||
@injectable()
|
||||
export class IamController implements Controller {
|
||||
// @injectable()
|
||||
class IamController implements Controller {
|
||||
controller = new Hono<HonoTypes>();
|
||||
|
||||
constructor(
|
||||
|
|
@ -19,3 +19,6 @@ export class IamController implements Controller {
|
|||
});
|
||||
}
|
||||
}
|
||||
|
||||
const iamControllerInstance = new IamController();
|
||||
export default iamControllerInstance;
|
||||
|
|
@ -1,27 +1,31 @@
|
|||
import 'reflect-metadata';
|
||||
// import 'reflect-metadata';
|
||||
import { Hono } from 'hono';
|
||||
import { zValidator } from '@hono/zod-validator';
|
||||
import { inject, injectable } from 'tsyringe';
|
||||
// import { inject, injectable } from 'tsyringe';
|
||||
import type { HonoTypes } from '../types';
|
||||
import { limiter } from '../middleware/rate-limiter.middleware';
|
||||
import type { Controller } from '../interfaces/controller.interface';
|
||||
import { signInEmailDto } from '$lib/dtos/signin-email.dto';
|
||||
import { LoginRequestsService } from '../services/loginrequest.service';
|
||||
import { loginRequestsService } from '../services/loginrequest.service';
|
||||
// import { LoginRequestsService } from '../services/loginrequest.service';
|
||||
|
||||
@injectable()
|
||||
export class LoginController implements Controller {
|
||||
// @injectable()
|
||||
class LoginController implements Controller {
|
||||
controller = new Hono<HonoTypes>();
|
||||
|
||||
constructor(
|
||||
@inject(LoginRequestsService) private readonly loginRequestsService: LoginRequestsService
|
||||
) { }
|
||||
// constructor(
|
||||
// @inject(LoginRequestsService) private readonly loginRequestsService: LoginRequestsService
|
||||
// ) { }
|
||||
|
||||
routes() {
|
||||
return this.controller
|
||||
.post('/', zValidator('json', signInEmailDto), limiter({ limit: 10, minutes: 60 }), async (c) => {
|
||||
const { username, password } = c.req.valid('json');
|
||||
await this.loginRequestsService.verify({ username, password }, c.req);
|
||||
await loginRequestsService.verify({ username, password }, c.req);
|
||||
return c.json({ message: 'Verification email sent' });
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
const loginControllerInstance = new LoginController();
|
||||
export default loginControllerInstance;
|
||||
|
|
|
|||
|
|
@ -1,12 +1,12 @@
|
|||
import 'reflect-metadata';
|
||||
// import 'reflect-metadata';
|
||||
import { Hono } from 'hono';
|
||||
import { injectable } from 'tsyringe';
|
||||
// import { injectable } from 'tsyringe';
|
||||
import { requireAuth } from "../middleware/auth.middleware";
|
||||
import type { HonoTypes } from '../types';
|
||||
import type { Controller } from '../interfaces/controller.interface';
|
||||
|
||||
@injectable()
|
||||
export class UserController implements Controller {
|
||||
// @injectable()
|
||||
class UserController implements Controller {
|
||||
controller = new Hono<HonoTypes>();
|
||||
|
||||
constructor(
|
||||
|
|
@ -24,3 +24,5 @@ export class UserController implements Controller {
|
|||
});
|
||||
}
|
||||
}
|
||||
|
||||
export const userControllerInstance = new UserController();
|
||||
|
|
|
|||
|
|
@ -1,13 +1,13 @@
|
|||
import 'reflect-metadata'
|
||||
// import 'reflect-metadata'
|
||||
import { Hono } from 'hono';
|
||||
import { hc } from 'hono/client';
|
||||
import { cors } from 'hono/cors';
|
||||
import { logger } from 'hono/logger';
|
||||
import { validateAuthSession, verifyOrigin } from './middleware/auth.middleware';
|
||||
import { config } from './common/config';
|
||||
import { container } from 'tsyringe';
|
||||
import { IamController } from './controllers/iam.controller';
|
||||
import { LoginController } from './controllers/login.controller';
|
||||
// import { container } from 'tsyringe';
|
||||
import iamControllerInstance from './controllers/iam.controller';
|
||||
import loginControllerInstance from './controllers/login.controller';
|
||||
|
||||
/* ----------------------------------- Api ---------------------------------- */
|
||||
const app = new Hono().basePath('/api');
|
||||
|
|
@ -34,8 +34,10 @@ app.use(
|
|||
|
||||
/* --------------------------------- Routes --------------------------------- */
|
||||
const routes = app
|
||||
.route('/user', container.resolve(IamController).routes())
|
||||
.route('/login', container.resolve(LoginController).routes())
|
||||
// .route('/user', container.resolve(IamController).routes())
|
||||
// .route('/login', container.resolve(LoginController).routes())
|
||||
.route('/user', iamControllerInstance.routes())
|
||||
.route('/login', loginControllerInstance.routes())
|
||||
.get('/', (c) => c.json({ message: 'Server is healthy' }));
|
||||
|
||||
/* -------------------------------------------------------------------------- */
|
||||
|
|
|
|||
|
|
@ -1,11 +1,11 @@
|
|||
import { container } from 'tsyringe';
|
||||
import { db } from '../infrastructure/database';
|
||||
// import { container } from 'tsyringe';
|
||||
// import { db } from '../infrastructure/database';
|
||||
|
||||
// Symbol
|
||||
export const DatabaseProvider = Symbol('DATABASE_TOKEN');
|
||||
// // Symbol
|
||||
// export const DatabaseProvider = Symbol('DATABASE_TOKEN');
|
||||
|
||||
// Type
|
||||
export type DatabaseProvider = typeof db;
|
||||
// // Type
|
||||
// export type DatabaseProvider = typeof db;
|
||||
|
||||
// Register
|
||||
container.register<DatabaseProvider>(DatabaseProvider, { useValue: db });
|
||||
// // Register
|
||||
// container.register<DatabaseProvider>(DatabaseProvider, { useValue: db });
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
export * from './database.provider';
|
||||
export * from './lucia.provider';
|
||||
export * from './redis.provider';
|
||||
// export * from './database.provider';
|
||||
// export * from './lucia.provider';
|
||||
// export * from './redis.provider';
|
||||
|
|
|
|||
|
|
@ -1,11 +1,11 @@
|
|||
import { container } from 'tsyringe';
|
||||
import { lucia } from '../infrastructure/auth/lucia';
|
||||
// import { container } from 'tsyringe';
|
||||
// import { lucia } from '../infrastructure/auth/lucia';
|
||||
|
||||
// Symbol
|
||||
export const LuciaProvider = Symbol('LUCIA_PROVIDER');
|
||||
// // Symbol
|
||||
// export const LuciaProvider = Symbol('LUCIA_PROVIDER');
|
||||
|
||||
// Type
|
||||
export type LuciaProvider = typeof lucia;
|
||||
// // Type
|
||||
// export type LuciaProvider = typeof lucia;
|
||||
|
||||
// Register
|
||||
container.register<LuciaProvider>(LuciaProvider, { useValue: lucia });
|
||||
// // Register
|
||||
// container.register<LuciaProvider>(LuciaProvider, { useValue: lucia });
|
||||
|
|
|
|||
|
|
@ -1,14 +1,14 @@
|
|||
import { container } from 'tsyringe';
|
||||
import RedisClient from 'ioredis'
|
||||
import { config } from '../common/config';
|
||||
// import { container } from 'tsyringe';
|
||||
// import RedisClient from 'ioredis'
|
||||
// import { config } from '../common/config';
|
||||
|
||||
// Symbol
|
||||
export const RedisProvider = Symbol('REDIS_TOKEN');
|
||||
// // Symbol
|
||||
// export const RedisProvider = Symbol('REDIS_TOKEN');
|
||||
|
||||
// Type
|
||||
export type RedisProvider = RedisClient;
|
||||
// // Type
|
||||
// export type RedisProvider = RedisClient;
|
||||
|
||||
// Register
|
||||
container.register<RedisProvider>(RedisProvider, {
|
||||
useValue: new RedisClient(config.REDIS_URL)
|
||||
});
|
||||
// // Register
|
||||
// container.register<RedisProvider>(RedisProvider, {
|
||||
// useValue: new RedisClient(config.REDIS_URL)
|
||||
// });
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ import { takeFirstOrThrow } from "../infrastructure/database/utils";
|
|||
export type CreateCredentials = InferInsertModel<typeof credentialsTable>;
|
||||
export type UpdateCredentials = Partial<CreateCredentials>;
|
||||
|
||||
export class CredentialsRepository {
|
||||
class CredentialsRepository {
|
||||
|
||||
async findOneByUserId(userId: string) {
|
||||
return db.query.credentialsTable.findFirst({
|
||||
|
|
@ -56,4 +56,6 @@ export class CredentialsRepository {
|
|||
.returning()
|
||||
.then(takeFirstOrThrow);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export const credentialsRepository = new CredentialsRepository();
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ storing data. They should not contain any business logic, only database queries.
|
|||
export type CreateUser = InferInsertModel<typeof usersTable>;
|
||||
export type UpdateUser = Partial<CreateUser>;
|
||||
|
||||
export class UsersRepository {
|
||||
class UsersRepository {
|
||||
async findOneById(id: string) {
|
||||
return db.query.usersTable.findFirst({
|
||||
where: eq(usersTable.id, id)
|
||||
|
|
@ -60,3 +60,5 @@ export class UsersRepository {
|
|||
.then(takeFirstOrThrow);
|
||||
}
|
||||
}
|
||||
|
||||
export const usersRepository = new UsersRepository();
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import { injectable } from "tsyringe";
|
||||
// import { injectable } from "tsyringe";
|
||||
import { Argon2id } from "oslo/password";
|
||||
|
||||
/* ---------------------------------- Note ---------------------------------- */
|
||||
|
|
@ -20,8 +20,8 @@ node_modules/.pnpm/@node-rs+argon2@1.7.0/node_modules/@node-rs/argon2/index.js:1
|
|||
/* -------------------------------------------------------------------------- */
|
||||
// If you don't use a hasher from oslo, which are preconfigured with recommended parameters from OWASP,
|
||||
// ensure that you configure them properly.
|
||||
@injectable()
|
||||
export class HashingService {
|
||||
// @injectable()
|
||||
class HashingService {
|
||||
private readonly hasher = new Argon2id();
|
||||
|
||||
async hash(data: string) {
|
||||
|
|
@ -31,4 +31,6 @@ export class HashingService {
|
|||
async verify(hash: string, data: string) {
|
||||
return this.hasher.verify(hash, data)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export const hashingService = new HashingService()
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
import { inject, injectable } from 'tsyringe';
|
||||
// import { inject, injectable } from 'tsyringe';
|
||||
import { lucia } from '../infrastructure/auth/lucia';
|
||||
import { LuciaProvider } from '../providers/lucia.provider';
|
||||
|
||||
/* -------------------------------------------------------------------------- */
|
||||
|
|
@ -18,13 +19,13 @@ Create private functions to handle complex logic and keep the public methods as
|
|||
simple as possible. This makes the service easier to read, test and understand.
|
||||
*/
|
||||
/* -------------------------------------------------------------------------- */
|
||||
@injectable()
|
||||
// @injectable()
|
||||
export class IamService {
|
||||
constructor(
|
||||
@inject(LuciaProvider) private readonly lucia: LuciaProvider,
|
||||
) { }
|
||||
// constructor(
|
||||
// @inject(LuciaProvider) private readonly lucia: LuciaProvider,
|
||||
// ) { }
|
||||
|
||||
async logout(sessionId: string) {
|
||||
return this.lucia.invalidateSession(sessionId);
|
||||
return lucia.invalidateSession(sessionId);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,24 +1,28 @@
|
|||
import { inject, injectable } from 'tsyringe';
|
||||
// import { inject, injectable } from 'tsyringe';
|
||||
import { BadRequest } from '../common/errors';
|
||||
import { DatabaseProvider } from '../providers';
|
||||
import { MailerService } from './mailer.service';
|
||||
import { TokensService } from './tokens.service';
|
||||
import { LuciaProvider } from '../providers/lucia.provider';
|
||||
import { UsersRepository } from '../repositories/users.repository';
|
||||
// import { DatabaseProvider } from '../providers';
|
||||
// import { MailerService } from './mailer.service';
|
||||
// import { TokensService } from './tokens.service';
|
||||
// import { LuciaProvider } from '../providers/lucia.provider';
|
||||
// import { UsersRepository } from '../repositories/users.repository';
|
||||
import type { SignInEmailDto } from '../../../dtos/signin-email.dto';
|
||||
import { CredentialsRepository } from '../repositories/credentials.repository';
|
||||
import type { HonoRequest } from 'hono';
|
||||
import { credentialsRepository } from '../repositories/credentials.repository';
|
||||
import { usersRepository } from '../repositories/users.repository';
|
||||
import { lucia } from '../infrastructure/auth/lucia';
|
||||
import { tokensService } from './tokens.service';
|
||||
import { mailerService } from './mailer.service';
|
||||
|
||||
@injectable()
|
||||
export class LoginRequestsService {
|
||||
constructor(
|
||||
@inject(LuciaProvider) private readonly lucia: LuciaProvider,
|
||||
@inject(DatabaseProvider) private readonly db: DatabaseProvider,
|
||||
@inject(TokensService) private readonly tokensService: TokensService,
|
||||
@inject(MailerService) private readonly mailerService: MailerService,
|
||||
@inject(UsersRepository) private readonly usersRepository: UsersRepository,
|
||||
@inject(CredentialsRepository) private readonly credentialsRepository: CredentialsRepository,
|
||||
) { }
|
||||
// @injectable()
|
||||
class LoginRequestsService {
|
||||
// constructor(
|
||||
// @inject(LuciaProvider) private readonly lucia: LuciaProvider,
|
||||
// @inject(DatabaseProvider) private readonly db: DatabaseProvider,
|
||||
// @inject(TokensService) private readonly tokensService: TokensService,
|
||||
// @inject(MailerService) private readonly mailerService: MailerService,
|
||||
// @inject(UsersRepository) private readonly usersRepository: UsersRepository,
|
||||
// @inject(CredentialsRepository) private readonly credentialsRepository: CredentialsRepository,
|
||||
// ) { }
|
||||
|
||||
// async create(data: RegisterEmailDto) {
|
||||
// // generate a token, expiry date, and hash
|
||||
|
|
@ -35,25 +39,25 @@ export class LoginRequestsService {
|
|||
async verify(data: SignInEmailDto, req: HonoRequest) {
|
||||
const requestIpAddress = req.header('x-real-ip');
|
||||
const requestIpCountry = req.header('x-vercel-ip-country');
|
||||
const existingUser = await this.usersRepository.findOneByUsername(data.username);
|
||||
const existingUser = await usersRepository.findOneByUsername(data.username);
|
||||
|
||||
if (!existingUser) {
|
||||
throw BadRequest('User not found');
|
||||
}
|
||||
|
||||
const credential = await this.credentialsRepository.findPasswordCredentialsByUserId(existingUser.id);
|
||||
const credential = await credentialsRepository.findPasswordCredentialsByUserId(existingUser.id);
|
||||
|
||||
if (!credential) {
|
||||
throw BadRequest('Invalid credentials');
|
||||
}
|
||||
|
||||
if (!await this.tokensService.verifyHashedToken(credential.hashedPassword, data.password)) {
|
||||
if (!await tokensService.verifyHashedToken(credential.hashedPassword, data.password)) {
|
||||
throw BadRequest('Invalid credentials');
|
||||
}
|
||||
|
||||
const totpCredentials = await this.credentialsRepository.findTOTPCredentialsByUserId(existingUser.id);
|
||||
const totpCredentials = await credentialsRepository.findTOTPCredentialsByUserId(existingUser.id);
|
||||
|
||||
return this.lucia.createSession(existingUser.id, {
|
||||
return lucia.createSession(existingUser.id, {
|
||||
ip_country: requestIpCountry || 'unknown',
|
||||
ip_address: requestIpAddress || 'unknown',
|
||||
twoFactorAuthEnabled:
|
||||
|
|
@ -66,8 +70,8 @@ export class LoginRequestsService {
|
|||
|
||||
// Create a new user and send a welcome email - or other onboarding process
|
||||
private async handleNewUserRegistration(email: string) {
|
||||
const newUser = await this.usersRepository.create({ email, verified: true, avatar: null })
|
||||
this.mailerService.sendWelcome({ to: email, props: null });
|
||||
const newUser = await usersRepository.create({ email, verified: true, avatar: null })
|
||||
mailerService.sendWelcome({ to: email, props: null });
|
||||
// TODO: add whatever onboarding process or extra data you need here
|
||||
return newUser
|
||||
}
|
||||
|
|
@ -88,4 +92,6 @@ export class LoginRequestsService {
|
|||
// return loginRequest
|
||||
// })
|
||||
// }
|
||||
}
|
||||
}
|
||||
|
||||
export const loginRequestsService = new LoginRequestsService();
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ import path from 'path';
|
|||
import nodemailer from 'nodemailer';
|
||||
import handlebars from 'handlebars';
|
||||
import { fileURLToPath } from 'url';
|
||||
import { injectable } from 'tsyringe';
|
||||
// import { injectable } from 'tsyringe';
|
||||
|
||||
/* -------------------------------------------------------------------------- */
|
||||
/* Service */
|
||||
|
|
@ -34,8 +34,8 @@ type SendTemplate<T> = {
|
|||
props: T;
|
||||
};
|
||||
|
||||
@injectable()
|
||||
export class MailerService {
|
||||
// @injectable()
|
||||
class MailerService {
|
||||
private nodemailer = nodemailer.createTransport({
|
||||
host: 'smtp.ethereal.email',
|
||||
port: 587,
|
||||
|
|
@ -102,3 +102,5 @@ export class MailerService {
|
|||
);
|
||||
}
|
||||
}
|
||||
|
||||
export const mailerService = new MailerService();
|
||||
|
|
|
|||
|
|
@ -1,13 +1,13 @@
|
|||
import { injectable } from "tsyringe";
|
||||
// import { injectable } from "tsyringe";
|
||||
import RedisClient from 'ioredis'
|
||||
import { config } from "../common/config";
|
||||
import { Queue, Worker, type Processor } from 'bullmq';
|
||||
|
||||
@injectable()
|
||||
// @injectable()
|
||||
export class QueuesServices {
|
||||
connection = new RedisClient(config.REDIS_URL);
|
||||
|
||||
constructor() { }
|
||||
// constructor() { }
|
||||
|
||||
createQueue(name: string) {
|
||||
return new Queue(name, { connection: this.connection })
|
||||
|
|
|
|||
|
|
@ -1,11 +1,11 @@
|
|||
import { inject, injectable } from "tsyringe";
|
||||
// import { inject, injectable } from "tsyringe";
|
||||
import { generateRandomString } from "oslo/crypto";
|
||||
import { TimeSpan, createDate, type TimeSpanUnit } from 'oslo';
|
||||
import { HashingService } from "./hashing.service";
|
||||
import { hashingService } from "./hashing.service";
|
||||
|
||||
@injectable()
|
||||
export class TokensService {
|
||||
constructor(@inject(HashingService) private readonly hashingService: HashingService) { }
|
||||
// @injectable()
|
||||
class TokensService {
|
||||
// constructor(@inject(HashingService) private readonly hashingService: HashingService) { }
|
||||
|
||||
generateToken() {
|
||||
const alphabet = '23456789ACDEFGHJKLMNPQRSTUVWXYZ'; // alphabet with removed look-alike characters (0, 1, O, I)
|
||||
|
|
@ -21,7 +21,7 @@ export class TokensService {
|
|||
|
||||
async generateTokenWithExpiryAndHash(number: number, lifespan: TimeSpanUnit) {
|
||||
const token = this.generateToken()
|
||||
const hashedToken = await this.hashingService.hash(token)
|
||||
const hashedToken = await hashingService.hash(token)
|
||||
return {
|
||||
token,
|
||||
hashedToken,
|
||||
|
|
@ -30,6 +30,8 @@ export class TokensService {
|
|||
}
|
||||
|
||||
async verifyHashedToken(hashedToken: string, token: string) {
|
||||
return this.hashingService.verify(hashedToken, token)
|
||||
return hashingService.verify(hashedToken, token)
|
||||
}
|
||||
}
|
||||
|
||||
export const tokensService = new TokensService()
|
||||
|
|
@ -1,17 +1,19 @@
|
|||
import { inject, injectable } from 'tsyringe';
|
||||
import type { UsersRepository } from '../repositories/users.repository';
|
||||
// import { inject, injectable } from 'tsyringe';
|
||||
// import type { UsersRepository } from '../repositories/users.repository';
|
||||
|
||||
@injectable()
|
||||
import { usersRepository } from "../repositories/users.repository";
|
||||
|
||||
// @injectable()
|
||||
export class UsersService {
|
||||
constructor(
|
||||
@inject('UsersRepository') private readonly usersRepository: UsersRepository
|
||||
) { }
|
||||
// constructor(
|
||||
// @inject('UsersRepository') private readonly usersRepository: UsersRepository
|
||||
// ) { }
|
||||
|
||||
async findOneByUsername(username: string) {
|
||||
return this.usersRepository.findOneByUsername(username);
|
||||
return usersRepository.findOneByUsername(username);
|
||||
}
|
||||
|
||||
async findOneById(id: string) {
|
||||
return this.usersRepository.findOneById(id);
|
||||
return usersRepository.findOneById(id);
|
||||
}
|
||||
}
|
||||
|
|
@ -1,9 +1,9 @@
|
|||
// import { dev } from '$app/environment';
|
||||
import { dev } from '$app/environment';
|
||||
|
||||
// // we don't need any JS on this page, though we'll load
|
||||
// // it in dev so that we get hot module replacement...
|
||||
// export const csr = dev;
|
||||
// we don't need any JS on this page, though we'll load
|
||||
// it in dev so that we get hot module replacement...
|
||||
export const csr = dev;
|
||||
|
||||
// // since there's no dynamic data here, we can prerender
|
||||
// // it so that it gets served as a static asset in prod
|
||||
// export const prerender = true;
|
||||
// since there's no dynamic data here, we can prerender
|
||||
// it so that it gets served as a static asset in prod
|
||||
export const prerender = true;
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
// export const prerender = true;
|
||||
export const prerender = true;
|
||||
|
|
@ -1 +1 @@
|
|||
// export const prerender = true;
|
||||
export const prerender = true;
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import 'reflect-metadata'
|
||||
// import 'reflect-metadata'
|
||||
import adapter from '@sveltejs/adapter-vercel';
|
||||
import { vitePreprocess } from '@sveltejs/vite-plugin-svelte';
|
||||
import { preprocessMeltUI } from '@melt-ui/pp';
|
||||
|
|
|
|||
|
|
@ -1,41 +0,0 @@
|
|||
// vite.config.ts
|
||||
import { sveltekit } from "file:///home/bshellnu/projects/websites/boredgame/node_modules/.pnpm/@sveltejs+kit@2.5.18_@sveltejs+vite-plugin-svelte@3.1.1_svelte@5.0.0-next.175_vite@5.3.5_@typ_ps3ubydtq463bedtodypwfb5fu/node_modules/@sveltejs/kit/src/exports/vite/index.js";
|
||||
import { defineConfig } from "file:///home/bshellnu/projects/websites/boredgame/node_modules/.pnpm/vite@5.3.5_@types+node@20.14.13_sass@1.77.8/node_modules/vite/dist/node/index.js";
|
||||
var vite_config_default = defineConfig({
|
||||
plugins: [
|
||||
// sentrySvelteKit({
|
||||
// sourceMapsUploadOptions: {
|
||||
// org: process.env.SENTRY_ORG,
|
||||
// project: process.env.SENTRY_PROJECT,
|
||||
// authToken: process.env.SENTRY_AUTH_TOKEN,
|
||||
// cleanArtifacts: true,
|
||||
// }
|
||||
// }),
|
||||
sveltekit()
|
||||
],
|
||||
test: {
|
||||
include: ["src/**/*.{test,spec}.{js,ts}"]
|
||||
},
|
||||
css: {
|
||||
devSourcemap: true,
|
||||
preprocessorOptions: {
|
||||
postcss: {
|
||||
additionalData: `
|
||||
@custom-media --below_small (width < 400px);
|
||||
@custom-media --below_med (width < 700px);
|
||||
@custom-media --below_large (width < 900px);
|
||||
@custom-media --below_xlarge (width < 1200px);
|
||||
|
||||
@custom-media --above_small (width > 400px);
|
||||
@custom-media --above_med (width > 700px);
|
||||
@custom-media --above_large (width > 900px);
|
||||
@custom-media --above_xlarge (width > 1200px);
|
||||
`
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
export {
|
||||
vite_config_default as default
|
||||
};
|
||||
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsidml0ZS5jb25maWcudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCIvaG9tZS9ic2hlbGxudS9wcm9qZWN0cy93ZWJzaXRlcy9ib3JlZGdhbWVcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZmlsZW5hbWUgPSBcIi9ob21lL2JzaGVsbG51L3Byb2plY3RzL3dlYnNpdGVzL2JvcmVkZ2FtZS92aXRlLmNvbmZpZy50c1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9pbXBvcnRfbWV0YV91cmwgPSBcImZpbGU6Ly8vaG9tZS9ic2hlbGxudS9wcm9qZWN0cy93ZWJzaXRlcy9ib3JlZGdhbWUvdml0ZS5jb25maWcudHNcIjsvLyBpbXBvcnQgeyBzZW50cnlTdmVsdGVLaXQgfSBmcm9tIFwiQHNlbnRyeS9zdmVsdGVraXRcIjtcbmltcG9ydCB7IHN2ZWx0ZWtpdCB9IGZyb20gJ0BzdmVsdGVqcy9raXQvdml0ZSc7XG5pbXBvcnQgeyBkZWZpbmVDb25maWcgfSBmcm9tICd2aXRlJztcblxuLy8gVE9ETzogRml4IFNlbnRyeVxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lQ29uZmlnKHtcblx0cGx1Z2luczogW1xuXHRcdC8vIHNlbnRyeVN2ZWx0ZUtpdCh7XG5cdFx0Ly8gXHRzb3VyY2VNYXBzVXBsb2FkT3B0aW9uczoge1xuXHRcdC8vIFx0XHRvcmc6IHByb2Nlc3MuZW52LlNFTlRSWV9PUkcsXG5cdFx0Ly8gXHRcdHByb2plY3Q6IHByb2Nlc3MuZW52LlNFTlRSWV9QUk9KRUNULFxuXHRcdC8vIFx0XHRhdXRoVG9rZW46IHByb2Nlc3MuZW52LlNFTlRSWV9BVVRIX1RPS0VOLFxuXHRcdC8vIFx0XHRjbGVhbkFydGlmYWN0czogdHJ1ZSxcblx0XHQvLyBcdH1cblx0XHQvLyB9KSxcblx0XHRzdmVsdGVraXQoKVxuXHRdLFxuXHR0ZXN0OiB7XG5cdFx0aW5jbHVkZTogWydzcmMvKiovKi57dGVzdCxzcGVjfS57anMsdHN9J11cblx0fSxcblx0Y3NzOiB7XG5cdFx0ZGV2U291cmNlbWFwOiB0cnVlLFxuXHRcdHByZXByb2Nlc3Nvck9wdGlvbnM6IHtcblx0XHRcdHBvc3Rjc3M6IHtcblx0XHRcdFx0YWRkaXRpb25hbERhdGE6IGBcblx0XHRcdFx0QGN1c3RvbS1tZWRpYSAtLWJlbG93X3NtYWxsICh3aWR0aCA8IDQwMHB4KTtcblx0XHRcdFx0QGN1c3RvbS1tZWRpYSAtLWJlbG93X21lZCAod2lkdGggPCA3MDBweCk7XG5cdFx0XHRcdEBjdXN0b20tbWVkaWEgLS1iZWxvd19sYXJnZSAod2lkdGggPCA5MDBweCk7XG5cdFx0XHRcdEBjdXN0b20tbWVkaWEgLS1iZWxvd194bGFyZ2UgKHdpZHRoIDwgMTIwMHB4KTtcblxuXHRcdFx0XHRAY3VzdG9tLW1lZGlhIC0tYWJvdmVfc21hbGwgKHdpZHRoID4gNDAwcHgpO1xuXHRcdFx0XHRAY3VzdG9tLW1lZGlhIC0tYWJvdmVfbWVkICh3aWR0aCA+IDcwMHB4KTtcblx0XHRcdFx0QGN1c3RvbS1tZWRpYSAtLWFib3ZlX2xhcmdlICh3aWR0aCA+IDkwMHB4KTtcblx0XHRcdFx0QGN1c3RvbS1tZWRpYSAtLWFib3ZlX3hsYXJnZSAod2lkdGggPiAxMjAwcHgpO1xuXHRcdFx0XHRgXG5cdFx0XHR9XG5cdFx0fVxuXHR9LFxufSk7XG4iXSwKICAibWFwcGluZ3MiOiAiO0FBQ0EsU0FBUyxpQkFBaUI7QUFDMUIsU0FBUyxvQkFBb0I7QUFHN0IsSUFBTyxzQkFBUSxhQUFhO0FBQUEsRUFDM0IsU0FBUztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxJQVNSLFVBQVU7QUFBQSxFQUNYO0FBQUEsRUFDQSxNQUFNO0FBQUEsSUFDTCxTQUFTLENBQUMsOEJBQThCO0FBQUEsRUFDekM7QUFBQSxFQUNBLEtBQUs7QUFBQSxJQUNKLGNBQWM7QUFBQSxJQUNkLHFCQUFxQjtBQUFBLE1BQ3BCLFNBQVM7QUFBQSxRQUNSLGdCQUFnQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsTUFXakI7QUFBQSxJQUNEO0FBQUEsRUFDRDtBQUNELENBQUM7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
||||
Loading…
Reference in a new issue