mirror of
https://github.com/BradNut/boredgame
synced 2025-09-08 17:40:22 +00:00
Starting 2FA flow.
This commit is contained in:
parent
716e2e7d28
commit
f729becade
7 changed files with 123 additions and 88 deletions
10
package.json
10
package.json
|
|
@ -22,7 +22,7 @@
|
|||
},
|
||||
"devDependencies": {
|
||||
"@melt-ui/pp": "^0.3.0",
|
||||
"@melt-ui/svelte": "^0.76.0",
|
||||
"@melt-ui/svelte": "^0.76.2",
|
||||
"@playwright/test": "^1.42.1",
|
||||
"@resvg/resvg-js": "^2.6.0",
|
||||
"@sveltejs/adapter-auto": "^3.1.1",
|
||||
|
|
@ -59,13 +59,13 @@
|
|||
"svelte-sequential-preprocessor": "^2.0.1",
|
||||
"sveltekit-flash-message": "^2.4.4",
|
||||
"sveltekit-rate-limiter": "^0.4.3",
|
||||
"sveltekit-superforms": "^2.10.6",
|
||||
"sveltekit-superforms": "^2.11.0",
|
||||
"tailwindcss": "^3.4.1",
|
||||
"ts-node": "^10.9.2",
|
||||
"tslib": "^2.6.1",
|
||||
"tsx": "^4.7.1",
|
||||
"typescript": "^5.4.3",
|
||||
"vite": "^5.2.2",
|
||||
"vite": "^5.2.6",
|
||||
"vitest": "^1.4.0",
|
||||
"zod": "^3.22.4"
|
||||
},
|
||||
|
|
@ -105,13 +105,13 @@
|
|||
"open-props": "^1.6.21",
|
||||
"oslo": "^1.1.3",
|
||||
"pg": "^8.11.3",
|
||||
"postgres": "^3.4.3",
|
||||
"postgres": "^3.4.4",
|
||||
"radix-svelte": "^0.9.0",
|
||||
"svelte-french-toast": "^1.2.0",
|
||||
"svelte-lazy-loader": "^1.0.0",
|
||||
"tailwind-merge": "^2.2.2",
|
||||
"tailwind-variants": "^0.2.1",
|
||||
"tailwindcss-animate": "^1.0.6",
|
||||
"zod-to-json-schema": "^3.22.4"
|
||||
"zod-to-json-schema": "^3.22.5"
|
||||
}
|
||||
}
|
||||
121
pnpm-lock.yaml
121
pnpm-lock.yaml
|
|
@ -58,13 +58,13 @@ dependencies:
|
|||
version: 0.6.0
|
||||
drizzle-orm:
|
||||
specifier: ^0.30.4
|
||||
version: 0.30.4(@neondatabase/serverless@0.9.0)(@planetscale/database@1.16.0)(@types/pg@8.11.4)(pg@8.11.3)(postgres@3.4.3)
|
||||
version: 0.30.4(@neondatabase/serverless@0.9.0)(@planetscale/database@1.16.0)(@types/pg@8.11.4)(pg@8.11.3)(postgres@3.4.4)
|
||||
feather-icons:
|
||||
specifier: ^4.29.1
|
||||
version: 4.29.1
|
||||
formsnap:
|
||||
specifier: ^0.5.1
|
||||
version: 0.5.1(svelte@4.2.12)(sveltekit-superforms@2.10.6)
|
||||
version: 0.5.1(svelte@4.2.12)(sveltekit-superforms@2.11.0)
|
||||
html-entities:
|
||||
specifier: ^2.5.2
|
||||
version: 2.5.2
|
||||
|
|
@ -96,8 +96,8 @@ dependencies:
|
|||
specifier: ^8.11.3
|
||||
version: 8.11.3
|
||||
postgres:
|
||||
specifier: ^3.4.3
|
||||
version: 3.4.3
|
||||
specifier: ^3.4.4
|
||||
version: 3.4.4
|
||||
radix-svelte:
|
||||
specifier: ^0.9.0
|
||||
version: 0.9.0(svelte@4.2.12)
|
||||
|
|
@ -117,16 +117,16 @@ dependencies:
|
|||
specifier: ^1.0.6
|
||||
version: 1.0.7(tailwindcss@3.4.1)
|
||||
zod-to-json-schema:
|
||||
specifier: ^3.22.4
|
||||
version: 3.22.4(zod@3.22.4)
|
||||
specifier: ^3.22.5
|
||||
version: 3.22.5(zod@3.22.4)
|
||||
|
||||
devDependencies:
|
||||
'@melt-ui/pp':
|
||||
specifier: ^0.3.0
|
||||
version: 0.3.0(@melt-ui/svelte@0.76.0)(svelte@4.2.12)
|
||||
version: 0.3.0(@melt-ui/svelte@0.76.2)(svelte@4.2.12)
|
||||
'@melt-ui/svelte':
|
||||
specifier: ^0.76.0
|
||||
version: 0.76.0(svelte@4.2.12)
|
||||
specifier: ^0.76.2
|
||||
version: 0.76.2(svelte@4.2.12)
|
||||
'@playwright/test':
|
||||
specifier: ^1.42.1
|
||||
version: 1.42.1
|
||||
|
|
@ -141,10 +141,10 @@ devDependencies:
|
|||
version: 0.1.9(svelte@4.2.12)
|
||||
'@sveltejs/kit':
|
||||
specifier: ^2.5.4
|
||||
version: 2.5.4(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@4.2.12)(vite@5.2.2)
|
||||
version: 2.5.4(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@4.2.12)(vite@5.2.6)
|
||||
'@sveltejs/vite-plugin-svelte':
|
||||
specifier: ^3.0.2
|
||||
version: 3.0.2(svelte@4.2.12)(vite@5.2.2)
|
||||
version: 3.0.2(svelte@4.2.12)(vite@5.2.6)
|
||||
'@types/cookie':
|
||||
specifier: ^0.6.0
|
||||
version: 0.6.0
|
||||
|
|
@ -236,8 +236,8 @@ devDependencies:
|
|||
specifier: ^0.4.3
|
||||
version: 0.4.3(@sveltejs/kit@2.5.4)
|
||||
sveltekit-superforms:
|
||||
specifier: ^2.10.6
|
||||
version: 2.10.6(@sveltejs/kit@2.5.4)(@types/json-schema@7.0.15)(esbuild-runner@2.2.2)(esbuild@0.20.2)(svelte@4.2.12)
|
||||
specifier: ^2.11.0
|
||||
version: 2.11.0(@sveltejs/kit@2.5.4)(@types/json-schema@7.0.15)(esbuild-runner@2.2.2)(esbuild@0.20.2)(svelte@4.2.12)
|
||||
tailwindcss:
|
||||
specifier: ^3.4.1
|
||||
version: 3.4.1(ts-node@10.9.2)
|
||||
|
|
@ -254,8 +254,8 @@ devDependencies:
|
|||
specifier: ^5.4.3
|
||||
version: 5.4.3
|
||||
vite:
|
||||
specifier: ^5.2.2
|
||||
version: 5.2.2(@types/node@20.11.30)(sass@1.72.0)
|
||||
specifier: ^5.2.6
|
||||
version: 5.2.6(@types/node@20.11.30)(sass@1.72.0)
|
||||
vitest:
|
||||
specifier: ^1.4.0
|
||||
version: 1.4.0(@types/node@20.11.30)(sass@1.72.0)
|
||||
|
|
@ -2034,14 +2034,14 @@ packages:
|
|||
- supports-color
|
||||
dev: false
|
||||
|
||||
/@melt-ui/pp@0.3.0(@melt-ui/svelte@0.76.0)(svelte@4.2.12):
|
||||
/@melt-ui/pp@0.3.0(@melt-ui/svelte@0.76.2)(svelte@4.2.12):
|
||||
resolution: {integrity: sha512-b07Bdh8l2KcwKVCXOY+SoBw1dk9eWvQfMSi6SoacpRVyVmmfpi0kV4oGt3HYF0tUCB3sEmVicxse50ZzZxEzEA==}
|
||||
engines: {pnpm: '>=8.6.3'}
|
||||
peerDependencies:
|
||||
'@melt-ui/svelte': '>= 0.29.0'
|
||||
svelte: ^3.55.0 || ^4.0.0 || ^5.0.0-next.1
|
||||
dependencies:
|
||||
'@melt-ui/svelte': 0.76.0(svelte@4.2.12)
|
||||
'@melt-ui/svelte': 0.76.2(svelte@4.2.12)
|
||||
estree-walker: 3.0.3
|
||||
magic-string: 0.30.5
|
||||
svelte: 4.2.12
|
||||
|
|
@ -2059,6 +2059,21 @@ packages:
|
|||
focus-trap: 7.5.4
|
||||
nanoid: 5.0.6
|
||||
svelte: 4.2.12
|
||||
dev: false
|
||||
|
||||
/@melt-ui/svelte@0.76.2(svelte@4.2.12):
|
||||
resolution: {integrity: sha512-7SbOa11tXUS95T3fReL+dwDs5FyJtCEqrqG3inRziDws346SYLsxOQ6HmX+4BkIsQh1R8U3XNa+EMmdMt38lMA==}
|
||||
peerDependencies:
|
||||
svelte: '>=3 <5'
|
||||
dependencies:
|
||||
'@floating-ui/core': 1.6.0
|
||||
'@floating-ui/dom': 1.6.3
|
||||
'@internationalized/date': 3.5.2
|
||||
dequal: 2.0.3
|
||||
focus-trap: 7.5.4
|
||||
nanoid: 5.0.6
|
||||
svelte: 4.2.12
|
||||
dev: true
|
||||
|
||||
/@napi-rs/wasm-runtime@0.1.2:
|
||||
resolution: {integrity: sha512-8JuczewTFIZ/XIjHQ+YlQUydHvlKx2hkcxtuGwh+t/t5zWyZct6YG4+xjHcq8xyc/e7FmFwf42Zj2YgICwmlvA==}
|
||||
|
|
@ -3122,7 +3137,7 @@ packages:
|
|||
'@sentry/types': 7.100.1
|
||||
'@sentry/utils': 7.100.1
|
||||
'@sentry/vite-plugin': 0.6.1
|
||||
'@sveltejs/kit': 2.5.4(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@4.2.12)(vite@5.2.2)
|
||||
'@sveltejs/kit': 2.5.4(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@4.2.12)(vite@5.2.6)
|
||||
magicast: 0.2.8
|
||||
sorcery: 0.11.0
|
||||
transitivePeerDependencies:
|
||||
|
|
@ -3201,8 +3216,8 @@ packages:
|
|||
resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==}
|
||||
dev: true
|
||||
|
||||
/@sinclair/typebox@0.32.18:
|
||||
resolution: {integrity: sha512-ioMK5TA5YOloYf/GcnF+1fT4eTvowJes2j7Pm0Ivlm9xq61keqQw/XtbQQnPG8O4uq2y2DDenU8OqNc93xn11Q==}
|
||||
/@sinclair/typebox@0.32.19:
|
||||
resolution: {integrity: sha512-AUphm4Py6t+q5b6TU8OA9YRgeGfogsWy2oZvYLRCxt6d+mPkT0Mc4j+BusQYMGJH47DJe3/fKkLtmWPrKP1nzQ==}
|
||||
requiresBuild: true
|
||||
optional: true
|
||||
|
||||
|
|
@ -3216,7 +3231,7 @@ packages:
|
|||
peerDependencies:
|
||||
'@sveltejs/kit': ^2.0.0
|
||||
dependencies:
|
||||
'@sveltejs/kit': 2.5.4(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@4.2.12)(vite@5.2.2)
|
||||
'@sveltejs/kit': 2.5.4(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@4.2.12)(vite@5.2.6)
|
||||
import-meta-resolve: 4.0.0
|
||||
dev: true
|
||||
|
||||
|
|
@ -3225,7 +3240,7 @@ packages:
|
|||
peerDependencies:
|
||||
'@sveltejs/kit': ^2.4.0
|
||||
dependencies:
|
||||
'@sveltejs/kit': 2.5.4(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@4.2.12)(vite@5.2.2)
|
||||
'@sveltejs/kit': 2.5.4(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@4.2.12)(vite@5.2.6)
|
||||
'@vercel/nft': 0.26.4
|
||||
esbuild: 0.19.12
|
||||
transitivePeerDependencies:
|
||||
|
|
@ -3244,7 +3259,7 @@ packages:
|
|||
- svelte
|
||||
dev: true
|
||||
|
||||
/@sveltejs/kit@2.5.4(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@4.2.12)(vite@5.2.2):
|
||||
/@sveltejs/kit@2.5.4(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@4.2.12)(vite@5.2.6):
|
||||
resolution: {integrity: sha512-eDxK2d4EGzk99QsZNoPXe7jlzA5EGqfcCpUwZ912bhnalsZ2ZsG5wGRthkydupVjYyqdmzEanVKFhLxU2vkPSQ==}
|
||||
engines: {node: '>=18.13'}
|
||||
hasBin: true
|
||||
|
|
@ -3254,7 +3269,7 @@ packages:
|
|||
svelte: ^4.0.0 || ^5.0.0-next.0
|
||||
vite: ^5.0.3
|
||||
dependencies:
|
||||
'@sveltejs/vite-plugin-svelte': 3.0.2(svelte@4.2.12)(vite@5.2.2)
|
||||
'@sveltejs/vite-plugin-svelte': 3.0.2(svelte@4.2.12)(vite@5.2.6)
|
||||
'@types/cookie': 0.6.0
|
||||
cookie: 0.6.0
|
||||
devalue: 4.3.2
|
||||
|
|
@ -3268,9 +3283,9 @@ packages:
|
|||
sirv: 2.0.4
|
||||
svelte: 4.2.12
|
||||
tiny-glob: 0.2.9
|
||||
vite: 5.2.2(@types/node@20.11.30)(sass@1.72.0)
|
||||
vite: 5.2.6(@types/node@20.11.30)(sass@1.72.0)
|
||||
|
||||
/@sveltejs/vite-plugin-svelte-inspector@2.0.0(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@4.2.12)(vite@5.2.2):
|
||||
/@sveltejs/vite-plugin-svelte-inspector@2.0.0(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@4.2.12)(vite@5.2.6):
|
||||
resolution: {integrity: sha512-gjr9ZFg1BSlIpfZ4PRewigrvYmHWbDrq2uvvPB1AmTWKuM+dI1JXQSUu2pIrYLb/QncyiIGkFDFKTwJ0XqQZZg==}
|
||||
engines: {node: ^18.0.0 || >=20}
|
||||
peerDependencies:
|
||||
|
|
@ -3278,29 +3293,29 @@ packages:
|
|||
svelte: ^4.0.0 || ^5.0.0-next.0
|
||||
vite: ^5.0.0
|
||||
dependencies:
|
||||
'@sveltejs/vite-plugin-svelte': 3.0.2(svelte@4.2.12)(vite@5.2.2)
|
||||
'@sveltejs/vite-plugin-svelte': 3.0.2(svelte@4.2.12)(vite@5.2.6)
|
||||
debug: 4.3.4
|
||||
svelte: 4.2.12
|
||||
vite: 5.2.2(@types/node@20.11.30)(sass@1.72.0)
|
||||
vite: 5.2.6(@types/node@20.11.30)(sass@1.72.0)
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
/@sveltejs/vite-plugin-svelte@3.0.2(svelte@4.2.12)(vite@5.2.2):
|
||||
/@sveltejs/vite-plugin-svelte@3.0.2(svelte@4.2.12)(vite@5.2.6):
|
||||
resolution: {integrity: sha512-MpmF/cju2HqUls50WyTHQBZUV3ovV/Uk8k66AN2gwHogNAG8wnW8xtZDhzNBsFJJuvmq1qnzA5kE7YfMJNFv2Q==}
|
||||
engines: {node: ^18.0.0 || >=20}
|
||||
peerDependencies:
|
||||
svelte: ^4.0.0 || ^5.0.0-next.0
|
||||
vite: ^5.0.0
|
||||
dependencies:
|
||||
'@sveltejs/vite-plugin-svelte-inspector': 2.0.0(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@4.2.12)(vite@5.2.2)
|
||||
'@sveltejs/vite-plugin-svelte-inspector': 2.0.0(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@4.2.12)(vite@5.2.6)
|
||||
debug: 4.3.4
|
||||
deepmerge: 4.3.1
|
||||
kleur: 4.1.5
|
||||
magic-string: 0.30.5
|
||||
svelte: 4.2.12
|
||||
svelte-hmr: 0.15.3(svelte@4.2.12)
|
||||
vite: 5.2.2(@types/node@20.11.30)(sass@1.72.0)
|
||||
vitefu: 0.2.5(vite@5.2.2)
|
||||
vite: 5.2.6(@types/node@20.11.30)(sass@1.72.0)
|
||||
vitefu: 0.2.5(vite@5.2.6)
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
|
|
@ -4279,7 +4294,7 @@ packages:
|
|||
- supports-color
|
||||
dev: true
|
||||
|
||||
/drizzle-orm@0.30.4(@neondatabase/serverless@0.9.0)(@planetscale/database@1.16.0)(@types/pg@8.11.4)(pg@8.11.3)(postgres@3.4.3):
|
||||
/drizzle-orm@0.30.4(@neondatabase/serverless@0.9.0)(@planetscale/database@1.16.0)(@types/pg@8.11.4)(pg@8.11.3)(postgres@3.4.4):
|
||||
resolution: {integrity: sha512-kWoSMGbrOFkmkAweLTFtHJMpN+nwhx89q0mLELqT2aEU+1szNV8jrnBmJwZ0WGNp7J7yQn/ezEtxBI/qzTSElQ==}
|
||||
peerDependencies:
|
||||
'@aws-sdk/client-rds-data': '>=3'
|
||||
|
|
@ -4360,7 +4375,7 @@ packages:
|
|||
'@planetscale/database': 1.16.0
|
||||
'@types/pg': 8.11.4
|
||||
pg: 8.11.3
|
||||
postgres: 3.4.3
|
||||
postgres: 3.4.4
|
||||
dev: false
|
||||
|
||||
/electron-to-chromium@1.4.677:
|
||||
|
|
@ -4850,7 +4865,7 @@ packages:
|
|||
is-callable: 1.2.7
|
||||
dev: false
|
||||
|
||||
/formsnap@0.5.1(svelte@4.2.12)(sveltekit-superforms@2.10.6):
|
||||
/formsnap@0.5.1(svelte@4.2.12)(sveltekit-superforms@2.11.0):
|
||||
resolution: {integrity: sha512-8ppOlOu7llBEJbV0PzUz/KWh1J8KfiGqwjiyb8emQ2m+/nYXohLBtMcLVpW3XwlMkUbYaIXM+5lhfGjw8xbGJw==}
|
||||
peerDependencies:
|
||||
svelte: ^4.0.0
|
||||
|
|
@ -4858,7 +4873,7 @@ packages:
|
|||
dependencies:
|
||||
nanoid: 5.0.6
|
||||
svelte: 4.2.12
|
||||
sveltekit-superforms: 2.10.6(@sveltejs/kit@2.5.4)(@types/json-schema@7.0.15)(esbuild-runner@2.2.2)(esbuild@0.20.2)(svelte@4.2.12)
|
||||
sveltekit-superforms: 2.11.0(@sveltejs/kit@2.5.4)(@types/json-schema@7.0.15)(esbuild-runner@2.2.2)(esbuild@0.20.2)(svelte@4.2.12)
|
||||
dev: false
|
||||
|
||||
/fraction.js@4.3.7:
|
||||
|
|
@ -6542,8 +6557,8 @@ packages:
|
|||
/postgres-range@1.1.4:
|
||||
resolution: {integrity: sha512-i/hbxIE9803Alj/6ytL7UHQxRvZkI9O4Sy+J3HGc4F4oo/2eQAjTSNJ0bfxyse3bH0nuVesCk+3IRLaMtG3H6w==}
|
||||
|
||||
/postgres@3.4.3:
|
||||
resolution: {integrity: sha512-iHJn4+M9vbTdHSdDzNkC0crHq+1CUdFhx+YqCE+SqWxPjm+Zu63jq7yZborOBF64c8pc58O5uMudyL1FQcHacA==}
|
||||
/postgres@3.4.4:
|
||||
resolution: {integrity: sha512-IbyN+9KslkqcXa8AO9fxpk97PA4pzewvpi2B3Dwy9u4zpV32QicaEdgmF3eSQUzdRk7ttDHQejNgAEr4XoeH4A==}
|
||||
engines: {node: '>=12'}
|
||||
dev: false
|
||||
|
||||
|
|
@ -7245,7 +7260,7 @@ packages:
|
|||
'@sveltejs/kit': 1.x || 2.x
|
||||
svelte: 3.x || 4.x || >=5.0.0-next.51
|
||||
dependencies:
|
||||
'@sveltejs/kit': 2.5.4(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@4.2.12)(vite@5.2.2)
|
||||
'@sveltejs/kit': 2.5.4(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@4.2.12)(vite@5.2.6)
|
||||
svelte: 4.2.12
|
||||
dev: true
|
||||
|
||||
|
|
@ -7255,16 +7270,16 @@ packages:
|
|||
'@sveltejs/kit': 1.x || 2.x
|
||||
dependencies:
|
||||
'@isaacs/ttlcache': 1.4.1
|
||||
'@sveltejs/kit': 2.5.4(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@4.2.12)(vite@5.2.2)
|
||||
'@sveltejs/kit': 2.5.4(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@4.2.12)(vite@5.2.6)
|
||||
dev: true
|
||||
|
||||
/sveltekit-superforms@2.10.6(@sveltejs/kit@2.5.4)(@types/json-schema@7.0.15)(esbuild-runner@2.2.2)(esbuild@0.20.2)(svelte@4.2.12):
|
||||
resolution: {integrity: sha512-Gu3a13rrjLdJ8EgITqrVB7PnH1XprqZa26Y8H1YSplfgR8+Kuu1v+fSz21N3UCGNNN1BozSjLaUfouerD6WRxQ==}
|
||||
/sveltekit-superforms@2.11.0(@sveltejs/kit@2.5.4)(@types/json-schema@7.0.15)(esbuild-runner@2.2.2)(esbuild@0.20.2)(svelte@4.2.12):
|
||||
resolution: {integrity: sha512-wRAznfYi9sOp4aQd2kb/SIafqHX4LROn5ojIXEbp2Pss9EPy69tmArQFm3JaiBC0hU72bAlUOTFSmVABTF9TEA==}
|
||||
peerDependencies:
|
||||
'@sveltejs/kit': 1.x || 2.x
|
||||
svelte: 3.x || 4.x || >=5.0.0-next.51
|
||||
dependencies:
|
||||
'@sveltejs/kit': 2.5.4(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@4.2.12)(vite@5.2.2)
|
||||
'@sveltejs/kit': 2.5.4(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@4.2.12)(vite@5.2.6)
|
||||
devalue: 4.3.2
|
||||
just-clone: 6.2.0
|
||||
memoize-weak: 1.0.2
|
||||
|
|
@ -7272,7 +7287,7 @@ packages:
|
|||
ts-deepmerge: 7.0.0
|
||||
optionalDependencies:
|
||||
'@gcornut/valibot-json-schema': 0.0.26(@types/json-schema@7.0.15)(esbuild-runner@2.2.2)(esbuild@0.20.2)(valibot@0.30.0)
|
||||
'@sinclair/typebox': 0.32.18
|
||||
'@sinclair/typebox': 0.32.19
|
||||
'@sodaru/yup-to-json-schema': 2.0.1
|
||||
'@vinejs/vine': 1.8.0
|
||||
arktype: 1.0.29-alpha
|
||||
|
|
@ -7281,7 +7296,7 @@ packages:
|
|||
valibot: 0.30.0
|
||||
yup: 1.4.0
|
||||
zod: 3.22.4
|
||||
zod-to-json-schema: 3.22.4(zod@3.22.4)
|
||||
zod-to-json-schema: 3.22.5(zod@3.22.4)
|
||||
transitivePeerDependencies:
|
||||
- '@types/json-schema'
|
||||
- esbuild
|
||||
|
|
@ -7632,7 +7647,7 @@ packages:
|
|||
debug: 4.3.4
|
||||
pathe: 1.1.2
|
||||
picocolors: 1.0.0
|
||||
vite: 5.2.2(@types/node@20.11.30)(sass@1.72.0)
|
||||
vite: 5.2.6(@types/node@20.11.30)(sass@1.72.0)
|
||||
transitivePeerDependencies:
|
||||
- '@types/node'
|
||||
- less
|
||||
|
|
@ -7644,8 +7659,8 @@ packages:
|
|||
- terser
|
||||
dev: true
|
||||
|
||||
/vite@5.2.2(@types/node@20.11.30)(sass@1.72.0):
|
||||
resolution: {integrity: sha512-FWZbz0oSdLq5snUI0b6sULbz58iXFXdvkZfZWR/F0ZJuKTSPO7v72QPXt6KqYeMFb0yytNp6kZosxJ96Nr/wDQ==}
|
||||
/vite@5.2.6(@types/node@20.11.30)(sass@1.72.0):
|
||||
resolution: {integrity: sha512-FPtnxFlSIKYjZ2eosBQamz4CbyrTizbZ3hnGJlh/wMtCrlp1Hah6AzBLjGI5I2urTfNnpovpHdrL6YRuBOPnCA==}
|
||||
engines: {node: ^18.0.0 || >=20.0.0}
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
|
|
@ -7680,7 +7695,7 @@ packages:
|
|||
optionalDependencies:
|
||||
fsevents: 2.3.3
|
||||
|
||||
/vitefu@0.2.5(vite@5.2.2):
|
||||
/vitefu@0.2.5(vite@5.2.6):
|
||||
resolution: {integrity: sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==}
|
||||
peerDependencies:
|
||||
vite: ^3.0.0 || ^4.0.0 || ^5.0.0
|
||||
|
|
@ -7688,7 +7703,7 @@ packages:
|
|||
vite:
|
||||
optional: true
|
||||
dependencies:
|
||||
vite: 5.2.2(@types/node@20.11.30)(sass@1.72.0)
|
||||
vite: 5.2.6(@types/node@20.11.30)(sass@1.72.0)
|
||||
|
||||
/vitest@1.4.0(@types/node@20.11.30)(sass@1.72.0):
|
||||
resolution: {integrity: sha512-gujzn0g7fmwf83/WzrDTnncZt2UiXP41mHuFYFrdwaLRVQ6JYQEiME2IfEjU3vcFL3VKa75XhI3lFgn+hfVsQw==}
|
||||
|
|
@ -7733,7 +7748,7 @@ packages:
|
|||
strip-literal: 2.0.0
|
||||
tinybench: 2.6.0
|
||||
tinypool: 0.8.2
|
||||
vite: 5.2.2(@types/node@20.11.30)(sass@1.72.0)
|
||||
vite: 5.2.6(@types/node@20.11.30)(sass@1.72.0)
|
||||
vite-node: 1.4.0(@types/node@20.11.30)(sass@1.72.0)
|
||||
why-is-node-running: 2.2.2
|
||||
transitivePeerDependencies:
|
||||
|
|
@ -7849,8 +7864,8 @@ packages:
|
|||
type-fest: 2.19.0
|
||||
optional: true
|
||||
|
||||
/zod-to-json-schema@3.22.4(zod@3.22.4):
|
||||
resolution: {integrity: sha512-2Ed5dJ+n/O3cU383xSY28cuVi0BCQhF8nYqWU5paEpl7fVdqdAmiLdqLyfblbNdfOFwFfi/mqU4O1pwc60iBhQ==}
|
||||
/zod-to-json-schema@3.22.5(zod@3.22.4):
|
||||
resolution: {integrity: sha512-+akaPo6a0zpVCCseDed504KBJUQpEW5QZw7RMneNmKw+fGaML1Z9tUNLnHHAC8x6dzVRO1eB2oEMyZRnuBZg7Q==}
|
||||
peerDependencies:
|
||||
zod: ^3.22.4
|
||||
dependencies:
|
||||
|
|
|
|||
|
|
@ -48,6 +48,7 @@ declare module 'lucia' {
|
|||
interface Register {
|
||||
Lucia: typeof lucia;
|
||||
DatabaseUserAttributes: DatabaseUserAttributes;
|
||||
DatabaseSessionAttributes: DatabaseSessionAttributes;
|
||||
}
|
||||
interface DatabaseSessionAttributes {
|
||||
ip_country: string;
|
||||
|
|
@ -59,5 +60,6 @@ declare module 'lucia' {
|
|||
firstName: string;
|
||||
lastName: string;
|
||||
theme: string;
|
||||
two_factor_secret: string | null;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -39,6 +39,7 @@ export const load: PageServerLoad = async (event) => {
|
|||
return {
|
||||
profileForm,
|
||||
emailForm,
|
||||
hasSetupTwoFactor: !!dbUser?.two_factor_secret
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -12,6 +12,8 @@
|
|||
|
||||
export let data;
|
||||
|
||||
const hasSetupTwoFactor = data.hasSetupTwoFactor;
|
||||
|
||||
const { form: profileForm, errors: profileErrors, enhance: profileEnhance } = superForm(data.profileForm, {
|
||||
taintedMessage: null,
|
||||
validators: zodClient(profileSchema),
|
||||
|
|
@ -90,12 +92,25 @@
|
|||
{/if}
|
||||
</div>
|
||||
</form>
|
||||
<div class="mt-6">
|
||||
<Button variant="link" class="text-secondary-foreground" href="/password/change">
|
||||
<div class="mt-6">
|
||||
{#if !hasSetupTwoFactor}
|
||||
<Button variant="link" class="text-secondary-foreground" href="/two-factor/setup">
|
||||
<KeyRound class="mr-2 h-4 w-4" />
|
||||
Change Password
|
||||
Setup 2FA
|
||||
</Button>
|
||||
</div>
|
||||
{:else}
|
||||
<Button variant="link" class="text-secondary-foreground" href="/two-factor/disable">
|
||||
<KeyRound class="mr-2 h-4 w-4" />
|
||||
Disable 2FA
|
||||
</Button>
|
||||
{/if}
|
||||
</div>
|
||||
<div class="mt-6">
|
||||
<Button variant="link" class="text-secondary-foreground" href="/password/change">
|
||||
<KeyRound class="mr-2 h-4 w-4" />
|
||||
Change Password
|
||||
</Button>
|
||||
</div>
|
||||
|
||||
<style lang="postcss">
|
||||
form {
|
||||
|
|
|
|||
|
|
@ -1,17 +1,17 @@
|
|||
import { fail, error, type Actions } from '@sveltejs/kit';
|
||||
import { Argon2id } from 'oslo/password';
|
||||
import { eq } from 'drizzle-orm';
|
||||
import { zod } from 'sveltekit-superforms/adapters';
|
||||
import { setError, superValidate } from 'sveltekit-superforms/server';
|
||||
import { redirect } from 'sveltekit-flash-message/server';
|
||||
import { RateLimiter } from 'sveltekit-rate-limiter/server';
|
||||
import type { PageServerLoad } from './$types';
|
||||
import { lucia } from '$lib/server/auth';
|
||||
import { signUpSchema } from '$lib/validations/auth';
|
||||
import { add_user_to_role } from '$server/roles';
|
||||
import {fail, error, type Actions} from '@sveltejs/kit';
|
||||
import {Argon2id} from 'oslo/password';
|
||||
import {eq} from 'drizzle-orm';
|
||||
import {zod} from 'sveltekit-superforms/adapters';
|
||||
import {setError, superValidate} from 'sveltekit-superforms/server';
|
||||
import {redirect} from 'sveltekit-flash-message/server';
|
||||
import {RateLimiter} from 'sveltekit-rate-limiter/server';
|
||||
import type {PageServerLoad} from './$types';
|
||||
import {lucia} from '$lib/server/auth';
|
||||
import {signUpSchema} from '$lib/validations/auth';
|
||||
import {add_user_to_role} from '$server/roles';
|
||||
import db from '$lib/drizzle';
|
||||
import { collections, users, wishlists } from '../../../schema';
|
||||
import { createId as cuid2 } from '@paralleldrive/cuid2';
|
||||
import {collections, users, wishlists} from '../../../schema';
|
||||
import {createId as cuid2} from '@paralleldrive/cuid2';
|
||||
|
||||
const limiter = new RateLimiter({
|
||||
// A rate is defined by [number, unit]
|
||||
|
|
@ -37,7 +37,7 @@ export const load: PageServerLoad = async (event) => {
|
|||
// );
|
||||
|
||||
if (event.locals.user) {
|
||||
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);
|
||||
}
|
||||
|
||||
|
|
@ -81,18 +81,19 @@ export const actions: Actions = {
|
|||
const hashedPassword = await new Argon2id().hash(form.data.password);
|
||||
|
||||
const user = await db
|
||||
.insert(users)
|
||||
.values({
|
||||
username: form.data.username,
|
||||
hashed_password: hashedPassword,
|
||||
email: form.data.email,
|
||||
first_name: form.data.firstName || '',
|
||||
last_name: form.data.lastName || '',
|
||||
verified: false,
|
||||
receive_email: false,
|
||||
theme: 'system'
|
||||
})
|
||||
.returning();
|
||||
.insert(users)
|
||||
.values({
|
||||
username: form.data.username,
|
||||
hashed_password: hashedPassword,
|
||||
email: form.data.email,
|
||||
first_name: form.data.firstName ?? '',
|
||||
last_name: form.data.lastName ?? '',
|
||||
verified: false,
|
||||
receive_email: false,
|
||||
theme: 'system',
|
||||
two_factor_secret: null
|
||||
})
|
||||
.returning();
|
||||
console.log('signup user', user);
|
||||
|
||||
if (!user || user.length === 0) {
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@ export const users = pgTable('users', {
|
|||
verified: boolean('verified').default(false),
|
||||
receive_email: boolean('receive_email').default(false),
|
||||
theme: text('theme').default('system'),
|
||||
two_factor_secret: text('two_factor_secret'),
|
||||
created_at: timestamp('created_at').notNull().defaultNow(),
|
||||
updated_at: timestamp('updated_at').notNull().defaultNow()
|
||||
});
|
||||
|
|
|
|||
Loading…
Reference in a new issue