mirror of
https://github.com/BradNut/boredgame
synced 2025-09-08 17:40:22 +00:00
Adding not null to games columns, fixing TOTP form, and fixing TOTP verifying.
This commit is contained in:
parent
2609c28619
commit
36aa0636a3
13 changed files with 4814 additions and 223 deletions
12
package.json
12
package.json
|
|
@ -32,11 +32,11 @@
|
||||||
"@types/cookie": "^0.6.0",
|
"@types/cookie": "^0.6.0",
|
||||||
"@types/node": "^20.14.2",
|
"@types/node": "^20.14.2",
|
||||||
"@types/pg": "^8.11.6",
|
"@types/pg": "^8.11.6",
|
||||||
"@typescript-eslint/eslint-plugin": "^7.8.0",
|
"@typescript-eslint/eslint-plugin": "^7.12.0",
|
||||||
"@typescript-eslint/parser": "^7.8.0",
|
"@typescript-eslint/parser": "^7.12.0",
|
||||||
"autoprefixer": "^10.4.19",
|
"autoprefixer": "^10.4.19",
|
||||||
"dotenv": "^16.4.5",
|
"dotenv": "^16.4.5",
|
||||||
"drizzle-kit": "^0.22.4",
|
"drizzle-kit": "^0.22.6",
|
||||||
"eslint": "^8.57.0",
|
"eslint": "^8.57.0",
|
||||||
"eslint-config-prettier": "^9.1.0",
|
"eslint-config-prettier": "^9.1.0",
|
||||||
"eslint-plugin-svelte": "^2.39.0",
|
"eslint-plugin-svelte": "^2.39.0",
|
||||||
|
|
@ -63,9 +63,9 @@
|
||||||
"tailwindcss": "^3.4.4",
|
"tailwindcss": "^3.4.4",
|
||||||
"ts-node": "^10.9.2",
|
"ts-node": "^10.9.2",
|
||||||
"tslib": "^2.6.3",
|
"tslib": "^2.6.3",
|
||||||
"tsx": "^4.12.0",
|
"tsx": "^4.14.1",
|
||||||
"typescript": "^5.4.5",
|
"typescript": "^5.4.5",
|
||||||
"vite": "^5.2.12",
|
"vite": "^5.2.13",
|
||||||
"vitest": "^1.6.0",
|
"vitest": "^1.6.0",
|
||||||
"zod": "^3.23.8"
|
"zod": "^3.23.8"
|
||||||
},
|
},
|
||||||
|
|
@ -90,7 +90,7 @@
|
||||||
"class-variance-authority": "^0.7.0",
|
"class-variance-authority": "^0.7.0",
|
||||||
"clsx": "^2.1.1",
|
"clsx": "^2.1.1",
|
||||||
"cookie": "^0.6.0",
|
"cookie": "^0.6.0",
|
||||||
"drizzle-orm": "^0.31.1",
|
"drizzle-orm": "^0.31.2",
|
||||||
"feather-icons": "^4.29.2",
|
"feather-icons": "^4.29.2",
|
||||||
"formsnap": "^1.0.0",
|
"formsnap": "^1.0.0",
|
||||||
"html-entities": "^2.5.2",
|
"html-entities": "^2.5.2",
|
||||||
|
|
|
||||||
240
pnpm-lock.yaml
240
pnpm-lock.yaml
|
|
@ -31,7 +31,7 @@ importers:
|
||||||
version: 2.2.2
|
version: 2.2.2
|
||||||
'@sveltejs/adapter-vercel':
|
'@sveltejs/adapter-vercel':
|
||||||
specifier: ^5.3.1
|
specifier: ^5.3.1
|
||||||
version: 5.3.1(@sveltejs/kit@2.5.10(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.18)(vite@5.2.12(@types/node@20.14.2)(sass@1.77.4)))(svelte@4.2.18)(vite@5.2.12(@types/node@20.14.2)(sass@1.77.4)))
|
version: 5.3.1(@sveltejs/kit@2.5.10(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.18)(vite@5.2.13(@types/node@20.14.2)(sass@1.77.4)))(svelte@4.2.18)(vite@5.2.13(@types/node@20.14.2)(sass@1.77.4)))
|
||||||
'@types/feather-icons':
|
'@types/feather-icons':
|
||||||
specifier: ^4.29.4
|
specifier: ^4.29.4
|
||||||
version: 4.29.4
|
version: 4.29.4
|
||||||
|
|
@ -54,14 +54,14 @@ importers:
|
||||||
specifier: ^0.6.0
|
specifier: ^0.6.0
|
||||||
version: 0.6.0
|
version: 0.6.0
|
||||||
drizzle-orm:
|
drizzle-orm:
|
||||||
specifier: ^0.31.1
|
specifier: ^0.31.2
|
||||||
version: 0.31.1(@neondatabase/serverless@0.9.3)(@types/pg@8.11.6)(pg@8.12.0)(postgres@3.4.4)
|
version: 0.31.2(@neondatabase/serverless@0.9.3)(@types/pg@8.11.6)(pg@8.12.0)(postgres@3.4.4)
|
||||||
feather-icons:
|
feather-icons:
|
||||||
specifier: ^4.29.2
|
specifier: ^4.29.2
|
||||||
version: 4.29.2
|
version: 4.29.2
|
||||||
formsnap:
|
formsnap:
|
||||||
specifier: ^1.0.0
|
specifier: ^1.0.0
|
||||||
version: 1.0.0(svelte@4.2.18)(sveltekit-superforms@2.14.0(@sveltejs/kit@2.5.10(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.18)(vite@5.2.12(@types/node@20.14.2)(sass@1.77.4)))(svelte@4.2.18)(vite@5.2.12(@types/node@20.14.2)(sass@1.77.4)))(@types/json-schema@7.0.15)(esbuild-runner@2.2.2(esbuild@0.19.12))(esbuild@0.19.12)(svelte@4.2.18))
|
version: 1.0.0(svelte@4.2.18)(sveltekit-superforms@2.14.0(@sveltejs/kit@2.5.10(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.18)(vite@5.2.13(@types/node@20.14.2)(sass@1.77.4)))(svelte@4.2.18)(vite@5.2.13(@types/node@20.14.2)(sass@1.77.4)))(@types/json-schema@7.0.15)(esbuild-runner@2.2.2(esbuild@0.19.12))(esbuild@0.19.12)(svelte@4.2.18))
|
||||||
html-entities:
|
html-entities:
|
||||||
specifier: ^2.5.2
|
specifier: ^2.5.2
|
||||||
version: 2.5.2
|
version: 2.5.2
|
||||||
|
|
@ -134,16 +134,16 @@ importers:
|
||||||
version: 2.6.2
|
version: 2.6.2
|
||||||
'@sveltejs/adapter-auto':
|
'@sveltejs/adapter-auto':
|
||||||
specifier: ^3.2.1
|
specifier: ^3.2.1
|
||||||
version: 3.2.1(@sveltejs/kit@2.5.10(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.18)(vite@5.2.12(@types/node@20.14.2)(sass@1.77.4)))(svelte@4.2.18)(vite@5.2.12(@types/node@20.14.2)(sass@1.77.4)))
|
version: 3.2.1(@sveltejs/kit@2.5.10(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.18)(vite@5.2.13(@types/node@20.14.2)(sass@1.77.4)))(svelte@4.2.18)(vite@5.2.13(@types/node@20.14.2)(sass@1.77.4)))
|
||||||
'@sveltejs/enhanced-img':
|
'@sveltejs/enhanced-img':
|
||||||
specifier: ^0.2.1
|
specifier: ^0.2.1
|
||||||
version: 0.2.1(rollup@4.18.0)(svelte@4.2.18)
|
version: 0.2.1(rollup@4.18.0)(svelte@4.2.18)
|
||||||
'@sveltejs/kit':
|
'@sveltejs/kit':
|
||||||
specifier: ^2.5.10
|
specifier: ^2.5.10
|
||||||
version: 2.5.10(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.18)(vite@5.2.12(@types/node@20.14.2)(sass@1.77.4)))(svelte@4.2.18)(vite@5.2.12(@types/node@20.14.2)(sass@1.77.4))
|
version: 2.5.10(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.18)(vite@5.2.13(@types/node@20.14.2)(sass@1.77.4)))(svelte@4.2.18)(vite@5.2.13(@types/node@20.14.2)(sass@1.77.4))
|
||||||
'@sveltejs/vite-plugin-svelte':
|
'@sveltejs/vite-plugin-svelte':
|
||||||
specifier: ^3.1.1
|
specifier: ^3.1.1
|
||||||
version: 3.1.1(svelte@4.2.18)(vite@5.2.12(@types/node@20.14.2)(sass@1.77.4))
|
version: 3.1.1(svelte@4.2.18)(vite@5.2.13(@types/node@20.14.2)(sass@1.77.4))
|
||||||
'@types/cookie':
|
'@types/cookie':
|
||||||
specifier: ^0.6.0
|
specifier: ^0.6.0
|
||||||
version: 0.6.0
|
version: 0.6.0
|
||||||
|
|
@ -154,11 +154,11 @@ importers:
|
||||||
specifier: ^8.11.6
|
specifier: ^8.11.6
|
||||||
version: 8.11.6
|
version: 8.11.6
|
||||||
'@typescript-eslint/eslint-plugin':
|
'@typescript-eslint/eslint-plugin':
|
||||||
specifier: ^7.8.0
|
specifier: ^7.12.0
|
||||||
version: 7.8.0(@typescript-eslint/parser@7.8.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5)
|
version: 7.12.0(@typescript-eslint/parser@7.12.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5)
|
||||||
'@typescript-eslint/parser':
|
'@typescript-eslint/parser':
|
||||||
specifier: ^7.8.0
|
specifier: ^7.12.0
|
||||||
version: 7.8.0(eslint@8.57.0)(typescript@5.4.5)
|
version: 7.12.0(eslint@8.57.0)(typescript@5.4.5)
|
||||||
autoprefixer:
|
autoprefixer:
|
||||||
specifier: ^10.4.19
|
specifier: ^10.4.19
|
||||||
version: 10.4.19(postcss@8.4.38)
|
version: 10.4.19(postcss@8.4.38)
|
||||||
|
|
@ -166,8 +166,8 @@ importers:
|
||||||
specifier: ^16.4.5
|
specifier: ^16.4.5
|
||||||
version: 16.4.5
|
version: 16.4.5
|
||||||
drizzle-kit:
|
drizzle-kit:
|
||||||
specifier: ^0.22.4
|
specifier: ^0.22.6
|
||||||
version: 0.22.4
|
version: 0.22.6
|
||||||
eslint:
|
eslint:
|
||||||
specifier: ^8.57.0
|
specifier: ^8.57.0
|
||||||
version: 8.57.0
|
version: 8.57.0
|
||||||
|
|
@ -191,7 +191,7 @@ importers:
|
||||||
version: 16.1.0(postcss@8.4.38)
|
version: 16.1.0(postcss@8.4.38)
|
||||||
postcss-load-config:
|
postcss-load-config:
|
||||||
specifier: ^5.1.0
|
specifier: ^5.1.0
|
||||||
version: 5.1.0(jiti@1.21.3)(postcss@8.4.38)(tsx@4.12.0)
|
version: 5.1.0(jiti@1.21.3)(postcss@8.4.38)(tsx@4.14.1)
|
||||||
postcss-preset-env:
|
postcss-preset-env:
|
||||||
specifier: ^9.5.14
|
specifier: ^9.5.14
|
||||||
version: 9.5.14(postcss@8.4.38)
|
version: 9.5.14(postcss@8.4.38)
|
||||||
|
|
@ -215,7 +215,7 @@ importers:
|
||||||
version: 4.2.18
|
version: 4.2.18
|
||||||
svelte-check:
|
svelte-check:
|
||||||
specifier: ^3.8.0
|
specifier: ^3.8.0
|
||||||
version: 3.8.0(postcss-load-config@5.1.0(jiti@1.21.3)(postcss@8.4.38)(tsx@4.12.0))(postcss@8.4.38)(sass@1.77.4)(svelte@4.2.18)
|
version: 3.8.0(postcss-load-config@5.1.0(jiti@1.21.3)(postcss@8.4.38)(tsx@4.14.1))(postcss@8.4.38)(sass@1.77.4)(svelte@4.2.18)
|
||||||
svelte-headless-table:
|
svelte-headless-table:
|
||||||
specifier: ^0.18.2
|
specifier: ^0.18.2
|
||||||
version: 0.18.2(svelte@4.2.18)
|
version: 0.18.2(svelte@4.2.18)
|
||||||
|
|
@ -224,19 +224,19 @@ importers:
|
||||||
version: 3.1.2(svelte@4.2.18)(typescript@5.4.5)
|
version: 3.1.2(svelte@4.2.18)(typescript@5.4.5)
|
||||||
svelte-preprocess:
|
svelte-preprocess:
|
||||||
specifier: ^5.1.4
|
specifier: ^5.1.4
|
||||||
version: 5.1.4(postcss-load-config@5.1.0(jiti@1.21.3)(postcss@8.4.38)(tsx@4.12.0))(postcss@8.4.38)(sass@1.77.4)(svelte@4.2.18)(typescript@5.4.5)
|
version: 5.1.4(postcss-load-config@5.1.0(jiti@1.21.3)(postcss@8.4.38)(tsx@4.14.1))(postcss@8.4.38)(sass@1.77.4)(svelte@4.2.18)(typescript@5.4.5)
|
||||||
svelte-sequential-preprocessor:
|
svelte-sequential-preprocessor:
|
||||||
specifier: ^2.0.1
|
specifier: ^2.0.1
|
||||||
version: 2.0.1
|
version: 2.0.1
|
||||||
sveltekit-flash-message:
|
sveltekit-flash-message:
|
||||||
specifier: ^2.4.4
|
specifier: ^2.4.4
|
||||||
version: 2.4.4(@sveltejs/kit@2.5.10(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.18)(vite@5.2.12(@types/node@20.14.2)(sass@1.77.4)))(svelte@4.2.18)(vite@5.2.12(@types/node@20.14.2)(sass@1.77.4)))(svelte@4.2.18)
|
version: 2.4.4(@sveltejs/kit@2.5.10(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.18)(vite@5.2.13(@types/node@20.14.2)(sass@1.77.4)))(svelte@4.2.18)(vite@5.2.13(@types/node@20.14.2)(sass@1.77.4)))(svelte@4.2.18)
|
||||||
sveltekit-rate-limiter:
|
sveltekit-rate-limiter:
|
||||||
specifier: ^0.5.1
|
specifier: ^0.5.1
|
||||||
version: 0.5.1(@sveltejs/kit@2.5.10(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.18)(vite@5.2.12(@types/node@20.14.2)(sass@1.77.4)))(svelte@4.2.18)(vite@5.2.12(@types/node@20.14.2)(sass@1.77.4)))
|
version: 0.5.1(@sveltejs/kit@2.5.10(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.18)(vite@5.2.13(@types/node@20.14.2)(sass@1.77.4)))(svelte@4.2.18)(vite@5.2.13(@types/node@20.14.2)(sass@1.77.4)))
|
||||||
sveltekit-superforms:
|
sveltekit-superforms:
|
||||||
specifier: ^2.14.0
|
specifier: ^2.14.0
|
||||||
version: 2.14.0(@sveltejs/kit@2.5.10(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.18)(vite@5.2.12(@types/node@20.14.2)(sass@1.77.4)))(svelte@4.2.18)(vite@5.2.12(@types/node@20.14.2)(sass@1.77.4)))(@types/json-schema@7.0.15)(esbuild-runner@2.2.2(esbuild@0.19.12))(esbuild@0.19.12)(svelte@4.2.18)
|
version: 2.14.0(@sveltejs/kit@2.5.10(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.18)(vite@5.2.13(@types/node@20.14.2)(sass@1.77.4)))(svelte@4.2.18)(vite@5.2.13(@types/node@20.14.2)(sass@1.77.4)))(@types/json-schema@7.0.15)(esbuild-runner@2.2.2(esbuild@0.19.12))(esbuild@0.19.12)(svelte@4.2.18)
|
||||||
tailwindcss:
|
tailwindcss:
|
||||||
specifier: ^3.4.4
|
specifier: ^3.4.4
|
||||||
version: 3.4.4(ts-node@10.9.2(@types/node@20.14.2)(typescript@5.4.5))
|
version: 3.4.4(ts-node@10.9.2(@types/node@20.14.2)(typescript@5.4.5))
|
||||||
|
|
@ -247,14 +247,14 @@ importers:
|
||||||
specifier: ^2.6.3
|
specifier: ^2.6.3
|
||||||
version: 2.6.3
|
version: 2.6.3
|
||||||
tsx:
|
tsx:
|
||||||
specifier: ^4.12.0
|
specifier: ^4.14.1
|
||||||
version: 4.12.0
|
version: 4.14.1
|
||||||
typescript:
|
typescript:
|
||||||
specifier: ^5.4.5
|
specifier: ^5.4.5
|
||||||
version: 5.4.5
|
version: 5.4.5
|
||||||
vite:
|
vite:
|
||||||
specifier: ^5.2.12
|
specifier: ^5.2.13
|
||||||
version: 5.2.12(@types/node@20.14.2)(sass@1.77.4)
|
version: 5.2.13(@types/node@20.14.2)(sass@1.77.4)
|
||||||
vitest:
|
vitest:
|
||||||
specifier: ^1.6.0
|
specifier: ^1.6.0
|
||||||
version: 1.6.0(@types/node@20.14.2)(sass@1.77.4)
|
version: 1.6.0(@types/node@20.14.2)(sass@1.77.4)
|
||||||
|
|
@ -1763,14 +1763,11 @@ packages:
|
||||||
'@types/pug@2.0.10':
|
'@types/pug@2.0.10':
|
||||||
resolution: {integrity: sha512-Sk/uYFOBAB7mb74XcpizmH0KOR2Pv3D2Hmrh1Dmy5BmK3MpdSa5kqZcg6EKBdklU0bFXX9gCfzvpnyUehrPIuA==}
|
resolution: {integrity: sha512-Sk/uYFOBAB7mb74XcpizmH0KOR2Pv3D2Hmrh1Dmy5BmK3MpdSa5kqZcg6EKBdklU0bFXX9gCfzvpnyUehrPIuA==}
|
||||||
|
|
||||||
'@types/semver@7.5.8':
|
|
||||||
resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==}
|
|
||||||
|
|
||||||
'@types/validator@13.11.9':
|
'@types/validator@13.11.9':
|
||||||
resolution: {integrity: sha512-FCTsikRozryfayPuiI46QzH3fnrOoctTjvOYZkho9BTFLCOZ2rgZJHMOVgCOfttjPJcgOx52EpkY0CMfy87MIw==}
|
resolution: {integrity: sha512-FCTsikRozryfayPuiI46QzH3fnrOoctTjvOYZkho9BTFLCOZ2rgZJHMOVgCOfttjPJcgOx52EpkY0CMfy87MIw==}
|
||||||
|
|
||||||
'@typescript-eslint/eslint-plugin@7.8.0':
|
'@typescript-eslint/eslint-plugin@7.12.0':
|
||||||
resolution: {integrity: sha512-gFTT+ezJmkwutUPmB0skOj3GZJtlEGnlssems4AjkVweUPGj7jRwwqg0Hhg7++kPGJqKtTYx+R05Ftww372aIg==}
|
resolution: {integrity: sha512-7F91fcbuDf/d3S8o21+r3ZncGIke/+eWk0EpO21LXhDfLahriZF9CGj4fbAetEjlaBdjdSm9a6VeXbpbT6Z40Q==}
|
||||||
engines: {node: ^18.18.0 || >=20.0.0}
|
engines: {node: ^18.18.0 || >=20.0.0}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
'@typescript-eslint/parser': ^7.0.0
|
'@typescript-eslint/parser': ^7.0.0
|
||||||
|
|
@ -1780,8 +1777,8 @@ packages:
|
||||||
typescript:
|
typescript:
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@typescript-eslint/parser@7.8.0':
|
'@typescript-eslint/parser@7.12.0':
|
||||||
resolution: {integrity: sha512-KgKQly1pv0l4ltcftP59uQZCi4HUYswCLbTqVZEJu7uLX8CTLyswqMLqLN+2QFz4jCptqWVV4SB7vdxcH2+0kQ==}
|
resolution: {integrity: sha512-dm/J2UDY3oV3TKius2OUZIFHsomQmpHtsV0FTh1WO8EKgHLQ1QCADUqscPgTpU+ih1e21FQSRjXckHn3txn6kQ==}
|
||||||
engines: {node: ^18.18.0 || >=20.0.0}
|
engines: {node: ^18.18.0 || >=20.0.0}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
eslint: ^8.56.0
|
eslint: ^8.56.0
|
||||||
|
|
@ -1790,12 +1787,12 @@ packages:
|
||||||
typescript:
|
typescript:
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@typescript-eslint/scope-manager@7.8.0':
|
'@typescript-eslint/scope-manager@7.12.0':
|
||||||
resolution: {integrity: sha512-viEmZ1LmwsGcnr85gIq+FCYI7nO90DVbE37/ll51hjv9aG+YZMb4WDE2fyWpUR4O/UrhGRpYXK/XajcGTk2B8g==}
|
resolution: {integrity: sha512-itF1pTnN6F3unPak+kutH9raIkL3lhH1YRPGgt7QQOh43DQKVJXmWkpb+vpc/TiDHs6RSd9CTbDsc/Y+Ygq7kg==}
|
||||||
engines: {node: ^18.18.0 || >=20.0.0}
|
engines: {node: ^18.18.0 || >=20.0.0}
|
||||||
|
|
||||||
'@typescript-eslint/type-utils@7.8.0':
|
'@typescript-eslint/type-utils@7.12.0':
|
||||||
resolution: {integrity: sha512-H70R3AefQDQpz9mGv13Uhi121FNMh+WEaRqcXTX09YEDky21km4dV1ZXJIp8QjXc4ZaVkXVdohvWDzbnbHDS+A==}
|
resolution: {integrity: sha512-lib96tyRtMhLxwauDWUp/uW3FMhLA6D0rJ8T7HmH7x23Gk1Gwwu8UZ94NMXBvOELn6flSPiBrCKlehkiXyaqwA==}
|
||||||
engines: {node: ^18.18.0 || >=20.0.0}
|
engines: {node: ^18.18.0 || >=20.0.0}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
eslint: ^8.56.0
|
eslint: ^8.56.0
|
||||||
|
|
@ -1804,12 +1801,12 @@ packages:
|
||||||
typescript:
|
typescript:
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@typescript-eslint/types@7.8.0':
|
'@typescript-eslint/types@7.12.0':
|
||||||
resolution: {integrity: sha512-wf0peJ+ZGlcH+2ZS23aJbOv+ztjeeP8uQ9GgwMJGVLx/Nj9CJt17GWgWWoSmoRVKAX2X+7fzEnAjxdvK2gqCLw==}
|
resolution: {integrity: sha512-o+0Te6eWp2ppKY3mLCU+YA9pVJxhUJE15FV7kxuD9jgwIAa+w/ycGJBMrYDTpVGUM/tgpa9SeMOugSabWFq7bg==}
|
||||||
engines: {node: ^18.18.0 || >=20.0.0}
|
engines: {node: ^18.18.0 || >=20.0.0}
|
||||||
|
|
||||||
'@typescript-eslint/typescript-estree@7.8.0':
|
'@typescript-eslint/typescript-estree@7.12.0':
|
||||||
resolution: {integrity: sha512-5pfUCOwK5yjPaJQNy44prjCwtr981dO8Qo9J9PwYXZ0MosgAbfEMB008dJ5sNo3+/BN6ytBPuSvXUg9SAqB0dg==}
|
resolution: {integrity: sha512-5bwqLsWBULv1h6pn7cMW5dXX/Y2amRqLaKqsASVwbBHMZSnHqE/HN4vT4fE0aFsiwxYvr98kqOWh1a8ZKXalCQ==}
|
||||||
engines: {node: ^18.18.0 || >=20.0.0}
|
engines: {node: ^18.18.0 || >=20.0.0}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
typescript: '*'
|
typescript: '*'
|
||||||
|
|
@ -1817,14 +1814,14 @@ packages:
|
||||||
typescript:
|
typescript:
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@typescript-eslint/utils@7.8.0':
|
'@typescript-eslint/utils@7.12.0':
|
||||||
resolution: {integrity: sha512-L0yFqOCflVqXxiZyXrDr80lnahQfSOfc9ELAAZ75sqicqp2i36kEZZGuUymHNFoYOqxRT05up760b4iGsl02nQ==}
|
resolution: {integrity: sha512-Y6hhwxwDx41HNpjuYswYp6gDbkiZ8Hin9Bf5aJQn1bpTs3afYY4GX+MPYxma8jtoIV2GRwTM/UJm/2uGCVv+DQ==}
|
||||||
engines: {node: ^18.18.0 || >=20.0.0}
|
engines: {node: ^18.18.0 || >=20.0.0}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
eslint: ^8.56.0
|
eslint: ^8.56.0
|
||||||
|
|
||||||
'@typescript-eslint/visitor-keys@7.8.0':
|
'@typescript-eslint/visitor-keys@7.12.0':
|
||||||
resolution: {integrity: sha512-q4/gibTNBQNA0lGyYQCmWRS5D15n8rXh4QjK3KV+MBPlTYHpfBUT3D3PaPR/HeNiI9W6R7FvlkcGhNyAoP+caA==}
|
resolution: {integrity: sha512-uZk7DevrQLL3vSnfFl5bj4sL75qC9D6EdjemIdbtkuUmIheWpuiiylSY01JxJE7+zGrOWDZrp1WxOuDntvKrHQ==}
|
||||||
engines: {node: ^18.18.0 || >=20.0.0}
|
engines: {node: ^18.18.0 || >=20.0.0}
|
||||||
|
|
||||||
'@ungap/structured-clone@1.2.0':
|
'@ungap/structured-clone@1.2.0':
|
||||||
|
|
@ -2245,12 +2242,12 @@ packages:
|
||||||
resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==}
|
resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
|
|
||||||
drizzle-kit@0.22.4:
|
drizzle-kit@0.22.6:
|
||||||
resolution: {integrity: sha512-jsiYGqHsbsP/GtM26y/bGK7je1ja+1H/RniCt1ovg2E7tMNraw6XdqKcjxHhb8FonCfDDjvwFgouRsZS46vrmA==}
|
resolution: {integrity: sha512-TE4mBMeVJvySjYxwKeUOMrzytFSKnpMyp6kBnm+aascu9P+hCMrGvnJhOAO94C3wmt144CoHZQWQCOoP/EFl8A==}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
drizzle-orm@0.31.1:
|
drizzle-orm@0.31.2:
|
||||||
resolution: {integrity: sha512-hTbYne2XX3y6sV7WSxcPH6/vNSiQSUG9VZsFI27jBMCN0OT3Ok7ao3pIT5OMAqWkzJCRFgGjAaUeTAZWPgOKag==}
|
resolution: {integrity: sha512-QnenevbnnAzmbNzQwbhklvIYrDE8YER8K7kSrAWQSV1YvFCdSQPzj+jzqRdTSsV2cDqSpQ0NXGyL1G9I43LDLg==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
'@aws-sdk/client-rds-data': '>=3'
|
'@aws-sdk/client-rds-data': '>=3'
|
||||||
'@cloudflare/workers-types': '>=3'
|
'@cloudflare/workers-types': '>=3'
|
||||||
|
|
@ -2260,6 +2257,7 @@ packages:
|
||||||
'@op-engineering/op-sqlite': '>=2'
|
'@op-engineering/op-sqlite': '>=2'
|
||||||
'@opentelemetry/api': ^1.4.1
|
'@opentelemetry/api': ^1.4.1
|
||||||
'@planetscale/database': '>=1'
|
'@planetscale/database': '>=1'
|
||||||
|
'@tidbcloud/serverless': '*'
|
||||||
'@types/better-sqlite3': '*'
|
'@types/better-sqlite3': '*'
|
||||||
'@types/pg': '*'
|
'@types/pg': '*'
|
||||||
'@types/react': '>=18'
|
'@types/react': '>=18'
|
||||||
|
|
@ -2294,6 +2292,8 @@ packages:
|
||||||
optional: true
|
optional: true
|
||||||
'@planetscale/database':
|
'@planetscale/database':
|
||||||
optional: true
|
optional: true
|
||||||
|
'@tidbcloud/serverless':
|
||||||
|
optional: true
|
||||||
'@types/better-sqlite3':
|
'@types/better-sqlite3':
|
||||||
optional: true
|
optional: true
|
||||||
'@types/pg':
|
'@types/pg':
|
||||||
|
|
@ -3939,8 +3939,8 @@ packages:
|
||||||
tslib@2.6.3:
|
tslib@2.6.3:
|
||||||
resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==}
|
resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==}
|
||||||
|
|
||||||
tsx@4.12.0:
|
tsx@4.14.1:
|
||||||
resolution: {integrity: sha512-642NAWAbDqPZINjmL32Lh/B+pd8vbVj6LHPsWm09IIHqQuWhCrNfcPTjRlHFWvv3FfM4vt9NLReBIjUNj5ZhDg==}
|
resolution: {integrity: sha512-GU8pPJq8DdxcJDSK6Bc64c2jW8zBK2hb0jzwHZDfjapbwu6AqvFnAElnzZ17Xb9TH5a/j6/sicTCVYF+eO/cmA==}
|
||||||
engines: {node: '>=18.0.0'}
|
engines: {node: '>=18.0.0'}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
|
|
@ -4011,8 +4011,8 @@ packages:
|
||||||
engines: {node: ^18.0.0 || >=20.0.0}
|
engines: {node: ^18.0.0 || >=20.0.0}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
vite@5.2.12:
|
vite@5.2.13:
|
||||||
resolution: {integrity: sha512-/gC8GxzxMK5ntBwb48pR32GGhENnjtY30G4A0jemunsBkiEZFw60s8InGpN8gkhHEkjnRK1aSAxeQgwvFhUHAA==}
|
resolution: {integrity: sha512-SSq1noJfY9pR3I1TUENL3rQYDQCFqgD+lM6fTRAM8Nv6Lsg5hDLaXkjETVeBt+7vZBCMoibD+6IWnT2mJ+Zb/A==}
|
||||||
engines: {node: ^18.0.0 || >=20.0.0}
|
engines: {node: ^18.0.0 || >=20.0.0}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
|
|
@ -5256,14 +5256,14 @@ snapshots:
|
||||||
'@sodaru/yup-to-json-schema@2.0.1':
|
'@sodaru/yup-to-json-schema@2.0.1':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@sveltejs/adapter-auto@3.2.1(@sveltejs/kit@2.5.10(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.18)(vite@5.2.12(@types/node@20.14.2)(sass@1.77.4)))(svelte@4.2.18)(vite@5.2.12(@types/node@20.14.2)(sass@1.77.4)))':
|
'@sveltejs/adapter-auto@3.2.1(@sveltejs/kit@2.5.10(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.18)(vite@5.2.13(@types/node@20.14.2)(sass@1.77.4)))(svelte@4.2.18)(vite@5.2.13(@types/node@20.14.2)(sass@1.77.4)))':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@sveltejs/kit': 2.5.10(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.18)(vite@5.2.12(@types/node@20.14.2)(sass@1.77.4)))(svelte@4.2.18)(vite@5.2.12(@types/node@20.14.2)(sass@1.77.4))
|
'@sveltejs/kit': 2.5.10(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.18)(vite@5.2.13(@types/node@20.14.2)(sass@1.77.4)))(svelte@4.2.18)(vite@5.2.13(@types/node@20.14.2)(sass@1.77.4))
|
||||||
import-meta-resolve: 4.1.0
|
import-meta-resolve: 4.1.0
|
||||||
|
|
||||||
'@sveltejs/adapter-vercel@5.3.1(@sveltejs/kit@2.5.10(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.18)(vite@5.2.12(@types/node@20.14.2)(sass@1.77.4)))(svelte@4.2.18)(vite@5.2.12(@types/node@20.14.2)(sass@1.77.4)))':
|
'@sveltejs/adapter-vercel@5.3.1(@sveltejs/kit@2.5.10(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.18)(vite@5.2.13(@types/node@20.14.2)(sass@1.77.4)))(svelte@4.2.18)(vite@5.2.13(@types/node@20.14.2)(sass@1.77.4)))':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@sveltejs/kit': 2.5.10(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.18)(vite@5.2.12(@types/node@20.14.2)(sass@1.77.4)))(svelte@4.2.18)(vite@5.2.12(@types/node@20.14.2)(sass@1.77.4))
|
'@sveltejs/kit': 2.5.10(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.18)(vite@5.2.13(@types/node@20.14.2)(sass@1.77.4)))(svelte@4.2.18)(vite@5.2.13(@types/node@20.14.2)(sass@1.77.4))
|
||||||
'@vercel/nft': 0.27.1
|
'@vercel/nft': 0.27.1
|
||||||
esbuild: 0.20.2
|
esbuild: 0.20.2
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
|
|
@ -5279,9 +5279,9 @@ snapshots:
|
||||||
- rollup
|
- rollup
|
||||||
- svelte
|
- svelte
|
||||||
|
|
||||||
'@sveltejs/kit@2.5.10(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.18)(vite@5.2.12(@types/node@20.14.2)(sass@1.77.4)))(svelte@4.2.18)(vite@5.2.12(@types/node@20.14.2)(sass@1.77.4))':
|
'@sveltejs/kit@2.5.10(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.18)(vite@5.2.13(@types/node@20.14.2)(sass@1.77.4)))(svelte@4.2.18)(vite@5.2.13(@types/node@20.14.2)(sass@1.77.4))':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@sveltejs/vite-plugin-svelte': 3.1.1(svelte@4.2.18)(vite@5.2.12(@types/node@20.14.2)(sass@1.77.4))
|
'@sveltejs/vite-plugin-svelte': 3.1.1(svelte@4.2.18)(vite@5.2.13(@types/node@20.14.2)(sass@1.77.4))
|
||||||
'@types/cookie': 0.6.0
|
'@types/cookie': 0.6.0
|
||||||
cookie: 0.6.0
|
cookie: 0.6.0
|
||||||
devalue: 5.0.0
|
devalue: 5.0.0
|
||||||
|
|
@ -5295,28 +5295,28 @@ snapshots:
|
||||||
sirv: 2.0.4
|
sirv: 2.0.4
|
||||||
svelte: 4.2.18
|
svelte: 4.2.18
|
||||||
tiny-glob: 0.2.9
|
tiny-glob: 0.2.9
|
||||||
vite: 5.2.12(@types/node@20.14.2)(sass@1.77.4)
|
vite: 5.2.13(@types/node@20.14.2)(sass@1.77.4)
|
||||||
|
|
||||||
'@sveltejs/vite-plugin-svelte-inspector@2.1.0(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.18)(vite@5.2.12(@types/node@20.14.2)(sass@1.77.4)))(svelte@4.2.18)(vite@5.2.12(@types/node@20.14.2)(sass@1.77.4))':
|
'@sveltejs/vite-plugin-svelte-inspector@2.1.0(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.18)(vite@5.2.13(@types/node@20.14.2)(sass@1.77.4)))(svelte@4.2.18)(vite@5.2.13(@types/node@20.14.2)(sass@1.77.4))':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@sveltejs/vite-plugin-svelte': 3.1.1(svelte@4.2.18)(vite@5.2.12(@types/node@20.14.2)(sass@1.77.4))
|
'@sveltejs/vite-plugin-svelte': 3.1.1(svelte@4.2.18)(vite@5.2.13(@types/node@20.14.2)(sass@1.77.4))
|
||||||
debug: 4.3.4
|
debug: 4.3.4
|
||||||
svelte: 4.2.18
|
svelte: 4.2.18
|
||||||
vite: 5.2.12(@types/node@20.14.2)(sass@1.77.4)
|
vite: 5.2.13(@types/node@20.14.2)(sass@1.77.4)
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
'@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.18)(vite@5.2.12(@types/node@20.14.2)(sass@1.77.4))':
|
'@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.18)(vite@5.2.13(@types/node@20.14.2)(sass@1.77.4))':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@sveltejs/vite-plugin-svelte-inspector': 2.1.0(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.18)(vite@5.2.12(@types/node@20.14.2)(sass@1.77.4)))(svelte@4.2.18)(vite@5.2.12(@types/node@20.14.2)(sass@1.77.4))
|
'@sveltejs/vite-plugin-svelte-inspector': 2.1.0(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.18)(vite@5.2.13(@types/node@20.14.2)(sass@1.77.4)))(svelte@4.2.18)(vite@5.2.13(@types/node@20.14.2)(sass@1.77.4))
|
||||||
debug: 4.3.4
|
debug: 4.3.4
|
||||||
deepmerge: 4.3.1
|
deepmerge: 4.3.1
|
||||||
kleur: 4.1.5
|
kleur: 4.1.5
|
||||||
magic-string: 0.30.10
|
magic-string: 0.30.10
|
||||||
svelte: 4.2.18
|
svelte: 4.2.18
|
||||||
svelte-hmr: 0.16.0(svelte@4.2.18)
|
svelte-hmr: 0.16.0(svelte@4.2.18)
|
||||||
vite: 5.2.12(@types/node@20.14.2)(sass@1.77.4)
|
vite: 5.2.13(@types/node@20.14.2)(sass@1.77.4)
|
||||||
vitefu: 0.2.5(vite@5.2.12(@types/node@20.14.2)(sass@1.77.4))
|
vitefu: 0.2.5(vite@5.2.13(@types/node@20.14.2)(sass@1.77.4))
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
|
|
@ -5343,7 +5343,8 @@ snapshots:
|
||||||
|
|
||||||
'@types/feather-icons@4.29.4': {}
|
'@types/feather-icons@4.29.4': {}
|
||||||
|
|
||||||
'@types/json-schema@7.0.15': {}
|
'@types/json-schema@7.0.15':
|
||||||
|
optional: true
|
||||||
|
|
||||||
'@types/node@20.14.2':
|
'@types/node@20.14.2':
|
||||||
dependencies:
|
dependencies:
|
||||||
|
|
@ -5357,37 +5358,33 @@ snapshots:
|
||||||
|
|
||||||
'@types/pug@2.0.10': {}
|
'@types/pug@2.0.10': {}
|
||||||
|
|
||||||
'@types/semver@7.5.8': {}
|
|
||||||
|
|
||||||
'@types/validator@13.11.9':
|
'@types/validator@13.11.9':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@typescript-eslint/eslint-plugin@7.8.0(@typescript-eslint/parser@7.8.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5)':
|
'@typescript-eslint/eslint-plugin@7.12.0(@typescript-eslint/parser@7.12.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@eslint-community/regexpp': 4.10.0
|
'@eslint-community/regexpp': 4.10.0
|
||||||
'@typescript-eslint/parser': 7.8.0(eslint@8.57.0)(typescript@5.4.5)
|
'@typescript-eslint/parser': 7.12.0(eslint@8.57.0)(typescript@5.4.5)
|
||||||
'@typescript-eslint/scope-manager': 7.8.0
|
'@typescript-eslint/scope-manager': 7.12.0
|
||||||
'@typescript-eslint/type-utils': 7.8.0(eslint@8.57.0)(typescript@5.4.5)
|
'@typescript-eslint/type-utils': 7.12.0(eslint@8.57.0)(typescript@5.4.5)
|
||||||
'@typescript-eslint/utils': 7.8.0(eslint@8.57.0)(typescript@5.4.5)
|
'@typescript-eslint/utils': 7.12.0(eslint@8.57.0)(typescript@5.4.5)
|
||||||
'@typescript-eslint/visitor-keys': 7.8.0
|
'@typescript-eslint/visitor-keys': 7.12.0
|
||||||
debug: 4.3.4
|
|
||||||
eslint: 8.57.0
|
eslint: 8.57.0
|
||||||
graphemer: 1.4.0
|
graphemer: 1.4.0
|
||||||
ignore: 5.3.1
|
ignore: 5.3.1
|
||||||
natural-compare: 1.4.0
|
natural-compare: 1.4.0
|
||||||
semver: 7.6.1
|
|
||||||
ts-api-utils: 1.3.0(typescript@5.4.5)
|
ts-api-utils: 1.3.0(typescript@5.4.5)
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
typescript: 5.4.5
|
typescript: 5.4.5
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
'@typescript-eslint/parser@7.8.0(eslint@8.57.0)(typescript@5.4.5)':
|
'@typescript-eslint/parser@7.12.0(eslint@8.57.0)(typescript@5.4.5)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@typescript-eslint/scope-manager': 7.8.0
|
'@typescript-eslint/scope-manager': 7.12.0
|
||||||
'@typescript-eslint/types': 7.8.0
|
'@typescript-eslint/types': 7.12.0
|
||||||
'@typescript-eslint/typescript-estree': 7.8.0(typescript@5.4.5)
|
'@typescript-eslint/typescript-estree': 7.12.0(typescript@5.4.5)
|
||||||
'@typescript-eslint/visitor-keys': 7.8.0
|
'@typescript-eslint/visitor-keys': 7.12.0
|
||||||
debug: 4.3.4
|
debug: 4.3.4
|
||||||
eslint: 8.57.0
|
eslint: 8.57.0
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
|
|
@ -5395,16 +5392,16 @@ snapshots:
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
'@typescript-eslint/scope-manager@7.8.0':
|
'@typescript-eslint/scope-manager@7.12.0':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@typescript-eslint/types': 7.8.0
|
'@typescript-eslint/types': 7.12.0
|
||||||
'@typescript-eslint/visitor-keys': 7.8.0
|
'@typescript-eslint/visitor-keys': 7.12.0
|
||||||
|
|
||||||
'@typescript-eslint/type-utils@7.8.0(eslint@8.57.0)(typescript@5.4.5)':
|
'@typescript-eslint/type-utils@7.12.0(eslint@8.57.0)(typescript@5.4.5)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@typescript-eslint/typescript-estree': 7.8.0(typescript@5.4.5)
|
'@typescript-eslint/typescript-estree': 7.12.0(typescript@5.4.5)
|
||||||
'@typescript-eslint/utils': 7.8.0(eslint@8.57.0)(typescript@5.4.5)
|
'@typescript-eslint/utils': 7.12.0(eslint@8.57.0)(typescript@5.4.5)
|
||||||
debug: 4.3.4
|
debug: 4.3.5
|
||||||
eslint: 8.57.0
|
eslint: 8.57.0
|
||||||
ts-api-utils: 1.3.0(typescript@5.4.5)
|
ts-api-utils: 1.3.0(typescript@5.4.5)
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
|
|
@ -5412,40 +5409,37 @@ snapshots:
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
'@typescript-eslint/types@7.8.0': {}
|
'@typescript-eslint/types@7.12.0': {}
|
||||||
|
|
||||||
'@typescript-eslint/typescript-estree@7.8.0(typescript@5.4.5)':
|
'@typescript-eslint/typescript-estree@7.12.0(typescript@5.4.5)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@typescript-eslint/types': 7.8.0
|
'@typescript-eslint/types': 7.12.0
|
||||||
'@typescript-eslint/visitor-keys': 7.8.0
|
'@typescript-eslint/visitor-keys': 7.12.0
|
||||||
debug: 4.3.4
|
debug: 4.3.4
|
||||||
globby: 11.1.0
|
globby: 11.1.0
|
||||||
is-glob: 4.0.3
|
is-glob: 4.0.3
|
||||||
minimatch: 9.0.4
|
minimatch: 9.0.4
|
||||||
semver: 7.6.1
|
semver: 7.6.2
|
||||||
ts-api-utils: 1.3.0(typescript@5.4.5)
|
ts-api-utils: 1.3.0(typescript@5.4.5)
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
typescript: 5.4.5
|
typescript: 5.4.5
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
'@typescript-eslint/utils@7.8.0(eslint@8.57.0)(typescript@5.4.5)':
|
'@typescript-eslint/utils@7.12.0(eslint@8.57.0)(typescript@5.4.5)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0)
|
'@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0)
|
||||||
'@types/json-schema': 7.0.15
|
'@typescript-eslint/scope-manager': 7.12.0
|
||||||
'@types/semver': 7.5.8
|
'@typescript-eslint/types': 7.12.0
|
||||||
'@typescript-eslint/scope-manager': 7.8.0
|
'@typescript-eslint/typescript-estree': 7.12.0(typescript@5.4.5)
|
||||||
'@typescript-eslint/types': 7.8.0
|
|
||||||
'@typescript-eslint/typescript-estree': 7.8.0(typescript@5.4.5)
|
|
||||||
eslint: 8.57.0
|
eslint: 8.57.0
|
||||||
semver: 7.6.1
|
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
- typescript
|
- typescript
|
||||||
|
|
||||||
'@typescript-eslint/visitor-keys@7.8.0':
|
'@typescript-eslint/visitor-keys@7.12.0':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@typescript-eslint/types': 7.8.0
|
'@typescript-eslint/types': 7.12.0
|
||||||
eslint-visitor-keys: 3.4.3
|
eslint-visitor-keys: 3.4.3
|
||||||
|
|
||||||
'@ungap/structured-clone@1.2.0': {}
|
'@ungap/structured-clone@1.2.0': {}
|
||||||
|
|
@ -5858,7 +5852,7 @@ snapshots:
|
||||||
|
|
||||||
dotenv@16.4.5: {}
|
dotenv@16.4.5: {}
|
||||||
|
|
||||||
drizzle-kit@0.22.4:
|
drizzle-kit@0.22.6:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@esbuild-kit/esm-loader': 2.6.5
|
'@esbuild-kit/esm-loader': 2.6.5
|
||||||
esbuild: 0.19.12
|
esbuild: 0.19.12
|
||||||
|
|
@ -5866,7 +5860,7 @@ snapshots:
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
drizzle-orm@0.31.1(@neondatabase/serverless@0.9.3)(@types/pg@8.11.6)(pg@8.12.0)(postgres@3.4.4):
|
drizzle-orm@0.31.2(@neondatabase/serverless@0.9.3)(@types/pg@8.11.6)(pg@8.12.0)(postgres@3.4.4):
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@neondatabase/serverless': 0.9.3
|
'@neondatabase/serverless': 0.9.3
|
||||||
'@types/pg': 8.11.6
|
'@types/pg': 8.11.6
|
||||||
|
|
@ -6172,11 +6166,11 @@ snapshots:
|
||||||
cross-spawn: 7.0.3
|
cross-spawn: 7.0.3
|
||||||
signal-exit: 4.1.0
|
signal-exit: 4.1.0
|
||||||
|
|
||||||
formsnap@1.0.0(svelte@4.2.18)(sveltekit-superforms@2.14.0(@sveltejs/kit@2.5.10(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.18)(vite@5.2.12(@types/node@20.14.2)(sass@1.77.4)))(svelte@4.2.18)(vite@5.2.12(@types/node@20.14.2)(sass@1.77.4)))(@types/json-schema@7.0.15)(esbuild-runner@2.2.2(esbuild@0.19.12))(esbuild@0.19.12)(svelte@4.2.18)):
|
formsnap@1.0.0(svelte@4.2.18)(sveltekit-superforms@2.14.0(@sveltejs/kit@2.5.10(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.18)(vite@5.2.13(@types/node@20.14.2)(sass@1.77.4)))(svelte@4.2.18)(vite@5.2.13(@types/node@20.14.2)(sass@1.77.4)))(@types/json-schema@7.0.15)(esbuild-runner@2.2.2(esbuild@0.19.12))(esbuild@0.19.12)(svelte@4.2.18)):
|
||||||
dependencies:
|
dependencies:
|
||||||
nanoid: 5.0.7
|
nanoid: 5.0.7
|
||||||
svelte: 4.2.18
|
svelte: 4.2.18
|
||||||
sveltekit-superforms: 2.14.0(@sveltejs/kit@2.5.10(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.18)(vite@5.2.12(@types/node@20.14.2)(sass@1.77.4)))(svelte@4.2.18)(vite@5.2.12(@types/node@20.14.2)(sass@1.77.4)))(@types/json-schema@7.0.15)(esbuild-runner@2.2.2(esbuild@0.19.12))(esbuild@0.19.12)(svelte@4.2.18)
|
sveltekit-superforms: 2.14.0(@sveltejs/kit@2.5.10(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.18)(vite@5.2.13(@types/node@20.14.2)(sass@1.77.4)))(svelte@4.2.18)(vite@5.2.13(@types/node@20.14.2)(sass@1.77.4)))(@types/json-schema@7.0.15)(esbuild-runner@2.2.2(esbuild@0.19.12))(esbuild@0.19.12)(svelte@4.2.18)
|
||||||
|
|
||||||
fraction.js@4.3.7: {}
|
fraction.js@4.3.7: {}
|
||||||
|
|
||||||
|
|
@ -6889,14 +6883,14 @@ snapshots:
|
||||||
postcss: 8.4.38
|
postcss: 8.4.38
|
||||||
ts-node: 10.9.2(@types/node@20.14.2)(typescript@5.4.5)
|
ts-node: 10.9.2(@types/node@20.14.2)(typescript@5.4.5)
|
||||||
|
|
||||||
postcss-load-config@5.1.0(jiti@1.21.3)(postcss@8.4.38)(tsx@4.12.0):
|
postcss-load-config@5.1.0(jiti@1.21.3)(postcss@8.4.38)(tsx@4.14.1):
|
||||||
dependencies:
|
dependencies:
|
||||||
lilconfig: 3.1.1
|
lilconfig: 3.1.1
|
||||||
yaml: 2.4.2
|
yaml: 2.4.2
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
jiti: 1.21.3
|
jiti: 1.21.3
|
||||||
postcss: 8.4.38
|
postcss: 8.4.38
|
||||||
tsx: 4.12.0
|
tsx: 4.14.1
|
||||||
|
|
||||||
postcss-logical@7.0.1(postcss@8.4.38):
|
postcss-logical@7.0.1(postcss@8.4.38):
|
||||||
dependencies:
|
dependencies:
|
||||||
|
|
@ -7385,7 +7379,7 @@ snapshots:
|
||||||
|
|
||||||
supports-preserve-symlinks-flag@1.0.0: {}
|
supports-preserve-symlinks-flag@1.0.0: {}
|
||||||
|
|
||||||
svelte-check@3.8.0(postcss-load-config@5.1.0(jiti@1.21.3)(postcss@8.4.38)(tsx@4.12.0))(postcss@8.4.38)(sass@1.77.4)(svelte@4.2.18):
|
svelte-check@3.8.0(postcss-load-config@5.1.0(jiti@1.21.3)(postcss@8.4.38)(tsx@4.14.1))(postcss@8.4.38)(sass@1.77.4)(svelte@4.2.18):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@jridgewell/trace-mapping': 0.3.25
|
'@jridgewell/trace-mapping': 0.3.25
|
||||||
chokidar: 3.6.0
|
chokidar: 3.6.0
|
||||||
|
|
@ -7394,7 +7388,7 @@ snapshots:
|
||||||
picocolors: 1.0.0
|
picocolors: 1.0.0
|
||||||
sade: 1.8.1
|
sade: 1.8.1
|
||||||
svelte: 4.2.18
|
svelte: 4.2.18
|
||||||
svelte-preprocess: 5.1.4(postcss-load-config@5.1.0(jiti@1.21.3)(postcss@8.4.38)(tsx@4.12.0))(postcss@8.4.38)(sass@1.77.4)(svelte@4.2.18)(typescript@5.4.5)
|
svelte-preprocess: 5.1.4(postcss-load-config@5.1.0(jiti@1.21.3)(postcss@8.4.38)(tsx@4.14.1))(postcss@8.4.38)(sass@1.77.4)(svelte@4.2.18)(typescript@5.4.5)
|
||||||
typescript: 5.4.5
|
typescript: 5.4.5
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- '@babel/core'
|
- '@babel/core'
|
||||||
|
|
@ -7450,7 +7444,7 @@ snapshots:
|
||||||
dependencies:
|
dependencies:
|
||||||
svelte: 4.2.18
|
svelte: 4.2.18
|
||||||
|
|
||||||
svelte-preprocess@5.1.4(postcss-load-config@5.1.0(jiti@1.21.3)(postcss@8.4.38)(tsx@4.12.0))(postcss@8.4.38)(sass@1.77.4)(svelte@4.2.18)(typescript@5.4.5):
|
svelte-preprocess@5.1.4(postcss-load-config@5.1.0(jiti@1.21.3)(postcss@8.4.38)(tsx@4.14.1))(postcss@8.4.38)(sass@1.77.4)(svelte@4.2.18)(typescript@5.4.5):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/pug': 2.0.10
|
'@types/pug': 2.0.10
|
||||||
detect-indent: 6.1.0
|
detect-indent: 6.1.0
|
||||||
|
|
@ -7460,7 +7454,7 @@ snapshots:
|
||||||
svelte: 4.2.18
|
svelte: 4.2.18
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
postcss: 8.4.38
|
postcss: 8.4.38
|
||||||
postcss-load-config: 5.1.0(jiti@1.21.3)(postcss@8.4.38)(tsx@4.12.0)
|
postcss-load-config: 5.1.0(jiti@1.21.3)(postcss@8.4.38)(tsx@4.14.1)
|
||||||
sass: 1.77.4
|
sass: 1.77.4
|
||||||
typescript: 5.4.5
|
typescript: 5.4.5
|
||||||
|
|
||||||
|
|
@ -7499,19 +7493,19 @@ snapshots:
|
||||||
magic-string: 0.30.10
|
magic-string: 0.30.10
|
||||||
periscopic: 3.1.0
|
periscopic: 3.1.0
|
||||||
|
|
||||||
sveltekit-flash-message@2.4.4(@sveltejs/kit@2.5.10(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.18)(vite@5.2.12(@types/node@20.14.2)(sass@1.77.4)))(svelte@4.2.18)(vite@5.2.12(@types/node@20.14.2)(sass@1.77.4)))(svelte@4.2.18):
|
sveltekit-flash-message@2.4.4(@sveltejs/kit@2.5.10(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.18)(vite@5.2.13(@types/node@20.14.2)(sass@1.77.4)))(svelte@4.2.18)(vite@5.2.13(@types/node@20.14.2)(sass@1.77.4)))(svelte@4.2.18):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@sveltejs/kit': 2.5.10(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.18)(vite@5.2.12(@types/node@20.14.2)(sass@1.77.4)))(svelte@4.2.18)(vite@5.2.12(@types/node@20.14.2)(sass@1.77.4))
|
'@sveltejs/kit': 2.5.10(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.18)(vite@5.2.13(@types/node@20.14.2)(sass@1.77.4)))(svelte@4.2.18)(vite@5.2.13(@types/node@20.14.2)(sass@1.77.4))
|
||||||
svelte: 4.2.18
|
svelte: 4.2.18
|
||||||
|
|
||||||
sveltekit-rate-limiter@0.5.1(@sveltejs/kit@2.5.10(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.18)(vite@5.2.12(@types/node@20.14.2)(sass@1.77.4)))(svelte@4.2.18)(vite@5.2.12(@types/node@20.14.2)(sass@1.77.4))):
|
sveltekit-rate-limiter@0.5.1(@sveltejs/kit@2.5.10(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.18)(vite@5.2.13(@types/node@20.14.2)(sass@1.77.4)))(svelte@4.2.18)(vite@5.2.13(@types/node@20.14.2)(sass@1.77.4))):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@isaacs/ttlcache': 1.4.1
|
'@isaacs/ttlcache': 1.4.1
|
||||||
'@sveltejs/kit': 2.5.10(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.18)(vite@5.2.12(@types/node@20.14.2)(sass@1.77.4)))(svelte@4.2.18)(vite@5.2.12(@types/node@20.14.2)(sass@1.77.4))
|
'@sveltejs/kit': 2.5.10(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.18)(vite@5.2.13(@types/node@20.14.2)(sass@1.77.4)))(svelte@4.2.18)(vite@5.2.13(@types/node@20.14.2)(sass@1.77.4))
|
||||||
|
|
||||||
sveltekit-superforms@2.14.0(@sveltejs/kit@2.5.10(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.18)(vite@5.2.12(@types/node@20.14.2)(sass@1.77.4)))(svelte@4.2.18)(vite@5.2.12(@types/node@20.14.2)(sass@1.77.4)))(@types/json-schema@7.0.15)(esbuild-runner@2.2.2(esbuild@0.19.12))(esbuild@0.19.12)(svelte@4.2.18):
|
sveltekit-superforms@2.14.0(@sveltejs/kit@2.5.10(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.18)(vite@5.2.13(@types/node@20.14.2)(sass@1.77.4)))(svelte@4.2.18)(vite@5.2.13(@types/node@20.14.2)(sass@1.77.4)))(@types/json-schema@7.0.15)(esbuild-runner@2.2.2(esbuild@0.19.12))(esbuild@0.19.12)(svelte@4.2.18):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@sveltejs/kit': 2.5.10(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.18)(vite@5.2.12(@types/node@20.14.2)(sass@1.77.4)))(svelte@4.2.18)(vite@5.2.12(@types/node@20.14.2)(sass@1.77.4))
|
'@sveltejs/kit': 2.5.10(@sveltejs/vite-plugin-svelte@3.1.1(svelte@4.2.18)(vite@5.2.13(@types/node@20.14.2)(sass@1.77.4)))(svelte@4.2.18)(vite@5.2.13(@types/node@20.14.2)(sass@1.77.4))
|
||||||
devalue: 5.0.0
|
devalue: 5.0.0
|
||||||
just-clone: 6.2.0
|
just-clone: 6.2.0
|
||||||
memoize-weak: 1.0.2
|
memoize-weak: 1.0.2
|
||||||
|
|
@ -7658,7 +7652,7 @@ snapshots:
|
||||||
|
|
||||||
tslib@2.6.3: {}
|
tslib@2.6.3: {}
|
||||||
|
|
||||||
tsx@4.12.0:
|
tsx@4.14.1:
|
||||||
dependencies:
|
dependencies:
|
||||||
esbuild: 0.20.2
|
esbuild: 0.20.2
|
||||||
get-tsconfig: 4.7.5
|
get-tsconfig: 4.7.5
|
||||||
|
|
@ -7724,7 +7718,7 @@ snapshots:
|
||||||
debug: 4.3.4
|
debug: 4.3.4
|
||||||
pathe: 1.1.2
|
pathe: 1.1.2
|
||||||
picocolors: 1.0.0
|
picocolors: 1.0.0
|
||||||
vite: 5.2.12(@types/node@20.14.2)(sass@1.77.4)
|
vite: 5.2.13(@types/node@20.14.2)(sass@1.77.4)
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- '@types/node'
|
- '@types/node'
|
||||||
- less
|
- less
|
||||||
|
|
@ -7735,7 +7729,7 @@ snapshots:
|
||||||
- supports-color
|
- supports-color
|
||||||
- terser
|
- terser
|
||||||
|
|
||||||
vite@5.2.12(@types/node@20.14.2)(sass@1.77.4):
|
vite@5.2.13(@types/node@20.14.2)(sass@1.77.4):
|
||||||
dependencies:
|
dependencies:
|
||||||
esbuild: 0.20.2
|
esbuild: 0.20.2
|
||||||
postcss: 8.4.38
|
postcss: 8.4.38
|
||||||
|
|
@ -7745,9 +7739,9 @@ snapshots:
|
||||||
fsevents: 2.3.3
|
fsevents: 2.3.3
|
||||||
sass: 1.77.4
|
sass: 1.77.4
|
||||||
|
|
||||||
vitefu@0.2.5(vite@5.2.12(@types/node@20.14.2)(sass@1.77.4)):
|
vitefu@0.2.5(vite@5.2.13(@types/node@20.14.2)(sass@1.77.4)):
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
vite: 5.2.12(@types/node@20.14.2)(sass@1.77.4)
|
vite: 5.2.13(@types/node@20.14.2)(sass@1.77.4)
|
||||||
|
|
||||||
vitest@1.6.0(@types/node@20.14.2)(sass@1.77.4):
|
vitest@1.6.0(@types/node@20.14.2)(sass@1.77.4):
|
||||||
dependencies:
|
dependencies:
|
||||||
|
|
@ -7768,7 +7762,7 @@ snapshots:
|
||||||
strip-literal: 2.1.0
|
strip-literal: 2.1.0
|
||||||
tinybench: 2.8.0
|
tinybench: 2.8.0
|
||||||
tinypool: 0.8.4
|
tinypool: 0.8.4
|
||||||
vite: 5.2.12(@types/node@20.14.2)(sass@1.77.4)
|
vite: 5.2.13(@types/node@20.14.2)(sass@1.77.4)
|
||||||
vite-node: 1.6.0(@types/node@20.14.2)(sass@1.77.4)
|
vite-node: 1.6.0(@types/node@20.14.2)(sass@1.77.4)
|
||||||
why-is-node-running: 2.2.2
|
why-is-node-running: 2.2.2
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
|
|
|
||||||
1
src/db/migrations/0001_acoustic_thunderbolt.sql
Normal file
1
src/db/migrations/0001_acoustic_thunderbolt.sql
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
ALTER TABLE "sessions" ADD COLUMN "is_two_factor_authenticated" boolean DEFAULT false;
|
||||||
7
src/db/migrations/0002_striped_darkhawk.sql
Normal file
7
src/db/migrations/0002_striped_darkhawk.sql
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
DROP INDEX IF EXISTS "search_index";--> statement-breakpoint
|
||||||
|
ALTER TABLE "games" ALTER COLUMN "name" SET NOT NULL;--> statement-breakpoint
|
||||||
|
ALTER TABLE "games" ALTER COLUMN "slug" SET NOT NULL;--> statement-breakpoint
|
||||||
|
CREATE INDEX IF NOT EXISTS "search_index" ON "games" USING gin ((
|
||||||
|
setweight(to_tsvector('english', "name"), 'A') ||
|
||||||
|
setweight(to_tsvector('english', "slug"), 'B')
|
||||||
|
));
|
||||||
5
src/db/migrations/0003_flippant_avengers.sql
Normal file
5
src/db/migrations/0003_flippant_avengers.sql
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
DROP INDEX IF EXISTS "search_index";--> statement-breakpoint
|
||||||
|
CREATE INDEX IF NOT EXISTS "search_index" ON "games" USING gin ((
|
||||||
|
setweight(to_tsvector('english', "name"), 'A') ||
|
||||||
|
setweight(to_tsvector('english', "slug"), 'B')
|
||||||
|
));
|
||||||
1540
src/db/migrations/meta/0001_snapshot.json
Normal file
1540
src/db/migrations/meta/0001_snapshot.json
Normal file
File diff suppressed because it is too large
Load diff
1540
src/db/migrations/meta/0002_snapshot.json
Normal file
1540
src/db/migrations/meta/0002_snapshot.json
Normal file
File diff suppressed because it is too large
Load diff
1540
src/db/migrations/meta/0003_snapshot.json
Normal file
1540
src/db/migrations/meta/0003_snapshot.json
Normal file
File diff suppressed because it is too large
Load diff
|
|
@ -8,6 +8,27 @@
|
||||||
"when": 1717548517806,
|
"when": 1717548517806,
|
||||||
"tag": "0000_spotty_changeling",
|
"tag": "0000_spotty_changeling",
|
||||||
"breakpoints": true
|
"breakpoints": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idx": 1,
|
||||||
|
"version": "7",
|
||||||
|
"when": 1717891533784,
|
||||||
|
"tag": "0001_acoustic_thunderbolt",
|
||||||
|
"breakpoints": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idx": 2,
|
||||||
|
"version": "7",
|
||||||
|
"when": 1717891822622,
|
||||||
|
"tag": "0002_striped_darkhawk",
|
||||||
|
"breakpoints": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idx": 3,
|
||||||
|
"version": "7",
|
||||||
|
"when": 1717891852881,
|
||||||
|
"tag": "0003_flippant_avengers",
|
||||||
|
"breakpoints": true
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
@ -13,8 +13,8 @@ const games = pgTable(
|
||||||
cuid: text('cuid')
|
cuid: text('cuid')
|
||||||
.unique()
|
.unique()
|
||||||
.$defaultFn(() => cuid2()),
|
.$defaultFn(() => cuid2()),
|
||||||
name: text('name'),
|
name: text('name').notNull(),
|
||||||
slug: text('slug'),
|
slug: text('slug').notNull(),
|
||||||
description: text('description'),
|
description: text('description'),
|
||||||
year_published: integer('year_published'),
|
year_published: integer('year_published'),
|
||||||
min_players: integer('min_players'),
|
min_players: integer('min_players'),
|
||||||
|
|
@ -31,14 +31,14 @@ const games = pgTable(
|
||||||
updated_at: timestamp('updated_at', { mode: 'string' }).notNull().defaultNow(),
|
updated_at: timestamp('updated_at', { mode: 'string' }).notNull().defaultNow(),
|
||||||
},
|
},
|
||||||
(table) => ({
|
(table) => ({
|
||||||
searchIndex: index('search_index').using(
|
searchIndex: index('search_index').using(
|
||||||
'gin',
|
'gin',
|
||||||
sql`(
|
sql`(
|
||||||
setweight(to_tsvector('english', ${table.name}), 'A') ||
|
setweight(to_tsvector('english', ${table.name}), 'A') ||
|
||||||
setweight(to_tsvector('english', ${table.slug}), 'B')
|
setweight(to_tsvector('english', ${table.slug}), 'B')
|
||||||
)`,
|
)`
|
||||||
),
|
),
|
||||||
}),
|
})
|
||||||
);
|
);
|
||||||
|
|
||||||
export const gameRelations = relations(games, ({ many }) => ({
|
export const gameRelations = relations(games, ({ many }) => ({
|
||||||
|
|
|
||||||
|
|
@ -49,13 +49,13 @@ export const actions: Actions = {
|
||||||
|
|
||||||
let session;
|
let session;
|
||||||
let sessionCookie;
|
let sessionCookie;
|
||||||
|
const user = await db.query.users.findFirst({
|
||||||
|
where: eq(users.username, form.data.username),
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const password = form.data.password;
|
const password = form.data.password;
|
||||||
|
|
||||||
const user = await db.query.users.findFirst({
|
|
||||||
where: eq(users.username, form.data.username),
|
|
||||||
});
|
|
||||||
|
|
||||||
console.log('user', JSON.stringify(user, null, 2));
|
console.log('user', JSON.stringify(user, null, 2));
|
||||||
|
|
||||||
if (!user?.hashed_password) {
|
if (!user?.hashed_password) {
|
||||||
|
|
@ -71,47 +71,6 @@ export const actions: Actions = {
|
||||||
return setError(form, 'password', 'Your username or password is incorrect.');
|
return setError(form, 'password', 'Your username or password is incorrect.');
|
||||||
}
|
}
|
||||||
|
|
||||||
// await db
|
|
||||||
// .insert(collections)
|
|
||||||
// .values({
|
|
||||||
// user_id: user.id,
|
|
||||||
// })
|
|
||||||
// .onConflictDoNothing();
|
|
||||||
// await db
|
|
||||||
// .insert(wishlists)
|
|
||||||
// .values({
|
|
||||||
// user_id: user.id,
|
|
||||||
// })
|
|
||||||
// .onConflictDoNothing();
|
|
||||||
|
|
||||||
if (user?.two_factor_enabled && user?.two_factor_secret && !form?.data?.totpToken) {
|
|
||||||
return fail(400, {
|
|
||||||
form,
|
|
||||||
twoFactorRequired: true,
|
|
||||||
});
|
|
||||||
} else if (user?.two_factor_enabled && user?.two_factor_secret && form?.data?.totpToken) {
|
|
||||||
console.log('totpToken', form.data.totpToken);
|
|
||||||
const validOTP = await new TOTPController().verify(
|
|
||||||
form.data.totpToken,
|
|
||||||
decodeHex(user.two_factor_secret),
|
|
||||||
);
|
|
||||||
console.log('validOTP', validOTP);
|
|
||||||
|
|
||||||
if (!validOTP) {
|
|
||||||
console.log('invalid TOTP code check for recovery codes');
|
|
||||||
const usedRecoveryCode = await checkRecoveryCode(form?.data?.totpToken, user.id);
|
|
||||||
if (!usedRecoveryCode) {
|
|
||||||
console.log('invalid TOTP code');
|
|
||||||
form.data.password = '';
|
|
||||||
// form.errors.totpToken = ['Invalid code'];
|
|
||||||
return setError(form, 'totpToken', 'Invalid code.');
|
|
||||||
// return fail(400, {
|
|
||||||
// form,
|
|
||||||
// twoFactorRequired: true,
|
|
||||||
// });
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
console.log('ip', locals.ip);
|
console.log('ip', locals.ip);
|
||||||
console.log('country', locals.country);
|
console.log('country', locals.country);
|
||||||
session = await lucia.createSession(user.id, {
|
session = await lucia.createSession(user.id, {
|
||||||
|
|
@ -137,8 +96,15 @@ export const actions: Actions = {
|
||||||
|
|
||||||
form.data.username = '';
|
form.data.username = '';
|
||||||
form.data.password = '';
|
form.data.password = '';
|
||||||
const message = { type: 'success', message: 'Signed In!' } as const;
|
|
||||||
redirect(302, '/', message, event);
|
if (user?.two_factor_enabled && user?.two_factor_secret) {
|
||||||
|
console.log('redirecting to TOTP page');
|
||||||
|
const message = { type: 'success', message: 'Please enter your TOTP code.' } as const;
|
||||||
|
redirect(302, '/totp', message, event);
|
||||||
|
} else {
|
||||||
|
const message = { type: 'success', message: 'Signed In!' } as const;
|
||||||
|
redirect(302, '/', message, event);
|
||||||
|
}
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -23,6 +23,9 @@ export const load: PageServerLoad = async (event) => {
|
||||||
const session = event.locals.session;
|
const session = event.locals.session;
|
||||||
const isTwoFactorAuthenticated = session?.isTwoFactorAuthenticated;
|
const isTwoFactorAuthenticated = session?.isTwoFactorAuthenticated;
|
||||||
|
|
||||||
|
console.log('session', session);
|
||||||
|
console.log('isTwoFactorAuthenticated', isTwoFactorAuthenticated);
|
||||||
|
|
||||||
if (isTwoFactorAuthenticated && dbUser?.two_factor_enabled && dbUser?.two_factor_secret) {
|
if (isTwoFactorAuthenticated && dbUser?.two_factor_enabled && dbUser?.two_factor_secret) {
|
||||||
const message = { type: 'success', message: 'You are already signed in' } as const;
|
const message = { type: 'success', message: 'You are already signed in' } as const;
|
||||||
throw redirect('/', message, event);
|
throw redirect('/', message, event);
|
||||||
|
|
@ -90,7 +93,7 @@ export const actions: Actions = {
|
||||||
} else if (dbUser?.two_factor_enabled && dbUser?.two_factor_secret && totpToken) {
|
} else if (dbUser?.two_factor_enabled && dbUser?.two_factor_secret && totpToken) {
|
||||||
console.log('totpToken',totpToken);
|
console.log('totpToken',totpToken);
|
||||||
const validOTP = await new TOTPController().verify(
|
const validOTP = await new TOTPController().verify(
|
||||||
form.data.totpToken,
|
totpToken,
|
||||||
decodeHex(dbUser.two_factor_secret),
|
decodeHex(dbUser.two_factor_secret),
|
||||||
);
|
);
|
||||||
console.log('validOTP', validOTP);
|
console.log('validOTP', validOTP);
|
||||||
|
|
@ -134,7 +137,7 @@ export const actions: Actions = {
|
||||||
};
|
};
|
||||||
|
|
||||||
async function checkRecoveryCode(recoveryCode: string, userId: string) {
|
async function checkRecoveryCode(recoveryCode: string, userId: string) {
|
||||||
const userRecoveryCodes = await db.query.recovery_codes.findMany({
|
const userRecoveryCodes = await db.query.recoveryCodes.findMany({
|
||||||
where: and(eq(recovery_codes.used, false), eq(recovery_codes.userId, userId)),
|
where: and(eq(recovery_codes.used, false), eq(recovery_codes.userId, userId)),
|
||||||
});
|
});
|
||||||
for (const code of userRecoveryCodes) {
|
for (const code of userRecoveryCodes) {
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
import { superForm } from 'sveltekit-superforms/client';
|
import { superForm } from 'sveltekit-superforms/client';
|
||||||
import * as flashModule from 'sveltekit-flash-message/client';
|
import * as flashModule from 'sveltekit-flash-message/client';
|
||||||
import { AlertCircle } from "lucide-svelte";
|
import { AlertCircle } from "lucide-svelte";
|
||||||
import { signInSchema } from '$lib/validations/auth';
|
import { signInSchema, totpSchema } from '$lib/validations/auth';
|
||||||
import * as Form from '$lib/components/ui/form';
|
import * as Form from '$lib/components/ui/form';
|
||||||
import { Label } from '$components/ui/label';
|
import { Label } from '$components/ui/label';
|
||||||
import { Input } from '$components/ui/input';
|
import { Input } from '$components/ui/input';
|
||||||
|
|
@ -14,7 +14,7 @@
|
||||||
export let data;
|
export let data;
|
||||||
export let form;
|
export let form;
|
||||||
|
|
||||||
const superLoginForm = superForm(data.form, {
|
const superTotpForm = superForm(data.form, {
|
||||||
onSubmit: () => boredState.update((n) => ({ ...n, loading: true })),
|
onSubmit: () => boredState.update((n) => ({ ...n, loading: true })),
|
||||||
onResult: () => boredState.update((n) => ({ ...n, loading: false })),
|
onResult: () => boredState.update((n) => ({ ...n, loading: false })),
|
||||||
flashMessage: {
|
flashMessage: {
|
||||||
|
|
@ -29,12 +29,12 @@
|
||||||
},
|
},
|
||||||
syncFlashMessage: false,
|
syncFlashMessage: false,
|
||||||
taintedMessage: null,
|
taintedMessage: null,
|
||||||
validators: zodClient(signInSchema),
|
validators: zodClient(totpSchema),
|
||||||
validationMethod: 'oninput',
|
validationMethod: 'oninput',
|
||||||
delayMs: 0,
|
delayMs: 0,
|
||||||
});
|
});
|
||||||
|
|
||||||
const { form: loginForm, errors, enhance } = superLoginForm;
|
const { form: totpForm, errors, enhance } = superTotpForm;
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<svelte:head>
|
<svelte:head>
|
||||||
|
|
@ -48,40 +48,14 @@
|
||||||
>
|
>
|
||||||
Please enter your two factor code
|
Please enter your two factor code
|
||||||
</h2>
|
</h2>
|
||||||
<Form.Field form={superLoginForm} name="username">
|
<Form.Field form={superTotpForm} name="totpToken">
|
||||||
<Form.Control let:attrs>
|
<Form.Control let:attrs>
|
||||||
<Form.Label for="username">Username</Form.Label>
|
<Form.Label for="totpToken">TOTP Code</Form.Label>
|
||||||
<Input {...attrs} autocomplete="username" bind:value={$loginForm.username} />
|
<Input {...attrs} autocomplete="totpToken" bind:value={$totpForm.totpToken} />
|
||||||
</Form.Control>
|
</Form.Control>
|
||||||
<Form.FieldErrors />
|
<Form.FieldErrors />
|
||||||
</Form.Field>
|
</Form.Field>
|
||||||
<Form.Field form={superLoginForm} name="password">
|
<Form.Button>Submit</Form.Button>
|
||||||
<Form.Control let:attrs>
|
|
||||||
<Form.Label for="password">Password</Form.Label>
|
|
||||||
<Input {...attrs} autocomplete="current-password" type="password" bind:value={$loginForm.password} />
|
|
||||||
</Form.Control>
|
|
||||||
<Form.FieldErrors />
|
|
||||||
</Form.Field>
|
|
||||||
{#if form?.twoFactorRequired}
|
|
||||||
<Form.Field form={superLoginForm} name="totpToken">
|
|
||||||
<Form.Control let:attrs>
|
|
||||||
<Form.Label for="totpToken">Two Factor Code or Recovery Code</Form.Label>
|
|
||||||
<Input {...attrs} autocomplete="one-time-code" bind:value={$loginForm.totpToken} />
|
|
||||||
</Form.Control>
|
|
||||||
<Form.FieldErrors />
|
|
||||||
</Form.Field>
|
|
||||||
{/if}
|
|
||||||
<Form.Button>Login</Form.Button>
|
|
||||||
<p class="px-8 text-center text-sm text-muted-foreground">
|
|
||||||
By clicking continue, you agree to our
|
|
||||||
<a href="/terms" class="underline underline-offset-4 hover:text-primary">
|
|
||||||
Terms of Use
|
|
||||||
</a>
|
|
||||||
and
|
|
||||||
<a href="/privacy" class="underline underline-offset-4 hover:text-primary">
|
|
||||||
Privacy Policy
|
|
||||||
</a>.
|
|
||||||
</p>
|
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue