mirror of
https://github.com/BradNut/boredgame
synced 2025-09-08 17:40:22 +00:00
Fix tests, write random name generator, install faker, and update dependencies.
This commit is contained in:
parent
426ced1373
commit
14fe604bf4
24 changed files with 469 additions and 265 deletions
25
package.json
25
package.json
|
|
@ -23,15 +23,16 @@
|
|||
"test:unit": "vitest"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@faker-js/faker": "^8.4.1",
|
||||
"@melt-ui/pp": "^0.3.2",
|
||||
"@melt-ui/svelte": "^0.83.0",
|
||||
"@playwright/test": "^1.46.0",
|
||||
"@sveltejs/adapter-auto": "^3.2.2",
|
||||
"@sveltejs/enhanced-img": "^0.3.1",
|
||||
"@sveltejs/kit": "^2.5.20",
|
||||
"@sveltejs/adapter-auto": "^3.2.4",
|
||||
"@sveltejs/enhanced-img": "^0.3.3",
|
||||
"@sveltejs/kit": "^2.5.22",
|
||||
"@sveltejs/vite-plugin-svelte": "^3.1.1",
|
||||
"@types/cookie": "^0.6.0",
|
||||
"@types/node": "^20.14.14",
|
||||
"@types/node": "^20.14.15",
|
||||
"@types/pg": "^8.11.6",
|
||||
"@typescript-eslint/eslint-plugin": "^7.18.0",
|
||||
"@typescript-eslint/parser": "^7.18.0",
|
||||
|
|
@ -63,12 +64,12 @@
|
|||
"sveltekit-flash-message": "^2.4.4",
|
||||
"sveltekit-rate-limiter": "^0.5.2",
|
||||
"sveltekit-superforms": "^2.16.1",
|
||||
"tailwindcss": "^3.4.7",
|
||||
"tailwindcss": "^3.4.9",
|
||||
"ts-node": "^10.9.2",
|
||||
"tslib": "^2.6.3",
|
||||
"tsx": "^4.16.5",
|
||||
"tsx": "^4.17.0",
|
||||
"typescript": "^5.5.4",
|
||||
"vite": "^5.3.5",
|
||||
"vite": "^5.4.0",
|
||||
"vitest": "^1.6.0",
|
||||
"zod": "^3.23.8"
|
||||
},
|
||||
|
|
@ -84,14 +85,14 @@
|
|||
"@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",
|
||||
"@sveltejs/adapter-node": "^5.2.2",
|
||||
"@sveltejs/adapter-vercel": "^5.4.3",
|
||||
"@types/feather-icons": "^4.29.4",
|
||||
"@vercel/og": "^0.5.20",
|
||||
"arctic": "^1.9.2",
|
||||
"bits-ui": "^0.21.13",
|
||||
"boardgamegeekclient": "^1.9.1",
|
||||
"bullmq": "^5.12.0",
|
||||
"bullmq": "^5.12.5",
|
||||
"class-variance-authority": "^0.7.0",
|
||||
"clsx": "^2.1.1",
|
||||
"cookie": "^0.6.0",
|
||||
|
|
@ -101,7 +102,7 @@
|
|||
"feather-icons": "^4.29.2",
|
||||
"formsnap": "^1.0.1",
|
||||
"handlebars": "^4.7.8",
|
||||
"hono": "^4.5.3",
|
||||
"hono": "^4.5.5",
|
||||
"hono-rate-limiter": "^0.4.0",
|
||||
"html-entities": "^2.5.2",
|
||||
"iconify-icon": "^2.1.0",
|
||||
|
|
@ -119,7 +120,7 @@
|
|||
"reflect-metadata": "^0.2.2",
|
||||
"svelte-french-toast": "^1.2.0",
|
||||
"svelte-lazy-loader": "^1.0.0",
|
||||
"tailwind-merge": "^2.4.0",
|
||||
"tailwind-merge": "^2.5.2",
|
||||
"tailwind-variants": "^0.2.1",
|
||||
"tailwindcss-animate": "^1.0.7",
|
||||
"tsyringe": "^4.8.0",
|
||||
|
|
|
|||
281
pnpm-lock.yaml
281
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.3)(zod@3.23.8)
|
||||
version: 0.2.2(hono@4.5.5)(zod@3.23.8)
|
||||
'@iconify-icons/line-md':
|
||||
specifier: ^1.2.30
|
||||
version: 1.2.30
|
||||
|
|
@ -39,11 +39,11 @@ importers:
|
|||
specifier: ^2.6.2
|
||||
version: 2.6.2
|
||||
'@sveltejs/adapter-node':
|
||||
specifier: ^5.2.0
|
||||
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)))
|
||||
specifier: ^5.2.2
|
||||
version: 5.2.2(@sveltejs/kit@2.5.22(@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.0.0-next.175)(vite@5.4.0(@types/node@20.14.15)(sass@1.77.8)))(svelte@5.0.0-next.175)(vite@5.4.0(@types/node@20.14.15)(sass@1.77.8)))
|
||||
'@sveltejs/adapter-vercel':
|
||||
specifier: ^5.4.1
|
||||
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)))
|
||||
specifier: ^5.4.3
|
||||
version: 5.4.3(@sveltejs/kit@2.5.22(@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.0.0-next.175)(vite@5.4.0(@types/node@20.14.15)(sass@1.77.8)))(svelte@5.0.0-next.175)(vite@5.4.0(@types/node@20.14.15)(sass@1.77.8)))
|
||||
'@types/feather-icons':
|
||||
specifier: ^4.29.4
|
||||
version: 4.29.4
|
||||
|
|
@ -60,8 +60,8 @@ importers:
|
|||
specifier: ^1.9.1
|
||||
version: 1.9.1
|
||||
bullmq:
|
||||
specifier: ^5.12.0
|
||||
version: 5.12.0
|
||||
specifier: ^5.12.5
|
||||
version: 5.12.5
|
||||
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.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))
|
||||
version: 1.0.1(svelte@5.0.0-next.175)(sveltekit-superforms@2.16.1(@sveltejs/kit@2.5.22(@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.0.0-next.175)(vite@5.4.0(@types/node@20.14.15)(sass@1.77.8)))(svelte@5.0.0-next.175)(vite@5.4.0(@types/node@20.14.15)(sass@1.77.8)))(svelte@5.0.0-next.175))
|
||||
handlebars:
|
||||
specifier: ^4.7.8
|
||||
version: 4.7.8
|
||||
hono:
|
||||
specifier: ^4.5.3
|
||||
version: 4.5.3
|
||||
specifier: ^4.5.5
|
||||
version: 4.5.5
|
||||
hono-rate-limiter:
|
||||
specifier: ^0.4.0
|
||||
version: 0.4.0(hono@4.5.3)
|
||||
version: 0.4.0(hono@4.5.5)
|
||||
html-entities:
|
||||
specifier: ^2.5.2
|
||||
version: 2.5.2
|
||||
|
|
@ -144,14 +144,14 @@ importers:
|
|||
specifier: ^1.0.0
|
||||
version: 1.0.0
|
||||
tailwind-merge:
|
||||
specifier: ^2.4.0
|
||||
version: 2.4.0
|
||||
specifier: ^2.5.2
|
||||
version: 2.5.2
|
||||
tailwind-variants:
|
||||
specifier: ^0.2.1
|
||||
version: 0.2.1(tailwindcss@3.4.7(ts-node@10.9.2(@types/node@20.14.14)(typescript@5.5.4)))
|
||||
version: 0.2.1(tailwindcss@3.4.9(ts-node@10.9.2(@types/node@20.14.15)(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.14)(typescript@5.5.4)))
|
||||
version: 1.0.7(tailwindcss@3.4.9(ts-node@10.9.2(@types/node@20.14.15)(typescript@5.5.4)))
|
||||
tsyringe:
|
||||
specifier: ^4.8.0
|
||||
version: 4.8.0
|
||||
|
|
@ -159,6 +159,9 @@ importers:
|
|||
specifier: ^3.23.2
|
||||
version: 3.23.2(zod@3.23.8)
|
||||
devDependencies:
|
||||
'@faker-js/faker':
|
||||
specifier: ^8.4.1
|
||||
version: 8.4.1
|
||||
'@melt-ui/pp':
|
||||
specifier: ^0.3.2
|
||||
version: 0.3.2(@melt-ui/svelte@0.83.0(svelte@5.0.0-next.175))(svelte@5.0.0-next.175)
|
||||
|
|
@ -169,23 +172,23 @@ importers:
|
|||
specifier: ^1.46.0
|
||||
version: 1.46.0
|
||||
'@sveltejs/adapter-auto':
|
||||
specifier: ^3.2.2
|
||||
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)))
|
||||
specifier: ^3.2.4
|
||||
version: 3.2.4(@sveltejs/kit@2.5.22(@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.0.0-next.175)(vite@5.4.0(@types/node@20.14.15)(sass@1.77.8)))(svelte@5.0.0-next.175)(vite@5.4.0(@types/node@20.14.15)(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.14)(sass@1.77.8))
|
||||
specifier: ^0.3.3
|
||||
version: 0.3.3(rollup@4.18.1)(svelte@5.0.0-next.175)(vite@5.4.0(@types/node@20.14.15)(sass@1.77.8))
|
||||
'@sveltejs/kit':
|
||||
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))
|
||||
specifier: ^2.5.22
|
||||
version: 2.5.22(@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.0.0-next.175)(vite@5.4.0(@types/node@20.14.15)(sass@1.77.8)))(svelte@5.0.0-next.175)(vite@5.4.0(@types/node@20.14.15)(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.14)(sass@1.77.8))
|
||||
version: 3.1.1(svelte@5.0.0-next.175)(vite@5.4.0(@types/node@20.14.15)(sass@1.77.8))
|
||||
'@types/cookie':
|
||||
specifier: ^0.6.0
|
||||
version: 0.6.0
|
||||
'@types/node':
|
||||
specifier: ^20.14.14
|
||||
version: 20.14.14
|
||||
specifier: ^20.14.15
|
||||
version: 20.14.15
|
||||
'@types/pg':
|
||||
specifier: ^8.11.6
|
||||
version: 8.11.6
|
||||
|
|
@ -209,7 +212,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.14)(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.15)(typescript@5.5.4))
|
||||
just-clone:
|
||||
specifier: ^6.2.0
|
||||
version: 6.2.0
|
||||
|
|
@ -233,7 +236,7 @@ importers:
|
|||
version: 16.1.0(postcss@8.4.41)
|
||||
postcss-load-config:
|
||||
specifier: ^5.1.0
|
||||
version: 5.1.0(jiti@1.21.6)(postcss@8.4.41)(tsx@4.16.5)
|
||||
version: 5.1.0(jiti@1.21.6)(postcss@8.4.41)(tsx@4.17.0)
|
||||
postcss-preset-env:
|
||||
specifier: ^9.6.0
|
||||
version: 9.6.0(postcss@8.4.41)
|
||||
|
|
@ -257,7 +260,7 @@ importers:
|
|||
version: 5.0.0-next.175
|
||||
svelte-check:
|
||||
specifier: ^3.8.5
|
||||
version: 3.8.5(postcss-load-config@5.1.0(jiti@1.21.6)(postcss@8.4.41)(tsx@4.16.5))(postcss@8.4.41)(sass@1.77.8)(svelte@5.0.0-next.175)
|
||||
version: 3.8.5(postcss-load-config@5.1.0(jiti@1.21.6)(postcss@8.4.41)(tsx@4.17.0))(postcss@8.4.41)(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)
|
||||
|
|
@ -266,40 +269,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.41)(tsx@4.16.5))(postcss@8.4.41)(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.41)(tsx@4.17.0))(postcss@8.4.41)(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.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)
|
||||
version: 2.4.4(@sveltejs/kit@2.5.22(@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.0.0-next.175)(vite@5.4.0(@types/node@20.14.15)(sass@1.77.8)))(svelte@5.0.0-next.175)(vite@5.4.0(@types/node@20.14.15)(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.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)))
|
||||
version: 0.5.2(@sveltejs/kit@2.5.22(@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.0.0-next.175)(vite@5.4.0(@types/node@20.14.15)(sass@1.77.8)))(svelte@5.0.0-next.175)(vite@5.4.0(@types/node@20.14.15)(sass@1.77.8)))
|
||||
sveltekit-superforms:
|
||||
specifier: ^2.16.1
|
||||
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)
|
||||
version: 2.16.1(@sveltejs/kit@2.5.22(@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.0.0-next.175)(vite@5.4.0(@types/node@20.14.15)(sass@1.77.8)))(svelte@5.0.0-next.175)(vite@5.4.0(@types/node@20.14.15)(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.14)(typescript@5.5.4))
|
||||
specifier: ^3.4.9
|
||||
version: 3.4.9(ts-node@10.9.2(@types/node@20.14.15)(typescript@5.5.4))
|
||||
ts-node:
|
||||
specifier: ^10.9.2
|
||||
version: 10.9.2(@types/node@20.14.14)(typescript@5.5.4)
|
||||
version: 10.9.2(@types/node@20.14.15)(typescript@5.5.4)
|
||||
tslib:
|
||||
specifier: ^2.6.3
|
||||
version: 2.6.3
|
||||
tsx:
|
||||
specifier: ^4.16.5
|
||||
version: 4.16.5
|
||||
specifier: ^4.17.0
|
||||
version: 4.17.0
|
||||
typescript:
|
||||
specifier: ^5.5.4
|
||||
version: 5.5.4
|
||||
vite:
|
||||
specifier: ^5.3.5
|
||||
version: 5.3.5(@types/node@20.14.14)(sass@1.77.8)
|
||||
specifier: ^5.4.0
|
||||
version: 5.4.0(@types/node@20.14.15)(sass@1.77.8)
|
||||
vitest:
|
||||
specifier: ^1.6.0
|
||||
version: 1.6.0(@types/node@20.14.14)(sass@1.77.8)
|
||||
version: 1.6.0(@types/node@20.14.15)(sass@1.77.8)
|
||||
zod:
|
||||
specifier: ^3.23.8
|
||||
version: 3.23.8
|
||||
|
|
@ -1159,6 +1162,10 @@ packages:
|
|||
'@exodus/schemasafe@1.3.0':
|
||||
resolution: {integrity: sha512-5Aap/GaRupgNx/feGBwLLTVv8OQFfv3pq2lPRzPg9R+IOBnDgghTGW7l7EuVXOvg5cc/xSAlRW8rBrjIC3Nvqw==}
|
||||
|
||||
'@faker-js/faker@8.4.1':
|
||||
resolution: {integrity: sha512-XQ3cU+Q8Uqmrbf2e0cIC/QN43sTBSC8KF12u29Mb47tWrt2hAgBXSgpZMj4Ao8Uk0iJcU99QsOCaIL8934obCg==}
|
||||
engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0, npm: '>=6.14.13'}
|
||||
|
||||
'@floating-ui/core@1.6.1':
|
||||
resolution: {integrity: sha512-42UH54oPZHPdRHdw6BgoBD6cg/eVTmVrFcgeRDM3jbO7uxSoipVcmcIGFcA5jmOHO5apcyvBhkSKES3fQJnu7A==}
|
||||
|
||||
|
|
@ -1950,29 +1957,29 @@ packages:
|
|||
'@sodaru/yup-to-json-schema@2.0.1':
|
||||
resolution: {integrity: sha512-lWb0Wiz8KZ9ip/dY1eUqt7fhTPmL24p6Hmv5Fd9pzlzAdw/YNcWZr+tiCT4oZ4Zyxzi9+1X4zv82o7jYvcFxYA==}
|
||||
|
||||
'@sveltejs/adapter-auto@3.2.2':
|
||||
resolution: {integrity: sha512-Mso5xPCA8zgcKrv+QioVlqMZkyUQ5MjDJiEPuG/Z7cV/5tmwV7LmcVWk5tZ+H0NCOV1x12AsoSpt/CwFwuVXMA==}
|
||||
'@sveltejs/adapter-auto@3.2.4':
|
||||
resolution: {integrity: sha512-a64AKYbfTUrVwU0xslzv1Jf3M8bj0IwhptaXmhgIkjXspBXhD0od9JiItQHchijpLMGdEDcYBlvqySkEawv6mQ==}
|
||||
peerDependencies:
|
||||
'@sveltejs/kit': ^2.0.0
|
||||
|
||||
'@sveltejs/adapter-node@5.2.0':
|
||||
resolution: {integrity: sha512-HVZoei2078XSyPmvdTHE03VXDUD0ytTvMuMHMQP0j6zX4nPDpCcKrgvU7baEblMeCCMdM/shQvstFxOJPQKlUQ==}
|
||||
'@sveltejs/adapter-node@5.2.2':
|
||||
resolution: {integrity: sha512-BCX4zP0cf86TXpmvLQTnnT/tp7P12UMezf+5LwljP1MJC1fFzn9XOXpAHQCyP+pyHGy2K7p5gY0LyLcZFAL02w==}
|
||||
peerDependencies:
|
||||
'@sveltejs/kit': ^2.4.0
|
||||
|
||||
'@sveltejs/adapter-vercel@5.4.1':
|
||||
resolution: {integrity: sha512-JLcD1OgMnu9lQ8EssxVGxv7w0waWuyVzItTT1eqIH98Krufd9qfr1uC9zgo82z3dJ9v1AfPEbvIX5tonceg7XQ==}
|
||||
'@sveltejs/adapter-vercel@5.4.3':
|
||||
resolution: {integrity: sha512-srZBkMpeaa7lflO1ZGdKTW3jWHscE9rdAkyxgRlVMVyugjcPOZ3dcpEfpoM4wtVCbpEOdHniWqQR9yL+zs4ybA==}
|
||||
peerDependencies:
|
||||
'@sveltejs/kit': ^2.4.0
|
||||
|
||||
'@sveltejs/enhanced-img@0.3.1':
|
||||
resolution: {integrity: sha512-75A4YiXQp+GRc54EyiNOlhHnHt9O8e0CdCHLm3RWESLRaazd5OIciSa4SbKIo9DM84yGwSVShU0buyUmNJvgWg==}
|
||||
'@sveltejs/enhanced-img@0.3.3':
|
||||
resolution: {integrity: sha512-nsqJkVuYLUXARDLjMoGKAt4oLzwtY8X2E8rIl/TJl7ueLjpTISxrAhVRN3r8yMO+R+so4G6Taiix2mpiPpqZeg==}
|
||||
peerDependencies:
|
||||
svelte: ^4.0.0 || ^5.0.0-next.0
|
||||
vite: '>= 5.0.0'
|
||||
|
||||
'@sveltejs/kit@2.5.20':
|
||||
resolution: {integrity: sha512-47rJ5BoYwURE/Rp7FNMLp3NzdbWC9DQ/PmKd0mebxT2D/PrPxZxcLImcD3zsWdX2iS6oJk8ITJbO/N2lWnnUqA==}
|
||||
'@sveltejs/kit@2.5.22':
|
||||
resolution: {integrity: sha512-PQ98baF2WzvG5yiO4cZKJZJG60XjHTZD1jyho3u9Kmthx2ytdGYyVPPvKXgKXpKSq4wwctD9dl0d2blSbJMcOg==}
|
||||
engines: {node: '>=18.13'}
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
|
|
@ -2025,8 +2032,8 @@ packages:
|
|||
'@types/json-schema@7.0.15':
|
||||
resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
|
||||
|
||||
'@types/node@20.14.14':
|
||||
resolution: {integrity: sha512-d64f00982fS9YoOgJkAMolK7MN8Iq3TDdVjchbYHdEmjth/DHowx82GnoA+tVUAN+7vxfYUgAzi+JXbKNd2SDQ==}
|
||||
'@types/node@20.14.15':
|
||||
resolution: {integrity: sha512-Fz1xDMCF/B00/tYSVMlmK7hVeLh7jE5f3B7X1/hmV0MJBwE27KlS7EvD/Yp+z1lm8mVhwV5w+n8jOZG8AfTlKw==}
|
||||
|
||||
'@types/pg@8.11.6':
|
||||
resolution: {integrity: sha512-/2WmmBXHLsfRqzfHW7BNZ8SbYzE8OSk7i3WjFYvfgRHj7S1xj+16Je5fUKv3lVdVzk/zn9TXOqf+avFCFIE0yQ==}
|
||||
|
|
@ -2313,8 +2320,8 @@ packages:
|
|||
resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==}
|
||||
engines: {node: '>=6'}
|
||||
|
||||
bullmq@5.12.0:
|
||||
resolution: {integrity: sha512-kOtSQx9ymylslsLNFD0xOMJM9mHqnq3x6KD7+DYkHByWe0HFRdblpYKhZyL4uR3rwaKZwzOrJVl3RwRaDjZxSg==}
|
||||
bullmq@5.12.5:
|
||||
resolution: {integrity: sha512-lchCvFuPdaIbq01qnyS7MOt2piPeCDHzCqIxNAQEgDSzZ+Eb4RBboUUMgmW90UtMjV46mEqsWY9B1l/7/C13SA==}
|
||||
|
||||
bytes@3.1.2:
|
||||
resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==}
|
||||
|
|
@ -3083,8 +3090,8 @@ packages:
|
|||
peerDependencies:
|
||||
hono: ^4.1.1
|
||||
|
||||
hono@4.5.3:
|
||||
resolution: {integrity: sha512-r26WwwbKD3BAYdfB294knNnegNda7VfV1tVn66D9Kvl9WQTdrR+5eKdoeaQNHQcC3Gr0KBikzAtjd6VsRGVSaw==}
|
||||
hono@4.5.5:
|
||||
resolution: {integrity: sha512-fXBXHqaVfimWofbelLXci8pZyIwBMkDIwCa4OwZvK+xVbEyYLELVP4DfbGaj1aEM6ZY3hHgs4qLvCO2ChkhgQw==}
|
||||
engines: {node: '>=16.0.0'}
|
||||
|
||||
html-entities@2.5.2:
|
||||
|
|
@ -4526,8 +4533,8 @@ packages:
|
|||
tabbable@6.2.0:
|
||||
resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==}
|
||||
|
||||
tailwind-merge@2.4.0:
|
||||
resolution: {integrity: sha512-49AwoOQNKdqKPd9CViyH5wJoSKsCDjUlzL8DxuGp3P1FsGY36NJDAa18jLZcaHAUUuTj+JB8IAo8zWgBNvBF7A==}
|
||||
tailwind-merge@2.5.2:
|
||||
resolution: {integrity: sha512-kjEBm+pvD+6eAwzJL2Bi+02/9LFLal1Gs61+QB7HvTfQQ0aXwC5LGT8PEt1gS0CWKktKe6ysPTAy3cBC5MeiIg==}
|
||||
|
||||
tailwind-variants@0.2.1:
|
||||
resolution: {integrity: sha512-2xmhAf4UIc3PijOUcJPA1LP4AbxhpcHuHM2C26xM0k81r0maAO6uoUSHl3APmvHZcY5cZCY/bYuJdfFa4eGoaw==}
|
||||
|
|
@ -4540,8 +4547,8 @@ packages:
|
|||
peerDependencies:
|
||||
tailwindcss: '>=3.0.0 || insiders'
|
||||
|
||||
tailwindcss@3.4.7:
|
||||
resolution: {integrity: sha512-rxWZbe87YJb4OcSopb7up2Ba4U82BoiSGUdoDr3Ydrg9ckxFS/YWsvhN323GMcddgU65QRy7JndC7ahhInhvlQ==}
|
||||
tailwindcss@3.4.9:
|
||||
resolution: {integrity: sha512-1SEOvRr6sSdV5IDf9iC+NU4dhwdqzF4zKKq3sAbasUWHEM6lsMhX+eNN5gkPx1BvLFEnZQEUFbXnGj8Qlp83Pg==}
|
||||
engines: {node: '>=14.0.0'}
|
||||
hasBin: true
|
||||
|
||||
|
|
@ -4636,8 +4643,8 @@ packages:
|
|||
tslib@2.6.3:
|
||||
resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==}
|
||||
|
||||
tsx@4.16.5:
|
||||
resolution: {integrity: sha512-ArsiAQHEW2iGaqZ8fTA1nX0a+lN5mNTyuGRRO6OW3H/Yno1y9/t1f9YOI1Cfoqz63VAthn++ZYcbDP7jPflc+A==}
|
||||
tsx@4.17.0:
|
||||
resolution: {integrity: sha512-eN4mnDA5UMKDt4YZixo9tBioibaMBpoxBkD+rIPAjVmYERSG0/dWEY1CEFuV89CgASlKL499q8AhmkMnnjtOJg==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
hasBin: true
|
||||
|
||||
|
|
@ -4740,8 +4747,8 @@ packages:
|
|||
engines: {node: ^18.0.0 || >=20.0.0}
|
||||
hasBin: true
|
||||
|
||||
vite@5.3.5:
|
||||
resolution: {integrity: sha512-MdjglKR6AQXQb9JGiS7Rc2wC6uMjcm7Go/NHNO63EwiJXfuk9PgqiP/n5IDJCziMkfw9n4Ubp7lttNwz+8ZVKA==}
|
||||
vite@5.4.0:
|
||||
resolution: {integrity: sha512-5xokfMX0PIiwCMCMb9ZJcMyh5wbBun0zUzKib+L65vAZ8GY9ePZMXxFrHbr/Kyll2+LSCY7xtERPpxkBDKngwg==}
|
||||
engines: {node: ^18.0.0 || >=20.0.0}
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
|
|
@ -4749,6 +4756,7 @@ packages:
|
|||
less: '*'
|
||||
lightningcss: ^1.21.0
|
||||
sass: '*'
|
||||
sass-embedded: '*'
|
||||
stylus: '*'
|
||||
sugarss: '*'
|
||||
terser: ^5.4.0
|
||||
|
|
@ -4761,6 +4769,8 @@ packages:
|
|||
optional: true
|
||||
sass:
|
||||
optional: true
|
||||
sass-embedded:
|
||||
optional: true
|
||||
stylus:
|
||||
optional: true
|
||||
sugarss:
|
||||
|
|
@ -5499,6 +5509,8 @@ snapshots:
|
|||
'@exodus/schemasafe@1.3.0':
|
||||
optional: true
|
||||
|
||||
'@faker-js/faker@8.4.1': {}
|
||||
|
||||
'@floating-ui/core@1.6.1':
|
||||
dependencies:
|
||||
'@floating-ui/utils': 0.2.2
|
||||
|
|
@ -5544,9 +5556,9 @@ snapshots:
|
|||
'@hapi/hoek': 9.3.0
|
||||
optional: true
|
||||
|
||||
'@hono/zod-validator@0.2.2(hono@4.5.3)(zod@3.23.8)':
|
||||
'@hono/zod-validator@0.2.2(hono@4.5.5)(zod@3.23.8)':
|
||||
dependencies:
|
||||
hono: 4.5.3
|
||||
hono: 4.5.5
|
||||
zod: 3.23.8
|
||||
|
||||
'@humanwhocodes/config-array@0.11.14':
|
||||
|
|
@ -6136,41 +6148,41 @@ snapshots:
|
|||
'@sodaru/yup-to-json-schema@2.0.1':
|
||||
optional: true
|
||||
|
||||
'@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)))':
|
||||
'@sveltejs/adapter-auto@3.2.4(@sveltejs/kit@2.5.22(@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.0.0-next.175)(vite@5.4.0(@types/node@20.14.15)(sass@1.77.8)))(svelte@5.0.0-next.175)(vite@5.4.0(@types/node@20.14.15)(sass@1.77.8)))':
|
||||
dependencies:
|
||||
'@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/kit': 2.5.22(@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.0.0-next.175)(vite@5.4.0(@types/node@20.14.15)(sass@1.77.8)))(svelte@5.0.0-next.175)(vite@5.4.0(@types/node@20.14.15)(sass@1.77.8))
|
||||
import-meta-resolve: 4.1.0
|
||||
|
||||
'@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)))':
|
||||
'@sveltejs/adapter-node@5.2.2(@sveltejs/kit@2.5.22(@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.0.0-next.175)(vite@5.4.0(@types/node@20.14.15)(sass@1.77.8)))(svelte@5.0.0-next.175)(vite@5.4.0(@types/node@20.14.15)(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.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/kit': 2.5.22(@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.0.0-next.175)(vite@5.4.0(@types/node@20.14.15)(sass@1.77.8)))(svelte@5.0.0-next.175)(vite@5.4.0(@types/node@20.14.15)(sass@1.77.8))
|
||||
rollup: 4.18.1
|
||||
|
||||
'@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)))':
|
||||
'@sveltejs/adapter-vercel@5.4.3(@sveltejs/kit@2.5.22(@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.0.0-next.175)(vite@5.4.0(@types/node@20.14.15)(sass@1.77.8)))(svelte@5.0.0-next.175)(vite@5.4.0(@types/node@20.14.15)(sass@1.77.8)))':
|
||||
dependencies:
|
||||
'@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/kit': 2.5.22(@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.0.0-next.175)(vite@5.4.0(@types/node@20.14.15)(sass@1.77.8)))(svelte@5.0.0-next.175)(vite@5.4.0(@types/node@20.14.15)(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.14)(sass@1.77.8))':
|
||||
'@sveltejs/enhanced-img@0.3.3(rollup@4.18.1)(svelte@5.0.0-next.175)(vite@5.4.0(@types/node@20.14.15)(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.14)(sass@1.77.8)
|
||||
vite: 5.4.0(@types/node@20.14.15)(sass@1.77.8)
|
||||
vite-imagetools: 7.0.2(rollup@4.18.1)
|
||||
transitivePeerDependencies:
|
||||
- rollup
|
||||
|
||||
'@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/kit@2.5.22(@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.0.0-next.175)(vite@5.4.0(@types/node@20.14.15)(sass@1.77.8)))(svelte@5.0.0-next.175)(vite@5.4.0(@types/node@20.14.15)(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.14)(sass@1.77.8))
|
||||
'@sveltejs/vite-plugin-svelte': 3.1.1(svelte@5.0.0-next.175)(vite@5.4.0(@types/node@20.14.15)(sass@1.77.8))
|
||||
'@types/cookie': 0.6.0
|
||||
cookie: 0.6.0
|
||||
devalue: 5.0.0
|
||||
|
|
@ -6184,28 +6196,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.14)(sass@1.77.8)
|
||||
vite: 5.4.0(@types/node@20.14.15)(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))':
|
||||
'@sveltejs/vite-plugin-svelte-inspector@2.1.0(@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.0.0-next.175)(vite@5.4.0(@types/node@20.14.15)(sass@1.77.8)))(svelte@5.0.0-next.175)(vite@5.4.0(@types/node@20.14.15)(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.14)(sass@1.77.8))
|
||||
'@sveltejs/vite-plugin-svelte': 3.1.1(svelte@5.0.0-next.175)(vite@5.4.0(@types/node@20.14.15)(sass@1.77.8))
|
||||
debug: 4.3.4
|
||||
svelte: 5.0.0-next.175
|
||||
vite: 5.3.5(@types/node@20.14.14)(sass@1.77.8)
|
||||
vite: 5.4.0(@types/node@20.14.15)(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.14)(sass@1.77.8))':
|
||||
'@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.0.0-next.175)(vite@5.4.0(@types/node@20.14.15)(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.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-inspector': 2.1.0(@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.0.0-next.175)(vite@5.4.0(@types/node@20.14.15)(sass@1.77.8)))(svelte@5.0.0-next.175)(vite@5.4.0(@types/node@20.14.15)(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.14)(sass@1.77.8)
|
||||
vitefu: 0.2.5(vite@5.3.5(@types/node@20.14.14)(sass@1.77.8))
|
||||
vite: 5.4.0(@types/node@20.14.15)(sass@1.77.8)
|
||||
vitefu: 0.2.5(vite@5.4.0(@types/node@20.14.15)(sass@1.77.8))
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
|
|
@ -6235,13 +6247,13 @@ snapshots:
|
|||
'@types/json-schema@7.0.15':
|
||||
optional: true
|
||||
|
||||
'@types/node@20.14.14':
|
||||
'@types/node@20.14.15':
|
||||
dependencies:
|
||||
undici-types: 5.26.5
|
||||
|
||||
'@types/pg@8.11.6':
|
||||
dependencies:
|
||||
'@types/node': 20.14.14
|
||||
'@types/node': 20.14.15
|
||||
pg-protocol: 1.6.1
|
||||
pg-types: 4.0.2
|
||||
|
||||
|
|
@ -6588,7 +6600,7 @@ snapshots:
|
|||
|
||||
builtin-modules@3.3.0: {}
|
||||
|
||||
bullmq@5.12.0:
|
||||
bullmq@5.12.5:
|
||||
dependencies:
|
||||
cron-parser: 4.9.0
|
||||
ioredis: 5.4.1
|
||||
|
|
@ -7007,7 +7019,6 @@ snapshots:
|
|||
'@esbuild/win32-arm64': 0.23.0
|
||||
'@esbuild/win32-ia32': 0.23.0
|
||||
'@esbuild/win32-x64': 0.23.0
|
||||
optional: true
|
||||
|
||||
escalade@3.1.2: {}
|
||||
|
||||
|
|
@ -7024,7 +7035,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.14)(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.15)(typescript@5.5.4)):
|
||||
dependencies:
|
||||
'@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0)
|
||||
'@jridgewell/sourcemap-codec': 1.4.15
|
||||
|
|
@ -7033,7 +7044,7 @@ snapshots:
|
|||
esutils: 2.0.3
|
||||
known-css-properties: 0.34.0
|
||||
postcss: 8.4.41
|
||||
postcss-load-config: 3.1.4(postcss@8.4.41)(ts-node@10.9.2(@types/node@20.14.14)(typescript@5.5.4))
|
||||
postcss-load-config: 3.1.4(postcss@8.4.41)(ts-node@10.9.2(@types/node@20.14.15)(typescript@5.5.4))
|
||||
postcss-safe-parser: 6.0.0(postcss@8.4.41)
|
||||
postcss-selector-parser: 6.1.0
|
||||
semver: 7.6.2
|
||||
|
|
@ -7260,11 +7271,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.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)):
|
||||
formsnap@1.0.1(svelte@5.0.0-next.175)(sveltekit-superforms@2.16.1(@sveltejs/kit@2.5.22(@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.0.0-next.175)(vite@5.4.0(@types/node@20.14.15)(sass@1.77.8)))(svelte@5.0.0-next.175)(vite@5.4.0(@types/node@20.14.15)(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.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-superforms: 2.16.1(@sveltejs/kit@2.5.22(@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.0.0-next.175)(vite@5.4.0(@types/node@20.14.15)(sass@1.77.8)))(svelte@5.0.0-next.175)(vite@5.4.0(@types/node@20.14.15)(sass@1.77.8)))(svelte@5.0.0-next.175)
|
||||
|
||||
forwarded@0.2.0: {}
|
||||
|
||||
|
|
@ -7396,11 +7407,11 @@ snapshots:
|
|||
|
||||
hex-rgb@4.3.0: {}
|
||||
|
||||
hono-rate-limiter@0.4.0(hono@4.5.3):
|
||||
hono-rate-limiter@0.4.0(hono@4.5.5):
|
||||
dependencies:
|
||||
hono: 4.5.3
|
||||
hono: 4.5.5
|
||||
|
||||
hono@4.5.3: {}
|
||||
hono@4.5.5: {}
|
||||
|
||||
html-entities@2.5.2: {}
|
||||
|
||||
|
|
@ -8115,30 +8126,30 @@ snapshots:
|
|||
'@csstools/utilities': 1.0.0(postcss@8.4.41)
|
||||
postcss: 8.4.41
|
||||
|
||||
postcss-load-config@3.1.4(postcss@8.4.41)(ts-node@10.9.2(@types/node@20.14.14)(typescript@5.5.4)):
|
||||
postcss-load-config@3.1.4(postcss@8.4.41)(ts-node@10.9.2(@types/node@20.14.15)(typescript@5.5.4)):
|
||||
dependencies:
|
||||
lilconfig: 2.1.0
|
||||
yaml: 1.10.2
|
||||
optionalDependencies:
|
||||
postcss: 8.4.41
|
||||
ts-node: 10.9.2(@types/node@20.14.14)(typescript@5.5.4)
|
||||
ts-node: 10.9.2(@types/node@20.14.15)(typescript@5.5.4)
|
||||
|
||||
postcss-load-config@4.0.2(postcss@8.4.41)(ts-node@10.9.2(@types/node@20.14.14)(typescript@5.5.4)):
|
||||
postcss-load-config@4.0.2(postcss@8.4.41)(ts-node@10.9.2(@types/node@20.14.15)(typescript@5.5.4)):
|
||||
dependencies:
|
||||
lilconfig: 3.1.1
|
||||
yaml: 2.4.3
|
||||
optionalDependencies:
|
||||
postcss: 8.4.41
|
||||
ts-node: 10.9.2(@types/node@20.14.14)(typescript@5.5.4)
|
||||
ts-node: 10.9.2(@types/node@20.14.15)(typescript@5.5.4)
|
||||
|
||||
postcss-load-config@5.1.0(jiti@1.21.6)(postcss@8.4.41)(tsx@4.16.5):
|
||||
postcss-load-config@5.1.0(jiti@1.21.6)(postcss@8.4.41)(tsx@4.17.0):
|
||||
dependencies:
|
||||
lilconfig: 3.1.1
|
||||
yaml: 2.4.2
|
||||
optionalDependencies:
|
||||
jiti: 1.21.6
|
||||
postcss: 8.4.41
|
||||
tsx: 4.16.5
|
||||
tsx: 4.17.0
|
||||
|
||||
postcss-logical@7.0.1(postcss@8.4.41):
|
||||
dependencies:
|
||||
|
|
@ -8708,14 +8719,14 @@ snapshots:
|
|||
|
||||
supports-preserve-symlinks-flag@1.0.0: {}
|
||||
|
||||
svelte-check@3.8.5(postcss-load-config@5.1.0(jiti@1.21.6)(postcss@8.4.41)(tsx@4.16.5))(postcss@8.4.41)(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.41)(tsx@4.17.0))(postcss@8.4.41)(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.41)(tsx@4.16.5))(postcss@8.4.41)(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.41)(tsx@4.17.0))(postcss@8.4.41)(sass@1.77.8)(svelte@5.0.0-next.175)(typescript@5.5.4)
|
||||
typescript: 5.5.4
|
||||
transitivePeerDependencies:
|
||||
- '@babel/core'
|
||||
|
|
@ -8771,7 +8782,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.41)(tsx@4.16.5))(postcss@8.4.41)(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.41)(tsx@4.17.0))(postcss@8.4.41)(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
|
||||
|
|
@ -8781,16 +8792,16 @@ snapshots:
|
|||
svelte: 5.0.0-next.175
|
||||
optionalDependencies:
|
||||
postcss: 8.4.41
|
||||
postcss-load-config: 5.1.0(jiti@1.21.6)(postcss@8.4.41)(tsx@4.16.5)
|
||||
postcss-load-config: 5.1.0(jiti@1.21.6)(postcss@8.4.41)(tsx@4.17.0)
|
||||
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.41)(tsx@4.16.5))(postcss@8.4.41)(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.41)(tsx@4.17.0))(postcss@8.4.41)(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.41
|
||||
postcss-load-config: 5.1.0(jiti@1.21.6)(postcss@8.4.41)(tsx@4.16.5)
|
||||
postcss-load-config: 5.1.0(jiti@1.21.6)(postcss@8.4.41)(tsx@4.17.0)
|
||||
sass: 1.77.8
|
||||
typescript: 5.5.4
|
||||
|
||||
|
|
@ -8845,19 +8856,19 @@ snapshots:
|
|||
magic-string: 0.30.10
|
||||
zimmerframe: 1.1.2
|
||||
|
||||
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):
|
||||
sveltekit-flash-message@2.4.4(@sveltejs/kit@2.5.22(@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.0.0-next.175)(vite@5.4.0(@types/node@20.14.15)(sass@1.77.8)))(svelte@5.0.0-next.175)(vite@5.4.0(@types/node@20.14.15)(sass@1.77.8)))(svelte@5.0.0-next.175):
|
||||
dependencies:
|
||||
'@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/kit': 2.5.22(@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.0.0-next.175)(vite@5.4.0(@types/node@20.14.15)(sass@1.77.8)))(svelte@5.0.0-next.175)(vite@5.4.0(@types/node@20.14.15)(sass@1.77.8))
|
||||
svelte: 5.0.0-next.175
|
||||
|
||||
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))):
|
||||
sveltekit-rate-limiter@0.5.2(@sveltejs/kit@2.5.22(@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.0.0-next.175)(vite@5.4.0(@types/node@20.14.15)(sass@1.77.8)))(svelte@5.0.0-next.175)(vite@5.4.0(@types/node@20.14.15)(sass@1.77.8))):
|
||||
dependencies:
|
||||
'@isaacs/ttlcache': 1.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))
|
||||
'@sveltejs/kit': 2.5.22(@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.0.0-next.175)(vite@5.4.0(@types/node@20.14.15)(sass@1.77.8)))(svelte@5.0.0-next.175)(vite@5.4.0(@types/node@20.14.15)(sass@1.77.8))
|
||||
|
||||
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):
|
||||
sveltekit-superforms@2.16.1(@sveltejs/kit@2.5.22(@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.0.0-next.175)(vite@5.4.0(@types/node@20.14.15)(sass@1.77.8)))(svelte@5.0.0-next.175)(vite@5.4.0(@types/node@20.14.15)(sass@1.77.8)))(svelte@5.0.0-next.175):
|
||||
dependencies:
|
||||
'@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/kit': 2.5.22(@sveltejs/vite-plugin-svelte@3.1.1(svelte@5.0.0-next.175)(vite@5.4.0(@types/node@20.14.15)(sass@1.77.8)))(svelte@5.0.0-next.175)(vite@5.4.0(@types/node@20.14.15)(sass@1.77.8))
|
||||
devalue: 5.0.0
|
||||
just-clone: 6.2.0
|
||||
memoize-weak: 1.0.2
|
||||
|
|
@ -8880,18 +8891,18 @@ snapshots:
|
|||
|
||||
tabbable@6.2.0: {}
|
||||
|
||||
tailwind-merge@2.4.0: {}
|
||||
tailwind-merge@2.5.2: {}
|
||||
|
||||
tailwind-variants@0.2.1(tailwindcss@3.4.7(ts-node@10.9.2(@types/node@20.14.14)(typescript@5.5.4))):
|
||||
tailwind-variants@0.2.1(tailwindcss@3.4.9(ts-node@10.9.2(@types/node@20.14.15)(typescript@5.5.4))):
|
||||
dependencies:
|
||||
tailwind-merge: 2.4.0
|
||||
tailwindcss: 3.4.7(ts-node@10.9.2(@types/node@20.14.14)(typescript@5.5.4))
|
||||
tailwind-merge: 2.5.2
|
||||
tailwindcss: 3.4.9(ts-node@10.9.2(@types/node@20.14.15)(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))):
|
||||
tailwindcss-animate@1.0.7(tailwindcss@3.4.9(ts-node@10.9.2(@types/node@20.14.15)(typescript@5.5.4))):
|
||||
dependencies:
|
||||
tailwindcss: 3.4.7(ts-node@10.9.2(@types/node@20.14.14)(typescript@5.5.4))
|
||||
tailwindcss: 3.4.9(ts-node@10.9.2(@types/node@20.14.15)(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.9(ts-node@10.9.2(@types/node@20.14.15)(typescript@5.5.4)):
|
||||
dependencies:
|
||||
'@alloc/quick-lru': 5.2.0
|
||||
arg: 5.0.2
|
||||
|
|
@ -8910,7 +8921,7 @@ snapshots:
|
|||
postcss: 8.4.41
|
||||
postcss-import: 15.1.0(postcss@8.4.41)
|
||||
postcss-js: 4.0.1(postcss@8.4.41)
|
||||
postcss-load-config: 4.0.2(postcss@8.4.41)(ts-node@10.9.2(@types/node@20.14.14)(typescript@5.5.4))
|
||||
postcss-load-config: 4.0.2(postcss@8.4.41)(ts-node@10.9.2(@types/node@20.14.15)(typescript@5.5.4))
|
||||
postcss-nested: 6.0.1(postcss@8.4.41)
|
||||
postcss-selector-parser: 6.1.0
|
||||
resolve: 1.22.8
|
||||
|
|
@ -8977,14 +8988,14 @@ snapshots:
|
|||
|
||||
ts-interface-checker@0.1.13: {}
|
||||
|
||||
ts-node@10.9.2(@types/node@20.14.14)(typescript@5.5.4):
|
||||
ts-node@10.9.2(@types/node@20.14.15)(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.14
|
||||
'@types/node': 20.14.15
|
||||
acorn: 8.11.3
|
||||
acorn-walk: 8.3.2
|
||||
arg: 4.1.3
|
||||
|
|
@ -9002,9 +9013,9 @@ snapshots:
|
|||
|
||||
tslib@2.6.3: {}
|
||||
|
||||
tsx@4.16.5:
|
||||
tsx@4.17.0:
|
||||
dependencies:
|
||||
esbuild: 0.21.5
|
||||
esbuild: 0.23.0
|
||||
get-tsconfig: 4.7.5
|
||||
optionalDependencies:
|
||||
fsevents: 2.3.3
|
||||
|
|
@ -9091,38 +9102,39 @@ snapshots:
|
|||
transitivePeerDependencies:
|
||||
- rollup
|
||||
|
||||
vite-node@1.6.0(@types/node@20.14.14)(sass@1.77.8):
|
||||
vite-node@1.6.0(@types/node@20.14.15)(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.14)(sass@1.77.8)
|
||||
vite: 5.4.0(@types/node@20.14.15)(sass@1.77.8)
|
||||
transitivePeerDependencies:
|
||||
- '@types/node'
|
||||
- less
|
||||
- lightningcss
|
||||
- sass
|
||||
- sass-embedded
|
||||
- stylus
|
||||
- sugarss
|
||||
- supports-color
|
||||
- terser
|
||||
|
||||
vite@5.3.5(@types/node@20.14.14)(sass@1.77.8):
|
||||
vite@5.4.0(@types/node@20.14.15)(sass@1.77.8):
|
||||
dependencies:
|
||||
esbuild: 0.21.5
|
||||
postcss: 8.4.41
|
||||
rollup: 4.17.2
|
||||
optionalDependencies:
|
||||
'@types/node': 20.14.14
|
||||
'@types/node': 20.14.15
|
||||
fsevents: 2.3.3
|
||||
sass: 1.77.8
|
||||
|
||||
vitefu@0.2.5(vite@5.3.5(@types/node@20.14.14)(sass@1.77.8)):
|
||||
vitefu@0.2.5(vite@5.4.0(@types/node@20.14.15)(sass@1.77.8)):
|
||||
optionalDependencies:
|
||||
vite: 5.3.5(@types/node@20.14.14)(sass@1.77.8)
|
||||
vite: 5.4.0(@types/node@20.14.15)(sass@1.77.8)
|
||||
|
||||
vitest@1.6.0(@types/node@20.14.14)(sass@1.77.8):
|
||||
vitest@1.6.0(@types/node@20.14.15)(sass@1.77.8):
|
||||
dependencies:
|
||||
'@vitest/expect': 1.6.0
|
||||
'@vitest/runner': 1.6.0
|
||||
|
|
@ -9141,15 +9153,16 @@ snapshots:
|
|||
strip-literal: 2.1.0
|
||||
tinybench: 2.8.0
|
||||
tinypool: 0.8.4
|
||||
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)
|
||||
vite: 5.4.0(@types/node@20.14.15)(sass@1.77.8)
|
||||
vite-node: 1.6.0(@types/node@20.14.15)(sass@1.77.8)
|
||||
why-is-node-running: 2.2.2
|
||||
optionalDependencies:
|
||||
'@types/node': 20.14.14
|
||||
'@types/node': 20.14.15
|
||||
transitivePeerDependencies:
|
||||
- less
|
||||
- lightningcss
|
||||
- sass
|
||||
- sass-embedded
|
||||
- stylus
|
||||
- sugarss
|
||||
- supports-color
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import { pgTable, primaryKey, uuid } from 'drizzle-orm/pg-core';
|
||||
import { categoriesTable } from './categories.table';
|
||||
import externalIds from './externalIds';
|
||||
import { externalIds } from './externalIds';
|
||||
import { relations } from 'drizzle-orm';
|
||||
|
||||
export const categoriesToExternalIdsTable = pgTable(
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import { pgTable, primaryKey, uuid } from 'drizzle-orm/pg-core';
|
||||
import { relations } from 'drizzle-orm';
|
||||
import { categoriesTable } from './categories.table';
|
||||
import games from './games';
|
||||
import { games } from './games';
|
||||
|
||||
export const categories_to_games_table = pgTable(
|
||||
'categories_to_games',
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ import { integer, pgTable, text, uuid } from 'drizzle-orm/pg-core';
|
|||
import { createId as cuid2 } from '@paralleldrive/cuid2';
|
||||
import { type InferSelectModel, relations } from 'drizzle-orm';
|
||||
import { collections } from './collections';
|
||||
import games from './games';
|
||||
import {games} from './games';
|
||||
import { timestamps } from '../utils';
|
||||
|
||||
export const collection_items = pgTable('collection_items', {
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import { pgTable, text, uuid } from 'drizzle-orm/pg-core';
|
||||
import { createId as cuid2 } from '@paralleldrive/cuid2';
|
||||
import { type InferSelectModel, relations } from 'drizzle-orm';
|
||||
import games from './games';
|
||||
import {games} from './games';
|
||||
import { timestamps } from '../utils';
|
||||
|
||||
export const expansions = pgTable('expansions', {
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
import { pgTable, text, uuid } from 'drizzle-orm/pg-core';
|
||||
import { createId as cuid2 } from '@paralleldrive/cuid2';
|
||||
import { type InferSelectModel, relations } from 'drizzle-orm';
|
||||
import mechanicsToGames from './mechanicsToGames';
|
||||
import mechanicsToExternalIds from './mechanicsToExternalIds';
|
||||
import {mechanics_to_games} from './mechanicsToGames';
|
||||
import {mechanicsToExternalIds} from './mechanicsToExternalIds';
|
||||
import { timestamps } from '../utils';
|
||||
|
||||
export const mechanics = pgTable('mechanics', {
|
||||
|
|
@ -18,6 +18,6 @@ export const mechanics = pgTable('mechanics', {
|
|||
export type Mechanics = InferSelectModel<typeof mechanics>;
|
||||
|
||||
export const mechanics_relations = relations(mechanics, ({ many }) => ({
|
||||
mechanics_to_games: many(mechanicsToGames),
|
||||
mechanics_to_games: many(mechanics_to_games),
|
||||
mechanicsToExternalIds: many(mechanicsToExternalIds),
|
||||
}));
|
||||
|
|
|
|||
|
|
@ -32,5 +32,3 @@ export const mechanics_to_games_relations = relations(mechanics_to_games, ({ one
|
|||
references: [games.id],
|
||||
}),
|
||||
}));
|
||||
|
||||
export default mechanics_to_games;
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ import { pgTable, text, uuid } from 'drizzle-orm/pg-core';
|
|||
import { createId as cuid2 } from '@paralleldrive/cuid2';
|
||||
import { type InferSelectModel, relations } from 'drizzle-orm';
|
||||
import {publishers_to_games} from './publishersToGames';
|
||||
import publishersToExternalIds from './publishersToExternalIds';
|
||||
import {publishersToExternalIds} from './publishersToExternalIds';
|
||||
import { timestamps } from '../utils';
|
||||
|
||||
export const publishers = pgTable('publishers', {
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import { pgTable, text, uuid } from 'drizzle-orm/pg-core';
|
||||
import { createId as cuid2 } from '@paralleldrive/cuid2';
|
||||
import { type InferSelectModel, relations } from 'drizzle-orm';
|
||||
import wishlists from './wishlists';
|
||||
import {wishlists} from './wishlists';
|
||||
import {games} from './games';
|
||||
import { timestamps } from '../utils';
|
||||
|
||||
|
|
|
|||
|
|
@ -1,11 +1,42 @@
|
|||
import {inject, injectable} from "tsyringe";
|
||||
import { eq, type InferInsertModel } from "drizzle-orm";
|
||||
import {DatabaseProvider} from "$lib/server/api/providers";
|
||||
import { collections } from "../infrastructure/database/tables";
|
||||
import { takeFirstOrThrow } from "../infrastructure/database/utils";
|
||||
|
||||
export type CreateCollection = InferInsertModel<typeof collections>;
|
||||
export type UpdateCollection = Partial<CreateCollection>;
|
||||
|
||||
@injectable()
|
||||
export class CollectionsRepository {
|
||||
constructor(@inject(DatabaseProvider) private readonly db: DatabaseProvider) { }
|
||||
|
||||
async findAll() {
|
||||
return db.query.collections.findMany();
|
||||
return this.db.query.collections.findMany();
|
||||
}
|
||||
|
||||
async findOneById(id: string) {
|
||||
return this.db.query.collections.findFirst({
|
||||
where: eq(collections.id, id)
|
||||
})
|
||||
}
|
||||
|
||||
async findOneByUserId(userId: string) {
|
||||
return this.db.query.collections.findFirst({
|
||||
where: eq(collections.user_id, userId)
|
||||
})
|
||||
}
|
||||
|
||||
async create(data: CreateCollection) {
|
||||
return this.db.insert(collections).values(data).returning().then(takeFirstOrThrow);
|
||||
}
|
||||
|
||||
async update(id: string, data: UpdateCollection) {
|
||||
return this.db
|
||||
.update(collections)
|
||||
.set(data)
|
||||
.where(eq(collections.id, id))
|
||||
.returning()
|
||||
.then(takeFirstOrThrow);
|
||||
}
|
||||
}
|
||||
|
|
@ -12,13 +12,13 @@ export class CredentialsRepository {
|
|||
constructor(@inject(DatabaseProvider) private readonly db: DatabaseProvider) { }
|
||||
|
||||
async findOneByUserId(userId: string) {
|
||||
return db.query.credentialsTable.findFirst({
|
||||
return this.db.query.credentialsTable.findFirst({
|
||||
where: eq(credentialsTable.user_id, userId)
|
||||
});
|
||||
}
|
||||
|
||||
async findPasswordCredentialsByUserId(userId: string) {
|
||||
return db.query.credentialsTable.findFirst({
|
||||
return this.db.query.credentialsTable.findFirst({
|
||||
where: and(
|
||||
eq(credentialsTable.user_id, userId),
|
||||
eq(credentialsTable.type, CredentialsType.PASSWORD)
|
||||
|
|
@ -27,7 +27,7 @@ export class CredentialsRepository {
|
|||
}
|
||||
|
||||
async findTOTPCredentialsByUserId(userId: string) {
|
||||
return db.query.credentialsTable.findFirst({
|
||||
return this.db.query.credentialsTable.findFirst({
|
||||
where: and(
|
||||
eq(credentialsTable.user_id, userId),
|
||||
eq(credentialsTable.type, CredentialsType.TOTP)
|
||||
|
|
@ -36,7 +36,7 @@ export class CredentialsRepository {
|
|||
}
|
||||
|
||||
async findOneById(id: string) {
|
||||
return db.query.credentialsTable.findFirst({
|
||||
return this.db.query.credentialsTable.findFirst({
|
||||
where: eq(credentialsTable.id, id)
|
||||
});
|
||||
}
|
||||
|
|
@ -48,11 +48,11 @@ export class CredentialsRepository {
|
|||
}
|
||||
|
||||
async create(data: CreateCredentials) {
|
||||
return db.insert(credentialsTable).values(data).returning().then(takeFirstOrThrow);
|
||||
return this.db.insert(credentialsTable).values(data).returning().then(takeFirstOrThrow);
|
||||
}
|
||||
|
||||
async update(id: string, data: UpdateCredentials) {
|
||||
return db
|
||||
return this.db
|
||||
.update(credentialsTable)
|
||||
.set(data)
|
||||
.where(eq(credentialsTable.id, id))
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ export class RolesRepository {
|
|||
constructor(@inject(DatabaseProvider) private readonly db: DatabaseProvider) { }
|
||||
|
||||
async findOneById(id: string) {
|
||||
return db.query.roles.findFirst({
|
||||
return this.db.query.roles.findFirst({
|
||||
where: eq(roles.id, id)
|
||||
});
|
||||
}
|
||||
|
|
@ -40,11 +40,11 @@ export class RolesRepository {
|
|||
}
|
||||
|
||||
async findAll() {
|
||||
return db.query.roles.findMany();
|
||||
return this.db.query.roles.findMany();
|
||||
}
|
||||
|
||||
async findOneByName(name: string) {
|
||||
return db.query.roles.findFirst({
|
||||
return this.db.query.roles.findFirst({
|
||||
where: eq(roles.name, name)
|
||||
});
|
||||
}
|
||||
|
|
@ -56,11 +56,11 @@ export class RolesRepository {
|
|||
}
|
||||
|
||||
async create(data: CreateRole) {
|
||||
return db.insert(roles).values(data).returning().then(takeFirstOrThrow);
|
||||
return this.db.insert(roles).values(data).returning().then(takeFirstOrThrow);
|
||||
}
|
||||
|
||||
async update(id: string, data: UpdateRole) {
|
||||
return db
|
||||
return this.db
|
||||
.update(roles)
|
||||
.set(data)
|
||||
.where(eq(roles.id, id))
|
||||
|
|
@ -69,7 +69,7 @@ export class RolesRepository {
|
|||
}
|
||||
|
||||
async delete(id: string) {
|
||||
return db
|
||||
return this.db
|
||||
.delete(roles)
|
||||
.where(eq(roles.id, id))
|
||||
.returning()
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ export class UserRolesRepository {
|
|||
constructor(@inject(DatabaseProvider) private readonly db: DatabaseProvider) { }
|
||||
|
||||
async findOneById(id: string) {
|
||||
return db.query.user_roles.findFirst({
|
||||
return this.db.query.user_roles.findFirst({
|
||||
where: eq(user_roles.id, id)
|
||||
});
|
||||
}
|
||||
|
|
@ -40,17 +40,17 @@ export class UserRolesRepository {
|
|||
}
|
||||
|
||||
async findAllByUserId(userId: string) {
|
||||
return db.query.user_roles.findMany({
|
||||
return this.db.query.user_roles.findMany({
|
||||
where: eq(user_roles.user_id, userId)
|
||||
});
|
||||
}
|
||||
|
||||
async create(data: CreateUserRole) {
|
||||
return db.insert(user_roles).values(data).returning().then(takeFirstOrThrow);
|
||||
return this.db.insert(user_roles).values(data).returning().then(takeFirstOrThrow);
|
||||
}
|
||||
|
||||
async delete(id: string) {
|
||||
return db
|
||||
return this.db
|
||||
.delete(user_roles)
|
||||
.where(eq(user_roles.id, id))
|
||||
.returning()
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ export class UsersRepository {
|
|||
constructor(@inject(DatabaseProvider) private readonly db: DatabaseProvider) { }
|
||||
|
||||
async findOneById(id: string) {
|
||||
return db.query.usersTable.findFirst({
|
||||
return this.db.query.usersTable.findFirst({
|
||||
where: eq(usersTable.id, id)
|
||||
});
|
||||
}
|
||||
|
|
@ -40,23 +40,23 @@ export class UsersRepository {
|
|||
}
|
||||
|
||||
async findOneByUsername(username: string) {
|
||||
return db.query.usersTable.findFirst({
|
||||
return this.db.query.usersTable.findFirst({
|
||||
where: eq(usersTable.username, username)
|
||||
});
|
||||
}
|
||||
|
||||
async findOneByEmail(email: string) {
|
||||
return db.query.usersTable.findFirst({
|
||||
return this.db.query.usersTable.findFirst({
|
||||
where: eq(usersTable.email, email)
|
||||
});
|
||||
}
|
||||
|
||||
async create(data: CreateUser) {
|
||||
return db.insert(usersTable).values(data).returning().then(takeFirstOrThrow);
|
||||
return this.db.insert(usersTable).values(data).returning().then(takeFirstOrThrow);
|
||||
}
|
||||
|
||||
async update(id: string, data: UpdateUser) {
|
||||
return db
|
||||
return this.db
|
||||
.update(usersTable)
|
||||
.set(data)
|
||||
.where(eq(usersTable.id, id))
|
||||
|
|
@ -65,7 +65,7 @@ export class UsersRepository {
|
|||
}
|
||||
|
||||
async delete(id: string) {
|
||||
return db
|
||||
return this.db
|
||||
.delete(usersTable)
|
||||
.where(eq(usersTable.id, id))
|
||||
.returning()
|
||||
|
|
|
|||
|
|
@ -1,9 +1,48 @@
|
|||
import {inject, injectable} from "tsyringe";
|
||||
import {DatabaseProvider} from "$lib/server/api/providers";
|
||||
import { eq, type InferInsertModel } from "drizzle-orm";
|
||||
import { wishlists } from "../infrastructure/database/tables";
|
||||
import { takeFirstOrThrow } from "../infrastructure/database/utils";
|
||||
|
||||
export type CreateWishlist = InferInsertModel<typeof wishlists>;
|
||||
export type UpdateWishlist = Partial<CreateWishlist>;
|
||||
|
||||
@injectable()
|
||||
export class CollectionsService {
|
||||
export class WishlistsRepository {
|
||||
constructor(@inject(DatabaseProvider) private readonly db: DatabaseProvider) { }
|
||||
|
||||
async findAll() {
|
||||
return this.db.query.wishlists.findMany();
|
||||
}
|
||||
|
||||
async findOneById(id: string) {
|
||||
return this.db.query.wishlists.findFirst({
|
||||
where: eq(wishlists.id, id)
|
||||
})
|
||||
}
|
||||
|
||||
async findOneByUserId(userId: string) {
|
||||
return this.db.query.wishlists.findFirst({
|
||||
where: eq(wishlists.user_id, userId)
|
||||
})
|
||||
}
|
||||
|
||||
async findAllByUserId(userId: string) {
|
||||
return this.db.query.wishlists.findMany({
|
||||
where: eq(wishlists.user_id, userId)
|
||||
})
|
||||
}
|
||||
|
||||
async create(data: CreateWishlist) {
|
||||
return this.db.insert(wishlists).values(data).returning().then(takeFirstOrThrow);
|
||||
}
|
||||
|
||||
async update(id: string, data: UpdateWishlist) {
|
||||
return this.db
|
||||
.update(wishlists)
|
||||
.set(data)
|
||||
.where(eq(wishlists.id, id))
|
||||
.returning()
|
||||
.then(takeFirstOrThrow);
|
||||
}
|
||||
}
|
||||
|
|
@ -1,4 +1,6 @@
|
|||
import { inject, injectable } from "tsyringe";
|
||||
import { generateRandomAnimalName } from "$lib/utils/randomDataUtil";
|
||||
import { CollectionsRepository } from "../repositories/collections.repository";
|
||||
|
||||
@injectable()
|
||||
export class CollectionsService {
|
||||
|
|
@ -6,5 +8,14 @@ export class CollectionsService {
|
|||
@inject(CollectionsRepository) private readonly collectionsRepository: CollectionsRepository
|
||||
) { }
|
||||
|
||||
async createEmptyNoName(userId: string) {
|
||||
return this.createEmpty(userId, null);
|
||||
}
|
||||
|
||||
async createEmpty(userId: string, name: string | null) {
|
||||
return this.collectionsRepository.create({
|
||||
user_id: userId,
|
||||
name: name ?? generateRandomAnimalName(),
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
@ -1,9 +1,8 @@
|
|||
import {inject, injectable} from "tsyringe";
|
||||
import {type CreateUserRole, UserRolesRepository} from "$lib/server/api/repositories/user_roles.repository";
|
||||
import db from "$db";
|
||||
import {eq} from "drizzle-orm";
|
||||
import {roles, userRoles} from "$db/schema";
|
||||
import {RolesService} from "$lib/server/api/services/roles.service";
|
||||
import { user_roles } from "../infrastructure/database/tables";
|
||||
|
||||
@injectable()
|
||||
export class UserRolesService {
|
||||
|
|
@ -33,7 +32,7 @@ export class UserRolesService {
|
|||
}
|
||||
|
||||
// Create a UserRole entry linking the user and the role
|
||||
return db.insert(userRoles).values({
|
||||
return db.insert(user_roles).values({
|
||||
user_id: userId,
|
||||
role_id: role.id,
|
||||
primary,
|
||||
|
|
|
|||
|
|
@ -5,14 +5,18 @@ import {TokensService} from "$lib/server/api/services/tokens.service";
|
|||
import {CredentialsRepository} from "$lib/server/api/repositories/credentials.repository";
|
||||
import {CredentialsType} from "$lib/server/api/infrastructure/database/tables";
|
||||
import {UserRolesService} from "$lib/server/api/services/user_roles.service";
|
||||
import { CollectionsService } from './collections.service';
|
||||
import { WishlistsService } from './wishlists.service';
|
||||
|
||||
@injectable()
|
||||
export class UsersService {
|
||||
constructor(
|
||||
@inject(CollectionsService) private readonly collectionsService: CollectionsService,
|
||||
@inject(CredentialsRepository) private readonly credentialsRepository: CredentialsRepository,
|
||||
@inject(TokensService) private readonly tokenService: TokensService,
|
||||
@inject(UsersRepository) private readonly usersRepository: UsersRepository,
|
||||
@inject(UserRolesService) private readonly userRolesService: UserRolesService,
|
||||
@inject(WishlistsService) private readonly wishlistsService: WishlistsService
|
||||
) { }
|
||||
|
||||
async create(data: SignupUsernameEmailDto) {
|
||||
|
|
@ -41,16 +45,12 @@ export class UsersService {
|
|||
return null;
|
||||
}
|
||||
|
||||
this.userRolesService.addRoleToUser(user.id, 'user', true);
|
||||
await this.userRolesService.addRoleToUser(user.id, 'user', true);
|
||||
|
||||
// await db.insert(collections).values({
|
||||
// user_id: user[0].id,
|
||||
// });
|
||||
// await db.insert(wishlists).values({
|
||||
// user_id: user[0].id,
|
||||
// });
|
||||
await this.wishlistsService.createEmptyNoName(user.id);
|
||||
await this.collectionsService.createEmptyNoName(user.id);
|
||||
|
||||
return this.usersRepository.create(data);
|
||||
return user;
|
||||
}
|
||||
|
||||
async findOneByUsername(username: string) {
|
||||
|
|
|
|||
26
src/lib/server/api/services/wishlists.service.ts
Normal file
26
src/lib/server/api/services/wishlists.service.ts
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
import { inject, injectable } from "tsyringe";
|
||||
import { WishlistsRepository } from "../repositories/wishlists.repository";
|
||||
import { generateRandomAnimalName } from "$lib/utils/randomDataUtil";
|
||||
|
||||
@injectable()
|
||||
export class WishlistsService {
|
||||
|
||||
constructor(
|
||||
@inject(WishlistsRepository) private readonly wishlistsRepository: WishlistsRepository
|
||||
) { }
|
||||
|
||||
async findAllByUserId(userId: string) {
|
||||
return this.wishlistsRepository.findAllByUserId(userId);
|
||||
}
|
||||
|
||||
async createEmptyNoName(userId: string) {
|
||||
return this.createEmpty(userId, null);
|
||||
}
|
||||
|
||||
async createEmpty(userId: string, name: string | null) {
|
||||
return this.wishlistsRepository.create({
|
||||
user_id: userId,
|
||||
name: name ?? generateRandomAnimalName(),
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
@ -1,72 +0,0 @@
|
|||
// import 'reflect-metadata';
|
||||
// import { LoginRequestsService } from '../services/login-requests.service';
|
||||
// import { afterAll, beforeAll, describe, expect, it, vi } from 'vitest';
|
||||
// import { TokensService } from '../services/tokens.service';
|
||||
// import { MailerService } from '../services/mailer.service';
|
||||
// import { UsersRepository } from '../repositories/users.repository';
|
||||
// import { DatabaseProvider, LuciaProvider } from '../providers';
|
||||
// import { LoginRequestsRepository } from '../repositories/login-requests.repository';
|
||||
// import { PgDatabase } from 'drizzle-orm/pg-core';
|
||||
// import { container } from 'tsyringe';
|
||||
|
||||
// describe('LoginRequestService', () => {
|
||||
// let service: LoginRequestsService;
|
||||
// let tokensService = vi.mocked(TokensService.prototype)
|
||||
// let mailerService = vi.mocked(MailerService.prototype);
|
||||
// let usersRepository = vi.mocked(UsersRepository.prototype);
|
||||
// let loginRequestsRepository = vi.mocked(LoginRequestsRepository.prototype);
|
||||
// let luciaProvider = vi.mocked(LuciaProvider);
|
||||
// let databaseProvider = vi.mocked(PgDatabase);
|
||||
|
||||
// beforeAll(() => {
|
||||
// service = container
|
||||
// .register<TokensService>(TokensService, { useValue: tokensService })
|
||||
// .register<MailerService>(MailerService, { useValue: mailerService })
|
||||
// .register<UsersRepository>(UsersRepository, { useValue: usersRepository })
|
||||
// .register(LoginRequestsRepository, { useValue: loginRequestsRepository })
|
||||
// .register(LuciaProvider, { useValue: luciaProvider })
|
||||
// .register(DatabaseProvider, { useValue: databaseProvider })
|
||||
// .resolve(LoginRequestsService);
|
||||
// });
|
||||
|
||||
|
||||
// afterAll(() => {
|
||||
// vi.resetAllMocks()
|
||||
// })
|
||||
|
||||
// describe('Create', () => {
|
||||
// tokensService.generateTokenWithExpiryAndHash = vi.fn().mockResolvedValue({
|
||||
// token: "1",
|
||||
// expiry: new Date(),
|
||||
// hashedToken: "xyz"
|
||||
// } satisfies Awaited<ReturnType<typeof tokensService.generateTokenWithExpiryAndHash>>)
|
||||
|
||||
// loginRequestsRepository.create = vi.fn().mockResolvedValue({
|
||||
// createdAt: new Date(),
|
||||
// email: 'me@test.com',
|
||||
// expiresAt: new Date(),
|
||||
// hashedToken: '111',
|
||||
// id: '1',
|
||||
// updatedAt: new Date()
|
||||
// } satisfies Awaited<ReturnType<typeof loginRequestsRepository.create>>)
|
||||
|
||||
// mailerService.sendLoginRequest = vi.fn().mockResolvedValue(null)
|
||||
|
||||
// const spy_mailerService_sendLoginRequest = vi.spyOn(mailerService, 'sendLoginRequest')
|
||||
// const spy_tokensService_generateTokenWithExpiryAndHash = vi.spyOn(tokensService, 'generateTokenWithExpiryAndHash')
|
||||
// const spy_loginRequestsRepository_create = vi.spyOn(loginRequestsRepository, 'create')
|
||||
|
||||
// it('should resolve', async () => {
|
||||
// await expect(service.create({ email: "test" })).resolves.toBeUndefined()
|
||||
// })
|
||||
// it('should generate a token with expiry and hash', async () => {
|
||||
// expect(spy_tokensService_generateTokenWithExpiryAndHash).toBeCalledTimes(1)
|
||||
// })
|
||||
// it('should send an email with token', async () => {
|
||||
// expect(spy_mailerService_sendLoginRequest).toHaveBeenCalledTimes(1)
|
||||
// })
|
||||
// it('should create a new login request record', async () => {
|
||||
// expect(spy_loginRequestsRepository_create).toBeCalledTimes(1)
|
||||
// })
|
||||
// })
|
||||
// });
|
||||
111
src/lib/server/api/tests/users.service.test.ts
Normal file
111
src/lib/server/api/tests/users.service.test.ts
Normal file
|
|
@ -0,0 +1,111 @@
|
|||
import 'reflect-metadata';
|
||||
import { container } from 'tsyringe';
|
||||
import { afterAll, beforeAll, describe, expect, it, vi } from 'vitest';
|
||||
import { UsersService } from '../services/users.service';
|
||||
import { CredentialsRepository } from '../repositories/credentials.repository';
|
||||
import { TokensService } from '../services/tokens.service';
|
||||
import { UserRolesService } from '../services/user_roles.service';
|
||||
import { UsersRepository } from '../repositories/users.repository';
|
||||
import { Argon2id } from 'oslo/password';
|
||||
import { WishlistsService } from '../services/wishlists.service';
|
||||
import { CollectionsService } from '../services/collections.service';
|
||||
// import { LoginRequestsService } from '../services/login-requests.service';
|
||||
// import { TokensService } from '../services/tokens.service';
|
||||
// import { MailerService } from '../services/mailer.service';
|
||||
// import { UsersRepository } from '../repositories/users.repository';
|
||||
// import { DatabaseProvider, LuciaProvider } from '../providers';
|
||||
// import { LoginRequestsRepository } from '../repositories/login-requests.repository';
|
||||
// import { PgDatabase } from 'drizzle-orm/pg-core';
|
||||
|
||||
describe('UsersService', () => {
|
||||
let service: UsersService;
|
||||
const credentialsRepository = vi.mocked(CredentialsRepository.prototype);
|
||||
const tokensService = vi.mocked(TokensService.prototype);
|
||||
const usersRepository = vi.mocked(UsersRepository.prototype);
|
||||
const userRolesService = vi.mocked(UserRolesService.prototype);
|
||||
const wishlistsService = vi.mocked(WishlistsService.prototype);
|
||||
const collectionsService = vi.mocked(CollectionsService.prototype);
|
||||
|
||||
beforeAll(() => {
|
||||
service = container
|
||||
.register<CredentialsRepository>(CredentialsRepository, { useValue: credentialsRepository })
|
||||
.register<TokensService>(TokensService, { useValue: tokensService })
|
||||
.register<UsersRepository>(UsersRepository, { useValue: usersRepository })
|
||||
.register<UserRolesService>(UserRolesService, { useValue: userRolesService })
|
||||
.register<WishlistsService>(WishlistsService, { useValue: wishlistsService })
|
||||
.register<CollectionsService>(CollectionsService, { useValue: collectionsService })
|
||||
.resolve(UsersService);
|
||||
});
|
||||
|
||||
afterAll(() => {
|
||||
vi.resetAllMocks()
|
||||
})
|
||||
|
||||
describe('Create User', () => {
|
||||
const hashedPassword = new Argon2id().hash('111');
|
||||
tokensService.createHashedToken = vi.fn().mockResolvedValue(hashedPassword)
|
||||
|
||||
usersRepository.create = vi.fn().mockResolvedValue({
|
||||
id: '3e0e9f0f-0a0b-4f0b-8f0b-0a0b4f0b8f0b',
|
||||
cuid: 'ciglo1j8q0000t9j4xq8d6p5e',
|
||||
first_name: 'test',
|
||||
last_name: 'test',
|
||||
email: 'test@example.com',
|
||||
username: 'test',
|
||||
verified: false,
|
||||
receive_email: false,
|
||||
theme: 'system',
|
||||
createdAt: new Date(),
|
||||
updatedAt: new Date()
|
||||
} satisfies Awaited<ReturnType<typeof usersRepository.create>>)
|
||||
|
||||
credentialsRepository.create = vi.fn().mockResolvedValue({
|
||||
id: '3e0e9f0f-0a0b-4f0b-8f0b-0a0b4f0b8f0b',
|
||||
user_id: '3e0e9f0f-0a0b-4f0b-8f0b-0a0b4f0b8f0b',
|
||||
type: 'PASSWORD',
|
||||
secret_data: hashedPassword
|
||||
})
|
||||
|
||||
userRolesService.addRoleToUser = vi.fn().mockResolvedValue(undefined)
|
||||
|
||||
wishlistsService.createEmptyNoName = vi.fn().mockResolvedValue(undefined)
|
||||
|
||||
collectionsService.createEmptyNoName = vi.fn().mockResolvedValue(undefined)
|
||||
|
||||
const spy_tokensService_createHashToken = vi.spyOn(tokensService, 'createHashedToken');
|
||||
const spy_usersRepository_create = vi.spyOn(usersRepository, 'create');
|
||||
const spy_credentialsRepository_create = vi.spyOn(credentialsRepository, 'create');
|
||||
const spy_userRolesService_addRoleToUser = vi.spyOn(userRolesService, 'addRoleToUser');
|
||||
const spy_wishlistsService_createEmptyNoName = vi.spyOn(wishlistsService, 'createEmptyNoName');
|
||||
const spy_collectionsService_createEmptyNoName = vi.spyOn(collectionsService, 'createEmptyNoName');
|
||||
|
||||
it('should resolve', async () => {
|
||||
await expect(service.create({
|
||||
firstName: 'test',
|
||||
lastName: 'test',
|
||||
email: 'test@example.com',
|
||||
username: 'test',
|
||||
password: '111',
|
||||
confirm_password: '111'
|
||||
})).resolves.not.toThrow()
|
||||
})
|
||||
it('should generate a hashed token', async () => {
|
||||
expect(spy_tokensService_createHashToken).toBeCalledTimes(1)
|
||||
})
|
||||
it('should create a new user', async () => {
|
||||
expect(spy_usersRepository_create).toHaveBeenCalledTimes(1)
|
||||
})
|
||||
it('should create a new credential', async () => {
|
||||
expect(spy_credentialsRepository_create).toBeCalledTimes(1)
|
||||
})
|
||||
it('should add role to user', async () => {
|
||||
expect(spy_userRolesService_addRoleToUser).toBeCalledTimes(1)
|
||||
})
|
||||
it('should create a new wishlist', async () => {
|
||||
expect(spy_wishlistsService_createEmptyNoName).toBeCalledTimes(1)
|
||||
})
|
||||
it('should create a new collection', async () => {
|
||||
expect(spy_collectionsService_createEmptyNoName).toBeCalledTimes(1)
|
||||
})
|
||||
})
|
||||
});
|
||||
7
src/lib/tests/randomDataUtil.test.ts
Normal file
7
src/lib/tests/randomDataUtil.test.ts
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
import { generateRandomAnimalName } from '$lib/utils/randomDataUtil';
|
||||
import { expect, test } from 'vitest';
|
||||
|
||||
test('generateRandomAnimalName', () => {
|
||||
expect(generateRandomAnimalName()).not.toBeUndefined();
|
||||
expect(generateRandomAnimalName()).not.toEqual(generateRandomAnimalName());
|
||||
});
|
||||
40
src/lib/utils/randomDataUtil.ts
Normal file
40
src/lib/utils/randomDataUtil.ts
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
import { faker } from '@faker-js/faker';
|
||||
|
||||
export function generateRandomAnimalName() {
|
||||
return fromRandomAnimalTypeGetAnimalName(faker.animal.type());
|
||||
}
|
||||
|
||||
function fromRandomAnimalTypeGetAnimalName(animalType: string) {
|
||||
switch (animalType) {
|
||||
case 'bear':
|
||||
return faker.animal.bear();
|
||||
case 'bird':
|
||||
return faker.animal.bird();
|
||||
case 'cat':
|
||||
return faker.animal.cat();
|
||||
case 'cetacean':
|
||||
return faker.animal.cetacean();
|
||||
case 'cow':
|
||||
return faker.animal.cow();
|
||||
case 'crocodilia':
|
||||
return faker.animal.crocodilia();
|
||||
case 'dog':
|
||||
return faker.animal.dog();
|
||||
case 'fish':
|
||||
return faker.animal.fish();
|
||||
case 'horse':
|
||||
return faker.animal.horse();
|
||||
case 'insect':
|
||||
return faker.animal.insect();
|
||||
case 'lion':
|
||||
return faker.animal.lion();
|
||||
case 'rabbit':
|
||||
return faker.animal.rabbit();
|
||||
case 'rodent':
|
||||
return faker.animal.rodent();
|
||||
case 'snake':
|
||||
return faker.animal.snake();
|
||||
default:
|
||||
return faker.animal.type();
|
||||
}
|
||||
}
|
||||
Loading…
Reference in a new issue