mirror of
https://github.com/BradNut/boredgame
synced 2025-09-08 17:40:22 +00:00
Modify data models, add slug and just kebab dependency, seed data for mechanics and categories if none exist in the DB.
This commit is contained in:
parent
9e7e6687a4
commit
b23a101c0f
6 changed files with 2247 additions and 171 deletions
17
package.json
17
package.json
|
|
@ -40,15 +40,15 @@
|
|||
"postcss": "^8.4.24",
|
||||
"postcss-import": "^15.1.0",
|
||||
"postcss-load-config": "^4.0.1",
|
||||
"postcss-preset-env": "^8.5.0",
|
||||
"postcss-preset-env": "^8.5.1",
|
||||
"prettier": "^2.8.8",
|
||||
"prettier-plugin-svelte": "^2.10.1",
|
||||
"prisma": "^4.16.0",
|
||||
"sass": "^1.63.4",
|
||||
"svelte": "^3.59.1",
|
||||
"prisma": "^4.16.1",
|
||||
"sass": "^1.63.6",
|
||||
"svelte": "^3.59.2",
|
||||
"svelte-check": "^2.10.3",
|
||||
"svelte-preprocess": "^5.0.4",
|
||||
"sveltekit-superforms": "^1.1.0",
|
||||
"sveltekit-superforms": "^1.1.1",
|
||||
"ts-node": "^10.9.1",
|
||||
"tslib": "^2.5.3",
|
||||
"typescript": "^4.9.5",
|
||||
|
|
@ -71,14 +71,15 @@
|
|||
"@lucia-auth/adapter-mysql": "^1.1.1",
|
||||
"@lucia-auth/adapter-prisma": "^2.0.0",
|
||||
"@lukeed/uuid": "^2.0.1",
|
||||
"@prisma/client": "4.15.0",
|
||||
"@prisma/client": "4.16.1",
|
||||
"@types/feather-icons": "^4.29.1",
|
||||
"cookie": "^0.5.0",
|
||||
"feather-icons": "^4.29.0",
|
||||
"iconify-icon": "^1.0.7",
|
||||
"iconify-icon": "^1.0.8",
|
||||
"just-kebab-case": "^4.2.0",
|
||||
"loader": "^2.1.1",
|
||||
"lucia-auth": "^1.8.0",
|
||||
"open-props": "^1.5.9",
|
||||
"open-props": "^1.5.10",
|
||||
"svelte-lazy": "^1.2.1",
|
||||
"svelte-lazy-loader": "^1.0.0",
|
||||
"svelte-legos": "^0.2.1",
|
||||
|
|
|
|||
306
pnpm-lock.yaml
306
pnpm-lock.yaml
|
|
@ -28,13 +28,13 @@ dependencies:
|
|||
version: 1.1.1(lucia-auth@1.8.0)
|
||||
'@lucia-auth/adapter-prisma':
|
||||
specifier: ^2.0.0
|
||||
version: 2.0.0(@prisma/client@4.15.0)(lucia-auth@1.8.0)
|
||||
version: 2.0.0(@prisma/client@4.16.1)(lucia-auth@1.8.0)
|
||||
'@lukeed/uuid':
|
||||
specifier: ^2.0.1
|
||||
version: 2.0.1
|
||||
'@prisma/client':
|
||||
specifier: 4.15.0
|
||||
version: 4.15.0(prisma@4.16.0)
|
||||
specifier: 4.16.1
|
||||
version: 4.16.1(prisma@4.16.1)
|
||||
'@types/feather-icons':
|
||||
specifier: ^4.29.1
|
||||
version: 4.29.1
|
||||
|
|
@ -45,8 +45,11 @@ dependencies:
|
|||
specifier: ^4.29.0
|
||||
version: 4.29.0
|
||||
iconify-icon:
|
||||
specifier: ^1.0.7
|
||||
version: 1.0.7
|
||||
specifier: ^1.0.8
|
||||
version: 1.0.8
|
||||
just-kebab-case:
|
||||
specifier: ^4.2.0
|
||||
version: 4.2.0
|
||||
loader:
|
||||
specifier: ^2.1.1
|
||||
version: 2.1.1
|
||||
|
|
@ -54,20 +57,20 @@ dependencies:
|
|||
specifier: ^1.8.0
|
||||
version: 1.8.0
|
||||
open-props:
|
||||
specifier: ^1.5.9
|
||||
version: 1.5.9
|
||||
specifier: ^1.5.10
|
||||
version: 1.5.10
|
||||
svelte-lazy:
|
||||
specifier: ^1.2.1
|
||||
version: 1.2.1(svelte@3.59.1)
|
||||
version: 1.2.1(svelte@3.59.2)
|
||||
svelte-lazy-loader:
|
||||
specifier: ^1.0.0
|
||||
version: 1.0.0
|
||||
svelte-legos:
|
||||
specifier: ^0.2.1
|
||||
version: 0.2.1(svelte@3.59.1)
|
||||
version: 0.2.1(svelte@3.59.2)
|
||||
sveltekit-flash-message:
|
||||
specifier: ^0.11.3
|
||||
version: 0.11.3(@sveltejs/kit@1.20.4)(svelte@3.59.1)
|
||||
version: 0.11.3(@sveltejs/kit@1.20.4)(svelte@3.59.2)
|
||||
zod-to-json-schema:
|
||||
specifier: ^3.21.2
|
||||
version: 3.21.2(zod@3.21.4)
|
||||
|
|
@ -78,10 +81,10 @@ devDependencies:
|
|||
version: 1.35.1
|
||||
'@rgossiaux/svelte-headlessui':
|
||||
specifier: 1.0.2
|
||||
version: 1.0.2(svelte@3.59.1)
|
||||
version: 1.0.2(svelte@3.59.2)
|
||||
'@rgossiaux/svelte-heroicons':
|
||||
specifier: ^0.1.2
|
||||
version: 0.1.2(svelte@3.59.1)
|
||||
version: 0.1.2(svelte@3.59.2)
|
||||
'@sveltejs/adapter-auto':
|
||||
specifier: ^1.0.3
|
||||
version: 1.0.3(@sveltejs/kit@1.20.4)
|
||||
|
|
@ -90,7 +93,7 @@ devDependencies:
|
|||
version: 1.0.6(@sveltejs/kit@1.20.4)
|
||||
'@sveltejs/kit':
|
||||
specifier: ^1.20.4
|
||||
version: 1.20.4(svelte@3.59.1)(vite@4.3.9)
|
||||
version: 1.20.4(svelte@3.59.2)(vite@4.3.9)
|
||||
'@types/cookie':
|
||||
specifier: ^0.5.1
|
||||
version: 0.5.1
|
||||
|
|
@ -114,7 +117,7 @@ devDependencies:
|
|||
version: 8.8.0(eslint@8.43.0)
|
||||
eslint-plugin-svelte:
|
||||
specifier: ^2.31.0
|
||||
version: 2.31.0(eslint@8.43.0)(svelte@3.59.1)(ts-node@10.9.1)
|
||||
version: 2.31.0(eslint@8.43.0)(svelte@3.59.2)(ts-node@10.9.1)
|
||||
just-clone:
|
||||
specifier: ^6.2.0
|
||||
version: 6.2.0
|
||||
|
|
@ -131,32 +134,32 @@ devDependencies:
|
|||
specifier: ^4.0.1
|
||||
version: 4.0.1(postcss@8.4.24)(ts-node@10.9.1)
|
||||
postcss-preset-env:
|
||||
specifier: ^8.5.0
|
||||
version: 8.5.0(postcss@8.4.24)
|
||||
specifier: ^8.5.1
|
||||
version: 8.5.1(postcss@8.4.24)
|
||||
prettier:
|
||||
specifier: ^2.8.8
|
||||
version: 2.8.8
|
||||
prettier-plugin-svelte:
|
||||
specifier: ^2.10.1
|
||||
version: 2.10.1(prettier@2.8.8)(svelte@3.59.1)
|
||||
version: 2.10.1(prettier@2.8.8)(svelte@3.59.2)
|
||||
prisma:
|
||||
specifier: ^4.16.0
|
||||
version: 4.16.0
|
||||
specifier: ^4.16.1
|
||||
version: 4.16.1
|
||||
sass:
|
||||
specifier: ^1.63.4
|
||||
version: 1.63.4
|
||||
specifier: ^1.63.6
|
||||
version: 1.63.6
|
||||
svelte:
|
||||
specifier: ^3.59.1
|
||||
version: 3.59.1
|
||||
specifier: ^3.59.2
|
||||
version: 3.59.2
|
||||
svelte-check:
|
||||
specifier: ^2.10.3
|
||||
version: 2.10.3(postcss-load-config@4.0.1)(postcss@8.4.24)(sass@1.63.4)(svelte@3.59.1)
|
||||
version: 2.10.3(postcss-load-config@4.0.1)(postcss@8.4.24)(sass@1.63.6)(svelte@3.59.2)
|
||||
svelte-preprocess:
|
||||
specifier: ^5.0.4
|
||||
version: 5.0.4(postcss-load-config@4.0.1)(postcss@8.4.24)(sass@1.63.4)(svelte@3.59.1)(typescript@4.9.5)
|
||||
version: 5.0.4(postcss-load-config@4.0.1)(postcss@8.4.24)(sass@1.63.6)(svelte@3.59.2)(typescript@4.9.5)
|
||||
sveltekit-superforms:
|
||||
specifier: ^1.1.0
|
||||
version: 1.1.0(@sveltejs/kit@1.20.4)(svelte@3.59.1)(zod@3.21.4)
|
||||
specifier: ^1.1.1
|
||||
version: 1.1.1(@sveltejs/kit@1.20.4)(svelte@3.59.2)(zod@3.21.4)
|
||||
ts-node:
|
||||
specifier: ^10.9.1
|
||||
version: 10.9.1(@types/node@18.16.18)(typescript@4.9.5)
|
||||
|
|
@ -168,10 +171,10 @@ devDependencies:
|
|||
version: 4.9.5
|
||||
vite:
|
||||
specifier: ^4.3.9
|
||||
version: 4.3.9(@types/node@18.16.18)(sass@1.63.4)
|
||||
version: 4.3.9(@types/node@18.16.18)(sass@1.63.6)
|
||||
vitest:
|
||||
specifier: ^0.25.3
|
||||
version: 0.25.8(sass@1.63.4)
|
||||
version: 0.25.8(sass@1.63.6)
|
||||
zod:
|
||||
specifier: ^3.21.4
|
||||
version: 3.21.4
|
||||
|
|
@ -220,6 +223,17 @@ packages:
|
|||
'@csstools/css-tokenizer': 2.1.1
|
||||
dev: true
|
||||
|
||||
/@csstools/cascade-layer-name-parser@1.0.2(@csstools/css-parser-algorithms@2.2.0)(@csstools/css-tokenizer@2.1.1):
|
||||
resolution: {integrity: sha512-xm7Mgwej/wBfLoK0K5LfntmPJzoULayl1XZY9JYgQgT29JiqNw++sLnx95u5y9zCihblzkyaRYJrsRMhIBzRdg==}
|
||||
engines: {node: ^14 || ^16 || >=18}
|
||||
peerDependencies:
|
||||
'@csstools/css-parser-algorithms': ^2.1.1
|
||||
'@csstools/css-tokenizer': ^2.1.1
|
||||
dependencies:
|
||||
'@csstools/css-parser-algorithms': 2.2.0(@csstools/css-tokenizer@2.1.1)
|
||||
'@csstools/css-tokenizer': 2.1.1
|
||||
dev: true
|
||||
|
||||
/@csstools/color-helpers@2.1.0:
|
||||
resolution: {integrity: sha512-OWkqBa7PDzZuJ3Ha7T5bxdSVfSCfTq6K1mbAhbO1MD+GSULGjrp45i5RudyJOedstSarN/3mdwu9upJE7gDXfw==}
|
||||
engines: {node: ^14 || ^16 || >=18}
|
||||
|
|
@ -296,14 +310,14 @@ packages:
|
|||
engines: {node: ^14 || ^16 || >=18}
|
||||
dev: true
|
||||
|
||||
/@csstools/media-query-list-parser@2.1.0(@csstools/css-parser-algorithms@2.1.1)(@csstools/css-tokenizer@2.1.1):
|
||||
resolution: {integrity: sha512-MXkR+TeaS2q9IkpyO6jVCdtA/bfpABJxIrfkLswThFN8EZZgI2RfAHhm6sDNDuYV25d5+b8Lj1fpTccIcSLPsQ==}
|
||||
/@csstools/media-query-list-parser@2.1.1(@csstools/css-parser-algorithms@2.2.0)(@csstools/css-tokenizer@2.1.1):
|
||||
resolution: {integrity: sha512-pUjtFbaKbiFNjJo8pprrIaXLvQvWIlwPiFnRI4sEnc4F0NIGTOsw8kaJSR3CmZAKEvV8QYckovgAnWQC0bgLLQ==}
|
||||
engines: {node: ^14 || ^16 || >=18}
|
||||
peerDependencies:
|
||||
'@csstools/css-parser-algorithms': ^2.1.1
|
||||
'@csstools/css-parser-algorithms': ^2.2.0
|
||||
'@csstools/css-tokenizer': ^2.1.1
|
||||
dependencies:
|
||||
'@csstools/css-parser-algorithms': 2.1.1(@csstools/css-tokenizer@2.1.1)
|
||||
'@csstools/css-parser-algorithms': 2.2.0(@csstools/css-tokenizer@2.1.1)
|
||||
'@csstools/css-tokenizer': 2.1.1
|
||||
dev: true
|
||||
|
||||
|
|
@ -430,28 +444,28 @@ packages:
|
|||
postcss: 8.4.24
|
||||
dev: true
|
||||
|
||||
/@csstools/postcss-media-minmax@1.0.3(postcss@8.4.24):
|
||||
resolution: {integrity: sha512-os7qe2HV/qBILKCGa/dl5AbpO6c+MZyunFBWPWJBrEVhulCYo13FgEWbhyERFM5FeJghiqYgJxM54oiJASpBnw==}
|
||||
/@csstools/postcss-media-minmax@1.0.4(postcss@8.4.24):
|
||||
resolution: {integrity: sha512-olnKTQk9+RMzpIpkjv55d44L4Ni02j8ZJoedJezQC5M03a56npcM1hx0apaTRG4Fz1wfPCQ0DBjQ8zsiJFelmA==}
|
||||
engines: {node: ^14 || ^16 || >=18}
|
||||
peerDependencies:
|
||||
postcss: ^8.4
|
||||
dependencies:
|
||||
'@csstools/css-calc': 1.1.1(@csstools/css-parser-algorithms@2.1.1)(@csstools/css-tokenizer@2.1.1)
|
||||
'@csstools/css-parser-algorithms': 2.1.1(@csstools/css-tokenizer@2.1.1)
|
||||
'@csstools/css-calc': 1.1.1(@csstools/css-parser-algorithms@2.2.0)(@csstools/css-tokenizer@2.1.1)
|
||||
'@csstools/css-parser-algorithms': 2.2.0(@csstools/css-tokenizer@2.1.1)
|
||||
'@csstools/css-tokenizer': 2.1.1
|
||||
'@csstools/media-query-list-parser': 2.1.0(@csstools/css-parser-algorithms@2.1.1)(@csstools/css-tokenizer@2.1.1)
|
||||
'@csstools/media-query-list-parser': 2.1.1(@csstools/css-parser-algorithms@2.2.0)(@csstools/css-tokenizer@2.1.1)
|
||||
postcss: 8.4.24
|
||||
dev: true
|
||||
|
||||
/@csstools/postcss-media-queries-aspect-ratio-number-values@1.0.3(postcss@8.4.24):
|
||||
resolution: {integrity: sha512-JHdwBSNZsur/mJXwzuC/gxyekhfSdWJaTiSOhUITk2D8pYRYcjV1MZiCiWupQNfM2Qp2W7w1A/gEU6U/xlpIyA==}
|
||||
/@csstools/postcss-media-queries-aspect-ratio-number-values@1.0.4(postcss@8.4.24):
|
||||
resolution: {integrity: sha512-IwyTbyR8E2y3kh6Fhrs251KjKBJeUPV5GlnUKnpU70PRFEN2DolWbf2V4+o/B9+Oj77P/DullLTulWEQ8uFtAA==}
|
||||
engines: {node: ^14 || ^16 || >=18}
|
||||
peerDependencies:
|
||||
postcss: ^8.4
|
||||
dependencies:
|
||||
'@csstools/css-parser-algorithms': 2.1.1(@csstools/css-tokenizer@2.1.1)
|
||||
'@csstools/css-parser-algorithms': 2.2.0(@csstools/css-tokenizer@2.1.1)
|
||||
'@csstools/css-tokenizer': 2.1.1
|
||||
'@csstools/media-query-list-parser': 2.1.0(@csstools/css-parser-algorithms@2.1.1)(@csstools/css-tokenizer@2.1.1)
|
||||
'@csstools/media-query-list-parser': 2.1.1(@csstools/css-parser-algorithms@2.2.0)(@csstools/css-tokenizer@2.1.1)
|
||||
postcss: 8.4.24
|
||||
dev: true
|
||||
|
||||
|
|
@ -1076,13 +1090,13 @@ packages:
|
|||
lucia-auth: 1.8.0
|
||||
dev: false
|
||||
|
||||
/@lucia-auth/adapter-prisma@2.0.0(@prisma/client@4.15.0)(lucia-auth@1.8.0):
|
||||
/@lucia-auth/adapter-prisma@2.0.0(@prisma/client@4.16.1)(lucia-auth@1.8.0):
|
||||
resolution: {integrity: sha512-8qxEcoVNJDbK8zXzyMK/4SHnLTaih0oNjTfp7l4ndRg5WI+eMgP3N0OUGQVaq3C5N0iIfkXxgj/ZGH8ZidwVeQ==}
|
||||
peerDependencies:
|
||||
'@prisma/client': ^4.2.0
|
||||
lucia-auth: ^1.3.0
|
||||
dependencies:
|
||||
'@prisma/client': 4.15.0(prisma@4.16.0)
|
||||
'@prisma/client': 4.16.1(prisma@4.16.1)
|
||||
lucia-auth: 1.8.0
|
||||
dev: false
|
||||
|
||||
|
|
@ -1151,8 +1165,8 @@ packages:
|
|||
/@polka/url@1.0.0-next.21:
|
||||
resolution: {integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==}
|
||||
|
||||
/@prisma/client@4.15.0(prisma@4.16.0):
|
||||
resolution: {integrity: sha512-xnROvyABcGiwqRNdrObHVZkD9EjkJYHOmVdlKy1yGgI+XOzvMzJ4tRg3dz1pUlsyhKxXGCnjIQjWW+2ur+YXuw==}
|
||||
/@prisma/client@4.16.1(prisma@4.16.1):
|
||||
resolution: {integrity: sha512-CoDHu7Bt+NuDo40ijoeHP79EHtECsPBTy3yte5Yo3op8TqXt/kV0OT5OrsWewKvQGKFMHhYQ+ePed3zzjYdGAw==}
|
||||
engines: {node: '>=14.17'}
|
||||
requiresBuild: true
|
||||
peerDependencies:
|
||||
|
|
@ -1161,32 +1175,32 @@ packages:
|
|||
prisma:
|
||||
optional: true
|
||||
dependencies:
|
||||
'@prisma/engines-version': 4.15.0-28.8fbc245156db7124f997f4cecdd8d1219e360944
|
||||
prisma: 4.16.0
|
||||
'@prisma/engines-version': 4.16.0-66.b20ead4d3ab9e78ac112966e242ded703f4a052c
|
||||
prisma: 4.16.1
|
||||
dev: false
|
||||
|
||||
/@prisma/engines-version@4.15.0-28.8fbc245156db7124f997f4cecdd8d1219e360944:
|
||||
resolution: {integrity: sha512-sVOig4tjGxxlYaFcXgE71f/rtFhzyYrfyfNFUsxCIEJyVKU9rdOWIlIwQ2NQ7PntvGnn+x0XuFo4OC1jvPJKzg==}
|
||||
/@prisma/engines-version@4.16.0-66.b20ead4d3ab9e78ac112966e242ded703f4a052c:
|
||||
resolution: {integrity: sha512-tMWAF/qF00fbUH1HB4Yjmz6bjh7fzkb7Y3NRoUfMlHu6V+O45MGvqwYxqwBjn1BIUXkl3r04W351D4qdJjrgvA==}
|
||||
dev: false
|
||||
|
||||
/@prisma/engines@4.16.0:
|
||||
resolution: {integrity: sha512-M6XoMRXnqL0rqZGQS8ZpNiHYG4G1fKBdoqW/oBtHnr1in5UYgerZqal3CXchmd6OBD/770PE9dtjQuqcilZJUA==}
|
||||
/@prisma/engines@4.16.1:
|
||||
resolution: {integrity: sha512-gpZG0kGGxfemgvK/LghHdBIz+crHkZjzszja94xp4oytpsXrgt/Ice82MvPsWMleVIniKuARrowtsIsim0PFJQ==}
|
||||
requiresBuild: true
|
||||
|
||||
/@rgossiaux/svelte-headlessui@1.0.2(svelte@3.59.1):
|
||||
/@rgossiaux/svelte-headlessui@1.0.2(svelte@3.59.2):
|
||||
resolution: {integrity: sha512-sauopYTSivhzXe1kAvgawkhyYJcQlK8Li3p0d2OtcCIVprOzdbard5lbqWB4xHDv83zAobt2mR08oizO2poHLQ==}
|
||||
peerDependencies:
|
||||
svelte: ^3.44.0
|
||||
dependencies:
|
||||
svelte: 3.59.1
|
||||
svelte: 3.59.2
|
||||
dev: true
|
||||
|
||||
/@rgossiaux/svelte-heroicons@0.1.2(svelte@3.59.1):
|
||||
/@rgossiaux/svelte-heroicons@0.1.2(svelte@3.59.2):
|
||||
resolution: {integrity: sha512-c5Ep1QDvBo9HD/P0AxbXItDbn6x77fldCjjL0aBjNseUntV4fkdHkBde1IaLr8i0kmrhTSovjkIen8W83jUPzg==}
|
||||
peerDependencies:
|
||||
svelte: ^3.44.0
|
||||
dependencies:
|
||||
svelte: 3.59.1
|
||||
svelte: 3.59.2
|
||||
dev: true
|
||||
|
||||
/@rollup/pluginutils@4.2.1:
|
||||
|
|
@ -1202,7 +1216,7 @@ packages:
|
|||
peerDependencies:
|
||||
'@sveltejs/kit': ^1.0.0
|
||||
dependencies:
|
||||
'@sveltejs/kit': 1.20.4(svelte@3.59.1)(vite@4.3.9)
|
||||
'@sveltejs/kit': 1.20.4(svelte@3.59.2)(vite@4.3.9)
|
||||
import-meta-resolve: 2.2.0
|
||||
dev: true
|
||||
|
||||
|
|
@ -1211,7 +1225,7 @@ packages:
|
|||
peerDependencies:
|
||||
'@sveltejs/kit': ^1.0.0
|
||||
dependencies:
|
||||
'@sveltejs/kit': 1.20.4(svelte@3.59.1)(vite@4.3.9)
|
||||
'@sveltejs/kit': 1.20.4(svelte@3.59.2)(vite@4.3.9)
|
||||
'@vercel/nft': 0.22.6
|
||||
esbuild: 0.16.8
|
||||
transitivePeerDependencies:
|
||||
|
|
@ -1219,7 +1233,7 @@ packages:
|
|||
- supports-color
|
||||
dev: true
|
||||
|
||||
/@sveltejs/kit@1.20.4(svelte@3.59.1)(vite@4.3.9):
|
||||
/@sveltejs/kit@1.20.4(svelte@3.59.2)(vite@4.3.9):
|
||||
resolution: {integrity: sha512-MmAzIuMrP7A+8fqDVbxm6ekGHRHL/+Fk8sQPAzPG4G2TxUDtHdn/WcIxeEqHzARMf0OtGSC+VPyOSFuw2Cy2Mg==}
|
||||
engines: {node: ^16.14 || >=18}
|
||||
hasBin: true
|
||||
|
|
@ -1228,7 +1242,7 @@ packages:
|
|||
svelte: ^3.54.0 || ^4.0.0-next.0
|
||||
vite: ^4.0.0
|
||||
dependencies:
|
||||
'@sveltejs/vite-plugin-svelte': 2.4.1(svelte@3.59.1)(vite@4.3.9)
|
||||
'@sveltejs/vite-plugin-svelte': 2.4.1(svelte@3.59.2)(vite@4.3.9)
|
||||
'@types/cookie': 0.5.1
|
||||
cookie: 0.5.0
|
||||
devalue: 4.3.1
|
||||
|
|
@ -1239,13 +1253,13 @@ packages:
|
|||
sade: 1.8.1
|
||||
set-cookie-parser: 2.6.0
|
||||
sirv: 2.0.2
|
||||
svelte: 3.59.1
|
||||
svelte: 3.59.2
|
||||
undici: 5.22.0
|
||||
vite: 4.3.9(@types/node@18.16.18)(sass@1.63.4)
|
||||
vite: 4.3.9(@types/node@18.16.18)(sass@1.63.6)
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
/@sveltejs/vite-plugin-svelte-inspector@1.0.2(@sveltejs/vite-plugin-svelte@2.4.1)(svelte@3.59.1)(vite@4.3.9):
|
||||
/@sveltejs/vite-plugin-svelte-inspector@1.0.2(@sveltejs/vite-plugin-svelte@2.4.1)(svelte@3.59.2)(vite@4.3.9):
|
||||
resolution: {integrity: sha512-Cy1dUMcYCnDVV/hPLXa43YZJ2jGKVW5rA0xuNL9dlmYhT0yoS1g7+FOFSRlgk0BXKk/Oc7grs+8BVA5Iz2fr8A==}
|
||||
engines: {node: ^14.18.0 || >= 16}
|
||||
peerDependencies:
|
||||
|
|
@ -1253,28 +1267,28 @@ packages:
|
|||
svelte: ^3.54.0 || ^4.0.0-next.0
|
||||
vite: ^4.0.0
|
||||
dependencies:
|
||||
'@sveltejs/vite-plugin-svelte': 2.4.1(svelte@3.59.1)(vite@4.3.9)
|
||||
'@sveltejs/vite-plugin-svelte': 2.4.1(svelte@3.59.2)(vite@4.3.9)
|
||||
debug: 4.3.4
|
||||
svelte: 3.59.1
|
||||
vite: 4.3.9(@types/node@18.16.18)(sass@1.63.4)
|
||||
svelte: 3.59.2
|
||||
vite: 4.3.9(@types/node@18.16.18)(sass@1.63.6)
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
/@sveltejs/vite-plugin-svelte@2.4.1(svelte@3.59.1)(vite@4.3.9):
|
||||
/@sveltejs/vite-plugin-svelte@2.4.1(svelte@3.59.2)(vite@4.3.9):
|
||||
resolution: {integrity: sha512-bNNKvoRY89ptY7udeBSCmTdCVwkjmMcZ0j/z9J5MuedT8jPjq0zrknAo/jF1sToAza4NVaAgR9AkZoD9oJJmnA==}
|
||||
engines: {node: ^14.18.0 || >= 16}
|
||||
peerDependencies:
|
||||
svelte: ^3.54.0 || ^4.0.0-next.0
|
||||
vite: ^4.0.0
|
||||
dependencies:
|
||||
'@sveltejs/vite-plugin-svelte-inspector': 1.0.2(@sveltejs/vite-plugin-svelte@2.4.1)(svelte@3.59.1)(vite@4.3.9)
|
||||
'@sveltejs/vite-plugin-svelte-inspector': 1.0.2(@sveltejs/vite-plugin-svelte@2.4.1)(svelte@3.59.2)(vite@4.3.9)
|
||||
debug: 4.3.4
|
||||
deepmerge: 4.3.1
|
||||
kleur: 4.1.5
|
||||
magic-string: 0.30.0
|
||||
svelte: 3.59.1
|
||||
svelte-hmr: 0.15.2(svelte@3.59.1)
|
||||
vite: 4.3.9(@types/node@18.16.18)(sass@1.63.4)
|
||||
svelte: 3.59.2
|
||||
svelte-hmr: 0.15.2(svelte@3.59.2)
|
||||
vite: 4.3.9(@types/node@18.16.18)(sass@1.63.6)
|
||||
vitefu: 0.2.4(vite@4.3.9)
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
|
@ -1672,6 +1686,17 @@ packages:
|
|||
update-browserslist-db: 1.0.11(browserslist@4.21.5)
|
||||
dev: true
|
||||
|
||||
/browserslist@4.21.9:
|
||||
resolution: {integrity: sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==}
|
||||
engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
|
||||
hasBin: true
|
||||
dependencies:
|
||||
caniuse-lite: 1.0.30001506
|
||||
electron-to-chromium: 1.4.438
|
||||
node-releases: 2.0.12
|
||||
update-browserslist-db: 1.0.11(browserslist@4.21.9)
|
||||
dev: true
|
||||
|
||||
/buffer-crc32@0.2.13:
|
||||
resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==}
|
||||
dev: true
|
||||
|
|
@ -1691,6 +1716,10 @@ packages:
|
|||
resolution: {integrity: sha512-KCqHwRnaa1InZBtqXzP98LPg0ajCVujMKjqKDhZEthIpAsJl/YEIa3YvXjGXPVqzZVguccuu7ga9KOE1J9rKPQ==}
|
||||
dev: true
|
||||
|
||||
/caniuse-lite@1.0.30001506:
|
||||
resolution: {integrity: sha512-6XNEcpygZMCKaufIcgpQNZNf00GEqc7VQON+9Rd0K1bMYo8xhMZRAo5zpbnbMNizi4YNgIDAFrdykWsvY3H4Hw==}
|
||||
dev: true
|
||||
|
||||
/canvas-confetti@1.6.0:
|
||||
resolution: {integrity: sha512-ej+w/m8Jzpv9Z7W7uJZer14Ke8P2ogsjg4ZMGIuq4iqUOqY2Jq8BNW42iGmNfRwREaaEfFIczLuZZiEVSYNHAA==}
|
||||
dev: false
|
||||
|
|
@ -1908,6 +1937,10 @@ packages:
|
|||
resolution: {integrity: sha512-MrlFq/j+TYHOjeWsWGYfzevc25HNeJdsF6qaLFrqBTRWZQtWkb1myq/Q2veLWezVaa5OcSZ99CFwTT4aF4Mung==}
|
||||
dev: true
|
||||
|
||||
/electron-to-chromium@1.4.438:
|
||||
resolution: {integrity: sha512-x94U0FhphEsHsOloCvlsujHCvoir0ZQ73ZAs/QN4PLx98uNvyEU79F75rq1db75Bx/atvuh7KPeuxelh+xfYJw==}
|
||||
dev: true
|
||||
|
||||
/emoji-regex@8.0.0:
|
||||
resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
|
||||
dev: true
|
||||
|
|
@ -1994,7 +2027,7 @@ packages:
|
|||
eslint: 8.43.0
|
||||
dev: true
|
||||
|
||||
/eslint-plugin-svelte@2.31.0(eslint@8.43.0)(svelte@3.59.1)(ts-node@10.9.1):
|
||||
/eslint-plugin-svelte@2.31.0(eslint@8.43.0)(svelte@3.59.2)(ts-node@10.9.1):
|
||||
resolution: {integrity: sha512-Q70jPFRraTkc/giPSfY7yuatmJcb5fPelWNplevqd45gfaJDjc3qXRtWQ6m9U5tWVVYERU9dcdUod294vwD8Gw==}
|
||||
engines: {node: ^14.17.0 || >=16.0.0}
|
||||
peerDependencies:
|
||||
|
|
@ -2014,8 +2047,8 @@ packages:
|
|||
postcss-load-config: 3.1.4(postcss@8.4.24)(ts-node@10.9.1)
|
||||
postcss-safe-parser: 6.0.0(postcss@8.4.24)
|
||||
postcss-selector-parser: 6.0.13
|
||||
svelte: 3.59.1
|
||||
svelte-eslint-parser: 0.31.0(svelte@3.59.1)
|
||||
svelte: 3.59.2
|
||||
svelte-eslint-parser: 0.31.0(svelte@3.59.2)
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
- ts-node
|
||||
|
|
@ -2357,8 +2390,8 @@ packages:
|
|||
- supports-color
|
||||
dev: true
|
||||
|
||||
/iconify-icon@1.0.7:
|
||||
resolution: {integrity: sha512-MxaO3Jhf3f5ymPWGHR9x74f90TNKcq1D+B2iGucGhVtqAgbC9EtM06kKiTGH2CKELNnexckwhrA3/+OpT4HKFw==}
|
||||
/iconify-icon@1.0.8:
|
||||
resolution: {integrity: sha512-jvbUKHXf8EnGGArmhlP2IG8VqQLFFyTvTqb9LVL2TKTh7/eCCD1o2HHE9thpbJJb6B8hzhcFb6rOKhvo7reNKA==}
|
||||
dependencies:
|
||||
'@iconify/types': 2.0.0
|
||||
dev: false
|
||||
|
|
@ -2471,6 +2504,10 @@ packages:
|
|||
resolution: {integrity: sha512-WXzwLL0745uNuedrCsCs3rpmfD6DBaf7uuVwaq98/8dafURfgQaBsSpjiPp5+CW6Vjltwy9cOGI6qE71b3T8iQ==}
|
||||
dev: true
|
||||
|
||||
/just-kebab-case@4.2.0:
|
||||
resolution: {integrity: sha512-p2BdO7o4BI+pMun3J+dhaOfYan5JsZrw9wjshRjkWY9+p+u+kKSMhNWYnot2yHDR9CSahZ9iT3dcqJ+V72qHMw==}
|
||||
dev: false
|
||||
|
||||
/kleur@4.1.5:
|
||||
resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==}
|
||||
engines: {node: '>=6'}
|
||||
|
|
@ -2699,6 +2736,10 @@ packages:
|
|||
resolution: {integrity: sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==}
|
||||
dev: true
|
||||
|
||||
/node-releases@2.0.12:
|
||||
resolution: {integrity: sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ==}
|
||||
dev: true
|
||||
|
||||
/nopt@5.0.0:
|
||||
resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==}
|
||||
engines: {node: '>=6'}
|
||||
|
|
@ -2736,8 +2777,8 @@ packages:
|
|||
wrappy: 1.0.2
|
||||
dev: true
|
||||
|
||||
/open-props@1.5.9:
|
||||
resolution: {integrity: sha512-7cY+O+QPiLFcm1a/nnkSK7CHLIW55XBwnnKYS2ajGcWw/xmY990JkgPzYFbohOODyCGM6oJZ+XzRJF7207QqiA==}
|
||||
/open-props@1.5.10:
|
||||
resolution: {integrity: sha512-iE+B7Zo0ytgeUNI38uHiBrxF5Nnv3uX8AzogBXzf7wqeNyG6oqQEEBs1gnAZdRF+h7IRO0zOGM5d9/huiNFR+w==}
|
||||
dev: false
|
||||
|
||||
/optionator@0.9.1:
|
||||
|
|
@ -2870,16 +2911,16 @@ packages:
|
|||
postcss-value-parser: 4.2.0
|
||||
dev: true
|
||||
|
||||
/postcss-custom-media@9.1.4(postcss@8.4.24):
|
||||
resolution: {integrity: sha512-4A7WEG3iIyKwfpxL5bkuSlHoHHGRTHl0212Z3uvpwJPyVfZJlkZAQNNgVC+oogrJgksDnfKyuuMbG6HafZPW8Q==}
|
||||
/postcss-custom-media@9.1.5(postcss@8.4.24):
|
||||
resolution: {integrity: sha512-GStyWMz7Qbo/Gtw1xVspzVSX8eipgNg4lpsO3CAeY4/A1mzok+RV6MCv3fg62trWijh/lYEj6vps4o8JcBBpDA==}
|
||||
engines: {node: ^14 || ^16 || >=18}
|
||||
peerDependencies:
|
||||
postcss: ^8.4
|
||||
dependencies:
|
||||
'@csstools/cascade-layer-name-parser': 1.0.2(@csstools/css-parser-algorithms@2.1.1)(@csstools/css-tokenizer@2.1.1)
|
||||
'@csstools/css-parser-algorithms': 2.1.1(@csstools/css-tokenizer@2.1.1)
|
||||
'@csstools/cascade-layer-name-parser': 1.0.2(@csstools/css-parser-algorithms@2.2.0)(@csstools/css-tokenizer@2.1.1)
|
||||
'@csstools/css-parser-algorithms': 2.2.0(@csstools/css-tokenizer@2.1.1)
|
||||
'@csstools/css-tokenizer': 2.1.1
|
||||
'@csstools/media-query-list-parser': 2.1.0(@csstools/css-parser-algorithms@2.1.1)(@csstools/css-tokenizer@2.1.1)
|
||||
'@csstools/media-query-list-parser': 2.1.1(@csstools/css-parser-algorithms@2.2.0)(@csstools/css-tokenizer@2.1.1)
|
||||
postcss: 8.4.24
|
||||
dev: true
|
||||
|
||||
|
|
@ -3104,8 +3145,8 @@ packages:
|
|||
postcss-value-parser: 4.2.0
|
||||
dev: true
|
||||
|
||||
/postcss-preset-env@8.5.0(postcss@8.4.24):
|
||||
resolution: {integrity: sha512-aqAbT5dXqYX5ZvicGKQpaW/eDEZFRfnhV6Hn1Jn2bCKEB9L2MgsTdnIsXsZyFUQflIV2wIs9HTEQgkH5duMCNg==}
|
||||
/postcss-preset-env@8.5.1(postcss@8.4.24):
|
||||
resolution: {integrity: sha512-qhWnJJjP6ArLUINWJ38t6Aftxnv9NW6cXK0NuwcLCcRilbuw72dSFLkCVUJeCfHGgJiKzX+pnhkGiki0PEynWg==}
|
||||
engines: {node: ^14 || ^16 || >=18}
|
||||
peerDependencies:
|
||||
postcss: ^8.4
|
||||
|
|
@ -3121,8 +3162,8 @@ packages:
|
|||
'@csstools/postcss-logical-float-and-clear': 1.0.1(postcss@8.4.24)
|
||||
'@csstools/postcss-logical-resize': 1.0.1(postcss@8.4.24)
|
||||
'@csstools/postcss-logical-viewport-units': 1.0.3(postcss@8.4.24)
|
||||
'@csstools/postcss-media-minmax': 1.0.3(postcss@8.4.24)
|
||||
'@csstools/postcss-media-queries-aspect-ratio-number-values': 1.0.3(postcss@8.4.24)
|
||||
'@csstools/postcss-media-minmax': 1.0.4(postcss@8.4.24)
|
||||
'@csstools/postcss-media-queries-aspect-ratio-number-values': 1.0.4(postcss@8.4.24)
|
||||
'@csstools/postcss-nested-calc': 2.0.2(postcss@8.4.24)
|
||||
'@csstools/postcss-normalize-display-values': 2.0.1(postcss@8.4.24)
|
||||
'@csstools/postcss-oklab-function': 2.2.3(postcss@8.4.24)
|
||||
|
|
@ -3134,7 +3175,7 @@ packages:
|
|||
'@csstools/postcss-trigonometric-functions': 2.1.1(postcss@8.4.24)
|
||||
'@csstools/postcss-unset-value': 2.0.1(postcss@8.4.24)
|
||||
autoprefixer: 10.4.14(postcss@8.4.24)
|
||||
browserslist: 4.21.5
|
||||
browserslist: 4.21.9
|
||||
css-blank-pseudo: 5.0.2(postcss@8.4.24)
|
||||
css-has-pseudo: 5.0.2(postcss@8.4.24)
|
||||
css-prefers-color-scheme: 8.0.2(postcss@8.4.24)
|
||||
|
|
@ -3145,7 +3186,7 @@ packages:
|
|||
postcss-color-functional-notation: 5.1.0(postcss@8.4.24)
|
||||
postcss-color-hex-alpha: 9.0.2(postcss@8.4.24)
|
||||
postcss-color-rebeccapurple: 8.0.2(postcss@8.4.24)
|
||||
postcss-custom-media: 9.1.4(postcss@8.4.24)
|
||||
postcss-custom-media: 9.1.5(postcss@8.4.24)
|
||||
postcss-custom-properties: 13.2.0(postcss@8.4.24)
|
||||
postcss-custom-selectors: 7.1.3(postcss@8.4.24)
|
||||
postcss-dir-pseudo-class: 7.0.2(postcss@8.4.24)
|
||||
|
|
@ -3240,14 +3281,14 @@ packages:
|
|||
engines: {node: '>= 0.8.0'}
|
||||
dev: true
|
||||
|
||||
/prettier-plugin-svelte@2.10.1(prettier@2.8.8)(svelte@3.59.1):
|
||||
/prettier-plugin-svelte@2.10.1(prettier@2.8.8)(svelte@3.59.2):
|
||||
resolution: {integrity: sha512-Wlq7Z5v2ueCubWo0TZzKc9XHcm7TDxqcuzRuGd0gcENfzfT4JZ9yDlCbEgxWgiPmLHkBjfOtpAWkcT28MCDpUQ==}
|
||||
peerDependencies:
|
||||
prettier: ^1.16.4 || ^2.0.0
|
||||
svelte: ^3.2.0 || ^4.0.0-next.0
|
||||
dependencies:
|
||||
prettier: 2.8.8
|
||||
svelte: 3.59.1
|
||||
svelte: 3.59.2
|
||||
dev: true
|
||||
|
||||
/prettier@2.8.8:
|
||||
|
|
@ -3260,13 +3301,13 @@ packages:
|
|||
resolution: {integrity: sha512-db91Bf3pRGKDPz1lAqLFSJXeW13mulUJxhycysFpfXV5MIK7RgWWK2E5aPAa71s8TCzQUXxF5JOV42/iOs6QkA==}
|
||||
dev: false
|
||||
|
||||
/prisma@4.16.0:
|
||||
resolution: {integrity: sha512-kSCwbTm3LCephyGfZMJYqBXpPJXdJStg5xwfzeFmR5C05zfkOURK9pQpJF6uUQvFWm3lI9ZMSNkObmFkAPnB+g==}
|
||||
/prisma@4.16.1:
|
||||
resolution: {integrity: sha512-C2Xm7yxHxjFjjscBEW4tmoraPHH/Vyu/A0XABdbaFtoiOZARsxvOM7rwc2iZ0qVxbh0bGBGBWZUSXO/52/nHBQ==}
|
||||
engines: {node: '>=14.17'}
|
||||
hasBin: true
|
||||
requiresBuild: true
|
||||
dependencies:
|
||||
'@prisma/engines': 4.16.0
|
||||
'@prisma/engines': 4.16.1
|
||||
|
||||
/prismjs@1.29.0:
|
||||
resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==}
|
||||
|
|
@ -3384,8 +3425,8 @@ packages:
|
|||
rimraf: 2.7.1
|
||||
dev: true
|
||||
|
||||
/sass@1.63.4:
|
||||
resolution: {integrity: sha512-Sx/+weUmK+oiIlI+9sdD0wZHsqpbgQg8wSwSnGBjwb5GwqFhYNwwnI+UWZtLjKvKyFlKkatRK235qQ3mokyPoQ==}
|
||||
/sass@1.63.6:
|
||||
resolution: {integrity: sha512-MJuxGMHzaOW7ipp+1KdELtqKbfAWbH7OLIdoSMnVe3EXPMTmxTmlaZDCTsgIpPCs3w99lLo9/zDKkOrJuT5byw==}
|
||||
engines: {node: '>=14.0.0'}
|
||||
hasBin: true
|
||||
dependencies:
|
||||
|
|
@ -3539,7 +3580,7 @@ packages:
|
|||
engines: {node: '>= 0.4'}
|
||||
dev: true
|
||||
|
||||
/svelte-check@2.10.3(postcss-load-config@4.0.1)(postcss@8.4.24)(sass@1.63.4)(svelte@3.59.1):
|
||||
/svelte-check@2.10.3(postcss-load-config@4.0.1)(postcss@8.4.24)(sass@1.63.6)(svelte@3.59.2):
|
||||
resolution: {integrity: sha512-Nt1aWHTOKFReBpmJ1vPug0aGysqPwJh2seM1OvICfM2oeyaA62mOiy5EvkXhltGfhCcIQcq2LoE0l1CwcWPjlw==}
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
|
|
@ -3551,8 +3592,8 @@ packages:
|
|||
import-fresh: 3.3.0
|
||||
picocolors: 1.0.0
|
||||
sade: 1.8.1
|
||||
svelte: 3.59.1
|
||||
svelte-preprocess: 4.10.7(postcss-load-config@4.0.1)(postcss@8.4.24)(sass@1.63.4)(svelte@3.59.1)(typescript@4.9.5)
|
||||
svelte: 3.59.2
|
||||
svelte-preprocess: 4.10.7(postcss-load-config@4.0.1)(postcss@8.4.24)(sass@1.63.6)(svelte@3.59.2)(typescript@4.9.5)
|
||||
typescript: 4.9.5
|
||||
transitivePeerDependencies:
|
||||
- '@babel/core'
|
||||
|
|
@ -3567,7 +3608,7 @@ packages:
|
|||
- sugarss
|
||||
dev: true
|
||||
|
||||
/svelte-eslint-parser@0.31.0(svelte@3.59.1):
|
||||
/svelte-eslint-parser@0.31.0(svelte@3.59.2):
|
||||
resolution: {integrity: sha512-/31RpBf/e3YjoFphjsyo3JRyN1r4UalGAGafXrZ6EJK4h4COOO0rbfBoen5byGsXnIJKsrlC1lkEd2Vzpq2IDg==}
|
||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||
peerDependencies:
|
||||
|
|
@ -3581,30 +3622,30 @@ packages:
|
|||
espree: 9.5.2
|
||||
postcss: 8.4.24
|
||||
postcss-scss: 4.0.6(postcss@8.4.24)
|
||||
svelte: 3.59.1
|
||||
svelte: 3.59.2
|
||||
dev: true
|
||||
|
||||
/svelte-hmr@0.15.2(svelte@3.59.1):
|
||||
/svelte-hmr@0.15.2(svelte@3.59.2):
|
||||
resolution: {integrity: sha512-q/bAruCvFLwvNbeE1x3n37TYFb3mTBJ6TrCq6p2CoFbSTNhDE9oAtEfpy+wmc9So8AG0Tja+X0/mJzX9tSfvIg==}
|
||||
engines: {node: ^12.20 || ^14.13.1 || >= 16}
|
||||
peerDependencies:
|
||||
svelte: ^3.19.0 || ^4.0.0-next.0
|
||||
dependencies:
|
||||
svelte: 3.59.1
|
||||
svelte: 3.59.2
|
||||
|
||||
/svelte-lazy-loader@1.0.0:
|
||||
resolution: {integrity: sha512-AZD6R60vksyojn21FgXLglmBiBB9K5Dkdu0hdGrLbCaRCYT68IsWkZfRUqKhMx1IfzqWcZQ8X9y/f+Ih0oNQkQ==}
|
||||
dev: false
|
||||
|
||||
/svelte-lazy@1.2.1(svelte@3.59.1):
|
||||
/svelte-lazy@1.2.1(svelte@3.59.2):
|
||||
resolution: {integrity: sha512-8L+GrU5p0ia/nLDeGDMTC+DtmbXlFcoaTPoSf8jIy1NoKicqSJXz5tjiu6GUsD7ra0RjgIvhQiLcdZYR9VECeA==}
|
||||
peerDependencies:
|
||||
svelte: 3.x
|
||||
dependencies:
|
||||
svelte: 3.59.1
|
||||
svelte: 3.59.2
|
||||
dev: false
|
||||
|
||||
/svelte-legos@0.2.1(svelte@3.59.1):
|
||||
/svelte-legos@0.2.1(svelte@3.59.2):
|
||||
resolution: {integrity: sha512-M7IncWP2e8FaHzQN1DSzxLSoq/6aQYWZ93REZam9bYlvLEjdPGWLAYdpPNnnZtXlHco+o3zrgYTdwsyyS9beUQ==}
|
||||
peerDependencies:
|
||||
svelte: ^3.54.0
|
||||
|
|
@ -3612,10 +3653,10 @@ packages:
|
|||
canvas-confetti: 1.6.0
|
||||
prism-svelte: 0.5.0
|
||||
prismjs: 1.29.0
|
||||
svelte: 3.59.1
|
||||
svelte: 3.59.2
|
||||
dev: false
|
||||
|
||||
/svelte-preprocess@4.10.7(postcss-load-config@4.0.1)(postcss@8.4.24)(sass@1.63.4)(svelte@3.59.1)(typescript@4.9.5):
|
||||
/svelte-preprocess@4.10.7(postcss-load-config@4.0.1)(postcss@8.4.24)(sass@1.63.6)(svelte@3.59.2)(typescript@4.9.5):
|
||||
resolution: {integrity: sha512-sNPBnqYD6FnmdBrUmBCaqS00RyCsCpj2BG58A1JBswNF7b0OKviwxqVrOL/CKyJrLSClrSeqQv5BXNg2RUbPOw==}
|
||||
engines: {node: '>= 9.11.2'}
|
||||
requiresBuild: true
|
||||
|
|
@ -3662,14 +3703,14 @@ packages:
|
|||
magic-string: 0.25.9
|
||||
postcss: 8.4.24
|
||||
postcss-load-config: 4.0.1(postcss@8.4.24)(ts-node@10.9.1)
|
||||
sass: 1.63.4
|
||||
sass: 1.63.6
|
||||
sorcery: 0.10.0
|
||||
strip-indent: 3.0.0
|
||||
svelte: 3.59.1
|
||||
svelte: 3.59.2
|
||||
typescript: 4.9.5
|
||||
dev: true
|
||||
|
||||
/svelte-preprocess@5.0.4(postcss-load-config@4.0.1)(postcss@8.4.24)(sass@1.63.4)(svelte@3.59.1)(typescript@4.9.5):
|
||||
/svelte-preprocess@5.0.4(postcss-load-config@4.0.1)(postcss@8.4.24)(sass@1.63.6)(svelte@3.59.2)(typescript@4.9.5):
|
||||
resolution: {integrity: sha512-ABia2QegosxOGsVlsSBJvoWeXy1wUKSfF7SWJdTjLAbx/Y3SrVevvvbFNQqrSJw89+lNSsM58SipmZJ5SRi5iw==}
|
||||
engines: {node: '>= 14.10.0'}
|
||||
requiresBuild: true
|
||||
|
|
@ -3712,36 +3753,36 @@ packages:
|
|||
magic-string: 0.27.0
|
||||
postcss: 8.4.24
|
||||
postcss-load-config: 4.0.1(postcss@8.4.24)(ts-node@10.9.1)
|
||||
sass: 1.63.4
|
||||
sass: 1.63.6
|
||||
sorcery: 0.11.0
|
||||
strip-indent: 3.0.0
|
||||
svelte: 3.59.1
|
||||
svelte: 3.59.2
|
||||
typescript: 4.9.5
|
||||
dev: true
|
||||
|
||||
/svelte@3.59.1:
|
||||
resolution: {integrity: sha512-pKj8fEBmqf6mq3/NfrB9SLtcJcUvjYSWyePlfCqN9gujLB25RitWK8PvFzlwim6hD/We35KbPlRteuA6rnPGcQ==}
|
||||
/svelte@3.59.2:
|
||||
resolution: {integrity: sha512-vzSyuGr3eEoAtT/A6bmajosJZIUWySzY2CzB3w2pgPvnkUjGqlDnsNnA0PMO+mMAhuyMul6C2uuZzY6ELSkzyA==}
|
||||
engines: {node: '>= 8'}
|
||||
|
||||
/sveltekit-flash-message@0.11.3(@sveltejs/kit@1.20.4)(svelte@3.59.1):
|
||||
/sveltekit-flash-message@0.11.3(@sveltejs/kit@1.20.4)(svelte@3.59.2):
|
||||
resolution: {integrity: sha512-tMKBobVFLYth0z2Kq9M+pi7Ip2OBhOrzivzx64v9+D2bWRwnZ3pmdWStYfQYxlz5CayozRQsmtipNg1vM+JN9Q==}
|
||||
peerDependencies:
|
||||
'@sveltejs/kit': ^1.0.0
|
||||
svelte: ^3
|
||||
dependencies:
|
||||
'@sveltejs/kit': 1.20.4(svelte@3.59.1)(vite@4.3.9)
|
||||
svelte: 3.59.1
|
||||
'@sveltejs/kit': 1.20.4(svelte@3.59.2)(vite@4.3.9)
|
||||
svelte: 3.59.2
|
||||
dev: false
|
||||
|
||||
/sveltekit-superforms@1.1.0(@sveltejs/kit@1.20.4)(svelte@3.59.1)(zod@3.21.4):
|
||||
resolution: {integrity: sha512-90k2x3PwrH9APg2/QzB0DXw1U8LsGqZescjti/tOpu4yTfDOm/pU3/rdrNugwuRvpfBIAh+Zljj0o6uMqcfrow==}
|
||||
/sveltekit-superforms@1.1.1(@sveltejs/kit@1.20.4)(svelte@3.59.2)(zod@3.21.4):
|
||||
resolution: {integrity: sha512-lD3ov06C/O8hD7mCzEQZ7CTsbHrh6kWhRP3njI9ZSwvG5DW6vhfi6Re/cyYy//cS0oMONI0xBieWyr9s24Y9jA==}
|
||||
peerDependencies:
|
||||
'@sveltejs/kit': 1.x
|
||||
svelte: 3.x
|
||||
zod: 3.x
|
||||
dependencies:
|
||||
'@sveltejs/kit': 1.20.4(svelte@3.59.1)(vite@4.3.9)
|
||||
svelte: 3.59.1
|
||||
'@sveltejs/kit': 1.20.4(svelte@3.59.2)(vite@4.3.9)
|
||||
svelte: 3.59.2
|
||||
zod: 3.21.4
|
||||
dev: true
|
||||
|
||||
|
|
@ -3888,6 +3929,17 @@ packages:
|
|||
picocolors: 1.0.0
|
||||
dev: true
|
||||
|
||||
/update-browserslist-db@1.0.11(browserslist@4.21.9):
|
||||
resolution: {integrity: sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==}
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
browserslist: '>= 4.21.0'
|
||||
dependencies:
|
||||
browserslist: 4.21.9
|
||||
escalade: 3.1.1
|
||||
picocolors: 1.0.0
|
||||
dev: true
|
||||
|
||||
/uri-js@4.4.1:
|
||||
resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
|
||||
dependencies:
|
||||
|
|
@ -3901,7 +3953,7 @@ packages:
|
|||
resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==}
|
||||
dev: true
|
||||
|
||||
/vite@4.3.9(@types/node@18.16.18)(sass@1.63.4):
|
||||
/vite@4.3.9(@types/node@18.16.18)(sass@1.63.6):
|
||||
resolution: {integrity: sha512-qsTNZjO9NoJNW7KnOrgYwczm0WctJ8m/yqYAMAK9Lxt4SoySUfS5S8ia9K7JHpa3KEeMfyF8LoJ3c5NeBJy6pg==}
|
||||
engines: {node: ^14.18.0 || >=16.0.0}
|
||||
hasBin: true
|
||||
|
|
@ -3930,7 +3982,7 @@ packages:
|
|||
esbuild: 0.17.18
|
||||
postcss: 8.4.24
|
||||
rollup: 3.21.0
|
||||
sass: 1.63.4
|
||||
sass: 1.63.6
|
||||
optionalDependencies:
|
||||
fsevents: 2.3.2
|
||||
|
||||
|
|
@ -3942,9 +3994,9 @@ packages:
|
|||
vite:
|
||||
optional: true
|
||||
dependencies:
|
||||
vite: 4.3.9(@types/node@18.16.18)(sass@1.63.4)
|
||||
vite: 4.3.9(@types/node@18.16.18)(sass@1.63.6)
|
||||
|
||||
/vitest@0.25.8(sass@1.63.4):
|
||||
/vitest@0.25.8(sass@1.63.6):
|
||||
resolution: {integrity: sha512-X75TApG2wZTJn299E/TIYevr4E9/nBo1sUtZzn0Ci5oK8qnpZAZyhwg0qCeMSakGIWtc6oRwcQFyFfW14aOFWg==}
|
||||
engines: {node: '>=v14.16.0'}
|
||||
hasBin: true
|
||||
|
|
@ -3979,7 +4031,7 @@ packages:
|
|||
tinybench: 2.3.1
|
||||
tinypool: 0.3.0
|
||||
tinyspy: 1.0.2
|
||||
vite: 4.3.9(@types/node@18.16.18)(sass@1.63.4)
|
||||
vite: 4.3.9(@types/node@18.16.18)(sass@1.63.6)
|
||||
transitivePeerDependencies:
|
||||
- less
|
||||
- sass
|
||||
|
|
|
|||
859
prisma/categories.json
Normal file
859
prisma/categories.json
Normal file
|
|
@ -0,0 +1,859 @@
|
|||
{
|
||||
"categories": [
|
||||
{
|
||||
"id": "2bdFPJUvFo",
|
||||
"name": "18XX",
|
||||
"url": "https://www.boardgameatlas.com/category/2bdFPJUvFo/18xx"
|
||||
},
|
||||
{
|
||||
"id": "85OKv8p5Ow",
|
||||
"name": "4x",
|
||||
"url": "https://www.boardgameatlas.com/category/85OKv8p5Ow/4x"
|
||||
},
|
||||
{
|
||||
"id": "FMKgeuNEII",
|
||||
"name": "80s",
|
||||
"url": "https://www.boardgameatlas.com/category/FMKgeuNEII/80s"
|
||||
},
|
||||
{
|
||||
"id": "hBqZ3Ar4RJ",
|
||||
"name": "Abstract",
|
||||
"url": "https://www.boardgameatlas.com/category/hBqZ3Ar4RJ/abstract"
|
||||
},
|
||||
{
|
||||
"id": "GtuMb7ei27",
|
||||
"name": "Accessory",
|
||||
"url": "https://www.boardgameatlas.com/category/GtuMb7ei27/accessory"
|
||||
},
|
||||
{
|
||||
"id": "OE07lsfVqf",
|
||||
"name": "Adult",
|
||||
"url": "https://www.boardgameatlas.com/category/OE07lsfVqf/adult"
|
||||
},
|
||||
{
|
||||
"id": "KUBCKBkGxV",
|
||||
"name": "Adventure",
|
||||
"url": "https://www.boardgameatlas.com/category/KUBCKBkGxV/adventure"
|
||||
},
|
||||
{
|
||||
"id": "DjAhqEHOD0",
|
||||
"name": "Aerial Warfare",
|
||||
"url": "https://www.boardgameatlas.com/category/DjAhqEHOD0/aerial-warfare"
|
||||
},
|
||||
{
|
||||
"id": "20iDvpbh7A",
|
||||
"name": "Age of Reason",
|
||||
"url": "https://www.boardgameatlas.com/category/20iDvpbh7A/age-of-reason"
|
||||
},
|
||||
{
|
||||
"id": "tJxatX2ZbW",
|
||||
"name": "Aliens",
|
||||
"url": "https://www.boardgameatlas.com/category/tJxatX2ZbW/aliens"
|
||||
},
|
||||
{
|
||||
"id": "nWDac9tQzt",
|
||||
"name": "Alternate History",
|
||||
"url": "https://www.boardgameatlas.com/category/nWDac9tQzt/alternate-history"
|
||||
},
|
||||
{
|
||||
"id": "dghLhwyxVb",
|
||||
"name": "American History",
|
||||
"url": "https://www.boardgameatlas.com/category/dghLhwyxVb/american-history"
|
||||
},
|
||||
{
|
||||
"id": "4mOtRRwSoj",
|
||||
"name": "American West",
|
||||
"url": "https://www.boardgameatlas.com/category/4mOtRRwSoj/american-west"
|
||||
},
|
||||
{
|
||||
"id": "a8NM5cugJX",
|
||||
"name": "Ancient",
|
||||
"url": "https://www.boardgameatlas.com/category/a8NM5cugJX/ancient"
|
||||
},
|
||||
{
|
||||
"id": "MWoxgHrOJD",
|
||||
"name": "Animals",
|
||||
"url": "https://www.boardgameatlas.com/category/MWoxgHrOJD/animals"
|
||||
},
|
||||
{
|
||||
"id": "eFaACC6y2c",
|
||||
"name": "Apocalyptic",
|
||||
"url": "https://www.boardgameatlas.com/category/eFaACC6y2c/apocalyptic"
|
||||
},
|
||||
{
|
||||
"id": "CBboNLI1Uj",
|
||||
"name": "Arabian",
|
||||
"url": "https://www.boardgameatlas.com/category/CBboNLI1Uj/arabian"
|
||||
},
|
||||
{
|
||||
"id": "k0dglq5j6N",
|
||||
"name": "Art",
|
||||
"url": "https://www.boardgameatlas.com/category/k0dglq5j6N/art"
|
||||
},
|
||||
{
|
||||
"id": "Bq6M0TJyg7",
|
||||
"name": "Asymmetric",
|
||||
"url": "https://www.boardgameatlas.com/category/Bq6M0TJyg7/asymmetric"
|
||||
},
|
||||
{
|
||||
"id": "QB4sEpx1Uu",
|
||||
"name": "Aviation",
|
||||
"url": "https://www.boardgameatlas.com/category/QB4sEpx1Uu/aviation"
|
||||
},
|
||||
{
|
||||
"id": "wpItJuRDiz",
|
||||
"name": "Banking",
|
||||
"url": "https://www.boardgameatlas.com/category/wpItJuRDiz/banking"
|
||||
},
|
||||
{
|
||||
"id": "pwt9HAzEa6",
|
||||
"name": "Battle Royale",
|
||||
"url": "https://www.boardgameatlas.com/category/pwt9HAzEa6/battle-royale"
|
||||
},
|
||||
{
|
||||
"id": "PinhJrhnxU",
|
||||
"name": "Bluffing",
|
||||
"url": "https://www.boardgameatlas.com/category/PinhJrhnxU/bluffing"
|
||||
},
|
||||
{
|
||||
"id": "wLpYxHBexW",
|
||||
"name": "Book",
|
||||
"url": "https://www.boardgameatlas.com/category/wLpYxHBexW/book"
|
||||
},
|
||||
{
|
||||
"id": "fW5vusE96B",
|
||||
"name": "Campaign",
|
||||
"url": "https://www.boardgameatlas.com/category/fW5vusE96B/campaign"
|
||||
},
|
||||
{
|
||||
"id": "eX8uuNlQkQ",
|
||||
"name": "Card Game",
|
||||
"url": "https://www.boardgameatlas.com/category/eX8uuNlQkQ/card-game"
|
||||
},
|
||||
{
|
||||
"id": "HKaYVNIxAJ",
|
||||
"name": "Children's Game",
|
||||
"url": "https://www.boardgameatlas.com/category/HKaYVNIxAJ/childrens-game"
|
||||
},
|
||||
{
|
||||
"id": "36WFElclV3",
|
||||
"name": "Christian",
|
||||
"url": "https://www.boardgameatlas.com/category/36WFElclV3/christian"
|
||||
},
|
||||
{
|
||||
"id": "3Y1dIDLCRw",
|
||||
"name": "Christmas",
|
||||
"url": "https://www.boardgameatlas.com/category/3Y1dIDLCRw/christmas"
|
||||
},
|
||||
{
|
||||
"id": "ODWOjWAJj3",
|
||||
"name": "City Building",
|
||||
"url": "https://www.boardgameatlas.com/category/ODWOjWAJj3/city-building"
|
||||
},
|
||||
{
|
||||
"id": "w8XD66FUZ2",
|
||||
"name": "Civil War",
|
||||
"url": "https://www.boardgameatlas.com/category/w8XD66FUZ2/civil-war"
|
||||
},
|
||||
{
|
||||
"id": "329DxyFL9D",
|
||||
"name": "Civilization",
|
||||
"url": "https://www.boardgameatlas.com/category/329DxyFL9D/civilization"
|
||||
},
|
||||
{
|
||||
"id": "bVMxJo31bS",
|
||||
"name": "Cold war",
|
||||
"url": "https://www.boardgameatlas.com/category/bVMxJo31bS/cold-war"
|
||||
},
|
||||
{
|
||||
"id": "vXxLT0FDTZ",
|
||||
"name": "Collectible Components",
|
||||
"url": "https://www.boardgameatlas.com/category/vXxLT0FDTZ/collectible-components"
|
||||
},
|
||||
{
|
||||
"id": "bSzUpE5oOZ",
|
||||
"name": "Colonial",
|
||||
"url": "https://www.boardgameatlas.com/category/bSzUpE5oOZ/colonial"
|
||||
},
|
||||
{
|
||||
"id": "gscaL52VDG",
|
||||
"name": "Combat",
|
||||
"url": "https://www.boardgameatlas.com/category/gscaL52VDG/combat"
|
||||
},
|
||||
{
|
||||
"id": "G5kfqnPBP6",
|
||||
"name": "Comic Book / Strip",
|
||||
"url": "https://www.boardgameatlas.com/category/G5kfqnPBP6/comic-book--strip"
|
||||
},
|
||||
{
|
||||
"id": "pacCjl7His",
|
||||
"name": "Competitive",
|
||||
"url": "https://www.boardgameatlas.com/category/pacCjl7His/competitive"
|
||||
},
|
||||
{
|
||||
"id": "ge8pIhEUGE",
|
||||
"name": "Cooperative",
|
||||
"url": "https://www.boardgameatlas.com/category/ge8pIhEUGE/cooperative"
|
||||
},
|
||||
{
|
||||
"id": "7DfHn28Pcf",
|
||||
"name": "Crime",
|
||||
"url": "https://www.boardgameatlas.com/category/7DfHn28Pcf/crime"
|
||||
},
|
||||
{
|
||||
"id": "nfQONtMbDU",
|
||||
"name": "Cube Rail",
|
||||
"url": "https://www.boardgameatlas.com/category/nfQONtMbDU/cube-rail"
|
||||
},
|
||||
{
|
||||
"id": "Ef4oYLHNhI",
|
||||
"name": "Cyberpunk",
|
||||
"url": "https://www.boardgameatlas.com/category/Ef4oYLHNhI/cyberpunk"
|
||||
},
|
||||
{
|
||||
"id": "bCBXJy9qDw",
|
||||
"name": "Deduction",
|
||||
"url": "https://www.boardgameatlas.com/category/bCBXJy9qDw/deduction"
|
||||
},
|
||||
{
|
||||
"id": "fh4V5SOLFj",
|
||||
"name": "Deluxe Edition",
|
||||
"url": "https://www.boardgameatlas.com/category/fh4V5SOLFj/deluxe-edition"
|
||||
},
|
||||
{
|
||||
"id": "bKrxqD9mYc",
|
||||
"name": "Dexterity",
|
||||
"url": "https://www.boardgameatlas.com/category/bKrxqD9mYc/dexterity"
|
||||
},
|
||||
{
|
||||
"id": "mavSOM8vjH",
|
||||
"name": "Dice",
|
||||
"url": "https://www.boardgameatlas.com/category/mavSOM8vjH/dice"
|
||||
},
|
||||
{
|
||||
"id": "o7Macrb9q7",
|
||||
"name": "Dice Tower Combat",
|
||||
"url": "https://www.boardgameatlas.com/category/o7Macrb9q7/dice-tower-combat"
|
||||
},
|
||||
{
|
||||
"id": "42pmul4oHH",
|
||||
"name": "Dinosaurs",
|
||||
"url": "https://www.boardgameatlas.com/category/42pmul4oHH/dinosaurs"
|
||||
},
|
||||
{
|
||||
"id": "zoOGfQ9rK3",
|
||||
"name": "Dogs",
|
||||
"url": "https://www.boardgameatlas.com/category/zoOGfQ9rK3/dogs"
|
||||
},
|
||||
{
|
||||
"id": "JMM0TG2MSe",
|
||||
"name": "Drawing",
|
||||
"url": "https://www.boardgameatlas.com/category/JMM0TG2MSe/drawing"
|
||||
},
|
||||
{
|
||||
"id": "We3MM46qBr",
|
||||
"name": "Drinking",
|
||||
"url": "https://www.boardgameatlas.com/category/We3MM46qBr/drinking"
|
||||
},
|
||||
{
|
||||
"id": "g2Hwv8t0Y5",
|
||||
"name": "Dungeon Crawl",
|
||||
"url": "https://www.boardgameatlas.com/category/g2Hwv8t0Y5/dungeon-crawl"
|
||||
},
|
||||
{
|
||||
"id": "N0TkEGfEsF",
|
||||
"name": "Economic",
|
||||
"url": "https://www.boardgameatlas.com/category/N0TkEGfEsF/economic"
|
||||
},
|
||||
{
|
||||
"id": "B3NRLMK4xD",
|
||||
"name": "Educational",
|
||||
"url": "https://www.boardgameatlas.com/category/B3NRLMK4xD/educational"
|
||||
},
|
||||
{
|
||||
"id": "crxgUzJSEz",
|
||||
"name": "Electronic",
|
||||
"url": "https://www.boardgameatlas.com/category/crxgUzJSEz/electronic"
|
||||
},
|
||||
{
|
||||
"id": "gsekjrPJz0",
|
||||
"name": "Environmental",
|
||||
"url": "https://www.boardgameatlas.com/category/gsekjrPJz0/environmental"
|
||||
},
|
||||
{
|
||||
"id": "pflvcNyHPe",
|
||||
"name": "Escape Room",
|
||||
"url": "https://www.boardgameatlas.com/category/pflvcNyHPe/escape-room"
|
||||
},
|
||||
{
|
||||
"id": "u5ZiYctU6T",
|
||||
"name": "Espionage",
|
||||
"url": "https://www.boardgameatlas.com/category/u5ZiYctU6T/espionage"
|
||||
},
|
||||
{
|
||||
"id": "v4SfYtS2Lr",
|
||||
"name": "Expansion",
|
||||
"url": "https://www.boardgameatlas.com/category/v4SfYtS2Lr/expansion"
|
||||
},
|
||||
{
|
||||
"id": "yq6hVlbM2R",
|
||||
"name": "Exploration",
|
||||
"url": "https://www.boardgameatlas.com/category/yq6hVlbM2R/exploration"
|
||||
},
|
||||
{
|
||||
"id": "7rV11PKqME",
|
||||
"name": "Family Game",
|
||||
"url": "https://www.boardgameatlas.com/category/7rV11PKqME/family-game"
|
||||
},
|
||||
{
|
||||
"id": "ctumBZyj5l",
|
||||
"name": "Fan Made",
|
||||
"url": "https://www.boardgameatlas.com/category/ctumBZyj5l/fan-made"
|
||||
},
|
||||
{
|
||||
"id": "ZTneo8TaIO",
|
||||
"name": "Fantasy",
|
||||
"url": "https://www.boardgameatlas.com/category/ZTneo8TaIO/fantasy"
|
||||
},
|
||||
{
|
||||
"id": "Wr8uXcoR9p",
|
||||
"name": "Farming",
|
||||
"url": "https://www.boardgameatlas.com/category/Wr8uXcoR9p/farming"
|
||||
},
|
||||
{
|
||||
"id": "upXZ8vNfNO",
|
||||
"name": "Fighting",
|
||||
"url": "https://www.boardgameatlas.com/category/upXZ8vNfNO/fighting"
|
||||
},
|
||||
{
|
||||
"id": "ELg06sncRX",
|
||||
"name": "Finance",
|
||||
"url": "https://www.boardgameatlas.com/category/ELg06sncRX/finance"
|
||||
},
|
||||
{
|
||||
"id": "YrDuNj8lvr",
|
||||
"name": "Food",
|
||||
"url": "https://www.boardgameatlas.com/category/YrDuNj8lvr/food"
|
||||
},
|
||||
{
|
||||
"id": "JvIs75sWte",
|
||||
"name": "Game System",
|
||||
"url": "https://www.boardgameatlas.com/category/JvIs75sWte/game-system"
|
||||
},
|
||||
{
|
||||
"id": "cQnyClrGPU",
|
||||
"name": "Gamefound",
|
||||
"url": "https://www.boardgameatlas.com/category/cQnyClrGPU/gamefound"
|
||||
},
|
||||
{
|
||||
"id": "Eyuf8PzjDo",
|
||||
"name": "Gulf War",
|
||||
"url": "https://www.boardgameatlas.com/category/Eyuf8PzjDo/gulf-war"
|
||||
},
|
||||
{
|
||||
"id": "KzEQIwIub7",
|
||||
"name": "Historic",
|
||||
"url": "https://www.boardgameatlas.com/category/KzEQIwIub7/historic"
|
||||
},
|
||||
{
|
||||
"id": "cAIkk5aLdQ",
|
||||
"name": "Horror",
|
||||
"url": "https://www.boardgameatlas.com/category/cAIkk5aLdQ/horror"
|
||||
},
|
||||
{
|
||||
"id": "TYnxiuiI3X",
|
||||
"name": "Humor",
|
||||
"url": "https://www.boardgameatlas.com/category/TYnxiuiI3X/humor"
|
||||
},
|
||||
{
|
||||
"id": "zqFmdU4Fp2",
|
||||
"name": "Industry/Manufacturing",
|
||||
"url": "https://www.boardgameatlas.com/category/zqFmdU4Fp2/industrymanufacturing"
|
||||
},
|
||||
{
|
||||
"id": "rrvd68LjOR",
|
||||
"name": "Kickstarter",
|
||||
"url": "https://www.boardgameatlas.com/category/rrvd68LjOR/kickstarter"
|
||||
},
|
||||
{
|
||||
"id": "3souLOXUqI",
|
||||
"name": "Korean War",
|
||||
"url": "https://www.boardgameatlas.com/category/3souLOXUqI/korean-war"
|
||||
},
|
||||
{
|
||||
"id": "AGKGd3txp9",
|
||||
"name": "Law",
|
||||
"url": "https://www.boardgameatlas.com/category/AGKGd3txp9/law"
|
||||
},
|
||||
{
|
||||
"id": "XeYUw9159M",
|
||||
"name": "Legacy",
|
||||
"url": "https://www.boardgameatlas.com/category/XeYUw9159M/legacy"
|
||||
},
|
||||
{
|
||||
"id": "HZ7kUiqEbs",
|
||||
"name": "Letters",
|
||||
"url": "https://www.boardgameatlas.com/category/HZ7kUiqEbs/letters"
|
||||
},
|
||||
{
|
||||
"id": "GCwXmvBCvA",
|
||||
"name": "Mad Scientist",
|
||||
"url": "https://www.boardgameatlas.com/category/GCwXmvBCvA/mad-scientist"
|
||||
},
|
||||
{
|
||||
"id": "pIMmuVYnQp",
|
||||
"name": "Mafia",
|
||||
"url": "https://www.boardgameatlas.com/category/pIMmuVYnQp/mafia"
|
||||
},
|
||||
{
|
||||
"id": "POlqwScVxD",
|
||||
"name": "Math",
|
||||
"url": "https://www.boardgameatlas.com/category/POlqwScVxD/math"
|
||||
},
|
||||
{
|
||||
"id": "ZhlfIPxYsw",
|
||||
"name": "Mature / Adult",
|
||||
"url": "https://www.boardgameatlas.com/category/ZhlfIPxYsw/mature--adult"
|
||||
},
|
||||
{
|
||||
"id": "ruQAhyLfum",
|
||||
"name": "Maze",
|
||||
"url": "https://www.boardgameatlas.com/category/ruQAhyLfum/maze"
|
||||
},
|
||||
{
|
||||
"id": "AeWXMxbm91",
|
||||
"name": "Medical",
|
||||
"url": "https://www.boardgameatlas.com/category/AeWXMxbm91/medical"
|
||||
},
|
||||
{
|
||||
"id": "QAYkTHK1Dd",
|
||||
"name": "Medieval",
|
||||
"url": "https://www.boardgameatlas.com/category/QAYkTHK1Dd/medieval"
|
||||
},
|
||||
{
|
||||
"id": "AujCle9cUq",
|
||||
"name": "Memory",
|
||||
"url": "https://www.boardgameatlas.com/category/AujCle9cUq/memory"
|
||||
},
|
||||
{
|
||||
"id": "Cc10AY9UX5",
|
||||
"name": "Mental Health",
|
||||
"url": "https://www.boardgameatlas.com/category/Cc10AY9UX5/mental-health"
|
||||
},
|
||||
{
|
||||
"id": "FC6ElKI9tk",
|
||||
"name": "Miniatures",
|
||||
"url": "https://www.boardgameatlas.com/category/FC6ElKI9tk/miniatures"
|
||||
},
|
||||
{
|
||||
"id": "L6NUwNdblq",
|
||||
"name": "Modern Warfare",
|
||||
"url": "https://www.boardgameatlas.com/category/L6NUwNdblq/modern-warfare"
|
||||
},
|
||||
{
|
||||
"id": "Sod2YBWMKi",
|
||||
"name": "Movies / TV / Radio theme",
|
||||
"url": "https://www.boardgameatlas.com/category/Sod2YBWMKi/movies--tv--radio-theme"
|
||||
},
|
||||
{
|
||||
"id": "1e709CZ42V",
|
||||
"name": "Murder",
|
||||
"url": "https://www.boardgameatlas.com/category/1e709CZ42V/murder"
|
||||
},
|
||||
{
|
||||
"id": "Kk70K0524Z",
|
||||
"name": "Murder/Mystery",
|
||||
"url": "https://www.boardgameatlas.com/category/Kk70K0524Z/murdermystery"
|
||||
},
|
||||
{
|
||||
"id": "herNFAxMdz",
|
||||
"name": "Music",
|
||||
"url": "https://www.boardgameatlas.com/category/herNFAxMdz/music"
|
||||
},
|
||||
{
|
||||
"id": "BBZb2d0ePt",
|
||||
"name": "Mystery",
|
||||
"url": "https://www.boardgameatlas.com/category/BBZb2d0ePt/mystery"
|
||||
},
|
||||
{
|
||||
"id": "MHkqIVxwtx",
|
||||
"name": "Mythology",
|
||||
"url": "https://www.boardgameatlas.com/category/MHkqIVxwtx/mythology"
|
||||
},
|
||||
{
|
||||
"id": "IpcJzp0TVC",
|
||||
"name": "Napoleonic",
|
||||
"url": "https://www.boardgameatlas.com/category/IpcJzp0TVC/napoleonic"
|
||||
},
|
||||
{
|
||||
"id": "o5dH2ssbuu",
|
||||
"name": "Nature",
|
||||
"url": "https://www.boardgameatlas.com/category/o5dH2ssbuu/nature"
|
||||
},
|
||||
{
|
||||
"id": "vqZ5XzGWQD",
|
||||
"name": "Nautical",
|
||||
"url": "https://www.boardgameatlas.com/category/vqZ5XzGWQD/nautical"
|
||||
},
|
||||
{
|
||||
"id": "jZEDOpx07e",
|
||||
"name": "Negotiation",
|
||||
"url": "https://www.boardgameatlas.com/category/jZEDOpx07e/negotiation"
|
||||
},
|
||||
{
|
||||
"id": "rtslXnT90O",
|
||||
"name": "Ninjas",
|
||||
"url": "https://www.boardgameatlas.com/category/rtslXnT90O/ninjas"
|
||||
},
|
||||
{
|
||||
"id": "dO9HVl2TW7",
|
||||
"name": "Novel-based",
|
||||
"url": "https://www.boardgameatlas.com/category/dO9HVl2TW7/novelbased"
|
||||
},
|
||||
{
|
||||
"id": "9r6mtYVCAZ",
|
||||
"name": "Number",
|
||||
"url": "https://www.boardgameatlas.com/category/9r6mtYVCAZ/number"
|
||||
},
|
||||
{
|
||||
"id": "i9YgN1u0Al",
|
||||
"name": "Objectives",
|
||||
"url": "https://www.boardgameatlas.com/category/i9YgN1u0Al/objectives"
|
||||
},
|
||||
{
|
||||
"id": "TCYEfWLB8c",
|
||||
"name": "One vs Many",
|
||||
"url": "https://www.boardgameatlas.com/category/TCYEfWLB8c/one-vs-many"
|
||||
},
|
||||
{
|
||||
"id": "SE2CndXU4V",
|
||||
"name": "Paranormal",
|
||||
"url": "https://www.boardgameatlas.com/category/SE2CndXU4V/paranormal"
|
||||
},
|
||||
{
|
||||
"id": "X8J7RM6dxX",
|
||||
"name": "Party Game",
|
||||
"url": "https://www.boardgameatlas.com/category/X8J7RM6dxX/party-game"
|
||||
},
|
||||
{
|
||||
"id": "B70QTH9k5o",
|
||||
"name": "Path building",
|
||||
"url": "https://www.boardgameatlas.com/category/B70QTH9k5o/path-building"
|
||||
},
|
||||
{
|
||||
"id": "UL3b9M86gA",
|
||||
"name": "Pike and Shot",
|
||||
"url": "https://www.boardgameatlas.com/category/UL3b9M86gA/pike-and-shot"
|
||||
},
|
||||
{
|
||||
"id": "9EIayX6n5a",
|
||||
"name": "Pirates",
|
||||
"url": "https://www.boardgameatlas.com/category/9EIayX6n5a/pirates"
|
||||
},
|
||||
{
|
||||
"id": "vRbkg1W0AB",
|
||||
"name": "Plants/Gardening",
|
||||
"url": "https://www.boardgameatlas.com/category/vRbkg1W0AB/plants-gardening"
|
||||
},
|
||||
{
|
||||
"id": "3EjfGzCuWE",
|
||||
"name": "Point Salad",
|
||||
"url": "https://www.boardgameatlas.com/category/3EjfGzCuWE/point-salad"
|
||||
},
|
||||
{
|
||||
"id": "TKQncFVX74",
|
||||
"name": "Political",
|
||||
"url": "https://www.boardgameatlas.com/category/TKQncFVX74/political"
|
||||
},
|
||||
{
|
||||
"id": "8Z7nWG2kOw",
|
||||
"name": "Post-Apocalyptic",
|
||||
"url": "https://www.boardgameatlas.com/category/8Z7nWG2kOw/postapocalyptic"
|
||||
},
|
||||
{
|
||||
"id": "5APB1MWk6X",
|
||||
"name": "Post-Napoleonic",
|
||||
"url": "https://www.boardgameatlas.com/category/5APB1MWk6X/postnapoleonic"
|
||||
},
|
||||
{
|
||||
"id": "YyszHun1HP",
|
||||
"name": "Prehistoric",
|
||||
"url": "https://www.boardgameatlas.com/category/YyszHun1HP/prehistoric"
|
||||
},
|
||||
{
|
||||
"id": "ov6sEmlkiC",
|
||||
"name": "Print & Play",
|
||||
"url": "https://www.boardgameatlas.com/category/ov6sEmlkiC/print--play"
|
||||
},
|
||||
{
|
||||
"id": "dAyk5NtNTV",
|
||||
"name": "Prison Escape",
|
||||
"url": "https://www.boardgameatlas.com/category/dAyk5NtNTV/prison-escape"
|
||||
},
|
||||
{
|
||||
"id": "AlrfWcR5aT",
|
||||
"name": "Promo",
|
||||
"url": "https://www.boardgameatlas.com/category/AlrfWcR5aT/promo"
|
||||
},
|
||||
{
|
||||
"id": "WVMOS3s2pb",
|
||||
"name": "Puzzle",
|
||||
"url": "https://www.boardgameatlas.com/category/WVMOS3s2pb/puzzle"
|
||||
},
|
||||
{
|
||||
"id": "2Gu62aKdma",
|
||||
"name": "RPG",
|
||||
"url": "https://www.boardgameatlas.com/category/2Gu62aKdma/rpg"
|
||||
},
|
||||
{
|
||||
"id": "tQGLgwdbYH",
|
||||
"name": "Racing",
|
||||
"url": "https://www.boardgameatlas.com/category/tQGLgwdbYH/racing"
|
||||
},
|
||||
{
|
||||
"id": "PzWI2uaif0",
|
||||
"name": "Real-time",
|
||||
"url": "https://www.boardgameatlas.com/category/PzWI2uaif0/realtime"
|
||||
},
|
||||
{
|
||||
"id": "DRqeVkXWqX",
|
||||
"name": "Religious",
|
||||
"url": "https://www.boardgameatlas.com/category/DRqeVkXWqX/religious"
|
||||
},
|
||||
{
|
||||
"id": "nuHYRFmMjU",
|
||||
"name": "Renaissance",
|
||||
"url": "https://www.boardgameatlas.com/category/nuHYRFmMjU/renaissance"
|
||||
},
|
||||
{
|
||||
"id": "zyj9ZK3mHB",
|
||||
"name": "Resource Management",
|
||||
"url": "https://www.boardgameatlas.com/category/zyj9ZK3mHB/resource-management"
|
||||
},
|
||||
{
|
||||
"id": "oojGpMQQ2l",
|
||||
"name": "Robots",
|
||||
"url": "https://www.boardgameatlas.com/category/oojGpMQQ2l/robots"
|
||||
},
|
||||
{
|
||||
"id": "KSBdPfxs6F",
|
||||
"name": "Roman Empire",
|
||||
"url": "https://www.boardgameatlas.com/category/KSBdPfxs6F/roman-empire"
|
||||
},
|
||||
{
|
||||
"id": "E5rYwP0Ybr",
|
||||
"name": "Romance",
|
||||
"url": "https://www.boardgameatlas.com/category/E5rYwP0Ybr/romance"
|
||||
},
|
||||
{
|
||||
"id": "SzUZdSjCN2",
|
||||
"name": "Route Building",
|
||||
"url": "https://www.boardgameatlas.com/category/SzUZdSjCN2/route-building"
|
||||
},
|
||||
{
|
||||
"id": "UH3xvKjaCQ",
|
||||
"name": "Safari",
|
||||
"url": "https://www.boardgameatlas.com/category/UH3xvKjaCQ/safari"
|
||||
},
|
||||
{
|
||||
"id": "2m6sfYeeGI",
|
||||
"name": "Sandbox",
|
||||
"url": "https://www.boardgameatlas.com/category/2m6sfYeeGI/sandbox"
|
||||
},
|
||||
{
|
||||
"id": "3B3QpKvXD3",
|
||||
"name": "Sci-Fi",
|
||||
"url": "https://www.boardgameatlas.com/category/3B3QpKvXD3/scifi"
|
||||
},
|
||||
{
|
||||
"id": "UjUO40mmeL",
|
||||
"name": "Screen Printed Meeples",
|
||||
"url": "https://www.boardgameatlas.com/category/UjUO40mmeL/screen-printed-meeples"
|
||||
},
|
||||
{
|
||||
"id": "WCMkyAqVlf",
|
||||
"name": "Semi-Cooperative",
|
||||
"url": "https://www.boardgameatlas.com/category/WCMkyAqVlf/semicooperative"
|
||||
},
|
||||
{
|
||||
"id": "VzyslQJGrG",
|
||||
"name": "Solo / Solitaire",
|
||||
"url": "https://www.boardgameatlas.com/category/VzyslQJGrG/solo--solitaire"
|
||||
},
|
||||
{
|
||||
"id": "0MdRqhkNpw",
|
||||
"name": "Space Exploration",
|
||||
"url": "https://www.boardgameatlas.com/category/0MdRqhkNpw/space-exploration"
|
||||
},
|
||||
{
|
||||
"id": "Hc6vcim5DS",
|
||||
"name": "Spies/Secret Agents",
|
||||
"url": "https://www.boardgameatlas.com/category/Hc6vcim5DS/spiessecret-agents"
|
||||
},
|
||||
{
|
||||
"id": "hShsL2DktG",
|
||||
"name": "Sports",
|
||||
"url": "https://www.boardgameatlas.com/category/hShsL2DktG/sports"
|
||||
},
|
||||
{
|
||||
"id": "4hZlqoitAY",
|
||||
"name": "Steampunk",
|
||||
"url": "https://www.boardgameatlas.com/category/4hZlqoitAY/steampunk"
|
||||
},
|
||||
{
|
||||
"id": "jGXefW0E2i",
|
||||
"name": "Storytelling",
|
||||
"url": "https://www.boardgameatlas.com/category/jGXefW0E2i/storytelling"
|
||||
},
|
||||
{
|
||||
"id": "alkjFhA58S",
|
||||
"name": "Strategic-Level",
|
||||
"url": "https://www.boardgameatlas.com/category/alkjFhA58S/strategic-level"
|
||||
},
|
||||
{
|
||||
"id": "loGUMKV9K9",
|
||||
"name": "Tactical-Level",
|
||||
"url": "https://www.boardgameatlas.com/category/loGUMKV9K9/tactical-level"
|
||||
},
|
||||
{
|
||||
"id": "knFtS8LntM",
|
||||
"name": "Technology",
|
||||
"url": "https://www.boardgameatlas.com/category/knFtS8LntM/technology"
|
||||
},
|
||||
{
|
||||
"id": "buDTYyPw4D",
|
||||
"name": "Territory Building",
|
||||
"url": "https://www.boardgameatlas.com/category/buDTYyPw4D/territory-building"
|
||||
},
|
||||
{
|
||||
"id": "XN9Byxf3MK",
|
||||
"name": "Theme Park",
|
||||
"url": "https://www.boardgameatlas.com/category/XN9Byxf3MK/theme-park"
|
||||
},
|
||||
{
|
||||
"id": "BHxvD7ZjfA",
|
||||
"name": "Tile Placement",
|
||||
"url": "https://www.boardgameatlas.com/category/BHxvD7ZjfA/tile-placement"
|
||||
},
|
||||
{
|
||||
"id": "L18sB21wyi",
|
||||
"name": "Tile drafting",
|
||||
"url": "https://www.boardgameatlas.com/category/L18sB21wyi/tile-drafting"
|
||||
},
|
||||
{
|
||||
"id": "2KVQJ2k60k",
|
||||
"name": "Time Travel",
|
||||
"url": "https://www.boardgameatlas.com/category/2KVQJ2k60k/time-travel"
|
||||
},
|
||||
{
|
||||
"id": "JwHcKqxh33",
|
||||
"name": "Trains",
|
||||
"url": "https://www.boardgameatlas.com/category/JwHcKqxh33/trains"
|
||||
},
|
||||
{
|
||||
"id": "CWYOF9xu7O",
|
||||
"name": "Transportation",
|
||||
"url": "https://www.boardgameatlas.com/category/CWYOF9xu7O/transportation"
|
||||
},
|
||||
{
|
||||
"id": "TR4CiP8Huj",
|
||||
"name": "Travel",
|
||||
"url": "https://www.boardgameatlas.com/category/TR4CiP8Huj/travel"
|
||||
},
|
||||
{
|
||||
"id": "NYSQmZLSOS",
|
||||
"name": "Treasure Hunt",
|
||||
"url": "https://www.boardgameatlas.com/category/NYSQmZLSOS/treasure-hunt"
|
||||
},
|
||||
{
|
||||
"id": "YGHGDjahKY",
|
||||
"name": "Trivia",
|
||||
"url": "https://www.boardgameatlas.com/category/YGHGDjahKY/trivia"
|
||||
},
|
||||
{
|
||||
"id": "a2eMKxxlVW",
|
||||
"name": "Two player Only Game",
|
||||
"url": "https://www.boardgameatlas.com/category/a2eMKxxlVW/two-player-only-game"
|
||||
},
|
||||
{
|
||||
"id": "oHSL7C6i9y",
|
||||
"name": "Undersea",
|
||||
"url": "https://www.boardgameatlas.com/category/oHSL7C6i9y/undersea"
|
||||
},
|
||||
{
|
||||
"id": "djokexoK0U",
|
||||
"name": "Video Game Theme",
|
||||
"url": "https://www.boardgameatlas.com/category/djokexoK0U/video-game-theme"
|
||||
},
|
||||
{
|
||||
"id": "jS8aA9kDFW",
|
||||
"name": "Vietnam War",
|
||||
"url": "https://www.boardgameatlas.com/category/jS8aA9kDFW/vietnam-war"
|
||||
},
|
||||
{
|
||||
"id": "muDQil3Mkb",
|
||||
"name": "Viking",
|
||||
"url": "https://www.boardgameatlas.com/category/muDQil3Mkb/viking"
|
||||
},
|
||||
{
|
||||
"id": "jX8asGGR6o",
|
||||
"name": "Wargame",
|
||||
"url": "https://www.boardgameatlas.com/category/jX8asGGR6o/wargame"
|
||||
},
|
||||
{
|
||||
"id": "uJgSEPT6zE",
|
||||
"name": "Werewolves",
|
||||
"url": "https://www.boardgameatlas.com/category/uJgSEPT6zE/werewolves"
|
||||
},
|
||||
{
|
||||
"id": "mw3nPNWqs0",
|
||||
"name": "Western",
|
||||
"url": "https://www.boardgameatlas.com/category/mw3nPNWqs0/western"
|
||||
},
|
||||
{
|
||||
"id": "rHvAx4hH2f",
|
||||
"name": "Word Game",
|
||||
"url": "https://www.boardgameatlas.com/category/rHvAx4hH2f/word-game"
|
||||
},
|
||||
{
|
||||
"id": "wTLJSVEbm6",
|
||||
"name": "World War I",
|
||||
"url": "https://www.boardgameatlas.com/category/wTLJSVEbm6/world-war-i"
|
||||
},
|
||||
{
|
||||
"id": "fl3TogdUzX",
|
||||
"name": "World War II",
|
||||
"url": "https://www.boardgameatlas.com/category/fl3TogdUzX/world-war-ii"
|
||||
},
|
||||
{
|
||||
"id": "OlkGBmu4Va",
|
||||
"name": "World War III",
|
||||
"url": "https://www.boardgameatlas.com/category/OlkGBmu4Va/world-war-iii"
|
||||
},
|
||||
{
|
||||
"id": "djZWzjCZhM",
|
||||
"name": "Writing / Dry Erase",
|
||||
"url": "https://www.boardgameatlas.com/category/djZWzjCZhM/writing--dry-erase"
|
||||
},
|
||||
{
|
||||
"id": "30B899LSDs",
|
||||
"name": "Zodiac",
|
||||
"url": "https://www.boardgameatlas.com/category/30B899LSDs/zodiac"
|
||||
},
|
||||
{
|
||||
"id": "FmGV9rVu1c",
|
||||
"name": "Zombies",
|
||||
"url": "https://www.boardgameatlas.com/category/FmGV9rVu1c/zombies"
|
||||
},
|
||||
{
|
||||
"id": "B1N2QOByCl",
|
||||
"name": "Zone Control",
|
||||
"url": "https://www.boardgameatlas.com/category/B1N2QOByCl/zone-control"
|
||||
},
|
||||
{
|
||||
"id": "0q1ZbW8FjH",
|
||||
"name": "treasure hunt",
|
||||
"url": "https://www.boardgameatlas.com/category/0q1ZbW8FjH/treasure-hunt"
|
||||
}
|
||||
]
|
||||
}
|
||||
1129
prisma/mechanics.json
Normal file
1129
prisma/mechanics.json
Normal file
File diff suppressed because it is too large
Load diff
|
|
@ -126,39 +126,37 @@ model WishlistItem {
|
|||
}
|
||||
|
||||
model Game {
|
||||
id String @id @default(cuid())
|
||||
name String
|
||||
slug String
|
||||
description String?
|
||||
year_published Int?
|
||||
min_players Int?
|
||||
max_players Int?
|
||||
min_playtime Int?
|
||||
max_playtime Int?
|
||||
min_age Int?
|
||||
image_url String?
|
||||
thumb_url String?
|
||||
url String?
|
||||
rules_url String?
|
||||
weight_amount Float?
|
||||
weight_units String?
|
||||
bggId String?
|
||||
bggUrl String?
|
||||
primary_publisher_id String
|
||||
primary_publisher Publisher? @relation("PrimaryPublishers", references: [id], fields: [primary_publisher_id])
|
||||
categories Category[]
|
||||
mechanics Mechanic[]
|
||||
designers Designer[]
|
||||
publishers Publisher[]
|
||||
artists Artist[]
|
||||
names GameName[]
|
||||
expansions Expansion[]
|
||||
collection_items CollectionItem[]
|
||||
wishlist_items WishlistItem[]
|
||||
external_id String @unique
|
||||
created_at DateTime @default(now()) @db.Timestamp(6)
|
||||
updated_at DateTime @updatedAt @db.Timestamp(6)
|
||||
id String @id @default(cuid())
|
||||
name String
|
||||
slug String
|
||||
description String?
|
||||
description_preview String?
|
||||
year_published Int?
|
||||
min_players Int?
|
||||
max_players Int?
|
||||
min_playtime Int?
|
||||
max_playtime Int?
|
||||
min_age Int?
|
||||
image_url String?
|
||||
thumb_url String?
|
||||
url String?
|
||||
rules_url String?
|
||||
primary_publisher_id String?
|
||||
primary_publisher Publisher? @relation("PrimaryPublishers", references: [id], fields: [primary_publisher_id])
|
||||
categories Category[]
|
||||
mechanics Mechanic[]
|
||||
designers Designer[]
|
||||
publishers Publisher[]
|
||||
artists Artist[]
|
||||
names GameName[]
|
||||
expansions Expansion[]
|
||||
collection_items CollectionItem[]
|
||||
wishlist_items WishlistItem[]
|
||||
external_id String @unique
|
||||
created_at DateTime @default(now()) @db.Timestamp(6)
|
||||
updated_at DateTime @updatedAt @db.Timestamp(6)
|
||||
|
||||
@@fulltext([name])
|
||||
@@index([primary_publisher_id])
|
||||
@@map("games")
|
||||
}
|
||||
|
|
@ -180,10 +178,10 @@ model Publisher {
|
|||
name String
|
||||
games Game[]
|
||||
primary_publisher Game[] @relation("PrimaryPublishers")
|
||||
external_id String @unique
|
||||
created_at DateTime @default(now()) @db.Timestamp(6)
|
||||
updated_at DateTime @updatedAt @db.Timestamp(6)
|
||||
|
||||
@@fulltext([name])
|
||||
@@map("publishers")
|
||||
}
|
||||
|
||||
|
|
@ -196,17 +194,20 @@ model Category {
|
|||
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 String @unique
|
||||
created_at DateTime @default(now()) @db.Timestamp(6)
|
||||
updated_at DateTime @updatedAt @db.Timestamp(6)
|
||||
|
||||
@@fulltext([name])
|
||||
@@map("mechanics")
|
||||
}
|
||||
|
||||
|
|
@ -214,10 +215,10 @@ model Designer {
|
|||
id String @id @default(cuid())
|
||||
name String
|
||||
games Game[]
|
||||
external_id String @unique
|
||||
created_at DateTime @default(now()) @db.Timestamp(6)
|
||||
updated_at DateTime @updatedAt @db.Timestamp(6)
|
||||
|
||||
@@fulltext([name])
|
||||
@@map("designers")
|
||||
}
|
||||
|
||||
|
|
@ -225,10 +226,10 @@ model Artist {
|
|||
id String @id @default(cuid())
|
||||
name String
|
||||
games Game[]
|
||||
external_id String @unique
|
||||
created_at DateTime @default(now()) @db.Timestamp(6)
|
||||
updated_at DateTime @updatedAt @db.Timestamp(6)
|
||||
|
||||
@@fulltext([name])
|
||||
@@map("artists")
|
||||
}
|
||||
|
||||
|
|
@ -242,6 +243,7 @@ model Expansion {
|
|||
created_at DateTime @default(now()) @db.Timestamp(6)
|
||||
updated_at DateTime @updatedAt @db.Timestamp(6)
|
||||
|
||||
@@fulltext([name])
|
||||
@@index([base_game_id])
|
||||
@@map("expansions")
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,11 +1,14 @@
|
|||
import { PrismaClient } from '@prisma/client';
|
||||
// import userData from '../src/lib/data.json' assert { type: 'json' };
|
||||
import kebabCase from 'just-kebab-case';
|
||||
import categories from './categories.json' assert { type: 'json' };
|
||||
import mechanics from './mechanics.json' assert { type: 'json' };
|
||||
|
||||
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({
|
||||
|
|
@ -16,6 +19,36 @@ async function main() {
|
|||
console.log('Roles already exist. No action taken.');
|
||||
}
|
||||
|
||||
console.log('Creating Mechanics ...');
|
||||
const existingMechanics = await prisma.mechanic.findMany();
|
||||
if (existingMechanics.length === 0) {
|
||||
for (const mechanic of mechanics.mechanics) {
|
||||
await prisma.mechanic.create({
|
||||
data: {
|
||||
name: mechanic.name,
|
||||
external_id: mechanic.id,
|
||||
slug: kebabCase(mechanic.name)
|
||||
}
|
||||
});
|
||||
}
|
||||
console.log('Mechanics created.');
|
||||
}
|
||||
|
||||
console.log('Creating Categories ...');
|
||||
const existingCategories = await prisma.category.findMany();
|
||||
if (existingCategories.length === 0) {
|
||||
for (const category of categories.categories) {
|
||||
await prisma.category.create({
|
||||
data: {
|
||||
name: category.name,
|
||||
external_id: category.id,
|
||||
slug: kebabCase(category.name)
|
||||
}
|
||||
});
|
||||
}
|
||||
console.log('Categories created.');
|
||||
}
|
||||
|
||||
// for (const p of userData) {
|
||||
// const user = await prisma.user.create({
|
||||
// data: {
|
||||
|
|
|
|||
Loading…
Reference in a new issue