mirror of
https://github.com/BradNut/boredgame
synced 2025-09-08 17:40:22 +00:00
Removing prisma.
This commit is contained in:
parent
6503659352
commit
d86b975b4e
23 changed files with 221 additions and 1462 deletions
|
|
@ -11,7 +11,7 @@ export default defineConfig({
|
|||
user: process.env.DATABASE_USER,
|
||||
password: process.env.DATABASE_PASSWORD,
|
||||
database: process.env.DATABASE || 'boredgame',
|
||||
ssl: true
|
||||
ssl: process.env.DATABASE_HOST === 'localhost' ? false : true,
|
||||
},
|
||||
// Print all statements
|
||||
verbose: true,
|
||||
|
|
|
|||
17
package.json
17
package.json
|
|
@ -4,12 +4,11 @@
|
|||
"private": "true",
|
||||
"scripts": {
|
||||
"dev": "NODE_OPTIONS=\"--inspect\" vite dev --host",
|
||||
"build": "prisma generate && vite build",
|
||||
"build": "drizzle-kit generate:pg && vite build",
|
||||
"package": "svelte-kit package",
|
||||
"preview": "vite preview",
|
||||
"test": "playwright test",
|
||||
"test:ui": "svelte-kit sync && playwright test --ui",
|
||||
"postinstall": "prisma generate",
|
||||
"check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
|
||||
"check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",
|
||||
"test:unit": "vitest",
|
||||
|
|
@ -26,7 +25,7 @@
|
|||
},
|
||||
"devDependencies": {
|
||||
"@melt-ui/pp": "^0.3.0",
|
||||
"@melt-ui/svelte": "^0.75.2",
|
||||
"@melt-ui/svelte": "^0.75.3",
|
||||
"@playwright/test": "^1.42.0",
|
||||
"@resvg/resvg-js": "^2.6.0",
|
||||
"@sveltejs/adapter-auto": "^3.1.1",
|
||||
|
|
@ -34,7 +33,7 @@
|
|||
"@sveltejs/kit": "^2.5.2",
|
||||
"@sveltejs/vite-plugin-svelte": "^3.0.2",
|
||||
"@types/cookie": "^0.6.0",
|
||||
"@types/node": "^20.11.24",
|
||||
"@types/node": "^20.11.25",
|
||||
"@types/pg": "^8.11.2",
|
||||
"@typescript-eslint/eslint-plugin": "^6.21.0",
|
||||
"@typescript-eslint/parser": "^6.21.0",
|
||||
|
|
@ -49,10 +48,9 @@
|
|||
"postcss": "^8.4.35",
|
||||
"postcss-import": "^16.0.1",
|
||||
"postcss-load-config": "^5.0.3",
|
||||
"postcss-preset-env": "^9.4.0",
|
||||
"postcss-preset-env": "^9.5.0",
|
||||
"prettier": "^3.2.5",
|
||||
"prettier-plugin-svelte": "^3.2.2",
|
||||
"prisma": "^5.9.1",
|
||||
"sass": "^1.71.1",
|
||||
"satori": "^0.10.13",
|
||||
"satori-html": "^0.3.2",
|
||||
|
|
@ -63,12 +61,12 @@
|
|||
"svelte-sequential-preprocessor": "^2.0.1",
|
||||
"sveltekit-flash-message": "^2.4.2",
|
||||
"sveltekit-rate-limiter": "^0.4.3",
|
||||
"sveltekit-superforms": "^2.7.0",
|
||||
"sveltekit-superforms": "^2.8.0",
|
||||
"tailwindcss": "^3.4.1",
|
||||
"ts-node": "^10.9.2",
|
||||
"tslib": "^2.6.1",
|
||||
"tsx": "^4.7.1",
|
||||
"typescript": "^5.3.3",
|
||||
"typescript": "^5.4.2",
|
||||
"vite": "^5.1.5",
|
||||
"vitest": "^1.3.1",
|
||||
"zod": "^3.22.4"
|
||||
|
|
@ -88,12 +86,11 @@
|
|||
"@neondatabase/serverless": "^0.9.0",
|
||||
"@paralleldrive/cuid2": "^2.2.2",
|
||||
"@planetscale/database": "^1.16.0",
|
||||
"@prisma/client": "^5.9.1",
|
||||
"@sentry/sveltekit": "^7.100.1",
|
||||
"@sveltejs/adapter-vercel": "^5.1.0",
|
||||
"@types/feather-icons": "^4.29.4",
|
||||
"@vercel/og": "^0.5.20",
|
||||
"bits-ui": "^0.19.3",
|
||||
"bits-ui": "^0.19.5",
|
||||
"boardgamegeekclient": "^1.9.1",
|
||||
"class-variance-authority": "^0.7.0",
|
||||
"clsx": "^2.1.0",
|
||||
|
|
|
|||
257
pnpm-lock.yaml
257
pnpm-lock.yaml
|
|
@ -32,9 +32,6 @@ dependencies:
|
|||
'@planetscale/database':
|
||||
specifier: ^1.16.0
|
||||
version: 1.16.0
|
||||
'@prisma/client':
|
||||
specifier: ^5.9.1
|
||||
version: 5.9.1(prisma@5.9.1)
|
||||
'@sentry/sveltekit':
|
||||
specifier: ^7.100.1
|
||||
version: 7.100.1(@sveltejs/kit@2.5.2)(svelte@4.2.12)
|
||||
|
|
@ -48,8 +45,8 @@ dependencies:
|
|||
specifier: ^0.5.20
|
||||
version: 0.5.20
|
||||
bits-ui:
|
||||
specifier: ^0.19.3
|
||||
version: 0.19.3(svelte@4.2.12)
|
||||
specifier: ^0.19.5
|
||||
version: 0.19.5(svelte@4.2.12)
|
||||
boardgamegeekclient:
|
||||
specifier: ^1.9.1
|
||||
version: 1.9.1
|
||||
|
|
@ -70,7 +67,7 @@ dependencies:
|
|||
version: 4.29.1
|
||||
formsnap:
|
||||
specifier: ^0.5.1
|
||||
version: 0.5.1(svelte@4.2.12)(sveltekit-superforms@2.7.0)
|
||||
version: 0.5.1(svelte@4.2.12)(sveltekit-superforms@2.8.0)
|
||||
html-entities:
|
||||
specifier: ^2.5.2
|
||||
version: 2.5.2
|
||||
|
|
@ -132,10 +129,10 @@ dependencies:
|
|||
devDependencies:
|
||||
'@melt-ui/pp':
|
||||
specifier: ^0.3.0
|
||||
version: 0.3.0(@melt-ui/svelte@0.75.2)(svelte@4.2.12)
|
||||
version: 0.3.0(@melt-ui/svelte@0.75.3)(svelte@4.2.12)
|
||||
'@melt-ui/svelte':
|
||||
specifier: ^0.75.2
|
||||
version: 0.75.2(svelte@4.2.12)
|
||||
specifier: ^0.75.3
|
||||
version: 0.75.3(svelte@4.2.12)
|
||||
'@playwright/test':
|
||||
specifier: ^1.42.0
|
||||
version: 1.42.0
|
||||
|
|
@ -158,17 +155,17 @@ devDependencies:
|
|||
specifier: ^0.6.0
|
||||
version: 0.6.0
|
||||
'@types/node':
|
||||
specifier: ^20.11.24
|
||||
version: 20.11.24
|
||||
specifier: ^20.11.25
|
||||
version: 20.11.25
|
||||
'@types/pg':
|
||||
specifier: ^8.11.2
|
||||
version: 8.11.2
|
||||
'@typescript-eslint/eslint-plugin':
|
||||
specifier: ^6.21.0
|
||||
version: 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.57.0)(typescript@5.3.3)
|
||||
version: 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.57.0)(typescript@5.4.2)
|
||||
'@typescript-eslint/parser':
|
||||
specifier: ^6.21.0
|
||||
version: 6.21.0(eslint@8.57.0)(typescript@5.3.3)
|
||||
version: 6.21.0(eslint@8.57.0)(typescript@5.4.2)
|
||||
autoprefixer:
|
||||
specifier: ^10.4.18
|
||||
version: 10.4.18(postcss@8.4.35)
|
||||
|
|
@ -203,17 +200,14 @@ devDependencies:
|
|||
specifier: ^5.0.3
|
||||
version: 5.0.3(postcss@8.4.35)
|
||||
postcss-preset-env:
|
||||
specifier: ^9.4.0
|
||||
version: 9.4.0(postcss@8.4.35)
|
||||
specifier: ^9.5.0
|
||||
version: 9.5.0(postcss@8.4.35)
|
||||
prettier:
|
||||
specifier: ^3.2.5
|
||||
version: 3.2.5
|
||||
prettier-plugin-svelte:
|
||||
specifier: ^3.2.2
|
||||
version: 3.2.2(prettier@3.2.5)(svelte@4.2.12)
|
||||
prisma:
|
||||
specifier: ^5.9.1
|
||||
version: 5.9.1
|
||||
sass:
|
||||
specifier: ^1.71.1
|
||||
version: 1.71.1
|
||||
|
|
@ -231,10 +225,10 @@ devDependencies:
|
|||
version: 3.6.6(postcss-load-config@5.0.3)(postcss@8.4.35)(sass@1.71.1)(svelte@4.2.12)
|
||||
svelte-meta-tags:
|
||||
specifier: ^3.1.1
|
||||
version: 3.1.1(svelte@4.2.12)(typescript@5.3.3)
|
||||
version: 3.1.1(svelte@4.2.12)(typescript@5.4.2)
|
||||
svelte-preprocess:
|
||||
specifier: ^5.1.3
|
||||
version: 5.1.3(postcss-load-config@5.0.3)(postcss@8.4.35)(sass@1.71.1)(svelte@4.2.12)(typescript@5.3.3)
|
||||
version: 5.1.3(postcss-load-config@5.0.3)(postcss@8.4.35)(sass@1.71.1)(svelte@4.2.12)(typescript@5.4.2)
|
||||
svelte-sequential-preprocessor:
|
||||
specifier: ^2.0.1
|
||||
version: 2.0.1
|
||||
|
|
@ -245,14 +239,14 @@ devDependencies:
|
|||
specifier: ^0.4.3
|
||||
version: 0.4.3(@sveltejs/kit@2.5.2)
|
||||
sveltekit-superforms:
|
||||
specifier: ^2.7.0
|
||||
version: 2.7.0(@sveltejs/kit@2.5.2)(@types/json-schema@7.0.15)(esbuild-runner@2.2.2)(esbuild@0.20.1)(svelte@4.2.12)
|
||||
specifier: ^2.8.0
|
||||
version: 2.8.0(@sveltejs/kit@2.5.2)(@types/json-schema@7.0.15)(esbuild-runner@2.2.2)(esbuild@0.20.1)(svelte@4.2.12)
|
||||
tailwindcss:
|
||||
specifier: ^3.4.1
|
||||
version: 3.4.1(ts-node@10.9.2)
|
||||
ts-node:
|
||||
specifier: ^10.9.2
|
||||
version: 10.9.2(@types/node@20.11.24)(typescript@5.3.3)
|
||||
version: 10.9.2(@types/node@20.11.25)(typescript@5.4.2)
|
||||
tslib:
|
||||
specifier: ^2.6.1
|
||||
version: 2.6.2
|
||||
|
|
@ -260,14 +254,14 @@ devDependencies:
|
|||
specifier: ^4.7.1
|
||||
version: 4.7.1
|
||||
typescript:
|
||||
specifier: ^5.3.3
|
||||
version: 5.3.3
|
||||
specifier: ^5.4.2
|
||||
version: 5.4.2
|
||||
vite:
|
||||
specifier: ^5.1.5
|
||||
version: 5.1.5(@types/node@20.11.24)(sass@1.71.1)
|
||||
version: 5.1.5(@types/node@20.11.25)(sass@1.71.1)
|
||||
vitest:
|
||||
specifier: ^1.3.1
|
||||
version: 1.3.1(@types/node@20.11.24)(sass@1.71.1)
|
||||
version: 1.3.1(@types/node@20.11.25)(sass@1.71.1)
|
||||
zod:
|
||||
specifier: ^3.22.4
|
||||
version: 3.22.4
|
||||
|
|
@ -469,8 +463,8 @@ packages:
|
|||
postcss: 8.4.35
|
||||
dev: true
|
||||
|
||||
/@csstools/postcss-gradients-interpolation-method@4.0.10(postcss@8.4.35):
|
||||
resolution: {integrity: sha512-PwKOxVuX8lo52bPtPeKjaIp6oH2EzhcBxCndRcvGZKsqZYQ35k9A5G4yihZ+wp7PoxPqDNiXuhQsvQG2lqMpOA==}
|
||||
/@csstools/postcss-gradients-interpolation-method@4.0.11(postcss@8.4.35):
|
||||
resolution: {integrity: sha512-LFom5jCVUfzF+iuiOZvhvX7RRN8vc+tKpcKo9s4keEBAU2mPwV5/Fgz5iylEfXP/DZbEdq2C0At20urMi/lupw==}
|
||||
engines: {node: ^14 || ^16 || >=18}
|
||||
peerDependencies:
|
||||
postcss: ^8.4
|
||||
|
|
@ -728,6 +722,15 @@ packages:
|
|||
postcss: 8.4.35
|
||||
dev: true
|
||||
|
||||
/@csstools/selector-resolve-nested@1.1.0(postcss-selector-parser@6.0.15):
|
||||
resolution: {integrity: sha512-uWvSaeRcHyeNenKg8tp17EVDRkpflmdyvbE0DHo6D/GdBb6PDnCYYU6gRpXhtICMGMcahQmj2zGxwFM/WC8hCg==}
|
||||
engines: {node: ^14 || ^16 || >=18}
|
||||
peerDependencies:
|
||||
postcss-selector-parser: ^6.0.13
|
||||
dependencies:
|
||||
postcss-selector-parser: 6.0.15
|
||||
dev: true
|
||||
|
||||
/@csstools/selector-specificity@3.0.2(postcss-selector-parser@6.0.15):
|
||||
resolution: {integrity: sha512-RpHaZ1h9LE7aALeQXmXrJkRG84ZxIsctEN2biEUmFyKpzFM3zZ35eUMcIzZFsw/2olQE6v69+esEqU2f1MKycg==}
|
||||
engines: {node: ^14 || ^16 || >=18}
|
||||
|
|
@ -1941,7 +1944,7 @@ packages:
|
|||
'@prisma/client': ^4.2.0 || ^5.0.0
|
||||
lucia: 3.x
|
||||
dependencies:
|
||||
'@prisma/client': 5.9.1(prisma@5.9.1)
|
||||
'@prisma/client': 5.9.1
|
||||
lucia: 3.0.1
|
||||
dev: false
|
||||
|
||||
|
|
@ -1975,21 +1978,21 @@ packages:
|
|||
- supports-color
|
||||
dev: false
|
||||
|
||||
/@melt-ui/pp@0.3.0(@melt-ui/svelte@0.75.2)(svelte@4.2.12):
|
||||
/@melt-ui/pp@0.3.0(@melt-ui/svelte@0.75.3)(svelte@4.2.12):
|
||||
resolution: {integrity: sha512-b07Bdh8l2KcwKVCXOY+SoBw1dk9eWvQfMSi6SoacpRVyVmmfpi0kV4oGt3HYF0tUCB3sEmVicxse50ZzZxEzEA==}
|
||||
engines: {pnpm: '>=8.6.3'}
|
||||
peerDependencies:
|
||||
'@melt-ui/svelte': '>= 0.29.0'
|
||||
svelte: ^3.55.0 || ^4.0.0 || ^5.0.0-next.1
|
||||
dependencies:
|
||||
'@melt-ui/svelte': 0.75.2(svelte@4.2.12)
|
||||
'@melt-ui/svelte': 0.75.3(svelte@4.2.12)
|
||||
estree-walker: 3.0.3
|
||||
magic-string: 0.30.5
|
||||
svelte: 4.2.12
|
||||
dev: true
|
||||
|
||||
/@melt-ui/svelte@0.75.2(svelte@4.2.12):
|
||||
resolution: {integrity: sha512-EZYH5iEzHs/CPsWqRlH6AnJ70sTuPB4llVK3ajafWig6I5q3qyGU8NIz4aozUssL0edf9BKmyDVAy6Vksy1fbA==}
|
||||
/@melt-ui/svelte@0.75.3(svelte@4.2.12):
|
||||
resolution: {integrity: sha512-EA2IKn7w9qtzO/M7VEENpphQ9A4az+QDMQbA8SJLuKyu+S8NWliln5y9vvmnx9dZF8GtKtUKuxpwRNyPg5LAOg==}
|
||||
peerDependencies:
|
||||
svelte: '>=3 <5'
|
||||
dependencies:
|
||||
|
|
@ -2662,7 +2665,7 @@ packages:
|
|||
requiresBuild: true
|
||||
optional: true
|
||||
|
||||
/@prisma/client@5.9.1(prisma@5.9.1):
|
||||
/@prisma/client@5.9.1:
|
||||
resolution: {integrity: sha512-caSOnG4kxcSkhqC/2ShV7rEoWwd3XrftokxJqOCMVvia4NYV/TPtJlS9C2os3Igxw/Qyxumj9GBQzcStzECvtQ==}
|
||||
engines: {node: '>=16.13'}
|
||||
requiresBuild: true
|
||||
|
|
@ -2671,37 +2674,8 @@ packages:
|
|||
peerDependenciesMeta:
|
||||
prisma:
|
||||
optional: true
|
||||
dependencies:
|
||||
prisma: 5.9.1
|
||||
dev: false
|
||||
|
||||
/@prisma/debug@5.9.1:
|
||||
resolution: {integrity: sha512-yAHFSFCg8KVoL0oRUno3m60GAjsUKYUDkQ+9BA2X2JfVR3kRVSJFc/GpQ2fSORi4pSHZR9orfM4UC9OVXIFFTA==}
|
||||
|
||||
/@prisma/engines-version@5.9.0-32.23fdc5965b1e05fc54e5f26ed3de66776b93de64:
|
||||
resolution: {integrity: sha512-HFl7275yF0FWbdcNvcSRbbu9JCBSLMcurYwvWc8WGDnpu7APxQo2ONtZrUggU3WxLxUJ2uBX+0GOFIcJeVeOOQ==}
|
||||
|
||||
/@prisma/engines@5.9.1:
|
||||
resolution: {integrity: sha512-gkdXmjxQ5jktxWNdDA5aZZ6R8rH74JkoKq6LD5mACSvxd2vbqWeWIOV0Py5wFC8vofOYShbt6XUeCIUmrOzOnQ==}
|
||||
requiresBuild: true
|
||||
dependencies:
|
||||
'@prisma/debug': 5.9.1
|
||||
'@prisma/engines-version': 5.9.0-32.23fdc5965b1e05fc54e5f26ed3de66776b93de64
|
||||
'@prisma/fetch-engine': 5.9.1
|
||||
'@prisma/get-platform': 5.9.1
|
||||
|
||||
/@prisma/fetch-engine@5.9.1:
|
||||
resolution: {integrity: sha512-l0goQOMcNVOJs1kAcwqpKq3ylvkD9F04Ioe1oJoCqmz05mw22bNAKKGWuDd3zTUoUZr97va0c/UfLNru+PDmNA==}
|
||||
dependencies:
|
||||
'@prisma/debug': 5.9.1
|
||||
'@prisma/engines-version': 5.9.0-32.23fdc5965b1e05fc54e5f26ed3de66776b93de64
|
||||
'@prisma/get-platform': 5.9.1
|
||||
|
||||
/@prisma/get-platform@5.9.1:
|
||||
resolution: {integrity: sha512-6OQsNxTyhvG+T2Ksr8FPFpuPeL4r9u0JF0OZHUBI/Uy9SS43sPyAIutt4ZEAyqWQt104ERh70EZedkHZKsnNbg==}
|
||||
dependencies:
|
||||
'@prisma/debug': 5.9.1
|
||||
|
||||
/@resvg/resvg-js-android-arm-eabi@2.6.0:
|
||||
resolution: {integrity: sha512-lJnZ/2P5aMocrFMW7HWhVne5gH82I8xH6zsfH75MYr4+/JOaVcGCTEQ06XFohGMdYRP3v05SSPLPvTM/RHjxfA==}
|
||||
engines: {node: '>= 10'}
|
||||
|
|
@ -3249,7 +3223,7 @@ packages:
|
|||
sirv: 2.0.4
|
||||
svelte: 4.2.12
|
||||
tiny-glob: 0.2.9
|
||||
vite: 5.1.5(@types/node@20.11.24)(sass@1.71.1)
|
||||
vite: 5.1.5(@types/node@20.11.25)(sass@1.71.1)
|
||||
|
||||
/@sveltejs/vite-plugin-svelte-inspector@2.0.0(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@4.2.12)(vite@5.1.5):
|
||||
resolution: {integrity: sha512-gjr9ZFg1BSlIpfZ4PRewigrvYmHWbDrq2uvvPB1AmTWKuM+dI1JXQSUu2pIrYLb/QncyiIGkFDFKTwJ0XqQZZg==}
|
||||
|
|
@ -3262,7 +3236,7 @@ packages:
|
|||
'@sveltejs/vite-plugin-svelte': 3.0.2(svelte@4.2.12)(vite@5.1.5)
|
||||
debug: 4.3.4
|
||||
svelte: 4.2.12
|
||||
vite: 5.1.5(@types/node@20.11.24)(sass@1.71.1)
|
||||
vite: 5.1.5(@types/node@20.11.25)(sass@1.71.1)
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
|
|
@ -3280,7 +3254,7 @@ packages:
|
|||
magic-string: 0.30.5
|
||||
svelte: 4.2.12
|
||||
svelte-hmr: 0.15.3(svelte@4.2.12)
|
||||
vite: 5.1.5(@types/node@20.11.24)(sass@1.71.1)
|
||||
vite: 5.1.5(@types/node@20.11.25)(sass@1.71.1)
|
||||
vitefu: 0.2.5(vite@5.1.5)
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
|
@ -3323,22 +3297,22 @@ packages:
|
|||
/@types/json-schema@7.0.15:
|
||||
resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
|
||||
|
||||
/@types/node@20.11.24:
|
||||
resolution: {integrity: sha512-Kza43ewS3xoLgCEpQrsT+xRo/EJej1y0kVYGiLFE1NEODXGzTfwiC6tXTLMQskn1X4/Rjlh0MQUvx9W+L9long==}
|
||||
/@types/node@20.11.25:
|
||||
resolution: {integrity: sha512-TBHyJxk2b7HceLVGFcpAUjsa5zIdsPWlR6XHfyGzd0SFu+/NFgQgMAl96MSDZgQDvJAvV6BKsFOrt6zIL09JDw==}
|
||||
dependencies:
|
||||
undici-types: 5.26.5
|
||||
|
||||
/@types/pg@8.11.2:
|
||||
resolution: {integrity: sha512-G2Mjygf2jFMU/9hCaTYxJrwdObdcnuQde1gndooZSOHsNSaCehAuwc7EIuSA34Do8Jx2yZ19KtvW8P0j4EuUXw==}
|
||||
dependencies:
|
||||
'@types/node': 20.11.24
|
||||
'@types/node': 20.11.25
|
||||
pg-protocol: 1.6.0
|
||||
pg-types: 4.0.2
|
||||
|
||||
/@types/pg@8.6.6:
|
||||
resolution: {integrity: sha512-O2xNmXebtwVekJDD+02udOncjVcMZQuTEQEMpKJ0ZRf5E7/9JJX3izhKUcUifBkyKpljyUM6BTgy2trmviKlpw==}
|
||||
dependencies:
|
||||
'@types/node': 20.11.24
|
||||
'@types/node': 20.11.25
|
||||
pg-protocol: 1.6.0
|
||||
pg-types: 2.2.0
|
||||
dev: false
|
||||
|
|
@ -3356,7 +3330,7 @@ packages:
|
|||
requiresBuild: true
|
||||
optional: true
|
||||
|
||||
/@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.57.0)(typescript@5.3.3):
|
||||
/@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.57.0)(typescript@5.4.2):
|
||||
resolution: {integrity: sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==}
|
||||
engines: {node: ^16.0.0 || >=18.0.0}
|
||||
peerDependencies:
|
||||
|
|
@ -3368,10 +3342,10 @@ packages:
|
|||
optional: true
|
||||
dependencies:
|
||||
'@eslint-community/regexpp': 4.10.0
|
||||
'@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@5.3.3)
|
||||
'@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@5.4.2)
|
||||
'@typescript-eslint/scope-manager': 6.21.0
|
||||
'@typescript-eslint/type-utils': 6.21.0(eslint@8.57.0)(typescript@5.3.3)
|
||||
'@typescript-eslint/utils': 6.21.0(eslint@8.57.0)(typescript@5.3.3)
|
||||
'@typescript-eslint/type-utils': 6.21.0(eslint@8.57.0)(typescript@5.4.2)
|
||||
'@typescript-eslint/utils': 6.21.0(eslint@8.57.0)(typescript@5.4.2)
|
||||
'@typescript-eslint/visitor-keys': 6.21.0
|
||||
debug: 4.3.4
|
||||
eslint: 8.57.0
|
||||
|
|
@ -3379,13 +3353,13 @@ packages:
|
|||
ignore: 5.3.0
|
||||
natural-compare: 1.4.0
|
||||
semver: 7.5.4
|
||||
ts-api-utils: 1.0.3(typescript@5.3.3)
|
||||
typescript: 5.3.3
|
||||
ts-api-utils: 1.0.3(typescript@5.4.2)
|
||||
typescript: 5.4.2
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.3.3):
|
||||
/@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.4.2):
|
||||
resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==}
|
||||
engines: {node: ^16.0.0 || >=18.0.0}
|
||||
peerDependencies:
|
||||
|
|
@ -3397,11 +3371,11 @@ packages:
|
|||
dependencies:
|
||||
'@typescript-eslint/scope-manager': 6.21.0
|
||||
'@typescript-eslint/types': 6.21.0
|
||||
'@typescript-eslint/typescript-estree': 6.21.0(typescript@5.3.3)
|
||||
'@typescript-eslint/typescript-estree': 6.21.0(typescript@5.4.2)
|
||||
'@typescript-eslint/visitor-keys': 6.21.0
|
||||
debug: 4.3.4
|
||||
eslint: 8.57.0
|
||||
typescript: 5.3.3
|
||||
typescript: 5.4.2
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
|
@ -3414,7 +3388,7 @@ packages:
|
|||
'@typescript-eslint/visitor-keys': 6.21.0
|
||||
dev: true
|
||||
|
||||
/@typescript-eslint/type-utils@6.21.0(eslint@8.57.0)(typescript@5.3.3):
|
||||
/@typescript-eslint/type-utils@6.21.0(eslint@8.57.0)(typescript@5.4.2):
|
||||
resolution: {integrity: sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==}
|
||||
engines: {node: ^16.0.0 || >=18.0.0}
|
||||
peerDependencies:
|
||||
|
|
@ -3424,12 +3398,12 @@ packages:
|
|||
typescript:
|
||||
optional: true
|
||||
dependencies:
|
||||
'@typescript-eslint/typescript-estree': 6.21.0(typescript@5.3.3)
|
||||
'@typescript-eslint/utils': 6.21.0(eslint@8.57.0)(typescript@5.3.3)
|
||||
'@typescript-eslint/typescript-estree': 6.21.0(typescript@5.4.2)
|
||||
'@typescript-eslint/utils': 6.21.0(eslint@8.57.0)(typescript@5.4.2)
|
||||
debug: 4.3.4
|
||||
eslint: 8.57.0
|
||||
ts-api-utils: 1.0.3(typescript@5.3.3)
|
||||
typescript: 5.3.3
|
||||
ts-api-utils: 1.0.3(typescript@5.4.2)
|
||||
typescript: 5.4.2
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
|
@ -3439,7 +3413,7 @@ packages:
|
|||
engines: {node: ^16.0.0 || >=18.0.0}
|
||||
dev: true
|
||||
|
||||
/@typescript-eslint/typescript-estree@6.21.0(typescript@5.3.3):
|
||||
/@typescript-eslint/typescript-estree@6.21.0(typescript@5.4.2):
|
||||
resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==}
|
||||
engines: {node: ^16.0.0 || >=18.0.0}
|
||||
peerDependencies:
|
||||
|
|
@ -3455,13 +3429,13 @@ packages:
|
|||
is-glob: 4.0.3
|
||||
minimatch: 9.0.3
|
||||
semver: 7.6.0
|
||||
ts-api-utils: 1.2.1(typescript@5.3.3)
|
||||
typescript: 5.3.3
|
||||
ts-api-utils: 1.2.1(typescript@5.4.2)
|
||||
typescript: 5.4.2
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/@typescript-eslint/utils@6.21.0(eslint@8.57.0)(typescript@5.3.3):
|
||||
/@typescript-eslint/utils@6.21.0(eslint@8.57.0)(typescript@5.4.2):
|
||||
resolution: {integrity: sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==}
|
||||
engines: {node: ^16.0.0 || >=18.0.0}
|
||||
peerDependencies:
|
||||
|
|
@ -3472,7 +3446,7 @@ packages:
|
|||
'@types/semver': 7.5.6
|
||||
'@typescript-eslint/scope-manager': 6.21.0
|
||||
'@typescript-eslint/types': 6.21.0
|
||||
'@typescript-eslint/typescript-estree': 6.21.0(typescript@5.3.3)
|
||||
'@typescript-eslint/typescript-estree': 6.21.0(typescript@5.4.2)
|
||||
eslint: 8.57.0
|
||||
semver: 7.5.4
|
||||
transitivePeerDependencies:
|
||||
|
|
@ -3771,13 +3745,13 @@ packages:
|
|||
file-uri-to-path: 1.0.0
|
||||
dev: false
|
||||
|
||||
/bits-ui@0.19.3(svelte@4.2.12):
|
||||
resolution: {integrity: sha512-0qqZ1bwE4ZmTnzTdsl4mYEbHY5f0NVgxhddIqscLjJZx4ltkVKDXxBwEusbE2NToqKtXNNrU0wy7sLusdzdhcg==}
|
||||
/bits-ui@0.19.5(svelte@4.2.12):
|
||||
resolution: {integrity: sha512-jrt0pGZdixtl27VrfzLj5yJxha29CK+6nClZZSoJCL5DlXFT1sluF9NnOSMP48D3kczR5YjpArvCe0BEnGq4jA==}
|
||||
peerDependencies:
|
||||
svelte: ^4.0.0
|
||||
dependencies:
|
||||
'@internationalized/date': 3.5.2
|
||||
'@melt-ui/svelte': 0.75.2(svelte@4.2.12)
|
||||
'@melt-ui/svelte': 0.75.3(svelte@4.2.12)
|
||||
nanoid: 5.0.6
|
||||
svelte: 4.2.12
|
||||
dev: false
|
||||
|
|
@ -4110,8 +4084,8 @@ packages:
|
|||
mdn-data: 2.0.30
|
||||
source-map-js: 1.0.2
|
||||
|
||||
/cssdb@7.11.0:
|
||||
resolution: {integrity: sha512-YUVAJhjDcTZzVD5XE49l3PQtGE29vvhzaL1bM3BtkvSmIRJeYENdfn1dn5jauBI7BBF+IyyiBS+oSVx3Hz/Gaw==}
|
||||
/cssdb@7.11.1:
|
||||
resolution: {integrity: sha512-F0nEoX/Rv8ENTHsjMPGHd9opdjGfXkgRBafSUGnQKPzGZFB7Lm0BbT10x21TMOCrKLbVsJ0NoCDMk6AfKqw8/A==}
|
||||
dev: true
|
||||
|
||||
/cssesc@3.0.0:
|
||||
|
|
@ -4834,7 +4808,7 @@ packages:
|
|||
is-callable: 1.2.7
|
||||
dev: false
|
||||
|
||||
/formsnap@0.5.1(svelte@4.2.12)(sveltekit-superforms@2.7.0):
|
||||
/formsnap@0.5.1(svelte@4.2.12)(sveltekit-superforms@2.8.0):
|
||||
resolution: {integrity: sha512-8ppOlOu7llBEJbV0PzUz/KWh1J8KfiGqwjiyb8emQ2m+/nYXohLBtMcLVpW3XwlMkUbYaIXM+5lhfGjw8xbGJw==}
|
||||
peerDependencies:
|
||||
svelte: ^4.0.0
|
||||
|
|
@ -4842,7 +4816,7 @@ packages:
|
|||
dependencies:
|
||||
nanoid: 5.0.6
|
||||
svelte: 4.2.12
|
||||
sveltekit-superforms: 2.7.0(@sveltejs/kit@2.5.2)(@types/json-schema@7.0.15)(esbuild-runner@2.2.2)(esbuild@0.20.1)(svelte@4.2.12)
|
||||
sveltekit-superforms: 2.8.0(@sveltejs/kit@2.5.2)(@types/json-schema@7.0.15)(esbuild-runner@2.2.2)(esbuild@0.20.1)(svelte@4.2.12)
|
||||
dev: false
|
||||
|
||||
/fraction.js@4.3.7:
|
||||
|
|
@ -6278,7 +6252,7 @@ packages:
|
|||
dependencies:
|
||||
lilconfig: 2.1.0
|
||||
postcss: 8.4.35
|
||||
ts-node: 10.9.2(@types/node@20.11.24)(typescript@5.3.3)
|
||||
ts-node: 10.9.2(@types/node@20.11.25)(typescript@5.4.2)
|
||||
yaml: 1.10.2
|
||||
dev: true
|
||||
|
||||
|
|
@ -6296,7 +6270,7 @@ packages:
|
|||
dependencies:
|
||||
lilconfig: 3.0.0
|
||||
postcss: 8.4.35
|
||||
ts-node: 10.9.2(@types/node@20.11.24)(typescript@5.3.3)
|
||||
ts-node: 10.9.2(@types/node@20.11.25)(typescript@5.4.2)
|
||||
yaml: 2.3.4
|
||||
|
||||
/postcss-load-config@5.0.3(postcss@8.4.35):
|
||||
|
|
@ -6335,12 +6309,13 @@ packages:
|
|||
postcss: 8.4.35
|
||||
postcss-selector-parser: 6.0.13
|
||||
|
||||
/postcss-nesting@12.0.3(postcss@8.4.35):
|
||||
resolution: {integrity: sha512-yrtMRPFNkfZMv9ikBvZ/Eh3RxhpMBKQ3KzD7LCY8+jYVlgju/Mdcxi4JY8bW2Y7ISXw8GTLuF/o+kFtp+yaVfQ==}
|
||||
/postcss-nesting@12.1.0(postcss@8.4.35):
|
||||
resolution: {integrity: sha512-QOYnosaZ+mlP6plQrAxFw09UUp2Sgtxj1BVHN+rSVbtV0Yx48zRt9/9F/ZOoxOKBBEsaJk2MYhhVRjeRRw5yuw==}
|
||||
engines: {node: ^14 || ^16 || >=18}
|
||||
peerDependencies:
|
||||
postcss: ^8.4
|
||||
dependencies:
|
||||
'@csstools/selector-resolve-nested': 1.1.0(postcss-selector-parser@6.0.15)
|
||||
'@csstools/selector-specificity': 3.0.2(postcss-selector-parser@6.0.15)
|
||||
postcss: 8.4.35
|
||||
postcss-selector-parser: 6.0.15
|
||||
|
|
@ -6383,8 +6358,8 @@ packages:
|
|||
postcss-value-parser: 4.2.0
|
||||
dev: true
|
||||
|
||||
/postcss-preset-env@9.4.0(postcss@8.4.35):
|
||||
resolution: {integrity: sha512-5X2UA4Dn4xo7sJFCxlzW/dAGo71Oxh/K5DVls33hd2e3j06OKnW5FJQTw2hB0wTnGv0f6WcMaVBGFqcEfAgwlw==}
|
||||
/postcss-preset-env@9.5.0(postcss@8.4.35):
|
||||
resolution: {integrity: sha512-ZTrTWCSqKVYSABB1GerMBb6F8Uto5YWIq1nqi+TKOHPzrXMcyJNuJTc0v2lp5WjG4Sfvwdo7HF/7/3j7HskRog==}
|
||||
engines: {node: ^14 || ^16 || >=18}
|
||||
peerDependencies:
|
||||
postcss: ^8.4
|
||||
|
|
@ -6395,7 +6370,7 @@ packages:
|
|||
'@csstools/postcss-exponential-functions': 1.0.4(postcss@8.4.35)
|
||||
'@csstools/postcss-font-format-keywords': 3.0.2(postcss@8.4.35)
|
||||
'@csstools/postcss-gamut-mapping': 1.0.3(postcss@8.4.35)
|
||||
'@csstools/postcss-gradients-interpolation-method': 4.0.10(postcss@8.4.35)
|
||||
'@csstools/postcss-gradients-interpolation-method': 4.0.11(postcss@8.4.35)
|
||||
'@csstools/postcss-hwb-function': 3.0.9(postcss@8.4.35)
|
||||
'@csstools/postcss-ic-unit': 3.0.4(postcss@8.4.35)
|
||||
'@csstools/postcss-initial': 1.0.1(postcss@8.4.35)
|
||||
|
|
@ -6423,7 +6398,7 @@ packages:
|
|||
css-blank-pseudo: 6.0.1(postcss@8.4.35)
|
||||
css-has-pseudo: 6.0.2(postcss@8.4.35)
|
||||
css-prefers-color-scheme: 9.0.1(postcss@8.4.35)
|
||||
cssdb: 7.11.0
|
||||
cssdb: 7.11.1
|
||||
postcss: 8.4.35
|
||||
postcss-attribute-case-insensitive: 6.0.3(postcss@8.4.35)
|
||||
postcss-clamp: 4.1.0(postcss@8.4.35)
|
||||
|
|
@ -6442,7 +6417,7 @@ packages:
|
|||
postcss-image-set-function: 6.0.3(postcss@8.4.35)
|
||||
postcss-lab-function: 6.0.10(postcss@8.4.35)
|
||||
postcss-logical: 7.0.1(postcss@8.4.35)
|
||||
postcss-nesting: 12.0.3(postcss@8.4.35)
|
||||
postcss-nesting: 12.1.0(postcss@8.4.35)
|
||||
postcss-opacity-percentage: 2.0.0(postcss@8.4.35)
|
||||
postcss-overflow-shorthand: 5.0.1(postcss@8.4.35)
|
||||
postcss-page-break: 3.0.4(postcss@8.4.35)
|
||||
|
|
@ -6602,14 +6577,6 @@ packages:
|
|||
react-is: 18.2.0
|
||||
dev: true
|
||||
|
||||
/prisma@5.9.1:
|
||||
resolution: {integrity: sha512-Hy/8KJZz0ELtkw4FnG9MS9rNWlXcJhf98Z2QMqi0QiVMoS8PzsBkpla0/Y5hTlob8F3HeECYphBjqmBxrluUrQ==}
|
||||
engines: {node: '>=16.13'}
|
||||
hasBin: true
|
||||
requiresBuild: true
|
||||
dependencies:
|
||||
'@prisma/engines': 5.9.1
|
||||
|
||||
/progress@2.0.3:
|
||||
resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==}
|
||||
engines: {node: '>=0.4.0'}
|
||||
|
|
@ -6820,12 +6787,12 @@ packages:
|
|||
yoga-wasm-web: 0.3.3
|
||||
dev: false
|
||||
|
||||
/schema-dts@1.1.2(typescript@5.3.3):
|
||||
/schema-dts@1.1.2(typescript@5.4.2):
|
||||
resolution: {integrity: sha512-MpNwH0dZJHinVxk9bT8XUdjKTxMYrA5bLtrrGmFA6PTLwlOKnhi67XoRd6/ty+Djt6ZC0slR57qFhZDNMI6DhQ==}
|
||||
peerDependencies:
|
||||
typescript: '>=4.1.0'
|
||||
dependencies:
|
||||
typescript: 5.3.3
|
||||
typescript: 5.4.2
|
||||
dev: true
|
||||
|
||||
/semver@6.3.1:
|
||||
|
|
@ -7089,8 +7056,8 @@ packages:
|
|||
picocolors: 1.0.0
|
||||
sade: 1.8.1
|
||||
svelte: 4.2.12
|
||||
svelte-preprocess: 5.1.3(postcss-load-config@5.0.3)(postcss@8.4.35)(sass@1.71.1)(svelte@4.2.12)(typescript@5.3.3)
|
||||
typescript: 5.3.3
|
||||
svelte-preprocess: 5.1.3(postcss-load-config@5.0.3)(postcss@8.4.35)(sass@1.71.1)(svelte@4.2.12)(typescript@5.4.2)
|
||||
typescript: 5.4.2
|
||||
transitivePeerDependencies:
|
||||
- '@babel/core'
|
||||
- coffeescript
|
||||
|
|
@ -7141,12 +7108,12 @@ packages:
|
|||
resolution: {integrity: sha512-AZD6R60vksyojn21FgXLglmBiBB9K5Dkdu0hdGrLbCaRCYT68IsWkZfRUqKhMx1IfzqWcZQ8X9y/f+Ih0oNQkQ==}
|
||||
dev: false
|
||||
|
||||
/svelte-meta-tags@3.1.1(svelte@4.2.12)(typescript@5.3.3):
|
||||
/svelte-meta-tags@3.1.1(svelte@4.2.12)(typescript@5.4.2):
|
||||
resolution: {integrity: sha512-tSWU1xbRGV5rkDN4wWXZfY24BRuhPa3Z8W2Zpt3GCv01QQdWRhhgmlpYVdfoSPNQX060bDB/JM1cu4H+lXxe8w==}
|
||||
peerDependencies:
|
||||
svelte: ^3.55.0 || ^4.0.0
|
||||
dependencies:
|
||||
schema-dts: 1.1.2(typescript@5.3.3)
|
||||
schema-dts: 1.1.2(typescript@5.4.2)
|
||||
svelte: 4.2.12
|
||||
transitivePeerDependencies:
|
||||
- typescript
|
||||
|
|
@ -7160,7 +7127,7 @@ packages:
|
|||
svelte: 4.2.12
|
||||
dev: true
|
||||
|
||||
/svelte-preprocess@5.1.3(postcss-load-config@5.0.3)(postcss@8.4.35)(sass@1.71.1)(svelte@4.2.12)(typescript@5.3.3):
|
||||
/svelte-preprocess@5.1.3(postcss-load-config@5.0.3)(postcss@8.4.35)(sass@1.71.1)(svelte@4.2.12)(typescript@5.4.2):
|
||||
resolution: {integrity: sha512-xxAkmxGHT+J/GourS5mVJeOXZzne1FR5ljeOUAMXUkfEhkLEllRreXpbl3dIYJlcJRfL1LO1uIAPpBpBfiqGPw==}
|
||||
engines: {node: '>= 16.0.0', pnpm: ^8.0.0}
|
||||
requiresBuild: true
|
||||
|
|
@ -7207,7 +7174,7 @@ packages:
|
|||
sorcery: 0.11.0
|
||||
strip-indent: 3.0.0
|
||||
svelte: 4.2.12
|
||||
typescript: 5.3.3
|
||||
typescript: 5.4.2
|
||||
dev: true
|
||||
|
||||
/svelte-sequential-preprocessor@2.0.1:
|
||||
|
|
@ -7264,8 +7231,8 @@ packages:
|
|||
'@sveltejs/kit': 2.5.2(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@4.2.12)(vite@5.1.5)
|
||||
dev: true
|
||||
|
||||
/sveltekit-superforms@2.7.0(@sveltejs/kit@2.5.2)(@types/json-schema@7.0.15)(esbuild-runner@2.2.2)(esbuild@0.20.1)(svelte@4.2.12):
|
||||
resolution: {integrity: sha512-z/YXWE4utCy/HIo/AcXlckItRj7ANNPFFHO4C42uwbtXZOODnEbuPb+sbpbTdGAw65JhIos59qEZXFFofzfEug==}
|
||||
/sveltekit-superforms@2.8.0(@sveltejs/kit@2.5.2)(@types/json-schema@7.0.15)(esbuild-runner@2.2.2)(esbuild@0.20.1)(svelte@4.2.12):
|
||||
resolution: {integrity: sha512-Ac3GlnVOjZ6q4m6+1xcPEznJsoet4tNn3FqbgZ83UJP5O/io4fWXioGFDztuZXmIDPeaBoAx22A0TMmS61pCxA==}
|
||||
peerDependencies:
|
||||
'@sveltejs/kit': 1.x || 2.x
|
||||
svelte: 3.x || 4.x || >=5.0.0-next.51
|
||||
|
|
@ -7285,7 +7252,7 @@ packages:
|
|||
joi: 17.12.2
|
||||
superstruct: 1.0.3
|
||||
valibot: 0.29.0
|
||||
yup: 1.3.3
|
||||
yup: 1.4.0
|
||||
zod: 3.22.4
|
||||
zod-to-json-schema: 3.22.4(zod@3.22.4)
|
||||
transitivePeerDependencies:
|
||||
|
|
@ -7436,22 +7403,22 @@ packages:
|
|||
resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==}
|
||||
dev: false
|
||||
|
||||
/ts-api-utils@1.0.3(typescript@5.3.3):
|
||||
/ts-api-utils@1.0.3(typescript@5.4.2):
|
||||
resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==}
|
||||
engines: {node: '>=16.13.0'}
|
||||
peerDependencies:
|
||||
typescript: '>=4.2.0'
|
||||
dependencies:
|
||||
typescript: 5.3.3
|
||||
typescript: 5.4.2
|
||||
dev: true
|
||||
|
||||
/ts-api-utils@1.2.1(typescript@5.3.3):
|
||||
/ts-api-utils@1.2.1(typescript@5.4.2):
|
||||
resolution: {integrity: sha512-RIYA36cJn2WiH9Hy77hdF9r7oEwxAtB/TS9/S4Qd90Ap4z5FSiin5zEiTL44OII1Y3IIlEvxwxFUVgrHSZ/UpA==}
|
||||
engines: {node: '>=16'}
|
||||
peerDependencies:
|
||||
typescript: '>=4.2.0'
|
||||
dependencies:
|
||||
typescript: 5.3.3
|
||||
typescript: 5.4.2
|
||||
dev: true
|
||||
|
||||
/ts-deepmerge@7.0.0:
|
||||
|
|
@ -7461,7 +7428,7 @@ packages:
|
|||
/ts-interface-checker@0.1.13:
|
||||
resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==}
|
||||
|
||||
/ts-node@10.9.2(@types/node@20.11.24)(typescript@5.3.3):
|
||||
/ts-node@10.9.2(@types/node@20.11.25)(typescript@5.4.2):
|
||||
resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==}
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
|
|
@ -7480,14 +7447,14 @@ packages:
|
|||
'@tsconfig/node12': 1.0.11
|
||||
'@tsconfig/node14': 1.0.3
|
||||
'@tsconfig/node16': 1.0.4
|
||||
'@types/node': 20.11.24
|
||||
'@types/node': 20.11.25
|
||||
acorn: 8.11.2
|
||||
acorn-walk: 8.3.0
|
||||
arg: 4.1.3
|
||||
create-require: 1.1.1
|
||||
diff: 4.0.2
|
||||
make-error: 1.3.6
|
||||
typescript: 5.3.3
|
||||
typescript: 5.4.2
|
||||
v8-compile-cache-lib: 3.0.1
|
||||
yn: 3.1.1
|
||||
|
||||
|
|
@ -7540,8 +7507,8 @@ packages:
|
|||
resolution: {integrity: sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==}
|
||||
dev: true
|
||||
|
||||
/typescript@5.3.3:
|
||||
resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==}
|
||||
/typescript@5.4.2:
|
||||
resolution: {integrity: sha512-+2/g0Fds1ERlP6JsakQQDXjZdZMM+rqpamFZJEKh4kwTIn3iDkgKtby0CeNd5ATNZ4Ry1ax15TMx0W2V+miizQ==}
|
||||
engines: {node: '>=14.17'}
|
||||
hasBin: true
|
||||
|
||||
|
|
@ -7629,7 +7596,7 @@ packages:
|
|||
- rollup
|
||||
dev: true
|
||||
|
||||
/vite-node@1.3.1(@types/node@20.11.24)(sass@1.71.1):
|
||||
/vite-node@1.3.1(@types/node@20.11.25)(sass@1.71.1):
|
||||
resolution: {integrity: sha512-azbRrqRxlWTJEVbzInZCTchx0X69M/XPTCz4H+TLvlTcR/xH/3hkRqhOakT41fMJCMzXTu4UvegkZiEoJAWvng==}
|
||||
engines: {node: ^18.0.0 || >=20.0.0}
|
||||
hasBin: true
|
||||
|
|
@ -7638,7 +7605,7 @@ packages:
|
|||
debug: 4.3.4
|
||||
pathe: 1.1.2
|
||||
picocolors: 1.0.0
|
||||
vite: 5.1.5(@types/node@20.11.24)(sass@1.71.1)
|
||||
vite: 5.1.5(@types/node@20.11.25)(sass@1.71.1)
|
||||
transitivePeerDependencies:
|
||||
- '@types/node'
|
||||
- less
|
||||
|
|
@ -7650,7 +7617,7 @@ packages:
|
|||
- terser
|
||||
dev: true
|
||||
|
||||
/vite@5.1.5(@types/node@20.11.24)(sass@1.71.1):
|
||||
/vite@5.1.5(@types/node@20.11.25)(sass@1.71.1):
|
||||
resolution: {integrity: sha512-BdN1xh0Of/oQafhU+FvopafUp6WaYenLU/NFoL5WyJL++GxkNfieKzBhM24H3HVsPQrlAqB7iJYTHabzaRed5Q==}
|
||||
engines: {node: ^18.0.0 || >=20.0.0}
|
||||
hasBin: true
|
||||
|
|
@ -7678,7 +7645,7 @@ packages:
|
|||
terser:
|
||||
optional: true
|
||||
dependencies:
|
||||
'@types/node': 20.11.24
|
||||
'@types/node': 20.11.25
|
||||
esbuild: 0.19.12
|
||||
postcss: 8.4.35
|
||||
rollup: 4.12.0
|
||||
|
|
@ -7694,9 +7661,9 @@ packages:
|
|||
vite:
|
||||
optional: true
|
||||
dependencies:
|
||||
vite: 5.1.5(@types/node@20.11.24)(sass@1.71.1)
|
||||
vite: 5.1.5(@types/node@20.11.25)(sass@1.71.1)
|
||||
|
||||
/vitest@1.3.1(@types/node@20.11.24)(sass@1.71.1):
|
||||
/vitest@1.3.1(@types/node@20.11.25)(sass@1.71.1):
|
||||
resolution: {integrity: sha512-/1QJqXs8YbCrfv/GPQ05wAZf2eakUPLPa18vkJAKE7RXOKfVHqMZZ1WlTjiwl6Gcn65M5vpNUB6EFLnEdRdEXQ==}
|
||||
engines: {node: ^18.0.0 || >=20.0.0}
|
||||
hasBin: true
|
||||
|
|
@ -7721,7 +7688,7 @@ packages:
|
|||
jsdom:
|
||||
optional: true
|
||||
dependencies:
|
||||
'@types/node': 20.11.24
|
||||
'@types/node': 20.11.25
|
||||
'@vitest/expect': 1.3.1
|
||||
'@vitest/runner': 1.3.1
|
||||
'@vitest/snapshot': 1.3.1
|
||||
|
|
@ -7739,8 +7706,8 @@ packages:
|
|||
strip-literal: 2.0.0
|
||||
tinybench: 2.6.0
|
||||
tinypool: 0.8.2
|
||||
vite: 5.1.5(@types/node@20.11.24)(sass@1.71.1)
|
||||
vite-node: 1.3.1(@types/node@20.11.24)(sass@1.71.1)
|
||||
vite: 5.1.5(@types/node@20.11.25)(sass@1.71.1)
|
||||
vite-node: 1.3.1(@types/node@20.11.25)(sass@1.71.1)
|
||||
why-is-node-running: 2.2.2
|
||||
transitivePeerDependencies:
|
||||
- less
|
||||
|
|
@ -7845,8 +7812,8 @@ packages:
|
|||
/yoga-wasm-web@0.3.3:
|
||||
resolution: {integrity: sha512-N+d4UJSJbt/R3wqY7Coqs5pcV0aUj2j9IaQ3rNj9bVCLld8tTGKRa2USARjnvZJWVx1NDmQev8EknoczaOQDOA==}
|
||||
|
||||
/yup@1.3.3:
|
||||
resolution: {integrity: sha512-v8QwZSsHH2K3/G9WSkp6mZKO+hugKT1EmnMqLNUcfu51HU9MDyhlETT/JgtzprnrnQHPWsjc6MUDMBp/l9fNnw==}
|
||||
/yup@1.4.0:
|
||||
resolution: {integrity: sha512-wPbgkJRCqIf+OHyiTBQoJiP5PFuAXaWiJK6AmYkzQAh5/c2K9hzSApBZG5wV9KoKSePF7sAxmNSvh/13YHkFDg==}
|
||||
requiresBuild: true
|
||||
dependencies:
|
||||
property-expr: 2.0.6
|
||||
|
|
|
|||
|
|
@ -1,256 +0,0 @@
|
|||
{
|
||||
"categories": [
|
||||
{
|
||||
"name": "Abstract Strategy"
|
||||
},
|
||||
{
|
||||
"name": "Action / Dexterity"
|
||||
},
|
||||
{
|
||||
"name": "Adventure"
|
||||
},
|
||||
{
|
||||
"name": "Age of Reason"
|
||||
},
|
||||
{
|
||||
"name": "American Civil War"
|
||||
},
|
||||
{
|
||||
"name": "American Indian Wars"
|
||||
},
|
||||
{
|
||||
"name": "American Revolutionary War"
|
||||
},
|
||||
{
|
||||
"name": "American West"
|
||||
},
|
||||
{
|
||||
"name": "Ancient"
|
||||
},
|
||||
{
|
||||
"name": "Animals"
|
||||
},
|
||||
{
|
||||
"name": "Arabian"
|
||||
},
|
||||
{
|
||||
"name": "Aviation / Flight"
|
||||
},
|
||||
{
|
||||
"name": "Bluffing"
|
||||
},
|
||||
{
|
||||
"name": "Book"
|
||||
},
|
||||
{
|
||||
"name": "Card Game"
|
||||
},
|
||||
{
|
||||
"name": "Children's Game"
|
||||
},
|
||||
{
|
||||
"name": "City Building"
|
||||
},
|
||||
{
|
||||
"name": "Civil War"
|
||||
},
|
||||
{
|
||||
"name": "Civilization"
|
||||
},
|
||||
{
|
||||
"name": "Collectible Components"
|
||||
},
|
||||
{
|
||||
"name": "Comic Book / Strip"
|
||||
},
|
||||
{
|
||||
"name": "Deduction"
|
||||
},
|
||||
{
|
||||
"name": "Dice"
|
||||
},
|
||||
{
|
||||
"name": "Economic"
|
||||
},
|
||||
{
|
||||
"name": "Educational"
|
||||
},
|
||||
{
|
||||
"name": "Electronic"
|
||||
},
|
||||
{
|
||||
"name": "Environmental"
|
||||
},
|
||||
{
|
||||
"name": "Expansion for Base-game"
|
||||
},
|
||||
{
|
||||
"name": "Exploration"
|
||||
},
|
||||
{
|
||||
"name": "Fan Expansion"
|
||||
},
|
||||
{
|
||||
"name": "Fantasy"
|
||||
},
|
||||
{
|
||||
"name": "Farming"
|
||||
},
|
||||
{
|
||||
"name": "Fighting"
|
||||
},
|
||||
{
|
||||
"name": "Game System"
|
||||
},
|
||||
{
|
||||
"name": "Horror"
|
||||
},
|
||||
{
|
||||
"name": "Humor"
|
||||
},
|
||||
{
|
||||
"name": "Industry / Manufacturing"
|
||||
},
|
||||
{
|
||||
"name": "Korean War"
|
||||
},
|
||||
{
|
||||
"name": "Mafia"
|
||||
},
|
||||
{
|
||||
"name": "Math"
|
||||
},
|
||||
{
|
||||
"name": "Mature / Adult"
|
||||
},
|
||||
{
|
||||
"name": "Maze"
|
||||
},
|
||||
{
|
||||
"name": "Medical"
|
||||
},
|
||||
{
|
||||
"name": "Medieval"
|
||||
},
|
||||
{
|
||||
"name": "Memory"
|
||||
},
|
||||
{
|
||||
"name": "Miniatures"
|
||||
},
|
||||
{
|
||||
"name": "Modern Warefare"
|
||||
},
|
||||
{
|
||||
"name": "Movies / TV / Radio Theme"
|
||||
},
|
||||
{
|
||||
"name": "Murder/Mystery"
|
||||
},
|
||||
{
|
||||
"name": "Music"
|
||||
},
|
||||
{
|
||||
"name": "Mythology"
|
||||
},
|
||||
{
|
||||
"name": "Napoleonic"
|
||||
},
|
||||
{
|
||||
"name": "Nautical"
|
||||
},
|
||||
{
|
||||
"name": "Negotiation"
|
||||
},
|
||||
{
|
||||
"name": "Novel-based"
|
||||
},
|
||||
{
|
||||
"name": "Number"
|
||||
},
|
||||
{
|
||||
"name": "Party Game"
|
||||
},
|
||||
{
|
||||
"name": "Pike and Shot"
|
||||
},
|
||||
{
|
||||
"name": "Pirates"
|
||||
},
|
||||
{
|
||||
"name": "Political"
|
||||
},
|
||||
{
|
||||
"name": "Post-Napoleonic"
|
||||
},
|
||||
{
|
||||
"name": "Prehistoric"
|
||||
},
|
||||
{
|
||||
"name": "Print & Play"
|
||||
},
|
||||
{
|
||||
"name": "Puzzle"
|
||||
},
|
||||
{
|
||||
"name": "Racing"
|
||||
},
|
||||
{
|
||||
"name": "Real-time"
|
||||
},
|
||||
{
|
||||
"name": "Religious"
|
||||
},
|
||||
{
|
||||
"name": "Renaissance"
|
||||
},
|
||||
{
|
||||
"name": "Science Fiction"
|
||||
},
|
||||
{
|
||||
"name": "Space Exploration"
|
||||
},
|
||||
{
|
||||
"name": "Spies/Secret Agents"
|
||||
},
|
||||
{
|
||||
"name": "Sports"
|
||||
},
|
||||
{
|
||||
"name": "Territory Building"
|
||||
},
|
||||
{
|
||||
"name": "Trains"
|
||||
},
|
||||
{
|
||||
"name": "Transportation"
|
||||
},
|
||||
{
|
||||
"name": "Travel"
|
||||
},
|
||||
{
|
||||
"name": "Trivia"
|
||||
},
|
||||
{
|
||||
"name": "Video Game Theme"
|
||||
},
|
||||
{
|
||||
"name": "Vietnam War"
|
||||
},
|
||||
{
|
||||
"name": "Wargame"
|
||||
},
|
||||
{
|
||||
"name": "Word Game"
|
||||
},
|
||||
{
|
||||
"name": "World War I"
|
||||
},
|
||||
{
|
||||
"name": "World War II"
|
||||
},
|
||||
{
|
||||
"name": "Zombies"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,577 +0,0 @@
|
|||
{
|
||||
"mechanics": [
|
||||
{
|
||||
"name": "Acting"
|
||||
},
|
||||
{
|
||||
"name": "Action Drafting"
|
||||
},
|
||||
{
|
||||
"name": "Action Points"
|
||||
},
|
||||
{
|
||||
"name": "Action Queue"
|
||||
},
|
||||
{
|
||||
"name": "Action Retrieval"
|
||||
},
|
||||
{
|
||||
"name": "Action Timer"
|
||||
},
|
||||
{
|
||||
"name": "Action/Event"
|
||||
},
|
||||
{
|
||||
"name": "Advantage Token"
|
||||
},
|
||||
{
|
||||
"name": "Alliances"
|
||||
},
|
||||
{
|
||||
"name": "Area Majority / Influence"
|
||||
},
|
||||
{
|
||||
"name": "Area Movement"
|
||||
},
|
||||
{
|
||||
"name": "Area-Impulse"
|
||||
},
|
||||
{
|
||||
"name": "Auction Compensation"
|
||||
},
|
||||
{
|
||||
"name": "Auction: Dexterity"
|
||||
},
|
||||
{
|
||||
"name": "Auction: Dutch"
|
||||
},
|
||||
{
|
||||
"name": "Auction: Dutch Priority"
|
||||
},
|
||||
{
|
||||
"name": "Auction: English"
|
||||
},
|
||||
{
|
||||
"name": "Auction: Fixed Placement"
|
||||
},
|
||||
{
|
||||
"name": "Auction: Multiple Lot"
|
||||
},
|
||||
{
|
||||
"name": "Auction: Once Around"
|
||||
},
|
||||
{
|
||||
"name": "Auction: Sealed Bid"
|
||||
},
|
||||
{
|
||||
"name": "Auction: Turn Order Until Pass"
|
||||
},
|
||||
{
|
||||
"name": "Auction/Bidding"
|
||||
},
|
||||
{
|
||||
"name": "Automatic Resource Growth"
|
||||
},
|
||||
{
|
||||
"name": "Betting and Bluffing"
|
||||
},
|
||||
{
|
||||
"name": "Bias"
|
||||
},
|
||||
{
|
||||
"name": "Bids As Wagers"
|
||||
},
|
||||
{
|
||||
"name": "Bingo"
|
||||
},
|
||||
{
|
||||
"name": "Bribery"
|
||||
},
|
||||
{
|
||||
"name": "Campaign / Battle Card Driven"
|
||||
},
|
||||
{
|
||||
"name": "Card Play Conflict Resolution"
|
||||
},
|
||||
{
|
||||
"name": "Catch the Leader"
|
||||
},
|
||||
{
|
||||
"name": "Chaining"
|
||||
},
|
||||
{
|
||||
"name": "Chit-Pull System"
|
||||
},
|
||||
{
|
||||
"name": "Closed Drafting"
|
||||
},
|
||||
{
|
||||
"name": "Closed Economy Auction"
|
||||
},
|
||||
{
|
||||
"name": "Command Cards"
|
||||
},
|
||||
{
|
||||
"name": "Commodity Speculation"
|
||||
},
|
||||
{
|
||||
"name": "Communication Limits"
|
||||
},
|
||||
{
|
||||
"name": "Connections"
|
||||
},
|
||||
{
|
||||
"name": "Constrained Bidding"
|
||||
},
|
||||
{
|
||||
"name": "Contracts"
|
||||
},
|
||||
{
|
||||
"name": "Cooperative Game"
|
||||
},
|
||||
{
|
||||
"name": "Crayon Rail System"
|
||||
},
|
||||
{
|
||||
"name": "Critical Hits and Failures"
|
||||
},
|
||||
{
|
||||
"name": "Cube Tower"
|
||||
},
|
||||
{
|
||||
"name": "Deck Construction"
|
||||
},
|
||||
{
|
||||
"name": "Deck, Bag, and Pool Building"
|
||||
},
|
||||
{
|
||||
"name": "Deduction"
|
||||
},
|
||||
{
|
||||
"name": "Delayed Purchase"
|
||||
},
|
||||
{
|
||||
"name": "Dice Rolling"
|
||||
},
|
||||
{
|
||||
"name": "Die Icon Resolution"
|
||||
},
|
||||
{
|
||||
"name": "Different Dice Movement"
|
||||
},
|
||||
{
|
||||
"name": "Drawing"
|
||||
},
|
||||
{
|
||||
"name": "Elapsed Real Time Ending"
|
||||
},
|
||||
{
|
||||
"name": "Enclosure"
|
||||
},
|
||||
{
|
||||
"name": "End Game Bonuses"
|
||||
},
|
||||
{
|
||||
"name": "Events"
|
||||
},
|
||||
{
|
||||
"name": "Finale Ending"
|
||||
},
|
||||
{
|
||||
"name": "Flicking"
|
||||
},
|
||||
{
|
||||
"name": "Follow"
|
||||
},
|
||||
{
|
||||
"name": "Force Commitment"
|
||||
},
|
||||
{
|
||||
"name": "Grid Coverage"
|
||||
},
|
||||
{
|
||||
"name": "Grid Movement"
|
||||
},
|
||||
{
|
||||
"name": "Hand Management"
|
||||
},
|
||||
{
|
||||
"name": "Hexagon Grid"
|
||||
},
|
||||
{
|
||||
"name": "Hidden Movement"
|
||||
},
|
||||
{
|
||||
"name": "Hidden Roles"
|
||||
},
|
||||
{
|
||||
"name": "Hidden Victory Points"
|
||||
},
|
||||
{
|
||||
"name": "Highest-Lowest Scoring"
|
||||
},
|
||||
{
|
||||
"name": "Hot Potato"
|
||||
},
|
||||
{
|
||||
"name": "I Cut, You Choose"
|
||||
},
|
||||
{
|
||||
"name": "Impulse Movement"
|
||||
},
|
||||
{
|
||||
"name": "Income"
|
||||
},
|
||||
{
|
||||
"name": "Increase Value of Unchosen Resources"
|
||||
},
|
||||
{
|
||||
"name": "Induction"
|
||||
},
|
||||
{
|
||||
"name": "Interrupts"
|
||||
},
|
||||
{
|
||||
"name": "Investment"
|
||||
},
|
||||
{
|
||||
"name": "Kill Steal"
|
||||
},
|
||||
{
|
||||
"name": "King of the Hill"
|
||||
},
|
||||
{
|
||||
"name": "Ladder Climbing"
|
||||
},
|
||||
{
|
||||
"name": "Layering"
|
||||
},
|
||||
{
|
||||
"name": "Legacy Game"
|
||||
},
|
||||
{
|
||||
"name": "Line Drawing"
|
||||
},
|
||||
{
|
||||
"name": "Line of Sight"
|
||||
},
|
||||
{
|
||||
"name": "Loans"
|
||||
},
|
||||
{
|
||||
"name": "Lose a Turn"
|
||||
},
|
||||
{
|
||||
"name": "Mancala"
|
||||
},
|
||||
{
|
||||
"name": "Map Addition"
|
||||
},
|
||||
{
|
||||
"name": "Map Deformation"
|
||||
},
|
||||
{
|
||||
"name": "Map Reduction"
|
||||
},
|
||||
{
|
||||
"name": "Market"
|
||||
},
|
||||
{
|
||||
"name": "Matching"
|
||||
},
|
||||
{
|
||||
"name": "Measurement Movement"
|
||||
},
|
||||
{
|
||||
"name": "Melding and Splaying"
|
||||
},
|
||||
{
|
||||
"name": "Memory"
|
||||
},
|
||||
{
|
||||
"name": "Minimap Resolution"
|
||||
},
|
||||
{
|
||||
"name": "Modular Board"
|
||||
},
|
||||
{
|
||||
"name": "Move Through Deck"
|
||||
},
|
||||
{
|
||||
"name": "Movement Points"
|
||||
},
|
||||
{
|
||||
"name": "Movement Template"
|
||||
},
|
||||
{
|
||||
"name": "Moving Multiple Units"
|
||||
},
|
||||
{
|
||||
"name": "Multi-Use Cards"
|
||||
},
|
||||
{
|
||||
"name": "Multiple Maps"
|
||||
},
|
||||
{
|
||||
"name": "Narrative Choice / Paragraph"
|
||||
},
|
||||
{
|
||||
"name": "Negotiation"
|
||||
},
|
||||
{
|
||||
"name": "Neighbor Scope"
|
||||
},
|
||||
{
|
||||
"name": "Network and Route Building"
|
||||
},
|
||||
{
|
||||
"name": "Once-Per-Game Abilities"
|
||||
},
|
||||
{
|
||||
"name": "Open Drafting"
|
||||
},
|
||||
{
|
||||
"name": "Order Counters"
|
||||
},
|
||||
{
|
||||
"name": "Ordering"
|
||||
},
|
||||
{
|
||||
"name": "Ownership"
|
||||
},
|
||||
{
|
||||
"name": "Paper-and-Pencil"
|
||||
},
|
||||
{
|
||||
"name": "Passed Action Token"
|
||||
},
|
||||
{
|
||||
"name": "Pattern Building"
|
||||
},
|
||||
{
|
||||
"name": "Pattern Movement"
|
||||
},
|
||||
{
|
||||
"name": "Pattern Recognition"
|
||||
},
|
||||
{
|
||||
"name": "Physical Removal"
|
||||
},
|
||||
{
|
||||
"name": "Pick-up and Deliver"
|
||||
},
|
||||
{
|
||||
"name": "Pieces as Map"
|
||||
},
|
||||
{
|
||||
"name": "Player Elimination"
|
||||
},
|
||||
{
|
||||
"name": "Player Judge"
|
||||
},
|
||||
{
|
||||
"name": "Point to Point Movement"
|
||||
},
|
||||
{
|
||||
"name": "Predictive Bid"
|
||||
},
|
||||
{
|
||||
"name": "Prisoner's Dilemma"
|
||||
},
|
||||
{
|
||||
"name": "Programmed Movement"
|
||||
},
|
||||
{
|
||||
"name": "Push Your Luck"
|
||||
},
|
||||
{
|
||||
"name": "Questions and Answers"
|
||||
},
|
||||
{
|
||||
"name": "Race"
|
||||
},
|
||||
{
|
||||
"name": "Random Production"
|
||||
},
|
||||
{
|
||||
"name": "Ratio / Combat Results Table"
|
||||
},
|
||||
{
|
||||
"name": "Re-rolling and Locking"
|
||||
},
|
||||
{
|
||||
"name": "Real-Time"
|
||||
},
|
||||
{
|
||||
"name": "Relative Movement"
|
||||
},
|
||||
{
|
||||
"name": "Resource Queue"
|
||||
},
|
||||
{
|
||||
"name": "Resource to Move"
|
||||
},
|
||||
{
|
||||
"name": "Rock-Paper-Scissors"
|
||||
},
|
||||
{
|
||||
"name": "Role Playing"
|
||||
},
|
||||
{
|
||||
"name": "Roles with Asymmetric Information"
|
||||
},
|
||||
{
|
||||
"name": "Roll / Spin and Move"
|
||||
},
|
||||
{
|
||||
"name": "Rondel"
|
||||
},
|
||||
{
|
||||
"name": "Scenario / Mission / Campaign Game"
|
||||
},
|
||||
{
|
||||
"name": "Score-and-Reset Game"
|
||||
},
|
||||
{
|
||||
"name": "Secret Unit Deployment"
|
||||
},
|
||||
{
|
||||
"name": "Selection Order Bid"
|
||||
},
|
||||
{
|
||||
"name": "Semi-Cooperative Game"
|
||||
},
|
||||
{
|
||||
"name": "Set Collection"
|
||||
},
|
||||
{
|
||||
"name": "Simulation"
|
||||
},
|
||||
{
|
||||
"name": "Simultaneous Action Selection"
|
||||
},
|
||||
{
|
||||
"name": "Singing"
|
||||
},
|
||||
{
|
||||
"name": "Single Loser Game"
|
||||
},
|
||||
{
|
||||
"name": "Slide/Push"
|
||||
},
|
||||
{
|
||||
"name": "Solo / Solitaire Game"
|
||||
},
|
||||
{
|
||||
"name": "Speed Matching"
|
||||
},
|
||||
{
|
||||
"name": "Square Grid"
|
||||
},
|
||||
{
|
||||
"name": "Stacking and Balancing"
|
||||
},
|
||||
{
|
||||
"name": "Stat Check Resolution"
|
||||
},
|
||||
{
|
||||
"name": "Static Capture"
|
||||
},
|
||||
{
|
||||
"name": "Stock Holding"
|
||||
},
|
||||
{
|
||||
"name": "Storytelling"
|
||||
},
|
||||
{
|
||||
"name": "Sudden Death Ending"
|
||||
},
|
||||
{
|
||||
"name": "Tags"
|
||||
},
|
||||
{
|
||||
"name": "Take That"
|
||||
},
|
||||
{
|
||||
"name": "Targeted Clues"
|
||||
},
|
||||
{
|
||||
"name": "Team-Based Game"
|
||||
},
|
||||
{
|
||||
"name": "Tech Trees / Tech Tracks"
|
||||
},
|
||||
{
|
||||
"name": "Three Dimensional Movement"
|
||||
},
|
||||
{
|
||||
"name": "Tile Placement"
|
||||
},
|
||||
{
|
||||
"name": "Track Movement"
|
||||
},
|
||||
{
|
||||
"name": "Trading"
|
||||
},
|
||||
{
|
||||
"name": "Traitor Game"
|
||||
},
|
||||
{
|
||||
"name": "Trick-taking"
|
||||
},
|
||||
{
|
||||
"name": "Tug of War"
|
||||
},
|
||||
{
|
||||
"name": "Turn Order: Auction"
|
||||
},
|
||||
{
|
||||
"name": "Turn Order: Claim Action"
|
||||
},
|
||||
{
|
||||
"name": "Turn Order: Pass Order"
|
||||
},
|
||||
{
|
||||
"name": "Turn Order: Progressive"
|
||||
},
|
||||
{
|
||||
"name": "Turn Order: Random"
|
||||
},
|
||||
{
|
||||
"name": "Turn Order: Role Order"
|
||||
},
|
||||
{
|
||||
"name": "Turn Order: Stat-Based"
|
||||
},
|
||||
{
|
||||
"name": "Turn Order: Time Track"
|
||||
},
|
||||
{
|
||||
"name": "Variable Phase Order"
|
||||
},
|
||||
{
|
||||
"name": "Variable Player Powers"
|
||||
},
|
||||
{
|
||||
"name": "Variable Set-up"
|
||||
},
|
||||
{
|
||||
"name": "Victory Points as a Resource"
|
||||
},
|
||||
{
|
||||
"name": "Voting"
|
||||
},
|
||||
{
|
||||
"name": "Worker Placement"
|
||||
},
|
||||
{
|
||||
"name": "Worker Placement with Dice Workers"
|
||||
},
|
||||
{
|
||||
"name": "Worker Placement, Different Worker Types"
|
||||
},
|
||||
{
|
||||
"name": "Zone of Control"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,272 +0,0 @@
|
|||
// This is your Prisma schema file,
|
||||
// learn more about it in the docs: https://pris.ly/d/prisma-schema
|
||||
|
||||
generator client {
|
||||
provider = "prisma-client-js"
|
||||
previewFeatures = ["fullTextSearch", "fullTextIndex", "relationJoins"]
|
||||
}
|
||||
|
||||
datasource db {
|
||||
provider = "mysql"
|
||||
url = env("DATABASE_URL")
|
||||
relationMode = "prisma"
|
||||
}
|
||||
|
||||
model Role {
|
||||
id String @id @default(cuid())
|
||||
name String @unique
|
||||
userRoles UserRole[]
|
||||
|
||||
@@map("roles")
|
||||
}
|
||||
|
||||
model UserRole {
|
||||
id String @id @default(cuid())
|
||||
user User @relation(fields: [user_id], references: [id])
|
||||
user_id String
|
||||
role Role @relation(fields: [role_id], references: [id])
|
||||
role_id String
|
||||
created_at DateTime @default(now()) @db.Timestamp(6)
|
||||
updated_at DateTime @updatedAt @db.Timestamp(6)
|
||||
|
||||
@@unique([user_id, role_id])
|
||||
@@index([user_id])
|
||||
@@index([role_id])
|
||||
@@map("user_roles")
|
||||
}
|
||||
|
||||
model User {
|
||||
id String @id @default(cuid())
|
||||
username String @unique
|
||||
hashed_password String?
|
||||
email String? @unique
|
||||
firstName String?
|
||||
lastName String?
|
||||
roles UserRole[]
|
||||
verified Boolean @default(false)
|
||||
receiveEmail Boolean @default(false)
|
||||
collection Collection?
|
||||
wishlist Wishlist?
|
||||
list List[]
|
||||
theme String @default("system")
|
||||
created_at DateTime @default(now()) @db.Timestamp(6)
|
||||
updated_at DateTime @updatedAt @db.Timestamp(6)
|
||||
sessions Session[]
|
||||
|
||||
@@map("users")
|
||||
}
|
||||
|
||||
model Session {
|
||||
id String @id @unique
|
||||
userId String
|
||||
ip_country String
|
||||
ip_address String
|
||||
expiresAt DateTime
|
||||
user User @relation(references: [id], fields: [userId], onDelete: Cascade)
|
||||
|
||||
@@index([userId])
|
||||
@@map("sessions")
|
||||
}
|
||||
|
||||
model Collection {
|
||||
id String @id @default(cuid())
|
||||
user_id String @unique
|
||||
user User @relation(references: [id], fields: [user_id])
|
||||
items CollectionItem[]
|
||||
|
||||
@@index([user_id])
|
||||
@@map("collections")
|
||||
}
|
||||
|
||||
model CollectionItem {
|
||||
id String @id @default(cuid())
|
||||
collection_id String
|
||||
collection Collection @relation(references: [id], fields: [collection_id], onDelete: Cascade)
|
||||
game_id String @unique
|
||||
game Game @relation(references: [id], fields: [game_id])
|
||||
times_played Int
|
||||
|
||||
@@index([game_id, collection_id])
|
||||
@@index([game_id])
|
||||
@@index([collection_id])
|
||||
@@map("collection_items")
|
||||
}
|
||||
|
||||
model Wishlist {
|
||||
id String @id @default(cuid())
|
||||
user_id String @unique
|
||||
user User @relation(references: [id], fields: [user_id])
|
||||
items WishlistItem[]
|
||||
|
||||
@@index([user_id])
|
||||
@@map("wishlists")
|
||||
}
|
||||
|
||||
model WishlistItem {
|
||||
id String @id @default(cuid())
|
||||
wishlist_id String
|
||||
wishlist Wishlist @relation(references: [id], fields: [wishlist_id], onDelete: Cascade)
|
||||
game_id String @unique
|
||||
game Game @relation(references: [id], fields: [game_id])
|
||||
created_at DateTime @default(now()) @db.Timestamp(6)
|
||||
updated_at DateTime @updatedAt @db.Timestamp(6)
|
||||
|
||||
@@index([game_id, wishlist_id])
|
||||
@@index([game_id])
|
||||
@@index([wishlist_id])
|
||||
@@map("wishlist_items")
|
||||
}
|
||||
|
||||
model List {
|
||||
id String @id @default(cuid())
|
||||
name String
|
||||
user_id String @unique
|
||||
user User @relation(references: [id], fields: [user_id])
|
||||
items ListItem[]
|
||||
|
||||
@@index([user_id])
|
||||
@@map("lists")
|
||||
}
|
||||
|
||||
model ListItem {
|
||||
id String @id @default(cuid())
|
||||
list_id String
|
||||
list List @relation(references: [id], fields: [list_id], onDelete: Cascade)
|
||||
game_id String @unique
|
||||
game Game @relation(references: [id], fields: [game_id])
|
||||
created_at DateTime @default(now()) @db.Timestamp(6)
|
||||
updated_at DateTime @updatedAt @db.Timestamp(6)
|
||||
|
||||
@@index([game_id, list_id])
|
||||
@@index([game_id])
|
||||
@@index([list_id])
|
||||
@@map("list_items")
|
||||
}
|
||||
|
||||
model Game {
|
||||
id String @id @default(cuid())
|
||||
name String
|
||||
slug String
|
||||
description String? @db.LongText
|
||||
year_published Int? @db.Year
|
||||
min_players Int?
|
||||
max_players Int?
|
||||
playtime Int?
|
||||
min_playtime Int?
|
||||
max_playtime Int?
|
||||
min_age Int?
|
||||
image_url String?
|
||||
thumb_url String?
|
||||
url String?
|
||||
categories Category[]
|
||||
mechanics Mechanic[]
|
||||
designers Designer[]
|
||||
publishers Publisher[]
|
||||
artists Artist[]
|
||||
names GameName[]
|
||||
expansions Expansion[] @relation("BaseToExpansion")
|
||||
expansion_of Expansion[] @relation("ExpansionToBase")
|
||||
collection_items CollectionItem[]
|
||||
wishlist_items WishlistItem[]
|
||||
list_items ListItem[]
|
||||
external_id Int @unique
|
||||
last_sync_at DateTime? @db.Timestamp(6)
|
||||
created_at DateTime @default(now()) @db.Timestamp(6)
|
||||
updated_at DateTime @updatedAt @db.Timestamp(6)
|
||||
|
||||
@@fulltext([name])
|
||||
@@fulltext([slug])
|
||||
@@map("games")
|
||||
}
|
||||
|
||||
model GameName {
|
||||
id String @id @default(cuid())
|
||||
name String
|
||||
slug String
|
||||
game_id String
|
||||
game Game @relation(references: [id], fields: [game_id])
|
||||
created_at DateTime @default(now()) @db.Timestamp(6)
|
||||
updated_at DateTime @updatedAt @db.Timestamp(6)
|
||||
|
||||
@@index([game_id])
|
||||
@@map("game_names")
|
||||
}
|
||||
|
||||
model Publisher {
|
||||
id String @id @default(cuid())
|
||||
name String
|
||||
slug String
|
||||
external_id Int @unique
|
||||
games Game[]
|
||||
created_at DateTime @default(now()) @db.Timestamp(6)
|
||||
updated_at DateTime @updatedAt @db.Timestamp(6)
|
||||
|
||||
@@fulltext([name])
|
||||
@@map("publishers")
|
||||
}
|
||||
|
||||
model Category {
|
||||
id String @id @default(cuid())
|
||||
name String
|
||||
slug String
|
||||
games Game[]
|
||||
external_id Int @unique
|
||||
created_at DateTime @default(now()) @db.Timestamp(6)
|
||||
updated_at DateTime @updatedAt @db.Timestamp(6)
|
||||
|
||||
@@fulltext([name])
|
||||
@@map("categories")
|
||||
}
|
||||
|
||||
model Mechanic {
|
||||
id String @id @default(cuid())
|
||||
name String
|
||||
slug String
|
||||
games Game[]
|
||||
external_id Int @unique
|
||||
created_at DateTime @default(now()) @db.Timestamp(6)
|
||||
updated_at DateTime @updatedAt @db.Timestamp(6)
|
||||
|
||||
@@fulltext([name])
|
||||
@@map("mechanics")
|
||||
}
|
||||
|
||||
model Designer {
|
||||
id String @id @default(cuid())
|
||||
name String
|
||||
slug String
|
||||
external_id Int @unique
|
||||
games Game[]
|
||||
created_at DateTime @default(now()) @db.Timestamp(6)
|
||||
updated_at DateTime @updatedAt @db.Timestamp(6)
|
||||
|
||||
@@fulltext([name])
|
||||
@@map("designers")
|
||||
}
|
||||
|
||||
model Artist {
|
||||
id String @id @default(cuid())
|
||||
name String
|
||||
slug String @unique
|
||||
external_id Int @unique
|
||||
games Game[]
|
||||
created_at DateTime @default(now()) @db.Timestamp(6)
|
||||
updated_at DateTime @updatedAt @db.Timestamp(6)
|
||||
|
||||
@@fulltext([name])
|
||||
@@map("artists")
|
||||
}
|
||||
|
||||
model Expansion {
|
||||
id String @id @default(cuid())
|
||||
base_game Game @relation(name: "BaseToExpansion", fields: [base_game_id], references: [id])
|
||||
base_game_id String
|
||||
game Game @relation(name: "ExpansionToBase", fields: [game_id], references: [id])
|
||||
game_id String
|
||||
created_at DateTime @default(now()) @db.Timestamp(6)
|
||||
updated_at DateTime @updatedAt @db.Timestamp(6)
|
||||
|
||||
@@index([base_game_id])
|
||||
@@index([game_id])
|
||||
@@map("expansions")
|
||||
}
|
||||
|
|
@ -1,84 +0,0 @@
|
|||
import { PrismaClient } from '@prisma/client';
|
||||
|
||||
const prisma = new PrismaClient();
|
||||
|
||||
async function main() {
|
||||
console.log(`Start seeding ...`);
|
||||
|
||||
console.log('Creating roles ...');
|
||||
const existingRoles = await prisma.role.findMany();
|
||||
if (existingRoles.length === 0) {
|
||||
await prisma.role.createMany({
|
||||
data: [{ name: 'admin' }, { name: 'user' }]
|
||||
});
|
||||
console.log('Roles created.');
|
||||
} else {
|
||||
console.log('Roles already exist. No action taken.');
|
||||
}
|
||||
|
||||
if (!await prisma.publisher.findFirst({
|
||||
where: {
|
||||
external_id: 9999
|
||||
}
|
||||
})) {
|
||||
console.log('Publisher does not exist. Creating...');
|
||||
await prisma.publisher.create({
|
||||
data: {
|
||||
name: 'Unknown',
|
||||
slug: 'unknown',
|
||||
external_id: 9999
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
if (!await prisma.designer.findFirst({
|
||||
where: {
|
||||
external_id: 9999
|
||||
}
|
||||
})) {
|
||||
console.log('Designer does not exist. Creating...');
|
||||
await prisma.designer.create({
|
||||
data: {
|
||||
name: 'Unknown',
|
||||
slug: 'unknown',
|
||||
external_id: 9999
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
if (!await prisma.artist.findFirst({
|
||||
where: {
|
||||
external_id: 9999
|
||||
}
|
||||
})) {
|
||||
console.log('Artist does not exist. Creating...');
|
||||
await prisma.artist.create({
|
||||
data: {
|
||||
name: 'Unknown',
|
||||
slug: 'unknown',
|
||||
external_id: 9999
|
||||
}
|
||||
});
|
||||
}
|
||||
// for (const p of userData) {
|
||||
// const user = await prisma.user.create({
|
||||
// data: {
|
||||
// firstName: p.user.firstName,
|
||||
// lastName: p.user.lastName,
|
||||
// email: p.user.email,
|
||||
// username: p.user.username
|
||||
// }
|
||||
// });
|
||||
// console.log(`Created user with id: ${user.id}`);
|
||||
// }
|
||||
console.log(`Seeding finished.`);
|
||||
}
|
||||
|
||||
main()
|
||||
.catch(async (e) => {
|
||||
console.error(e);
|
||||
process.exit(1);
|
||||
})
|
||||
.finally(async () => {
|
||||
await prisma.$disconnect();
|
||||
});
|
||||
5
src/app.d.ts
vendored
5
src/app.d.ts
vendored
|
|
@ -2,10 +2,6 @@
|
|||
// for information about these interfaces
|
||||
// and what to do when importing types
|
||||
|
||||
import type { PrismaClient, User } from '@prisma/client';
|
||||
|
||||
type User = Omit<User, 'created_at' | 'updated_at'>;
|
||||
|
||||
// src/app.d.ts
|
||||
declare global {
|
||||
namespace App {
|
||||
|
|
@ -16,7 +12,6 @@ declare global {
|
|||
auth: import('lucia').AuthRequest;
|
||||
user: import('lucia').User | null;
|
||||
session: import('lucia').Session | null;
|
||||
prisma: PrismaClient;
|
||||
startTimer: number;
|
||||
ip: string;
|
||||
country: string;
|
||||
|
|
|
|||
|
|
@ -1,14 +1,12 @@
|
|||
<script lang="ts">
|
||||
import { enhance } from "$app/forms";
|
||||
import { fly } from "svelte/transition";
|
||||
import { createSelect, melt } from "@melt-ui/svelte";
|
||||
import { Check, ChevronDown, MinusCircle, PlusCircle } from "lucide-svelte";
|
||||
import { MinusCircle, PlusCircle } from "lucide-svelte";
|
||||
import { Button } from '$components/ui/button';
|
||||
import type { Collection, Wishlist } from "@prisma/client";
|
||||
import type { CollectionItems, Wishlists } from "../../schema";
|
||||
|
||||
export let game_id: string;
|
||||
export let collection: Collection;
|
||||
export let wishlist: Wishlist;
|
||||
export let collection: CollectionItems;
|
||||
export let wishlist: Wishlists;
|
||||
export let in_wishlist = false;
|
||||
export let in_collection = false;
|
||||
export let lists = [];
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
<script lang="ts">
|
||||
import type { GameType, SavedGameType } from '$lib/types';
|
||||
import * as Card from "$lib/components/ui/card";
|
||||
import type { CollectionItem } from '@prisma/client';
|
||||
import type { CollectionItems } from '../../schema';
|
||||
|
||||
export let game: GameType | CollectionItem;
|
||||
export let game: GameType | CollectionItems;
|
||||
export let detailed: boolean = false;
|
||||
export let variant: 'default' | 'compact' = 'default';
|
||||
|
||||
|
|
@ -18,10 +18,10 @@
|
|||
<Card.Header>
|
||||
<Card.Title class="game-card-header">
|
||||
<span style:--transition-name="game-name-{game.slug}">
|
||||
{game.name}
|
||||
<!-- {game.name}
|
||||
{#if game?.year_published}
|
||||
({game?.year_published})
|
||||
{/if}
|
||||
{/if} -->
|
||||
</span>
|
||||
</Card.Title>
|
||||
</Card.Header>
|
||||
|
|
@ -32,7 +32,7 @@
|
|||
title={`View ${game.name}`}
|
||||
data-sveltekit-preload-data
|
||||
>
|
||||
<img src={game.thumb_url} alt={`Image of ${game.name}`} loading="lazy" decoding="async" />
|
||||
<!-- <img src={game.thumb_url} alt={`Image of ${game.name}`} loading="lazy" decoding="async" />
|
||||
<div class="game-details">
|
||||
{#if game?.players}
|
||||
<p>Players: {game.players}</p>
|
||||
|
|
@ -44,7 +44,7 @@
|
|||
<div class="description">{@html game.description}</div>
|
||||
{/if}
|
||||
{/if}
|
||||
</div>
|
||||
</div> -->
|
||||
</a>
|
||||
</Card.Content>
|
||||
</Card.Root>
|
||||
|
|
|
|||
|
|
@ -1,15 +1,22 @@
|
|||
<script lang="ts">
|
||||
import { applyAction, enhance } from '$app/forms';
|
||||
import toast from 'svelte-french-toast';
|
||||
import { ListChecks, ListTodo, LogOut, User } from 'lucide-svelte';
|
||||
import { ListChecks, ListTodo, LogOut } from 'lucide-svelte';
|
||||
import * as DropdownMenu from "$components/ui/dropdown-menu";
|
||||
import * as Avatar from "$components/ui/avatar";
|
||||
import { invalidateAll } from '$app/navigation';
|
||||
import Logo from '$components/logo.svelte';
|
||||
import type { Users } from '../../schema';
|
||||
|
||||
export let user: User | null;
|
||||
export let user: Users;
|
||||
|
||||
let avatar = user?.username.slice(0, 1).toUpperCase() || '?';
|
||||
let avatar: string;
|
||||
let loggedIn = false;
|
||||
|
||||
$: if (user) {
|
||||
avatar = user.username?.slice(0, 1).toUpperCase() || '?';
|
||||
loggedIn = true;
|
||||
}
|
||||
</script>
|
||||
|
||||
<header>
|
||||
|
|
@ -23,7 +30,7 @@
|
|||
</div>
|
||||
<!-- <TextSearch /> -->
|
||||
<nav>
|
||||
{#if user}
|
||||
{#if loggedIn}
|
||||
<a href="/collection" title="Go to your collection" data-sveltekit-preload-data>Collection</a>
|
||||
<a href="/wishlist" title="Go to your wishlist" data-sveltekit-preload-data>Wishlist</a>
|
||||
<DropdownMenu.Root>
|
||||
|
|
@ -89,7 +96,7 @@
|
|||
</DropdownMenu.Content>
|
||||
</DropdownMenu.Root>
|
||||
{/if}
|
||||
{#if !user}
|
||||
{#if !loggedIn}
|
||||
<a href="/login">
|
||||
<span class="flex-auto">Login</span></a
|
||||
>
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ const pool = new pg.Pool({
|
|||
host: DATABASE_HOST,
|
||||
port: Number(DATABASE_PORT).valueOf(),
|
||||
database: DATABASE_DB,
|
||||
ssl: true,
|
||||
ssl: DATABASE_HOST === 'localhost' ? false : true,
|
||||
});
|
||||
|
||||
// user: DATABASE_USER,
|
||||
|
|
|
|||
|
|
@ -1,4 +0,0 @@
|
|||
import { PrismaClient } from '@prisma/client'
|
||||
|
||||
const prisma = new PrismaClient()
|
||||
export default prisma
|
||||
|
|
@ -1,5 +1,4 @@
|
|||
import type { GameType, SavedGameType } from '$lib/types';
|
||||
import type { Game } from '@prisma/client';
|
||||
import kebabCase from 'just-kebab-case';
|
||||
import type { Games } from '../../schema';
|
||||
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ const connection = postgres({
|
|||
user: process.env.DATABASE_USER || 'root',
|
||||
password: process.env.DATABASE_PASSWORD || '',
|
||||
database: process.env.DATABASE_DB || 'boredgame',
|
||||
ssl: 'require',
|
||||
ssl: process.env.DATABASE_HOST === 'localhost' ? false : 'require',
|
||||
max: 1
|
||||
});
|
||||
const db = drizzle(connection);
|
||||
|
|
|
|||
|
|
@ -1,5 +1,7 @@
|
|||
import { fail, redirect } from '@sveltejs/kit';
|
||||
import prisma from '$lib/prisma';
|
||||
import { fail } from '@sveltejs/kit';
|
||||
import { eq } from 'drizzle-orm';
|
||||
import db from '$lib/drizzle.js';
|
||||
import { wishlists } from '../../../../schema.js';
|
||||
|
||||
export async function load({ locals }) {
|
||||
if (!locals.user) {
|
||||
|
|
@ -7,23 +9,12 @@ export async function load({ locals }) {
|
|||
}
|
||||
|
||||
try {
|
||||
let wishlists = await prisma.wishlist.findMany({
|
||||
where: {
|
||||
user_id: session.userId
|
||||
}
|
||||
const userWishlists = await db.query.wishlists.findMany({
|
||||
where: eq(wishlists.user_id, locals.user.id)
|
||||
});
|
||||
|
||||
if (wishlists.length === 0) {
|
||||
const wishlist = await prisma.wishlist.create({
|
||||
data: {
|
||||
user_id: session.userId
|
||||
}
|
||||
});
|
||||
wishlists.push(wishlist);
|
||||
}
|
||||
|
||||
return {
|
||||
wishlists
|
||||
wishlsits: userWishlists
|
||||
};
|
||||
} catch (e) {
|
||||
console.error(e);
|
||||
|
|
|
|||
|
|
@ -5,20 +5,18 @@
|
|||
const wishlists = data.wishlists || [];
|
||||
</script>
|
||||
|
||||
|
||||
<aside class="wishlists">
|
||||
<h2>Your Wishlists</h2>
|
||||
<div class="separator"></div>
|
||||
{#each wishlists as wishlist}
|
||||
<h2 class="wishlist"><a href={`/wishlist/${wishlist.id}`}>{wishlist.name}</a></h2>
|
||||
{/each}
|
||||
</aside>
|
||||
<div class="content">
|
||||
<Transition url={data.url} transition={{ type: 'page' }}>
|
||||
<slot />
|
||||
</Transition>
|
||||
</div>
|
||||
|
||||
<aside class="wishlists">
|
||||
<h2>Your Wishlists</h2>
|
||||
<div class="separator"></div>
|
||||
{#each wishlists as wishlist}
|
||||
<h2 class="wishlist"><a href={`/wishlist/${wishlist.id}`}>{wishlist.name}</a></h2>
|
||||
{/each}
|
||||
</aside>
|
||||
<div class="content">
|
||||
<Transition url={data.url} transition={{ type: 'page' }}>
|
||||
<slot />
|
||||
</Transition>
|
||||
</div>
|
||||
|
||||
<style lang="postcss">
|
||||
.wishlists {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
import { type Actions, fail, redirect } from "@sveltejs/kit";
|
||||
import { and, eq } from "drizzle-orm";
|
||||
import db from "$lib/drizzle.js";
|
||||
import { superValidate } from 'sveltekit-superforms/server';
|
||||
import prisma from '$lib/prisma';
|
||||
import { games, wishlist_items, wishlists } from "../../../../../schema.js";
|
||||
import { zod } from "sveltekit-superforms/adapters";
|
||||
|
||||
export async function load({ params, locals }) {
|
||||
const user = locals.user;
|
||||
|
|
@ -9,27 +12,32 @@ export async function load({ params, locals }) {
|
|||
}
|
||||
|
||||
try {
|
||||
let wishlist = await prisma.wishlist.findUnique({
|
||||
where: {
|
||||
id: params.id,
|
||||
AND: {
|
||||
user_id: user.id
|
||||
}
|
||||
const wishlist = await db.select({
|
||||
wishlistId: wishlists.id,
|
||||
wishlistName: wishlists.name,
|
||||
wishlistItems: {
|
||||
id: wishlist_items.id,
|
||||
gameId: wishlist_items.game_id,
|
||||
gameName: games.name,
|
||||
gameThumbUrl: games.thumb_url
|
||||
},
|
||||
include: {
|
||||
items: {
|
||||
include: {
|
||||
game: {
|
||||
select: {
|
||||
id: true,
|
||||
name: true,
|
||||
thumb_url: true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}).from(wishlists).leftJoin(wishlist_items, eq(wishlists.id, wishlist_items.wishlist_id)).leftJoin(games, eq(games.id, wishlist_items.game_id)).where(eq(wishlists.id, params.id));
|
||||
// let wishlist = await db.query.wishlists.findFirst({
|
||||
// where: and(eq(wishlists.id, params.id), eq(wishlists.user_id, user.id)),
|
||||
// with: {
|
||||
// : {
|
||||
// include: {
|
||||
// game: {
|
||||
// select: {
|
||||
// id: true,
|
||||
// name: true,
|
||||
// thumb_url: true
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// });
|
||||
|
||||
return {
|
||||
wishlist
|
||||
|
|
@ -51,10 +59,8 @@ export const actions: Actions = {
|
|||
}
|
||||
|
||||
|
||||
let game = await prisma.game.findUnique({
|
||||
where: {
|
||||
id: form.id
|
||||
}
|
||||
let game = await db.query.games.findFirst({
|
||||
where: eq(games.id, form.id)
|
||||
});
|
||||
|
||||
if (!game) {
|
||||
|
|
@ -68,10 +74,8 @@ export const actions: Actions = {
|
|||
});
|
||||
}
|
||||
|
||||
const wishlist = await prisma.wishlist.findUnique({
|
||||
where: {
|
||||
id: params.id
|
||||
}
|
||||
const wishlist = await db.query.wishlists.findFirst({
|
||||
where: eq(wishlists.id, params.id)
|
||||
});
|
||||
|
||||
if (wishlist?.user_id !== locals.user.id) {
|
||||
|
|
|
|||
9
src/routes/(app)/+layout.server.ts
Normal file
9
src/routes/(app)/+layout.server.ts
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
import { loadFlash } from 'sveltekit-flash-message/server';
|
||||
import type { LayoutServerLoad } from '../$types';
|
||||
|
||||
export const load: LayoutServerLoad = loadFlash(async ({ url, locals }) => {
|
||||
return {
|
||||
url: url.pathname,
|
||||
user: locals.user
|
||||
};
|
||||
});
|
||||
|
|
@ -1,8 +1,5 @@
|
|||
import { superValidate } from 'sveltekit-superforms/server';
|
||||
import { search_schema } from '$lib/zodValidation';
|
||||
import type { MetaTagsProps } from 'svelte-meta-tags';
|
||||
import type { PageServerLoad } from './$types';
|
||||
import type { Game } from '@prisma/client';
|
||||
|
||||
export const load: PageServerLoad = async ({ fetch, url }) => {
|
||||
const image = {
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ const pool = new pg.Pool({
|
|||
host: process.env.DATABASE_HOST,
|
||||
port: new Number(process.env.DATABASE_PORT).valueOf(),
|
||||
database: process.env.DATABASE_DB,
|
||||
ssl: true,
|
||||
ssl: process.env.DATABASE_HOST === 'localhost' ? false : true,
|
||||
});
|
||||
|
||||
const db = drizzle(pool, { schema: schema });
|
||||
|
|
|
|||
|
|
@ -1,20 +1,17 @@
|
|||
import type { User } from '@prisma/client';
|
||||
import { prisma_client } from '../hooks.server';
|
||||
import db from '$lib/drizzle';
|
||||
import { eq } from 'drizzle-orm';
|
||||
import { users, type Users } from '../schema';
|
||||
import { add_user_to_role } from './roles';
|
||||
|
||||
export function create_user(user: User) {
|
||||
return prisma_client.user.create({
|
||||
data: {
|
||||
username: user.username
|
||||
}
|
||||
export function create_user(user: Users) {
|
||||
return db.insert(users).values({
|
||||
username: user.username
|
||||
});
|
||||
}
|
||||
|
||||
export async function find_or_create_user(user: User) {
|
||||
const existing_user = await prisma_client.user.findUnique({
|
||||
where: {
|
||||
username: user.username
|
||||
}
|
||||
export async function find_or_create_user(user: Users) {
|
||||
const existing_user = await db.query.users.findFirst({
|
||||
where: eq(users.username, user.username),
|
||||
});
|
||||
if (existing_user) {
|
||||
return existing_user;
|
||||
|
|
@ -26,14 +23,12 @@ export async function find_or_create_user(user: User) {
|
|||
}
|
||||
|
||||
export async function find_user_with_roles(user_id: string) {
|
||||
const user_with_roles = await prisma_client.user.findUnique({
|
||||
where: {
|
||||
id: user_id
|
||||
},
|
||||
include: {
|
||||
roles: {
|
||||
select: {
|
||||
role: {
|
||||
const user_with_roles = await db.query.users.findFirst({
|
||||
where: eq(users.id, user_id),
|
||||
with: {
|
||||
user_roles: {
|
||||
with: {
|
||||
roles: {
|
||||
select: {
|
||||
name: true
|
||||
}
|
||||
|
|
|
|||
|
|
@ -39,9 +39,4 @@ export default defineConfig({
|
|||
}
|
||||
}
|
||||
},
|
||||
resolve: {
|
||||
alias: {
|
||||
'.prisma/client/index-browser': './node_modules/@prisma/client/index-browser.js'
|
||||
}
|
||||
}
|
||||
});
|
||||
|
|
|
|||
Loading…
Reference in a new issue