From 5e178a6a1961d4d5e42fd0a1cf8742b86be1501d Mon Sep 17 00:00:00 2001 From: Evert Prants Date: Thu, 16 May 2024 23:17:06 +0300 Subject: [PATCH] all in a days work --- .gitignore | 1 + drizzle.config.ts | 16 + package-lock.json | 1564 ++++++++++++++++- package.json | 13 +- src/app.css | 78 + src/app.d.ts | 18 +- src/hooks.server.ts | 7 + src/lib/components/Button.svelte | 36 + src/lib/components/LogoutButton.svelte | 3 + src/lib/components/form/FormControl.svelte | 33 + src/lib/components/form/FormSection.svelte | 4 + src/lib/components/form/FormWrapper.svelte | 10 + src/lib/i18n/en/account.json | 28 + src/lib/i18n/en/common.json | 5 + src/lib/i18n/index.ts | 18 + src/lib/server/challenge.ts | 79 + src/lib/server/changesets.ts | 14 + src/lib/server/crypto-utils.ts | 63 + src/lib/server/drizzle/index.ts | 14 + .../drizzle/migrations/0000_initial.sql | 137 ++ .../migrations/meta/0000_snapshot.json | 985 +++++++++++ .../drizzle/migrations/meta/_journal.json | 13 + .../server/drizzle/migrations/relations.ts | 129 ++ src/lib/server/drizzle/schema.ts | 208 +++ src/lib/server/users/index.ts | 48 + src/lib/server/users/totp.ts | 50 + src/lib/server/users/types.ts | 6 + src/lib/validators.ts | 4 + src/routes/+layout.svelte | 16 + src/routes/+layout.ts | 11 + src/routes/account/+page.server.ts | 156 ++ src/routes/account/+page.svelte | 76 + src/routes/login/+page.server.ts | 40 + src/routes/login/+page.svelte | 74 + static/background.jpg | Bin 0 -> 323903 bytes 35 files changed, 3953 insertions(+), 4 deletions(-) create mode 100644 drizzle.config.ts create mode 100644 src/app.css create mode 100644 src/hooks.server.ts create mode 100644 src/lib/components/Button.svelte create mode 100644 src/lib/components/LogoutButton.svelte create mode 100644 src/lib/components/form/FormControl.svelte create mode 100644 src/lib/components/form/FormSection.svelte create mode 100644 src/lib/components/form/FormWrapper.svelte create mode 100644 src/lib/i18n/en/account.json create mode 100644 src/lib/i18n/en/common.json create mode 100644 src/lib/i18n/index.ts create mode 100644 src/lib/server/challenge.ts create mode 100644 src/lib/server/changesets.ts create mode 100644 src/lib/server/crypto-utils.ts create mode 100644 src/lib/server/drizzle/index.ts create mode 100644 src/lib/server/drizzle/migrations/0000_initial.sql create mode 100644 src/lib/server/drizzle/migrations/meta/0000_snapshot.json create mode 100644 src/lib/server/drizzle/migrations/meta/_journal.json create mode 100644 src/lib/server/drizzle/migrations/relations.ts create mode 100644 src/lib/server/drizzle/schema.ts create mode 100644 src/lib/server/users/index.ts create mode 100644 src/lib/server/users/totp.ts create mode 100644 src/lib/server/users/types.ts create mode 100644 src/lib/validators.ts create mode 100644 src/routes/+layout.svelte create mode 100644 src/routes/+layout.ts create mode 100644 src/routes/account/+page.server.ts create mode 100644 src/routes/account/+page.svelte create mode 100644 src/routes/login/+page.server.ts create mode 100644 src/routes/login/+page.svelte create mode 100644 static/background.jpg diff --git a/.gitignore b/.gitignore index 6635cf5..ade934c 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,4 @@ node_modules !.env.example vite.config.js.timestamp-* vite.config.ts.timestamp-* +devdocker diff --git a/drizzle.config.ts b/drizzle.config.ts new file mode 100644 index 0000000..63d29de --- /dev/null +++ b/drizzle.config.ts @@ -0,0 +1,16 @@ +import { defineConfig } from 'drizzle-kit'; + +export default defineConfig({ + dialect: 'mysql', + schema: './src/lib/server/drizzle/schema.ts', + out: './src/lib/server/drizzle/migrations', + dbCredentials: { + host: process.env.DATABASE_HOST as string, + port: Number(process.env.DATABASE_PORT) || 3306, + database: process.env.DATABASE_DB as string, + user: process.env.DATABASE_USER as string, + password: process.env.DATABASE_PASS as string + }, + verbose: true, + strict: true +}) diff --git a/package-lock.json b/package-lock.json index cbfceed..b2b04b8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,15 +8,26 @@ "name": "icysso", "version": "0.0.1", "dependencies": { - "@sveltejs/adapter-node": "^5.0.1" + "@sveltejs/adapter-node": "^5.0.1", + "bcryptjs": "^2.4.3", + "drizzle-orm": "^0.30.10", + "mysql2": "^3.9.7", + "otplib": "^12.0.1", + "svelte-kit-cookie-session": "^4.0.0", + "sveltekit-i18n": "^2.4.2", + "uuid": "^9.0.1" }, "devDependencies": { "@sveltejs/adapter-auto": "^3.0.0", "@sveltejs/kit": "^2.0.0", "@sveltejs/vite-plugin-svelte": "^3.0.0", + "@types/bcryptjs": "^2.4.6", "@types/eslint": "^8.56.0", + "@types/node": "^20.12.12", + "@types/uuid": "^9.0.8", "@typescript-eslint/eslint-plugin": "^7.0.0", "@typescript-eslint/parser": "^7.0.0", + "drizzle-kit": "^0.21.2", "eslint": "^8.56.0", "eslint-config-prettier": "^9.1.0", "eslint-plugin-svelte": "^2.35.1", @@ -41,6 +52,415 @@ "node": ">=6.0.0" } }, + "node_modules/@esbuild-kit/core-utils": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@esbuild-kit/core-utils/-/core-utils-3.3.2.tgz", + "integrity": "sha512-sPRAnw9CdSsRmEtnsl2WXWdyquogVpB3yZ3dgwJfe8zrOzTsV7cJvmwrKVa+0ma5BoiGJ+BoqkMvawbayKUsqQ==", + "dev": true, + "dependencies": { + "esbuild": "~0.18.20", + "source-map-support": "^0.5.21" + } + }, + "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/android-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", + "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/android-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", + "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/android-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz", + "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/darwin-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", + "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/darwin-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", + "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/freebsd-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", + "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/freebsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", + "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/linux-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", + "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/linux-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", + "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/linux-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", + "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/linux-loong64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", + "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/linux-mips64el": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", + "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/linux-ppc64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", + "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/linux-riscv64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", + "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/linux-s390x": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", + "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/linux-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", + "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/netbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", + "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/openbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", + "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/sunos-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", + "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/win32-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", + "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/win32-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", + "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild-kit/core-utils/node_modules/@esbuild/win32-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", + "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild-kit/core-utils/node_modules/esbuild": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", + "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.18.20", + "@esbuild/android-arm64": "0.18.20", + "@esbuild/android-x64": "0.18.20", + "@esbuild/darwin-arm64": "0.18.20", + "@esbuild/darwin-x64": "0.18.20", + "@esbuild/freebsd-arm64": "0.18.20", + "@esbuild/freebsd-x64": "0.18.20", + "@esbuild/linux-arm": "0.18.20", + "@esbuild/linux-arm64": "0.18.20", + "@esbuild/linux-ia32": "0.18.20", + "@esbuild/linux-loong64": "0.18.20", + "@esbuild/linux-mips64el": "0.18.20", + "@esbuild/linux-ppc64": "0.18.20", + "@esbuild/linux-riscv64": "0.18.20", + "@esbuild/linux-s390x": "0.18.20", + "@esbuild/linux-x64": "0.18.20", + "@esbuild/netbsd-x64": "0.18.20", + "@esbuild/openbsd-x64": "0.18.20", + "@esbuild/sunos-x64": "0.18.20", + "@esbuild/win32-arm64": "0.18.20", + "@esbuild/win32-ia32": "0.18.20", + "@esbuild/win32-x64": "0.18.20" + } + }, + "node_modules/@esbuild-kit/esm-loader": { + "version": "2.6.5", + "resolved": "https://registry.npmjs.org/@esbuild-kit/esm-loader/-/esm-loader-2.6.5.tgz", + "integrity": "sha512-FxEMIkJKnodyA1OaCUoEvbYRkoZlLZ4d/eXFu9Fh8CbBBgP5EmZxrfTRyN0qpXZ4vOvqnE5YdRdcrmUUXuU+dA==", + "dev": true, + "dependencies": { + "@esbuild-kit/core-utils": "^3.3.2", + "get-tsconfig": "^4.7.0" + } + }, "node_modules/@esbuild/aix-ppc64": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz", @@ -562,6 +982,14 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "node_modules/@noble/ciphers": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@noble/ciphers/-/ciphers-0.2.0.tgz", + "integrity": "sha512-6YBxJDAapHSdd3bLDv6x2wRPwq4QFMUaB3HvljNBUTThDd12eSm7/3F+2lnfzx2jvM+S6Nsy0jEt9QbPqSwqRw==", + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -597,6 +1025,48 @@ "node": ">= 8" } }, + "node_modules/@otplib/core": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/@otplib/core/-/core-12.0.1.tgz", + "integrity": "sha512-4sGntwbA/AC+SbPhbsziRiD+jNDdIzsZ3JUyfZwjtKyc/wufl1pnSIaG4Uqx8ymPagujub0o92kgBnB89cuAMA==" + }, + "node_modules/@otplib/plugin-crypto": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/@otplib/plugin-crypto/-/plugin-crypto-12.0.1.tgz", + "integrity": "sha512-qPuhN3QrT7ZZLcLCyKOSNhuijUi9G5guMRVrxq63r9YNOxxQjPm59gVxLM+7xGnHnM6cimY57tuKsjK7y9LM1g==", + "dependencies": { + "@otplib/core": "^12.0.1" + } + }, + "node_modules/@otplib/plugin-thirty-two": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/@otplib/plugin-thirty-two/-/plugin-thirty-two-12.0.1.tgz", + "integrity": "sha512-MtT+uqRso909UkbrrYpJ6XFjj9D+x2Py7KjTO9JDPhL0bJUYVu5kFP4TFZW4NFAywrAtFRxOVY261u0qwb93gA==", + "dependencies": { + "@otplib/core": "^12.0.1", + "thirty-two": "^1.0.2" + } + }, + "node_modules/@otplib/preset-default": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/@otplib/preset-default/-/preset-default-12.0.1.tgz", + "integrity": "sha512-xf1v9oOJRyXfluBhMdpOkr+bsE+Irt+0D5uHtvg6x1eosfmHCsCC6ej/m7FXiWqdo0+ZUI6xSKDhJwc8yfiOPQ==", + "dependencies": { + "@otplib/core": "^12.0.1", + "@otplib/plugin-crypto": "^12.0.1", + "@otplib/plugin-thirty-two": "^12.0.1" + } + }, + "node_modules/@otplib/preset-v11": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/@otplib/preset-v11/-/preset-v11-12.0.1.tgz", + "integrity": "sha512-9hSetMI7ECqbFiKICrNa4w70deTUfArtwXykPUvSHWOdzOlfa9ajglu7mNCntlvxycTiOAXkQGwjQCzzDEMRMg==", + "dependencies": { + "@otplib/core": "^12.0.1", + "@otplib/plugin-crypto": "^12.0.1", + "@otplib/plugin-thirty-two": "^12.0.1" + } + }, "node_modules/@polka/url": { "version": "1.0.0-next.25", "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.25.tgz", @@ -1023,6 +1493,25 @@ "vite": "^5.0.0" } }, + "node_modules/@sveltekit-i18n/base": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/@sveltekit-i18n/base/-/base-1.3.7.tgz", + "integrity": "sha512-kg1kql1/ro/lIudwFiWrv949Q07gmweln87tflUZR51MNdXXzK4fiJQv5Mw50K/CdQ5BOk/dJ0WOH2vOtBI6yw==", + "peerDependencies": { + "svelte": ">=3.49.0" + } + }, + "node_modules/@sveltekit-i18n/parser-default": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@sveltekit-i18n/parser-default/-/parser-default-1.1.1.tgz", + "integrity": "sha512-/gtzLlqm/sox7EoPKD56BxGZktK/syGc79EbJAPWY5KVitQD9SM0TP8yJCqDxTVPk7Lk0WJhrBGUE2Nn0f5M1w==" + }, + "node_modules/@types/bcryptjs": { + "version": "2.4.6", + "resolved": "https://registry.npmjs.org/@types/bcryptjs/-/bcryptjs-2.4.6.tgz", + "integrity": "sha512-9xlo6R2qDs5uixm0bcIqCeMCE6HiQsIyel9KQySStiyqNl2tnj2mP3DX1Nf56MD6KMenNNlBBsy3LJ7gUEQPXQ==", + "dev": true + }, "node_modules/@types/cookie": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz", @@ -1049,6 +1538,15 @@ "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", "dev": true }, + "node_modules/@types/node": { + "version": "20.12.12", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.12.tgz", + "integrity": "sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==", + "devOptional": true, + "dependencies": { + "undici-types": "~5.26.4" + } + }, "node_modules/@types/pug": { "version": "2.0.10", "resolved": "https://registry.npmjs.org/@types/pug/-/pug-2.0.10.tgz", @@ -1060,6 +1558,12 @@ "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz", "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==" }, + "node_modules/@types/uuid": { + "version": "9.0.8", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.8.tgz", + "integrity": "sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==", + "dev": true + }, "node_modules/@typescript-eslint/eslint-plugin": { "version": "7.9.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.9.0.tgz", @@ -1360,6 +1864,11 @@ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, + "node_modules/bcryptjs": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz", + "integrity": "sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ==" + }, "node_modules/binary-extensions": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", @@ -1401,6 +1910,12 @@ "node": "*" } }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, "node_modules/builtin-modules": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", @@ -1473,6 +1988,22 @@ "node": ">= 6" } }, + "node_modules/cli-color": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/cli-color/-/cli-color-2.0.4.tgz", + "integrity": "sha512-zlnpg0jNcibNrO7GG9IeHH7maWFeCz+Ja1wx/7tZNU5ASSSSZ+/qZciM0/LHCYxSdqv5h2sdbQ/PXYdOuetXvA==", + "dev": true, + "dependencies": { + "d": "^1.0.1", + "es5-ext": "^0.10.64", + "es6-iterator": "^2.0.3", + "memoizee": "^0.4.15", + "timers-ext": "^0.1.7" + }, + "engines": { + "node": ">=0.10" + } + }, "node_modules/code-red": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/code-red/-/code-red-1.0.4.tgz", @@ -1503,6 +2034,15 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, + "node_modules/commander": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", + "dev": true, + "engines": { + "node": "^12.20.0 || >=14" + } + }, "node_modules/commondir": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", @@ -1560,6 +2100,19 @@ "node": ">=4" } }, + "node_modules/d": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.2.tgz", + "integrity": "sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==", + "dev": true, + "dependencies": { + "es5-ext": "^0.10.64", + "type": "^2.7.2" + }, + "engines": { + "node": ">=0.12" + } + }, "node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -1590,6 +2143,14 @@ "node": ">=0.10.0" } }, + "node_modules/denque": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz", + "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==", + "engines": { + "node": ">=0.10" + } + }, "node_modules/dequal": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", @@ -1612,6 +2173,18 @@ "resolved": "https://registry.npmjs.org/devalue/-/devalue-5.0.0.tgz", "integrity": "sha512-gO+/OMXF7488D+u3ue+G7Y4AA3ZmUnB3eHJXmBTgNHvr4ZNzl36A0ZtG+XCRNYCkYx/bFmw4qtkoFLa+wSrwAA==" }, + "node_modules/difflib": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/difflib/-/difflib-0.2.4.tgz", + "integrity": "sha512-9YVwmMb0wQHQNr5J9m6BSj6fk4pfGITGQOOs+D9Fl+INODWFOfvhIU1hNv6GgR1RBoC/9NJcwu77zShxV0kT7w==", + "dev": true, + "dependencies": { + "heap": ">= 0.2.0" + }, + "engines": { + "node": "*" + } + }, "node_modules/dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", @@ -1636,12 +2209,654 @@ "node": ">=6.0.0" } }, + "node_modules/dreamopt": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/dreamopt/-/dreamopt-0.8.0.tgz", + "integrity": "sha512-vyJTp8+mC+G+5dfgsY+r3ckxlz+QMX40VjPQsZc5gxVAxLmi64TBoVkP54A/pRAXMXsbu2GMMBrZPxNv23waMg==", + "dev": true, + "dependencies": { + "wordwrap": ">=0.0.2" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/drizzle-kit": { + "version": "0.21.2", + "resolved": "https://registry.npmjs.org/drizzle-kit/-/drizzle-kit-0.21.2.tgz", + "integrity": "sha512-U87IhZyCt/9d0ZT/Na3KFJVY31tSxtTx/n9UMcWFpW/5c2Ede39xiCG5efNV/0iimsv97UIRtDI0ldLBW5lbcg==", + "dev": true, + "dependencies": { + "@esbuild-kit/esm-loader": "^2.5.5", + "commander": "^9.4.1", + "env-paths": "^3.0.0", + "esbuild": "^0.19.7", + "esbuild-register": "^3.5.0", + "glob": "^8.1.0", + "hanji": "^0.0.5", + "json-diff": "0.9.0", + "zod": "^3.20.2" + }, + "bin": { + "drizzle-kit": "bin.cjs" + } + }, + "node_modules/drizzle-kit/node_modules/@esbuild/aix-ppc64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz", + "integrity": "sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/drizzle-kit/node_modules/@esbuild/android-arm": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.12.tgz", + "integrity": "sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/drizzle-kit/node_modules/@esbuild/android-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz", + "integrity": "sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/drizzle-kit/node_modules/@esbuild/android-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.12.tgz", + "integrity": "sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/drizzle-kit/node_modules/@esbuild/darwin-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz", + "integrity": "sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/drizzle-kit/node_modules/@esbuild/darwin-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz", + "integrity": "sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/drizzle-kit/node_modules/@esbuild/freebsd-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz", + "integrity": "sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/drizzle-kit/node_modules/@esbuild/freebsd-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz", + "integrity": "sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/drizzle-kit/node_modules/@esbuild/linux-arm": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz", + "integrity": "sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/drizzle-kit/node_modules/@esbuild/linux-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz", + "integrity": "sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/drizzle-kit/node_modules/@esbuild/linux-ia32": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz", + "integrity": "sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/drizzle-kit/node_modules/@esbuild/linux-loong64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz", + "integrity": "sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/drizzle-kit/node_modules/@esbuild/linux-mips64el": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz", + "integrity": "sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/drizzle-kit/node_modules/@esbuild/linux-ppc64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz", + "integrity": "sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/drizzle-kit/node_modules/@esbuild/linux-riscv64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz", + "integrity": "sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/drizzle-kit/node_modules/@esbuild/linux-s390x": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz", + "integrity": "sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/drizzle-kit/node_modules/@esbuild/linux-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz", + "integrity": "sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/drizzle-kit/node_modules/@esbuild/netbsd-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz", + "integrity": "sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/drizzle-kit/node_modules/@esbuild/openbsd-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz", + "integrity": "sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/drizzle-kit/node_modules/@esbuild/sunos-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz", + "integrity": "sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/drizzle-kit/node_modules/@esbuild/win32-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz", + "integrity": "sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/drizzle-kit/node_modules/@esbuild/win32-ia32": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz", + "integrity": "sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/drizzle-kit/node_modules/@esbuild/win32-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz", + "integrity": "sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/drizzle-kit/node_modules/esbuild": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.12.tgz", + "integrity": "sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.19.12", + "@esbuild/android-arm": "0.19.12", + "@esbuild/android-arm64": "0.19.12", + "@esbuild/android-x64": "0.19.12", + "@esbuild/darwin-arm64": "0.19.12", + "@esbuild/darwin-x64": "0.19.12", + "@esbuild/freebsd-arm64": "0.19.12", + "@esbuild/freebsd-x64": "0.19.12", + "@esbuild/linux-arm": "0.19.12", + "@esbuild/linux-arm64": "0.19.12", + "@esbuild/linux-ia32": "0.19.12", + "@esbuild/linux-loong64": "0.19.12", + "@esbuild/linux-mips64el": "0.19.12", + "@esbuild/linux-ppc64": "0.19.12", + "@esbuild/linux-riscv64": "0.19.12", + "@esbuild/linux-s390x": "0.19.12", + "@esbuild/linux-x64": "0.19.12", + "@esbuild/netbsd-x64": "0.19.12", + "@esbuild/openbsd-x64": "0.19.12", + "@esbuild/sunos-x64": "0.19.12", + "@esbuild/win32-arm64": "0.19.12", + "@esbuild/win32-ia32": "0.19.12", + "@esbuild/win32-x64": "0.19.12" + } + }, + "node_modules/drizzle-kit/node_modules/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/drizzle-kit/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/drizzle-orm": { + "version": "0.30.10", + "resolved": "https://registry.npmjs.org/drizzle-orm/-/drizzle-orm-0.30.10.tgz", + "integrity": "sha512-IRy/QmMWw9lAQHpwbUh1b8fcn27S/a9zMIzqea1WNOxK9/4EB8gIo+FZWLiPXzl2n9ixGSv8BhsLZiOppWEwBw==", + "peerDependencies": { + "@aws-sdk/client-rds-data": ">=3", + "@cloudflare/workers-types": ">=3", + "@electric-sql/pglite": ">=0.1.1", + "@libsql/client": "*", + "@neondatabase/serverless": ">=0.1", + "@op-engineering/op-sqlite": ">=2", + "@opentelemetry/api": "^1.4.1", + "@planetscale/database": ">=1", + "@types/better-sqlite3": "*", + "@types/pg": "*", + "@types/react": ">=18", + "@types/sql.js": "*", + "@vercel/postgres": ">=0.8.0", + "@xata.io/client": "*", + "better-sqlite3": ">=7", + "bun-types": "*", + "expo-sqlite": ">=13.2.0", + "knex": "*", + "kysely": "*", + "mysql2": ">=2", + "pg": ">=8", + "postgres": ">=3", + "react": ">=18", + "sql.js": ">=1", + "sqlite3": ">=5" + }, + "peerDependenciesMeta": { + "@aws-sdk/client-rds-data": { + "optional": true + }, + "@cloudflare/workers-types": { + "optional": true + }, + "@electric-sql/pglite": { + "optional": true + }, + "@libsql/client": { + "optional": true + }, + "@neondatabase/serverless": { + "optional": true + }, + "@op-engineering/op-sqlite": { + "optional": true + }, + "@opentelemetry/api": { + "optional": true + }, + "@planetscale/database": { + "optional": true + }, + "@types/better-sqlite3": { + "optional": true + }, + "@types/pg": { + "optional": true + }, + "@types/react": { + "optional": true + }, + "@types/sql.js": { + "optional": true + }, + "@vercel/postgres": { + "optional": true + }, + "@xata.io/client": { + "optional": true + }, + "better-sqlite3": { + "optional": true + }, + "bun-types": { + "optional": true + }, + "expo-sqlite": { + "optional": true + }, + "knex": { + "optional": true + }, + "kysely": { + "optional": true + }, + "mysql2": { + "optional": true + }, + "pg": { + "optional": true + }, + "postgres": { + "optional": true + }, + "react": { + "optional": true + }, + "sql.js": { + "optional": true + }, + "sqlite3": { + "optional": true + } + } + }, + "node_modules/env-paths": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-3.0.0.tgz", + "integrity": "sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/es5-ext": { + "version": "0.10.64", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.64.tgz", + "integrity": "sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.3", + "esniff": "^2.0.1", + "next-tick": "^1.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", + "dev": true, + "dependencies": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, "node_modules/es6-promise": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz", "integrity": "sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==", "dev": true }, + "node_modules/es6-symbol": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.4.tgz", + "integrity": "sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==", + "dev": true, + "dependencies": { + "d": "^1.0.2", + "ext": "^1.7.0" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/es6-weak-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", + "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", + "dev": true, + "dependencies": { + "d": "1", + "es5-ext": "^0.10.46", + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.1" + } + }, "node_modules/esbuild": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.2.tgz", @@ -1679,6 +2894,18 @@ "@esbuild/win32-x64": "0.20.2" } }, + "node_modules/esbuild-register": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/esbuild-register/-/esbuild-register-3.5.0.tgz", + "integrity": "sha512-+4G/XmakeBAsvJuDugJvtyF1x+XJT4FMocynNpxrvEBViirpfUn2PgNpCHedfWhF4WokNsO/OvMKrmJOIJsI5A==", + "dev": true, + "dependencies": { + "debug": "^4.3.4" + }, + "peerDependencies": { + "esbuild": ">=0.12 <1" + } + }, "node_modules/escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", @@ -1863,6 +3090,21 @@ "resolved": "https://registry.npmjs.org/esm-env/-/esm-env-1.0.0.tgz", "integrity": "sha512-Cf6VksWPsTuW01vU9Mk/3vRue91Zevka5SjyNf3nEpokFRuqt/KjUQoGAwq9qMmhpLTHmXzSIrFRw8zxWzmFBA==" }, + "node_modules/esniff": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/esniff/-/esniff-2.0.1.tgz", + "integrity": "sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==", + "dev": true, + "dependencies": { + "d": "^1.0.1", + "es5-ext": "^0.10.62", + "event-emitter": "^0.3.5", + "type": "^2.7.2" + }, + "engines": { + "node": ">=0.10" + } + }, "node_modules/espree": { "version": "9.6.1", "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", @@ -1930,6 +3172,25 @@ "node": ">=0.10.0" } }, + "node_modules/event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==", + "dev": true, + "dependencies": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, + "node_modules/ext": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", + "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", + "dev": true, + "dependencies": { + "type": "^2.7.2" + } + }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -2071,6 +3332,26 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/generate-function": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz", + "integrity": "sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==", + "dependencies": { + "is-property": "^1.0.2" + } + }, + "node_modules/get-tsconfig": { + "version": "4.7.5", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.5.tgz", + "integrity": "sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==", + "dev": true, + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, "node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", @@ -2182,6 +3463,16 @@ "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", "dev": true }, + "node_modules/hanji": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/hanji/-/hanji-0.0.5.tgz", + "integrity": "sha512-Abxw1Lq+TnYiL4BueXqMau222fPSPMFtya8HdpWsz/xVAhifXou71mPh/kY2+08RgFcVccjG3uZHs6K5HAe3zw==", + "dev": true, + "dependencies": { + "lodash.throttle": "^4.1.1", + "sisteransi": "^1.0.5" + } + }, "node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -2202,6 +3493,23 @@ "node": ">= 0.4" } }, + "node_modules/heap": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/heap/-/heap-0.2.7.tgz", + "integrity": "sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg==", + "dev": true + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/ignore": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", @@ -2340,6 +3648,17 @@ "node": ">=8" } }, + "node_modules/is-promise": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", + "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", + "dev": true + }, + "node_modules/is-property": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", + "integrity": "sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==" + }, "node_modules/is-reference": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.2.tgz", @@ -2372,6 +3691,23 @@ "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", "dev": true }, + "node_modules/json-diff": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/json-diff/-/json-diff-0.9.0.tgz", + "integrity": "sha512-cVnggDrVkAAA3OvFfHpFEhOnmcsUpleEKq4d4O8sQWWSH40MBrWstKigVB1kGrgLWzuom+7rRdaCsnBD6VyObQ==", + "dev": true, + "dependencies": { + "cli-color": "^2.0.0", + "difflib": "~0.2.1", + "dreamopt": "~0.8.0" + }, + "bin": { + "json-diff": "bin/json-diff.js" + }, + "engines": { + "node": "*" + } + }, "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -2455,6 +3791,34 @@ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, + "node_modules/lodash.throttle": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", + "integrity": "sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==", + "dev": true + }, + "node_modules/long": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", + "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" + }, + "node_modules/lru-cache": { + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-8.0.5.tgz", + "integrity": "sha512-MhWWlVnuab1RG5/zMRRcVGXZLCXrZTgfwMikgzCegsPnG62yDQo5JnqKkrK4jO5iKqDAZGItAqN5CtKBCBWRUA==", + "engines": { + "node": ">=16.14" + } + }, + "node_modules/lru-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz", + "integrity": "sha512-BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ==", + "dev": true, + "dependencies": { + "es5-ext": "~0.10.2" + } + }, "node_modules/magic-string": { "version": "0.30.10", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.10.tgz", @@ -2468,6 +3832,22 @@ "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==" }, + "node_modules/memoizee": { + "version": "0.4.15", + "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.15.tgz", + "integrity": "sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ==", + "dev": true, + "dependencies": { + "d": "^1.0.1", + "es5-ext": "^0.10.53", + "es6-weak-map": "^2.0.3", + "event-emitter": "^0.3.5", + "is-promise": "^2.2.2", + "lru-queue": "^0.1.0", + "next-tick": "^1.1.0", + "timers-ext": "^0.1.7" + } + }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", @@ -2556,6 +3936,43 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, + "node_modules/mysql2": { + "version": "3.9.7", + "resolved": "https://registry.npmjs.org/mysql2/-/mysql2-3.9.7.tgz", + "integrity": "sha512-KnJT8vYRcNAZv73uf9zpXqNbvBG7DJrs+1nACsjZP1HMJ1TgXEy8wnNilXAn/5i57JizXKtrUtwDB7HxT9DDpw==", + "dependencies": { + "denque": "^2.1.0", + "generate-function": "^2.3.1", + "iconv-lite": "^0.6.3", + "long": "^5.2.1", + "lru-cache": "^8.0.0", + "named-placeholders": "^1.1.3", + "seq-queue": "^0.0.5", + "sqlstring": "^2.3.2" + }, + "engines": { + "node": ">= 8.0" + } + }, + "node_modules/named-placeholders": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/named-placeholders/-/named-placeholders-1.1.3.tgz", + "integrity": "sha512-eLoBxg6wE/rZkJPhU/xRX1WTpkFEwDJEN96oxFrTsqBdbT5ec295Q+CoHrL9IT0DipqKhmGcaZmwOt8OON5x1w==", + "dependencies": { + "lru-cache": "^7.14.1" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/named-placeholders/node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "engines": { + "node": ">=12" + } + }, "node_modules/nanoid": { "version": "3.3.7", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", @@ -2579,6 +3996,12 @@ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, + "node_modules/next-tick": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", + "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", + "dev": true + }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -2613,6 +4036,16 @@ "node": ">= 0.8.0" } }, + "node_modules/otplib": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/otplib/-/otplib-12.0.1.tgz", + "integrity": "sha512-xDGvUOQjop7RDgxTQ+o4pOol0/3xSZzawTiPKRrHnQWAy0WjhNs/5HdIDJCrqC4MBynmjXgULc6YfioaxZeFgg==", + "dependencies": { + "@otplib/core": "^12.0.1", + "@otplib/preset-default": "^12.0.1", + "@otplib/preset-v11": "^12.0.1" + } + }, "node_modules/p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", @@ -2933,6 +4366,15 @@ "node": ">=4" } }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true, + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, "node_modules/reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", @@ -3026,6 +4468,11 @@ "node": ">=6" } }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, "node_modules/sander": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/sander/-/sander-0.5.1.tgz", @@ -3062,6 +4509,11 @@ "node": ">=10" } }, + "node_modules/seq-queue": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/seq-queue/-/seq-queue-0.0.5.tgz", + "integrity": "sha512-hr3Wtp/GZIc/6DAGPDcV4/9WoZhjrkXsi5B/07QgX8tsdc6ilr7BFM6PM6rbdAX1kFSDYeZGLipIZZKyQP0O5Q==" + }, "node_modules/set-cookie-parser": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.6.0.tgz", @@ -3101,6 +4553,12 @@ "node": ">= 10" } }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, "node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -3125,6 +4583,15 @@ "sorcery": "bin/sorcery" } }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/source-map-js": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", @@ -3133,6 +4600,24 @@ "node": ">=0.10.0" } }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/sqlstring": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.3.tgz", + "integrity": "sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -3276,6 +4761,14 @@ "svelte": "^3.19.0 || ^4.0.0" } }, + "node_modules/svelte-kit-cookie-session": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/svelte-kit-cookie-session/-/svelte-kit-cookie-session-4.0.0.tgz", + "integrity": "sha512-P7Og9z+cpwitS8JN9bBMxIFvX7kBM/Vrx4gDYbodO7qtT5C+EMJnNFpruvQgomL2UthzHYWLN/4aEgAGDgPTDA==", + "dependencies": { + "@noble/ciphers": "^0.2.0" + } + }, "node_modules/svelte-preprocess": { "version": "5.1.4", "resolved": "https://registry.npmjs.org/svelte-preprocess/-/svelte-preprocess-5.1.4.tgz", @@ -3338,12 +4831,42 @@ } } }, + "node_modules/sveltekit-i18n": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/sveltekit-i18n/-/sveltekit-i18n-2.4.2.tgz", + "integrity": "sha512-hjRWn4V4DBL8JQKJoJa3MRvn6d32Zo+rWkoSP5bsQ/XIAguPdQUZJ8LMe6Nc1rST8WEVdu9+vZI3aFdKYGR3+Q==", + "dependencies": { + "@sveltekit-i18n/base": "~1.3.0", + "@sveltekit-i18n/parser-default": "~1.1.0" + }, + "peerDependencies": { + "svelte": ">=3.49.0" + } + }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "dev": true }, + "node_modules/thirty-two": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/thirty-two/-/thirty-two-1.0.2.tgz", + "integrity": "sha512-OEI0IWCe+Dw46019YLl6V10Us5bi574EvlJEOcAkB29IzQ/mYD1A6RyNHLjZPiHCmuodxvgF6U+vZO1L15lxVA==", + "engines": { + "node": ">=0.2.6" + } + }, + "node_modules/timers-ext": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz", + "integrity": "sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==", + "dev": true, + "dependencies": { + "es5-ext": "~0.10.46", + "next-tick": "1" + } + }, "node_modules/tiny-glob": { "version": "0.2.9", "resolved": "https://registry.npmjs.org/tiny-glob/-/tiny-glob-0.2.9.tgz", @@ -3391,6 +4914,12 @@ "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", "dev": true }, + "node_modules/type": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", + "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==", + "dev": true + }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -3428,6 +4957,12 @@ "node": ">=14.17" } }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "devOptional": true + }, "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", @@ -3443,6 +4978,18 @@ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "dev": true }, + "node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "bin": { + "uuid": "dist/bin/uuid" + } + }, "node_modules/vite": { "version": "5.2.11", "resolved": "https://registry.npmjs.org/vite/-/vite-5.2.11.tgz", @@ -3534,6 +5081,12 @@ "node": ">=0.10.0" } }, + "node_modules/wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", + "dev": true + }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", @@ -3559,6 +5112,15 @@ "funding": { "url": "https://github.com/sponsors/sindresorhus" } + }, + "node_modules/zod": { + "version": "3.23.8", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.23.8.tgz", + "integrity": "sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } } } } diff --git a/package.json b/package.json index 7f24d0a..dfe5550 100644 --- a/package.json +++ b/package.json @@ -15,9 +15,13 @@ "@sveltejs/adapter-auto": "^3.0.0", "@sveltejs/kit": "^2.0.0", "@sveltejs/vite-plugin-svelte": "^3.0.0", + "@types/bcryptjs": "^2.4.6", "@types/eslint": "^8.56.0", + "@types/node": "^20.12.12", + "@types/uuid": "^9.0.8", "@typescript-eslint/eslint-plugin": "^7.0.0", "@typescript-eslint/parser": "^7.0.0", + "drizzle-kit": "^0.21.2", "eslint": "^8.56.0", "eslint-config-prettier": "^9.1.0", "eslint-plugin-svelte": "^2.35.1", @@ -31,6 +35,13 @@ }, "type": "module", "dependencies": { - "@sveltejs/adapter-node": "^5.0.1" + "@sveltejs/adapter-node": "^5.0.1", + "bcryptjs": "^2.4.3", + "drizzle-orm": "^0.30.10", + "mysql2": "^3.9.7", + "otplib": "^12.0.1", + "svelte-kit-cookie-session": "^4.0.0", + "sveltekit-i18n": "^2.4.2", + "uuid": "^9.0.1" } } diff --git a/src/app.css b/src/app.css new file mode 100644 index 0000000..2082fc5 --- /dev/null +++ b/src/app.css @@ -0,0 +1,78 @@ +*, +*::before, +*::after { + box-sizing: border-box; +} + +:root { + --in-text-color: #fff; + --in-link-color: #fff; + --in-outline-color: #00aaff; + --in-normalized-background: #000; + --in-input-background: #fff; + --in-input-color: #000; + --in-input-border-color: #ddd; + + --in-focus-outline: 3px solid var(--in-outline-color); +} + +:root { + font-family: + system-ui, + -apple-system, + BlinkMacSystemFont, + 'Segoe UI', + Roboto, + Oxygen, + Ubuntu, + Cantarell, + 'Open Sans', + 'Helvetica Neue', + sans-serif; + color: var(--in-text-color); +} + +html, +body { + margin: 0; + width: 100%; + height: 100%; +} + +body { + background-color: var(--in-normalized-background); + background-image: url('/background.jpg'); + background-attachment: fixed; + background-repeat: no-repeat; + background-size: cover; +} + +h1, +h2, +h3, +h4, +h5 { + margin-top: 0; +} + +a { + color: var(--in-link-color); + + &:visited { + color: var(--in-link-color); + } + + &:focus-visible { + outline: var(--in-focus-outline); + } +} + +a[target='_blank']::after { + content: ''; + background-image: url('data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 style=%27width:24px;height:24px%27 viewBox=%270 0 24 24%27%3E%3Cpath fill=%27%23ffffff%27 d=%27M14,3V5H17.59L7.76,14.83L9.17,16.24L19,6.41V10H21V3M19,19H5V5H12V3H5C3.89,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V12H19V19Z%27 /%3E%3C/svg%3E'); + width: 0.95rem; + height: 0.95rem; + display: inline-block; + margin-left: 2px; + vertical-align: top; +} diff --git a/src/app.d.ts b/src/app.d.ts index 743f07b..d83caae 100644 --- a/src/app.d.ts +++ b/src/app.d.ts @@ -1,10 +1,24 @@ +import type { UserSession } from '$lib/server/users/types'; +import type { Session } from 'svelte-kit-cookie-session'; + +type SessionData = { + user?: UserSession; +} + // See https://kit.svelte.dev/docs/types#app // for information about these interfaces declare global { namespace App { // interface Error {} - // interface Locals {} - // interface PageData {} + + interface Locals { + session: Session; + } + + interface PageData { + session: SessionData; + } + // interface PageState {} // interface Platform {} } diff --git a/src/hooks.server.ts b/src/hooks.server.ts new file mode 100644 index 0000000..508d8d1 --- /dev/null +++ b/src/hooks.server.ts @@ -0,0 +1,7 @@ +import { SESSION_SECRET } from '$env/static/private'; +import '$lib/server/drizzle'; +import { handleSession } from 'svelte-kit-cookie-session'; + +export const handle = handleSession({ + secret: SESSION_SECRET +}) diff --git a/src/lib/components/Button.svelte b/src/lib/components/Button.svelte new file mode 100644 index 0000000..1447963 --- /dev/null +++ b/src/lib/components/Button.svelte @@ -0,0 +1,36 @@ + + + + + diff --git a/src/lib/components/LogoutButton.svelte b/src/lib/components/LogoutButton.svelte new file mode 100644 index 0000000..d679617 --- /dev/null +++ b/src/lib/components/LogoutButton.svelte @@ -0,0 +1,3 @@ +
+ +
diff --git a/src/lib/components/form/FormControl.svelte b/src/lib/components/form/FormControl.svelte new file mode 100644 index 0000000..48e87f5 --- /dev/null +++ b/src/lib/components/form/FormControl.svelte @@ -0,0 +1,33 @@ + +
+ +
+ + diff --git a/src/lib/components/form/FormSection.svelte b/src/lib/components/form/FormSection.svelte new file mode 100644 index 0000000..5c184a3 --- /dev/null +++ b/src/lib/components/form/FormSection.svelte @@ -0,0 +1,4 @@ + +
+ +
diff --git a/src/lib/components/form/FormWrapper.svelte b/src/lib/components/form/FormWrapper.svelte new file mode 100644 index 0000000..41d7244 --- /dev/null +++ b/src/lib/components/form/FormWrapper.svelte @@ -0,0 +1,10 @@ + +
+ +
+ + diff --git a/src/lib/i18n/en/account.json b/src/lib/i18n/en/account.json new file mode 100644 index 0000000..2fec6dd --- /dev/null +++ b/src/lib/i18n/en/account.json @@ -0,0 +1,28 @@ +{ + "username": "Username", + "displayName": "Display Name", + "changeEmail": "Change email address", + "currentEmail": "Current email address", + "newEmail": "New email address", + "changePassword": "Change password", + "currentPassword": "Current password", + "newPassword": "New password", + "repeatPassword": "Repeat new password", + "submit": "Submit", + "login": { + "title": "Log in", + "email": "Email", + "password": "Password", + "submit": "Log in" + }, + "errors": { + "invalidLogin": "Invalid email or password!", + "invalidRequest": "Invalid request! Please try again.", + "emailRequired": "Email address is required.", + "invalidEmail": "The email address is invalid.", + "passwordRequired": "The password is required.", + "passwordMismatch": "The passwords do not match!", + "invalidPassword": "The provided password is invalid.", + "invalidDisplayName": "The provided display name is invalid." + } +} diff --git a/src/lib/i18n/en/common.json b/src/lib/i18n/en/common.json new file mode 100644 index 0000000..76ae907 --- /dev/null +++ b/src/lib/i18n/en/common.json @@ -0,0 +1,5 @@ +{ + "siteName": "Icy Network", + "description": "Icy Network is a Single-Sign-On service used by other applications.", + "cookieDisclaimer": "The website may use temporary cookies for storing your login session and ensuring your security. This web service is completely open source and can be audited by anyone." +} diff --git a/src/lib/i18n/index.ts b/src/lib/i18n/index.ts new file mode 100644 index 0000000..c933657 --- /dev/null +++ b/src/lib/i18n/index.ts @@ -0,0 +1,18 @@ +import i18n from 'sveltekit-i18n'; + +const config = { + loaders: [ + { + locale: 'en', + key: 'common', + loader: async () => await import('./en/common.json') + }, + { + locale: 'en', + key: 'account', + loader: async () => await import('./en/account.json') + } + ] +}; + +export const { t, locale, locales, loading, loadTranslations } = new i18n(config); diff --git a/src/lib/server/challenge.ts b/src/lib/server/challenge.ts new file mode 100644 index 0000000..f34b5da --- /dev/null +++ b/src/lib/server/challenge.ts @@ -0,0 +1,79 @@ +import { Changesets } from './changesets'; +import { CryptoUtils } from './crypto-utils'; +import type { User } from './drizzle'; +import { TimeOTP } from './users/totp'; + +export interface ChallengeBody { + aud: string; + data: T; +} + +export class Challenge { + static async issueChallenge( + challenge: TChallenge, + recipient: string + ): Promise { + const body = >{ + aud: recipient, + data: challenge + }; + return CryptoUtils.encryptChallenge(body); + } + + static async verifyChallenge( + challenge: string, + recipient: string, + code: string, + secret: string + ) { + const { aud, data }: ChallengeBody = await CryptoUtils.decryptChallenge(challenge); + if (aud !== recipient) { + throw new Error('Invalid challenge'); + } + + if (!TimeOTP.validate(secret, code)) { + throw new Error('Invalid token'); + } + + return data; + } + + static async challengeFromBody( + body: FormData, + recipient: string, + secret: string + ): Promise { + const { challenge, otpCode } = Changesets.take<{ challenge?: string; otpCode?: string }>( + ['challenge', 'otpCode'], + body + ); + + if (!challenge || !otpCode) { + return; + } + + return Challenge.verifyChallenge(challenge, recipient, otpCode, secret); + } + + static async authorizedChanges( + fields: (keyof TRes)[], + body: FormData, + subject: User + ): Promise> { + if (!body.has('challenge')) { + return Changesets.take(fields, body); + } + + const userOtp = await TimeOTP.getUserOtp(subject); + if (!userOtp) { + throw new Error('Invalid request'); + } + + const data = await Challenge.challengeFromBody(body, subject.uuid, userOtp.token); + if (!data) { + throw new Error('Invalid request'); + } + + return data; + } +} diff --git a/src/lib/server/changesets.ts b/src/lib/server/changesets.ts new file mode 100644 index 0000000..154fbbc --- /dev/null +++ b/src/lib/server/changesets.ts @@ -0,0 +1,14 @@ +export class Changesets { + static take( + fields: (keyof TRes)[], + body: FormData, + challenge?: Partial + ): Partial { + return fields.reduce>((accum, field) => { + accum[field] = challenge + ? challenge[field] + : ((body.get(field as string) as string)?.trim() as TRes[typeof field]); + return accum; + }, {}); + } +} diff --git a/src/lib/server/crypto-utils.ts b/src/lib/server/crypto-utils.ts new file mode 100644 index 0000000..ba702ed --- /dev/null +++ b/src/lib/server/crypto-utils.ts @@ -0,0 +1,63 @@ +import { CHALLENGE_SECRET } from '$env/static/private'; +import * as crypto from 'crypto'; +import { v4 } from 'uuid'; + +const IV_LENGTH = 16; +const ALGORITHM = 'aes-256-cbc'; + +export class CryptoUtils { + public static generateString(length: number): string { + return crypto.randomBytes(length).toString('hex').slice(0, length); + } + + public static generateSecret(): string { + return crypto.randomBytes(256 / 8).toString('hex'); + } + + public static insecureHash(input: string): string { + return crypto.createHash('md5').update(input).digest('hex'); + } + + public static createUUID(): string { + return v4(); + } + + // https://stackoverflow.com/q/52212430 + /** + * Symmetric encryption function + * @param text String to encrypt + * @param key Encryption key + * @returns Encrypted text + */ + public static encrypt(text: string, key: string): string { + const iv = crypto.randomBytes(IV_LENGTH); + const cipher = crypto.createCipheriv(ALGORITHM, Buffer.from(key, 'hex'), iv); + let encrypted = cipher.update(text); + encrypted = Buffer.concat([encrypted, cipher.final()]); + return `${iv.toString('hex')}:${encrypted.toString('hex')}`; + } + + /** + * Symmetric decryption function + * @param text Encrypted string + * @param key Decryption key + * @returns Decrypted text + */ + public static decrypt(text: string, key: string): string { + const [iv, encryptedText] = text.split(':').map((part) => Buffer.from(part, 'hex')); + + const decipher = crypto.createDecipheriv(ALGORITHM, Buffer.from(key, 'hex'), iv); + + let decrypted = decipher.update(encryptedText); + decrypted = Buffer.concat([decrypted, decipher.final()]); + return decrypted.toString(); + } + + public static async encryptChallenge(challenge: T): Promise { + return this.encrypt(JSON.stringify(challenge), CHALLENGE_SECRET); + } + + public static async decryptChallenge(challenge: string): Promise { + return JSON.parse(this.decrypt(challenge, CHALLENGE_SECRET)); + } +} diff --git a/src/lib/server/drizzle/index.ts b/src/lib/server/drizzle/index.ts new file mode 100644 index 0000000..a1edfe4 --- /dev/null +++ b/src/lib/server/drizzle/index.ts @@ -0,0 +1,14 @@ +import { DATABASE_DB, DATABASE_HOST, DATABASE_PASS } from '$env/static/private'; +import { drizzle } from 'drizzle-orm/mysql2'; +import mysql from 'mysql2/promise'; +import * as schema from './schema'; + +const connection = await mysql.createConnection({ + host: DATABASE_HOST, + user: DATABASE_PASS, + password: DATABASE_PASS, + database: DATABASE_DB +}); + +export const db = drizzle(connection, { schema, mode: 'default' }); +export * from './schema'; diff --git a/src/lib/server/drizzle/migrations/0000_initial.sql b/src/lib/server/drizzle/migrations/0000_initial.sql new file mode 100644 index 0000000..04eb263 --- /dev/null +++ b/src/lib/server/drizzle/migrations/0000_initial.sql @@ -0,0 +1,137 @@ +-- Current sql file was generated after introspecting the database +-- If you want to run this migration please uncomment this code before executing migrations +/* +CREATE TABLE `audit_log` ( + `id` int(11) AUTO_INCREMENT NOT NULL, + `action` text NOT NULL, + `content` text DEFAULT 'NULL', + `actor_ip` text DEFAULT 'NULL', + `actor_ua` text DEFAULT 'NULL', + `flagged` tinyint NOT NULL DEFAULT 0, + `created_at` datetime(6) NOT NULL DEFAULT 'current_timestamp(6)', + `actorId` int(11) DEFAULT 'NULL' +); +--> statement-breakpoint +CREATE TABLE `document` ( + `id` int(11) AUTO_INCREMENT NOT NULL, + `title` text NOT NULL, + `slug` text NOT NULL, + `body` text NOT NULL, + `authorId` int(11) DEFAULT 'NULL', + `created_at` datetime(6) NOT NULL DEFAULT 'current_timestamp(6)', + `updated_at` datetime(6) NOT NULL DEFAULT 'current_timestamp(6)' +); +--> statement-breakpoint +CREATE TABLE `o_auth2_client` ( + `id` int(11) AUTO_INCREMENT NOT NULL, + `client_id` varchar(36) NOT NULL, + `client_secret` text NOT NULL, + `title` varchar(255) NOT NULL, + `description` text DEFAULT 'NULL', + `scope` text DEFAULT 'NULL', + `grants` text NOT NULL DEFAULT ''authorization_code'', + `activated` tinyint NOT NULL DEFAULT 0, + `verified` tinyint NOT NULL DEFAULT 0, + `pictureId` int(11) DEFAULT 'NULL', + `ownerId` int(11) DEFAULT 'NULL', + `created_at` datetime(6) NOT NULL DEFAULT 'current_timestamp(6)', + `updated_at` datetime(6) NOT NULL DEFAULT 'current_timestamp(6)', + CONSTRAINT `IDX_e9d16c213910ad57bd05e97b42` UNIQUE(`client_id`) +); +--> statement-breakpoint +CREATE TABLE `o_auth2_client_authorization` ( + `id` int(11) AUTO_INCREMENT NOT NULL, + `scope` text DEFAULT 'NULL', + `expires_at` timestamp NOT NULL DEFAULT 'current_timestamp()', + `clientId` int(11) DEFAULT 'NULL', + `userId` int(11) DEFAULT 'NULL', + `created_at` datetime(6) NOT NULL DEFAULT 'current_timestamp(6)' +); +--> statement-breakpoint +CREATE TABLE `o_auth2_client_url` ( + `id` int(11) AUTO_INCREMENT NOT NULL, + `url` varchar(255) NOT NULL, + `type` enum('redirect_uri','terms','privacy','website') NOT NULL, + `created_at` timestamp(6) NOT NULL DEFAULT 'current_timestamp(6)', + `updated_at` timestamp(6) NOT NULL DEFAULT 'current_timestamp(6)', + `clientId` int(11) DEFAULT 'NULL' +); +--> statement-breakpoint +CREATE TABLE `o_auth2_token` ( + `id` int(11) AUTO_INCREMENT NOT NULL, + `type` enum('code','access_token','refresh_token') NOT NULL, + `token` text NOT NULL, + `scope` text DEFAULT 'NULL', + `expires_at` timestamp NOT NULL DEFAULT 'current_timestamp()', + `userId` int(11) DEFAULT 'NULL', + `clientId` int(11) DEFAULT 'NULL', + `nonce` text DEFAULT 'NULL', + `created_at` datetime(6) NOT NULL DEFAULT 'current_timestamp(6)', + `updated_at` datetime(6) NOT NULL DEFAULT 'current_timestamp(6)', + `pcke` text DEFAULT 'NULL' +); +--> statement-breakpoint +CREATE TABLE `privilege` ( + `id` int(11) AUTO_INCREMENT NOT NULL, + `name` text NOT NULL +); +--> statement-breakpoint +CREATE TABLE `upload` ( + `id` int(11) AUTO_INCREMENT NOT NULL, + `original_name` varchar(255) NOT NULL, + `mimetype` varchar(255) NOT NULL, + `file` varchar(255) NOT NULL, + `uploaderId` int(11) DEFAULT 'NULL', + `created_at` datetime(6) NOT NULL DEFAULT 'current_timestamp(6)', + `updated_at` datetime(6) NOT NULL DEFAULT 'current_timestamp(6)' +); +--> statement-breakpoint +CREATE TABLE `user` ( + `id` int(11) AUTO_INCREMENT NOT NULL, + `uuid` varchar(36) NOT NULL, + `username` varchar(26) NOT NULL, + `email` varchar(255) NOT NULL, + `display_name` varchar(32) NOT NULL, + `password` text DEFAULT 'NULL', + `activated` tinyint NOT NULL DEFAULT 0, + `activity_at` timestamp NOT NULL DEFAULT 'current_timestamp()', + `pictureId` int(11) DEFAULT 'NULL', + `created_at` datetime(6) NOT NULL DEFAULT 'current_timestamp(6)', + `updated_at` datetime(6) NOT NULL DEFAULT 'current_timestamp(6)', + CONSTRAINT `IDX_a95e949168be7b7ece1a2382fe` UNIQUE(`uuid`), + CONSTRAINT `IDX_78a916df40e02a9deb1c4b75ed` UNIQUE(`username`), + CONSTRAINT `IDX_e12875dfb3b1d92d7d7c5377e2` UNIQUE(`email`) +); +--> statement-breakpoint +CREATE TABLE `user_privileges_privilege` ( + `userId` int(11) NOT NULL, + `privilegeId` int(11) NOT NULL +); +--> statement-breakpoint +CREATE TABLE `user_token` ( + `id` int(11) AUTO_INCREMENT NOT NULL, + `token` text NOT NULL, + `type` enum('generic','activation','deactivation','password','login','gdpr','totp','public_key','recovery') NOT NULL, + `expires_at` timestamp DEFAULT 'NULL', + `userId` int(11) DEFAULT 'NULL', + `nonce` text DEFAULT 'NULL', + `created_at` datetime(6) NOT NULL DEFAULT 'current_timestamp(6)' +); +--> statement-breakpoint +ALTER TABLE `audit_log` ADD CONSTRAINT `FK_cb6aa6f6fd56f08eafb60316225` FOREIGN KEY (`actorId`) REFERENCES `user`(`id`) ON DELETE set null ON UPDATE no action;--> statement-breakpoint +ALTER TABLE `document` ADD CONSTRAINT `FK_6a2eb13cadfc503989cbe367572` FOREIGN KEY (`authorId`) REFERENCES `user`(`id`) ON DELETE no action ON UPDATE no action;--> statement-breakpoint +ALTER TABLE `o_auth2_client` ADD CONSTRAINT `FK_4a6c878506b872e85b3d07f6252` FOREIGN KEY (`ownerId`) REFERENCES `user`(`id`) ON DELETE set null ON UPDATE no action;--> statement-breakpoint +ALTER TABLE `o_auth2_client` ADD CONSTRAINT `FK_e8d65b1eec13474e493420517d7` FOREIGN KEY (`pictureId`) REFERENCES `upload`(`id`) ON DELETE set null ON UPDATE no action;--> statement-breakpoint +ALTER TABLE `o_auth2_client_authorization` ADD CONSTRAINT `FK_8227110f58510b7233f3db90cfb` FOREIGN KEY (`userId`) REFERENCES `user`(`id`) ON DELETE cascade ON UPDATE no action;--> statement-breakpoint +ALTER TABLE `o_auth2_client_authorization` ADD CONSTRAINT `FK_9ca9ebb654e7ce71954d5fdb281` FOREIGN KEY (`clientId`) REFERENCES `o_auth2_client`(`id`) ON DELETE cascade ON UPDATE no action;--> statement-breakpoint +ALTER TABLE `o_auth2_client_url` ADD CONSTRAINT `FK_aca59c7bdd65987487eea98d00f` FOREIGN KEY (`clientId`) REFERENCES `o_auth2_client`(`id`) ON DELETE cascade ON UPDATE no action;--> statement-breakpoint +ALTER TABLE `o_auth2_token` ADD CONSTRAINT `FK_3ecb760b321ef9bbab635f05b45` FOREIGN KEY (`clientId`) REFERENCES `o_auth2_client`(`id`) ON DELETE cascade ON UPDATE no action;--> statement-breakpoint +ALTER TABLE `o_auth2_token` ADD CONSTRAINT `FK_81ffb9b8d672cf3af1af9e789f3` FOREIGN KEY (`userId`) REFERENCES `user`(`id`) ON DELETE cascade ON UPDATE no action;--> statement-breakpoint +ALTER TABLE `upload` ADD CONSTRAINT `FK_7b8d52838a953b188255682597b` FOREIGN KEY (`uploaderId`) REFERENCES `user`(`id`) ON DELETE set null ON UPDATE cascade;--> statement-breakpoint +ALTER TABLE `user` ADD CONSTRAINT `FK_7478a15985dbfa32ed5fc77a7a1` FOREIGN KEY (`pictureId`) REFERENCES `upload`(`id`) ON DELETE set null ON UPDATE cascade;--> statement-breakpoint +ALTER TABLE `user_privileges_privilege` ADD CONSTRAINT `FK_0664a7ff494a1859a09014c0f17` FOREIGN KEY (`userId`) REFERENCES `user`(`id`) ON DELETE cascade ON UPDATE cascade;--> statement-breakpoint +ALTER TABLE `user_privileges_privilege` ADD CONSTRAINT `FK_e71171f4ed20bc8564a1819d0b7` FOREIGN KEY (`privilegeId`) REFERENCES `privilege`(`id`) ON DELETE cascade ON UPDATE cascade;--> statement-breakpoint +ALTER TABLE `user_token` ADD CONSTRAINT `FK_d37db50eecdf9b8ce4eedd2f918` FOREIGN KEY (`userId`) REFERENCES `user`(`id`) ON DELETE cascade ON UPDATE no action;--> statement-breakpoint +CREATE INDEX `IDX_0664a7ff494a1859a09014c0f1` ON `user_privileges_privilege` (`userId`);--> statement-breakpoint +CREATE INDEX `IDX_e71171f4ed20bc8564a1819d0b` ON `user_privileges_privilege` (`privilegeId`); +*/ diff --git a/src/lib/server/drizzle/migrations/meta/0000_snapshot.json b/src/lib/server/drizzle/migrations/meta/0000_snapshot.json new file mode 100644 index 0000000..04d3a05 --- /dev/null +++ b/src/lib/server/drizzle/migrations/meta/0000_snapshot.json @@ -0,0 +1,985 @@ +{ + "id": "00000000-0000-0000-0000-000000000000", + "prevId": "", + "version": "5", + "dialect": "mysql", + "tables": { + "audit_log": { + "name": "audit_log", + "columns": { + "id": { + "autoincrement": true, + "name": "id", + "type": "int(11)", + "primaryKey": false, + "notNull": true + }, + "action": { + "autoincrement": false, + "name": "action", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "content": { + "default": "'NULL'", + "autoincrement": false, + "name": "content", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "actor_ip": { + "default": "'NULL'", + "autoincrement": false, + "name": "actor_ip", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "actor_ua": { + "default": "'NULL'", + "autoincrement": false, + "name": "actor_ua", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "flagged": { + "default": 0, + "autoincrement": false, + "name": "flagged", + "type": "tinyint", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "default": "'current_timestamp(6)'", + "autoincrement": false, + "name": "created_at", + "type": "datetime(6)", + "primaryKey": false, + "notNull": true + }, + "actorId": { + "default": "'NULL'", + "autoincrement": false, + "name": "actorId", + "type": "int(11)", + "primaryKey": false, + "notNull": false + } + }, + "compositePrimaryKeys": {}, + "indexes": {}, + "foreignKeys": { + "FK_cb6aa6f6fd56f08eafb60316225": { + "name": "FK_cb6aa6f6fd56f08eafb60316225", + "tableFrom": "audit_log", + "tableTo": "user", + "columnsFrom": [ + "actorId" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "uniqueConstraints": {} + }, + "document": { + "name": "document", + "columns": { + "id": { + "autoincrement": true, + "name": "id", + "type": "int(11)", + "primaryKey": false, + "notNull": true + }, + "title": { + "autoincrement": false, + "name": "title", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "slug": { + "autoincrement": false, + "name": "slug", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "body": { + "autoincrement": false, + "name": "body", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "authorId": { + "default": "'NULL'", + "autoincrement": false, + "name": "authorId", + "type": "int(11)", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "default": "'current_timestamp(6)'", + "autoincrement": false, + "name": "created_at", + "type": "datetime(6)", + "primaryKey": false, + "notNull": true + }, + "updated_at": { + "default": "'current_timestamp(6)'", + "autoincrement": false, + "name": "updated_at", + "type": "datetime(6)", + "primaryKey": false, + "notNull": true + } + }, + "compositePrimaryKeys": {}, + "indexes": {}, + "foreignKeys": { + "FK_6a2eb13cadfc503989cbe367572": { + "name": "FK_6a2eb13cadfc503989cbe367572", + "tableFrom": "document", + "tableTo": "user", + "columnsFrom": [ + "authorId" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "uniqueConstraints": {} + }, + "migrations": { + "name": "migrations", + "columns": { + "id": { + "autoincrement": true, + "name": "id", + "type": "int(11)", + "primaryKey": false, + "notNull": true + }, + "timestamp": { + "autoincrement": false, + "name": "timestamp", + "type": "bigint(20)", + "primaryKey": false, + "notNull": true + }, + "name": { + "autoincrement": false, + "name": "name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + } + }, + "compositePrimaryKeys": {}, + "indexes": {}, + "foreignKeys": {}, + "uniqueConstraints": {} + }, + "o_auth2_client": { + "name": "o_auth2_client", + "columns": { + "id": { + "autoincrement": true, + "name": "id", + "type": "int(11)", + "primaryKey": false, + "notNull": true + }, + "client_id": { + "autoincrement": false, + "name": "client_id", + "type": "varchar(36)", + "primaryKey": false, + "notNull": true + }, + "client_secret": { + "autoincrement": false, + "name": "client_secret", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "title": { + "autoincrement": false, + "name": "title", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "description": { + "default": "'NULL'", + "autoincrement": false, + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "scope": { + "default": "'NULL'", + "autoincrement": false, + "name": "scope", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "grants": { + "default": "''authorization_code''", + "autoincrement": false, + "name": "grants", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "activated": { + "default": 0, + "autoincrement": false, + "name": "activated", + "type": "tinyint", + "primaryKey": false, + "notNull": true + }, + "verified": { + "default": 0, + "autoincrement": false, + "name": "verified", + "type": "tinyint", + "primaryKey": false, + "notNull": true + }, + "pictureId": { + "default": "'NULL'", + "autoincrement": false, + "name": "pictureId", + "type": "int(11)", + "primaryKey": false, + "notNull": false + }, + "ownerId": { + "default": "'NULL'", + "autoincrement": false, + "name": "ownerId", + "type": "int(11)", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "default": "'current_timestamp(6)'", + "autoincrement": false, + "name": "created_at", + "type": "datetime(6)", + "primaryKey": false, + "notNull": true + }, + "updated_at": { + "default": "'current_timestamp(6)'", + "autoincrement": false, + "name": "updated_at", + "type": "datetime(6)", + "primaryKey": false, + "notNull": true + } + }, + "compositePrimaryKeys": {}, + "indexes": {}, + "foreignKeys": { + "FK_4a6c878506b872e85b3d07f6252": { + "name": "FK_4a6c878506b872e85b3d07f6252", + "tableFrom": "o_auth2_client", + "tableTo": "user", + "columnsFrom": [ + "ownerId" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "FK_e8d65b1eec13474e493420517d7": { + "name": "FK_e8d65b1eec13474e493420517d7", + "tableFrom": "o_auth2_client", + "tableTo": "upload", + "columnsFrom": [ + "pictureId" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "uniqueConstraints": { + "IDX_e9d16c213910ad57bd05e97b42": { + "name": "IDX_e9d16c213910ad57bd05e97b42", + "columns": [ + "client_id" + ] + } + } + }, + "o_auth2_client_authorization": { + "name": "o_auth2_client_authorization", + "columns": { + "id": { + "autoincrement": true, + "name": "id", + "type": "int(11)", + "primaryKey": false, + "notNull": true + }, + "scope": { + "default": "'NULL'", + "autoincrement": false, + "name": "scope", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "expires_at": { + "default": "'current_timestamp()'", + "autoincrement": false, + "name": "expires_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true + }, + "clientId": { + "default": "'NULL'", + "autoincrement": false, + "name": "clientId", + "type": "int(11)", + "primaryKey": false, + "notNull": false + }, + "userId": { + "default": "'NULL'", + "autoincrement": false, + "name": "userId", + "type": "int(11)", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "default": "'current_timestamp(6)'", + "autoincrement": false, + "name": "created_at", + "type": "datetime(6)", + "primaryKey": false, + "notNull": true + } + }, + "compositePrimaryKeys": {}, + "indexes": {}, + "foreignKeys": { + "FK_8227110f58510b7233f3db90cfb": { + "name": "FK_8227110f58510b7233f3db90cfb", + "tableFrom": "o_auth2_client_authorization", + "tableTo": "user", + "columnsFrom": [ + "userId" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "FK_9ca9ebb654e7ce71954d5fdb281": { + "name": "FK_9ca9ebb654e7ce71954d5fdb281", + "tableFrom": "o_auth2_client_authorization", + "tableTo": "o_auth2_client", + "columnsFrom": [ + "clientId" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "uniqueConstraints": {} + }, + "o_auth2_client_url": { + "name": "o_auth2_client_url", + "columns": { + "id": { + "autoincrement": true, + "name": "id", + "type": "int(11)", + "primaryKey": false, + "notNull": true + }, + "url": { + "autoincrement": false, + "name": "url", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "type": { + "autoincrement": false, + "name": "type", + "type": "enum('redirect_uri','terms','privacy','website')", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "default": "'current_timestamp(6)'", + "autoincrement": false, + "name": "created_at", + "type": "timestamp(6)", + "primaryKey": false, + "notNull": true + }, + "updated_at": { + "default": "'current_timestamp(6)'", + "autoincrement": false, + "name": "updated_at", + "type": "timestamp(6)", + "primaryKey": false, + "notNull": true + }, + "clientId": { + "default": "'NULL'", + "autoincrement": false, + "name": "clientId", + "type": "int(11)", + "primaryKey": false, + "notNull": false + } + }, + "compositePrimaryKeys": {}, + "indexes": {}, + "foreignKeys": { + "FK_aca59c7bdd65987487eea98d00f": { + "name": "FK_aca59c7bdd65987487eea98d00f", + "tableFrom": "o_auth2_client_url", + "tableTo": "o_auth2_client", + "columnsFrom": [ + "clientId" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "uniqueConstraints": {} + }, + "o_auth2_token": { + "name": "o_auth2_token", + "columns": { + "id": { + "autoincrement": true, + "name": "id", + "type": "int(11)", + "primaryKey": false, + "notNull": true + }, + "type": { + "autoincrement": false, + "name": "type", + "type": "enum('code','access_token','refresh_token')", + "primaryKey": false, + "notNull": true + }, + "token": { + "autoincrement": false, + "name": "token", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "scope": { + "default": "'NULL'", + "autoincrement": false, + "name": "scope", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "expires_at": { + "default": "'current_timestamp()'", + "autoincrement": false, + "name": "expires_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true + }, + "userId": { + "default": "'NULL'", + "autoincrement": false, + "name": "userId", + "type": "int(11)", + "primaryKey": false, + "notNull": false + }, + "clientId": { + "default": "'NULL'", + "autoincrement": false, + "name": "clientId", + "type": "int(11)", + "primaryKey": false, + "notNull": false + }, + "nonce": { + "default": "'NULL'", + "autoincrement": false, + "name": "nonce", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "default": "'current_timestamp(6)'", + "autoincrement": false, + "name": "created_at", + "type": "datetime(6)", + "primaryKey": false, + "notNull": true + }, + "updated_at": { + "default": "'current_timestamp(6)'", + "autoincrement": false, + "name": "updated_at", + "type": "datetime(6)", + "primaryKey": false, + "notNull": true + }, + "pcke": { + "default": "'NULL'", + "autoincrement": false, + "name": "pcke", + "type": "text", + "primaryKey": false, + "notNull": false + } + }, + "compositePrimaryKeys": {}, + "indexes": {}, + "foreignKeys": { + "FK_3ecb760b321ef9bbab635f05b45": { + "name": "FK_3ecb760b321ef9bbab635f05b45", + "tableFrom": "o_auth2_token", + "tableTo": "o_auth2_client", + "columnsFrom": [ + "clientId" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "FK_81ffb9b8d672cf3af1af9e789f3": { + "name": "FK_81ffb9b8d672cf3af1af9e789f3", + "tableFrom": "o_auth2_token", + "tableTo": "user", + "columnsFrom": [ + "userId" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "uniqueConstraints": {} + }, + "privilege": { + "name": "privilege", + "columns": { + "id": { + "autoincrement": true, + "name": "id", + "type": "int(11)", + "primaryKey": false, + "notNull": true + }, + "name": { + "autoincrement": false, + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true + } + }, + "compositePrimaryKeys": {}, + "indexes": {}, + "foreignKeys": {}, + "uniqueConstraints": {} + }, + "upload": { + "name": "upload", + "columns": { + "id": { + "autoincrement": true, + "name": "id", + "type": "int(11)", + "primaryKey": false, + "notNull": true + }, + "original_name": { + "autoincrement": false, + "name": "original_name", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "mimetype": { + "autoincrement": false, + "name": "mimetype", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "file": { + "autoincrement": false, + "name": "file", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "uploaderId": { + "default": "'NULL'", + "autoincrement": false, + "name": "uploaderId", + "type": "int(11)", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "default": "'current_timestamp(6)'", + "autoincrement": false, + "name": "created_at", + "type": "datetime(6)", + "primaryKey": false, + "notNull": true + }, + "updated_at": { + "default": "'current_timestamp(6)'", + "autoincrement": false, + "name": "updated_at", + "type": "datetime(6)", + "primaryKey": false, + "notNull": true + } + }, + "compositePrimaryKeys": {}, + "indexes": {}, + "foreignKeys": { + "FK_7b8d52838a953b188255682597b": { + "name": "FK_7b8d52838a953b188255682597b", + "tableFrom": "upload", + "tableTo": "user", + "columnsFrom": [ + "uploaderId" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "cascade" + } + }, + "uniqueConstraints": {} + }, + "user": { + "name": "user", + "columns": { + "id": { + "autoincrement": true, + "name": "id", + "type": "int(11)", + "primaryKey": false, + "notNull": true + }, + "uuid": { + "autoincrement": false, + "name": "uuid", + "type": "varchar(36)", + "primaryKey": false, + "notNull": true + }, + "username": { + "autoincrement": false, + "name": "username", + "type": "varchar(26)", + "primaryKey": false, + "notNull": true + }, + "email": { + "autoincrement": false, + "name": "email", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "display_name": { + "autoincrement": false, + "name": "display_name", + "type": "varchar(32)", + "primaryKey": false, + "notNull": true + }, + "password": { + "default": "'NULL'", + "autoincrement": false, + "name": "password", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "activated": { + "default": 0, + "autoincrement": false, + "name": "activated", + "type": "tinyint", + "primaryKey": false, + "notNull": true + }, + "activity_at": { + "default": "'current_timestamp()'", + "autoincrement": false, + "name": "activity_at", + "type": "timestamp", + "primaryKey": false, + "notNull": true + }, + "pictureId": { + "default": "'NULL'", + "autoincrement": false, + "name": "pictureId", + "type": "int(11)", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "default": "'current_timestamp(6)'", + "autoincrement": false, + "name": "created_at", + "type": "datetime(6)", + "primaryKey": false, + "notNull": true + }, + "updated_at": { + "default": "'current_timestamp(6)'", + "autoincrement": false, + "name": "updated_at", + "type": "datetime(6)", + "primaryKey": false, + "notNull": true + } + }, + "compositePrimaryKeys": {}, + "indexes": {}, + "foreignKeys": { + "FK_7478a15985dbfa32ed5fc77a7a1": { + "name": "FK_7478a15985dbfa32ed5fc77a7a1", + "tableFrom": "user", + "tableTo": "upload", + "columnsFrom": [ + "pictureId" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "cascade" + } + }, + "uniqueConstraints": { + "IDX_a95e949168be7b7ece1a2382fe": { + "name": "IDX_a95e949168be7b7ece1a2382fe", + "columns": [ + "uuid" + ] + }, + "IDX_78a916df40e02a9deb1c4b75ed": { + "name": "IDX_78a916df40e02a9deb1c4b75ed", + "columns": [ + "username" + ] + }, + "IDX_e12875dfb3b1d92d7d7c5377e2": { + "name": "IDX_e12875dfb3b1d92d7d7c5377e2", + "columns": [ + "email" + ] + } + } + }, + "user_privileges_privilege": { + "name": "user_privileges_privilege", + "columns": { + "userId": { + "autoincrement": false, + "name": "userId", + "type": "int(11)", + "primaryKey": false, + "notNull": true + }, + "privilegeId": { + "autoincrement": false, + "name": "privilegeId", + "type": "int(11)", + "primaryKey": false, + "notNull": true + } + }, + "compositePrimaryKeys": {}, + "indexes": { + "IDX_0664a7ff494a1859a09014c0f1": { + "name": "IDX_0664a7ff494a1859a09014c0f1", + "columns": [ + "userId" + ], + "isUnique": false + }, + "IDX_e71171f4ed20bc8564a1819d0b": { + "name": "IDX_e71171f4ed20bc8564a1819d0b", + "columns": [ + "privilegeId" + ], + "isUnique": false + } + }, + "foreignKeys": { + "FK_0664a7ff494a1859a09014c0f17": { + "name": "FK_0664a7ff494a1859a09014c0f17", + "tableFrom": "user_privileges_privilege", + "tableTo": "user", + "columnsFrom": [ + "userId" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + }, + "FK_e71171f4ed20bc8564a1819d0b7": { + "name": "FK_e71171f4ed20bc8564a1819d0b7", + "tableFrom": "user_privileges_privilege", + "tableTo": "privilege", + "columnsFrom": [ + "privilegeId" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "cascade" + } + }, + "uniqueConstraints": {} + }, + "user_token": { + "name": "user_token", + "columns": { + "id": { + "autoincrement": true, + "name": "id", + "type": "int(11)", + "primaryKey": false, + "notNull": true + }, + "token": { + "autoincrement": false, + "name": "token", + "type": "text", + "primaryKey": false, + "notNull": true + }, + "type": { + "autoincrement": false, + "name": "type", + "type": "enum('generic','activation','deactivation','password','login','gdpr','totp','public_key','recovery')", + "primaryKey": false, + "notNull": true + }, + "expires_at": { + "default": "'NULL'", + "autoincrement": false, + "name": "expires_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "userId": { + "default": "'NULL'", + "autoincrement": false, + "name": "userId", + "type": "int(11)", + "primaryKey": false, + "notNull": false + }, + "nonce": { + "default": "'NULL'", + "autoincrement": false, + "name": "nonce", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "default": "'current_timestamp(6)'", + "autoincrement": false, + "name": "created_at", + "type": "datetime(6)", + "primaryKey": false, + "notNull": true + } + }, + "compositePrimaryKeys": {}, + "indexes": {}, + "foreignKeys": { + "FK_d37db50eecdf9b8ce4eedd2f918": { + "name": "FK_d37db50eecdf9b8ce4eedd2f918", + "tableFrom": "user_token", + "tableTo": "user", + "columnsFrom": [ + "userId" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "uniqueConstraints": {} + } + }, + "_meta": { + "schemas": {}, + "tables": {}, + "columns": {} + }, + "internal": { + "tables": {} + } +} \ No newline at end of file diff --git a/src/lib/server/drizzle/migrations/meta/_journal.json b/src/lib/server/drizzle/migrations/meta/_journal.json new file mode 100644 index 0000000..1cde4a2 --- /dev/null +++ b/src/lib/server/drizzle/migrations/meta/_journal.json @@ -0,0 +1,13 @@ +{ + "version": "6", + "dialect": "postgresql", + "entries": [ + { + "idx": 0, + "version": "5", + "when": 1715871691221, + "tag": "0000_initial", + "breakpoints": true + } + ] +} diff --git a/src/lib/server/drizzle/migrations/relations.ts b/src/lib/server/drizzle/migrations/relations.ts new file mode 100644 index 0000000..b0ceb00 --- /dev/null +++ b/src/lib/server/drizzle/migrations/relations.ts @@ -0,0 +1,129 @@ +import { relations } from 'drizzle-orm/relations'; +import { + user, + auditLog, + document, + oauth2Client, + upload, + oauth2ClientAuthorization, + oauth2ClientUrl, + oauth2Token, + userPrivilegesPrivilege, + privilege, + userToken +} from '../schema'; + +export const auditLogRelations = relations(auditLog, ({ one }) => ({ + user: one(user, { + fields: [auditLog.actorId], + references: [user.id] + }) +})); + +export const userRelations = relations(user, ({ one, many }) => ({ + audit_logs: many(auditLog), + documents: many(document), + o_auth2_clients: many(oauth2Client), + o_auth2_client_authorizations: many(oauth2ClientAuthorization), + o_auth2_tokens: many(oauth2Token), + uploads: many(upload, { + relationName: 'upload_uploaderId_user_id' + }), + upload: one(upload, { + fields: [user.pictureId], + references: [upload.id], + relationName: 'user_pictureId_upload_id' + }), + user_privileges_privileges: many(userPrivilegesPrivilege), + user_tokens: many(userToken) +})); + +export const documentRelations = relations(document, ({ one }) => ({ + user: one(user, { + fields: [document.authorId], + references: [user.id] + }) +})); + +export const oauth2ClientRelations = relations(oauth2Client, ({ one, many }) => ({ + user: one(user, { + fields: [oauth2Client.ownerId], + references: [user.id] + }), + upload: one(upload, { + fields: [oauth2Client.pictureId], + references: [upload.id] + }), + o_auth2_client_authorizations: many(oauth2ClientAuthorization), + o_auth2_client_urls: many(oauth2ClientUrl), + o_auth2_tokens: many(oauth2Token) +})); + +export const uploadRelations = relations(upload, ({ one, many }) => ({ + o_auth2_clients: many(oauth2Client), + user: one(user, { + fields: [upload.uploaderId], + references: [user.id], + relationName: 'upload_uploaderId_user_id' + }), + users: many(user, { + relationName: 'user_pictureId_upload_id' + }) +})); + +export const oauth2ClientAuthorizationRelations = relations( + oauth2ClientAuthorization, + ({ one }) => ({ + user: one(user, { + fields: [oauth2ClientAuthorization.userId], + references: [user.id] + }), + o_auth2_client: one(oauth2Client, { + fields: [oauth2ClientAuthorization.clientId], + references: [oauth2Client.id] + }) + }) +); + +export const oauth2ClientUrlRelations = relations(oauth2ClientUrl, ({ one }) => ({ + o_auth2_client: one(oauth2Client, { + fields: [oauth2ClientUrl.clientId], + references: [oauth2Client.id] + }) +})); + +export const oauth2TokenRelations = relations(oauth2Token, ({ one }) => ({ + o_auth2_client: one(oauth2Client, { + fields: [oauth2Token.clientId], + references: [oauth2Client.id] + }), + user: one(user, { + fields: [oauth2Token.userId], + references: [user.id] + }) +})); + +export const userPrivilegesPrivilegeRelations = relations( + userPrivilegesPrivilege, + ({ one }) => ({ + user: one(user, { + fields: [userPrivilegesPrivilege.userId], + references: [user.id] + }), + privilege: one(privilege, { + fields: [userPrivilegesPrivilege.privilegeId], + references: [privilege.id] + }) + }) +); + +export const privilegeRelations = relations(privilege, ({ many }) => ({ + user_privileges_privileges: many(userPrivilegesPrivilege) +})); + +export const userTokenRelations = relations(userToken, ({ one }) => ({ + user: one(user, { + fields: [userToken.userId], + references: [user.id] + }) +})); diff --git a/src/lib/server/drizzle/schema.ts b/src/lib/server/drizzle/schema.ts new file mode 100644 index 0000000..9552f46 --- /dev/null +++ b/src/lib/server/drizzle/schema.ts @@ -0,0 +1,208 @@ +import { + mysqlTable, + int, + text, + tinyint, + datetime, + varchar, + unique, + timestamp, + mysqlEnum, + index, + type AnyMySqlColumn, +} from 'drizzle-orm/mysql-core'; + +export const auditLog = mysqlTable('audit_log', { + id: int('id').autoincrement().notNull(), + action: text('action').notNull(), + content: text('content'), + actor_ip: text('actor_ip'), + actor_ua: text('actor_ua'), + flagged: tinyint('flagged').default(0).notNull(), + created_at: datetime('created_at', { mode: 'string', fsp: 6 }) + .default('current_timestamp(6)') + .notNull(), + actorId: int('actorId').references(() => user.id, { onDelete: 'set null' }) +}); + +export const document = mysqlTable('document', { + id: int('id').autoincrement().notNull(), + title: text('title').notNull(), + slug: text('slug').notNull(), + body: text('body').notNull(), + authorId: int('authorId').references(() => user.id), + created_at: datetime('created_at', { mode: 'string', fsp: 6 }) + .default('current_timestamp(6)') + .notNull(), + updated_at: datetime('updated_at', { mode: 'string', fsp: 6 }) + .default('current_timestamp(6)') + .notNull() +}); + +export const oauth2Client = mysqlTable( + 'o_auth2_client', + { + id: int('id').autoincrement().notNull(), + client_id: varchar('client_id', { length: 36 }).notNull(), + client_secret: text('client_secret').notNull(), + title: varchar('title', { length: 255 }).notNull(), + description: text('description'), + scope: text('scope'), + grants: text('grants').default('authorization_code').notNull(), + activated: tinyint('activated').default(0).notNull(), + verified: tinyint('verified').default(0).notNull(), + pictureId: int('pictureId').references(() => upload.id, { onDelete: 'set null' }), + ownerId: int('ownerId').references(() => user.id, { onDelete: 'set null' }), + created_at: datetime('created_at', { mode: 'string', fsp: 6 }) + .default('current_timestamp(6)') + .notNull(), + updated_at: datetime('updated_at', { mode: 'string', fsp: 6 }) + .default('current_timestamp(6)') + .notNull() + }, + (table) => { + return { + IDX_e9d16c213910ad57bd05e97b42: unique('IDX_e9d16c213910ad57bd05e97b42').on(table.client_id) + }; + } +); + +export const oauth2ClientAuthorization = mysqlTable('o_auth2_client_authorization', { + id: int('id').autoincrement().notNull(), + scope: text('scope'), + expires_at: timestamp('expires_at', { mode: 'string' }).default('current_timestamp()').notNull(), + clientId: int('clientId').references(() => oauth2Client.id, { onDelete: 'cascade' }), + userId: int('userId').references(() => user.id, { onDelete: 'cascade' }), + created_at: datetime('created_at', { mode: 'string', fsp: 6 }) + .default('current_timestamp(6)') + .notNull() +}); + +export const oauth2ClientUrl = mysqlTable('o_auth2_client_url', { + id: int('id').autoincrement().notNull(), + url: varchar('url', { length: 255 }).notNull(), + type: mysqlEnum('type', ['redirect_uri', 'terms', 'privacy', 'website']).notNull(), + created_at: timestamp('created_at', { fsp: 6, mode: 'string' }) + .default('current_timestamp(6)') + .notNull(), + updated_at: timestamp('updated_at', { fsp: 6, mode: 'string' }) + .default('current_timestamp(6)') + .notNull(), + clientId: int('clientId').references(() => oauth2Client.id, { onDelete: 'cascade' }) +}); + +export const oauth2Token = mysqlTable('o_auth2_token', { + id: int('id').autoincrement().notNull(), + type: mysqlEnum('type', ['code', 'access_token', 'refresh_token']).notNull(), + token: text('token').notNull(), + scope: text('scope'), + expires_at: timestamp('expires_at', { mode: 'string' }).default('current_timestamp()').notNull(), + userId: int('userId').references(() => user.id, { onDelete: 'cascade' }), + clientId: int('clientId').references(() => oauth2Client.id, { onDelete: 'cascade' }), + nonce: text('nonce'), + created_at: datetime('created_at', { mode: 'string', fsp: 6 }) + .default('current_timestamp(6)') + .notNull(), + updated_at: datetime('updated_at', { mode: 'string', fsp: 6 }) + .default('current_timestamp(6)') + .notNull(), + pcke: text('pcke') +}); + +export const privilege = mysqlTable('privilege', { + id: int('id').autoincrement().notNull(), + name: text('name').notNull() +}); + +export const upload = mysqlTable('upload', { + id: int('id').autoincrement().notNull(), + original_name: varchar('original_name', { length: 255 }).notNull(), + mimetype: varchar('mimetype', { length: 255 }).notNull(), + file: varchar('file', { length: 255 }).notNull(), + uploaderId: int('uploaderId').references((): AnyMySqlColumn => user.id, { + onDelete: 'set null', + onUpdate: 'cascade' + }), + created_at: datetime('created_at', { mode: 'string', fsp: 6 }) + .default('current_timestamp(6)') + .notNull(), + updated_at: datetime('updated_at', { mode: 'string', fsp: 6 }) + .default('current_timestamp(6)') + .notNull() +}); + +export const user = mysqlTable( + 'user', + { + id: int('id').autoincrement().notNull(), + uuid: varchar('uuid', { length: 36 }).notNull(), + username: varchar('username', { length: 26 }).notNull(), + email: varchar('email', { length: 255 }).notNull(), + display_name: varchar('display_name', { length: 32 }).notNull(), + password: text('password'), + activated: tinyint('activated').default(0).notNull(), + activity_at: timestamp('activity_at', { mode: 'string' }) + .default('current_timestamp()') + .notNull(), + pictureId: int('pictureId').references((): AnyMySqlColumn => upload.id, { + onDelete: 'set null', + onUpdate: 'cascade' + }), + created_at: datetime('created_at', { mode: 'string', fsp: 6 }) + .default('current_timestamp(6)') + .notNull(), + updated_at: datetime('updated_at', { mode: 'string', fsp: 6 }) + .default('current_timestamp(6)') + .notNull() + }, + (table) => { + return { + IDX_a95e949168be7b7ece1a2382fe: unique('IDX_a95e949168be7b7ece1a2382fe').on(table.uuid), + IDX_78a916df40e02a9deb1c4b75ed: unique('IDX_78a916df40e02a9deb1c4b75ed').on(table.username), + IDX_e12875dfb3b1d92d7d7c5377e2: unique('IDX_e12875dfb3b1d92d7d7c5377e2').on(table.email) + }; + } +); + +export type User = typeof user.$inferSelect; +export type NewUser = typeof user.$inferInsert; + +export const userPrivilegesPrivilege = mysqlTable( + 'user_privileges_privilege', + { + userId: int('userId') + .notNull() + .references(() => user.id, { onDelete: 'cascade', onUpdate: 'cascade' }), + privilegeId: int('privilegeId') + .notNull() + .references(() => privilege.id, { onDelete: 'cascade', onUpdate: 'cascade' }) + }, + (table) => { + return { + IDX_0664a7ff494a1859a09014c0f1: index('IDX_0664a7ff494a1859a09014c0f1').on(table.userId), + IDX_e71171f4ed20bc8564a1819d0b: index('IDX_e71171f4ed20bc8564a1819d0b').on(table.privilegeId) + }; + } +); + +export const userToken = mysqlTable('user_token', { + id: int('id').autoincrement().notNull(), + token: text('token').notNull(), + type: mysqlEnum('type', [ + 'generic', + 'activation', + 'deactivation', + 'password', + 'login', + 'gdpr', + 'totp', + 'public_key', + 'recovery' + ]).notNull(), + expires_at: timestamp('expires_at', { mode: 'string' }), + userId: int('userId').references(() => user.id, { onDelete: 'cascade' }), + nonce: text('nonce'), + created_at: datetime('created_at', { mode: 'string', fsp: 6 }) + .default('current_timestamp(6)') + .notNull() +}); diff --git a/src/lib/server/users/index.ts b/src/lib/server/users/index.ts new file mode 100644 index 0000000..af42284 --- /dev/null +++ b/src/lib/server/users/index.ts @@ -0,0 +1,48 @@ +import bcrypt from 'bcryptjs'; +import { and, eq, or } from 'drizzle-orm'; +import { db, user, type User } from '../drizzle'; +import type { UserSession } from './types'; + +export class Users { + static async getByLogin(login: string): Promise { + const [result] = await db + .select() + .from(user) + .where(and(or(eq(user.email, login), eq(user.username, login)), eq(user.activated, 1))) + .limit(1); + return result; + } + + static async getBySession(session?: UserSession): Promise { + if (!session) return undefined; + const [result] = await db + .select() + .from(user) + .where(and(eq(user.id, session.uid), eq(user.activated, 1))) + .limit(1); + return result; + } + + static async update(subject: User, fields: Partial) { + return db.update(user).set(fields).where(eq(user.id, subject.id)); + } + + static async validatePassword(user: User, password: string): Promise { + return bcrypt.compare(password, user.password as string); + } + + static async hashPassword(password: string): Promise { + return bcrypt.hash(password, 10); + } + + static async toSession(user: User): Promise { + return { + uid: user.id, + uuid: user.uuid, + name: user.display_name, + username: user.username + }; + } +} + +export * from './types'; diff --git a/src/lib/server/users/totp.ts b/src/lib/server/users/totp.ts new file mode 100644 index 0000000..644b213 --- /dev/null +++ b/src/lib/server/users/totp.ts @@ -0,0 +1,50 @@ +import { authenticator as totp } from 'otplib'; +import { db, userToken, type User } from '../drizzle'; +import { and, eq, gt, isNull, or } from 'drizzle-orm'; + +totp.options = { + window: 2 +}; + +export class TimeOTP { + public static validate(secret: string, token: string): boolean { + return totp.verify({ token, secret }); + } + + public static getUri(secret: string, username: string): string { + return totp.keyuri(username, 'Icy Network', secret); + } + + public static createSecret(): string { + return totp.generateSecret(); + } + + public static async isUserOtp(subject: User) { + const tokens = await db + .select({ id: userToken.id }) + .from(userToken) + .where( + and( + eq(userToken.type, 'totp'), + eq(userToken.userId, subject.id), + or(isNull(userToken.expires_at), gt(userToken.expires_at, new Date().toISOString())) + ) + ); + return tokens?.length; + } + + public static async getUserOtp(subject: User) { + const [token] = await db + .select({ id: userToken.id, token: userToken.token }) + .from(userToken) + .where( + and( + eq(userToken.type, 'totp'), + eq(userToken.userId, subject.id), + or(isNull(userToken.expires_at), gt(userToken.expires_at, new Date().toISOString())) + ) + ) + .limit(1); + return token; + } +} diff --git a/src/lib/server/users/types.ts b/src/lib/server/users/types.ts new file mode 100644 index 0000000..2d54636 --- /dev/null +++ b/src/lib/server/users/types.ts @@ -0,0 +1,6 @@ +export interface UserSession { + uid: number; + uuid: string; + name: string; + username: string; +} diff --git a/src/lib/validators.ts b/src/lib/validators.ts new file mode 100644 index 0000000..68cf245 --- /dev/null +++ b/src/lib/validators.ts @@ -0,0 +1,4 @@ +export const emailRegex = + /^[-!#$%&'*+\\/0-9=?A-Z^_a-z`{|}~](\.?[-!#$%&'*+\\/0-9=?A-Z^_a-z`{|}~])*@[a-zA-Z0-9](-*\.?[a-zA-Z0-9])*\.[a-zA-Z](-?[a-zA-Z0-9])+$/; +export const passwordRegex = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d\w\W]{8,}$/; +export const usernameRegex = /^[a-zA-Z0-9_\-.]{3,26}$/; diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte new file mode 100644 index 0000000..2440caf --- /dev/null +++ b/src/routes/+layout.svelte @@ -0,0 +1,16 @@ + + +
+ +
+ + diff --git a/src/routes/+layout.ts b/src/routes/+layout.ts new file mode 100644 index 0000000..9cde7a6 --- /dev/null +++ b/src/routes/+layout.ts @@ -0,0 +1,11 @@ +import { loadTranslations } from '$lib/i18n'; + +export const load = async ({ url }) => { + const { pathname } = url; + + const initLocale = 'en'; // get from cookie, user session, ... + + await loadTranslations(initLocale, pathname); + + return {}; +} diff --git a/src/routes/account/+page.server.ts b/src/routes/account/+page.server.ts new file mode 100644 index 0000000..0e9a5cc --- /dev/null +++ b/src/routes/account/+page.server.ts @@ -0,0 +1,156 @@ +import { Challenge } from '$lib/server/challenge.js'; +import type { User } from '$lib/server/drizzle'; +import { Users, type UserSession } from '$lib/server/users/index.js'; +import { TimeOTP } from '$lib/server/users/totp.js'; +import { fail, redirect } from '@sveltejs/kit'; + +interface AccountUpdate { + displayName: string; + + currentEmail: string; + newEmail: string; + + currentPassword: string; + newPassword: string; +} + +export const actions = { + logout: async ({ locals }) => { + await locals.session.destroy(); + return redirect(303, '/'); + }, + update: async ({ request, locals }) => { + const currentUser = await Users.getBySession(locals.session.data?.user); + if (!currentUser) { + await locals.session.destroy(); + return redirect(301, '/login'); + } + + const body = await request.formData(); + let data: Partial; + try { + data = await Challenge.authorizedChanges( + ['displayName', 'currentEmail', 'newEmail', 'currentPassword', 'newPassword'], + body, + currentUser + ); + } catch { + return fail(400, { errors: ['invalidRequest'] }); + } + + // No changes + if ( + (!data.displayName || data.displayName === currentUser.display_name) && + !data.newEmail && + !data.newPassword + ) { + return { success: true, errors: [], fields: [] }; + } + + // Current email is not provided + if (data.newEmail && !data.currentEmail) { + return fail(400, { + displayName: data.displayName, + errors: ['emailRequired'], + fields: ['currentEmail'] + }); + } + + // Current email is invalid + if (data.currentEmail && data.currentEmail !== currentUser.email) { + return fail(400, { + displayName: data.displayName, + errors: ['invalidEmail'], + fields: ['currentEmail'] + }); + } + + // Current password is not provided + if (data.newPassword && !data.currentPassword) { + return fail(400, { + displayName: data.displayName, + errors: ['passwordRequired'], + fields: ['currentPassword'] + }); + } + + // Password does not match current password + if ( + data.currentPassword && + !(await Users.validatePassword(currentUser, data.currentPassword)) + ) { + return fail(400, { + displayName: data.displayName, + errors: ['invalidPassword'], + fields: ['currentPassword'] + }); + } + + // Invalid display name + if (data.displayName && (data.displayName.length < 3 || data.displayName.length > 32)) { + return fail(400, { + displayName: data.displayName, + errors: ['invalidDisplayName'], + fields: ['displayName'] + }); + } + + // When updating email or password, we check if OTP has been enabled. + // If it is, we need to ask for the OTP code. + if (data.newEmail || data.newPassword) { + const isOtp = await TimeOTP.isUserOtp(currentUser); + if (isOtp) { + const challenge = await Challenge.issueChallenge(data, currentUser.uuid); + return { otpRequired: challenge }; + } + } + + // Update the user table + const updates: Partial = {}; + if (data.displayName) { + updates.display_name = data.displayName; + } + + if (data.newEmail) { + updates.email = data.newEmail; + } + + if (data.newPassword) { + updates.password = await Users.hashPassword(data.newPassword); + } + + await Users.update(currentUser, updates); + + // Update session display name + if (data.displayName) { + await locals.session.update(({ user }) => ({ + user: { ...user, name: data.displayName as string } as UserSession + })); + } + + // TODO: audit log + + return { + success: true, + errors: [], + fields: [], + displayName: data.displayName || currentUser.display_name + }; + } +}; + +export async function load({ locals, url }) { + const userInfo = locals.session.data?.user; + const currentUser = await Users.getBySession(userInfo); + if (!userInfo || !currentUser) { + await locals.session.destroy(); + return redirect(301, `/login?redirectTo=${encodeURIComponent(url.pathname)}`); + } + + const otpEnabled = await TimeOTP.isUserOtp(currentUser); + + return { + user: userInfo, + otpEnabled + }; +} diff --git a/src/routes/account/+page.svelte b/src/routes/account/+page.svelte new file mode 100644 index 0000000..b63562c --- /dev/null +++ b/src/routes/account/+page.svelte @@ -0,0 +1,76 @@ + + +{data.user.name} + +
+
+ + +
+ +
+ + +
+ +
{$t('account.changeEmail')}
+ +
+ + +
+ +
+ + +
+ +
{$t('account.changePassword')}
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ + +
+ + diff --git a/src/routes/login/+page.server.ts b/src/routes/login/+page.server.ts new file mode 100644 index 0000000..7c87e94 --- /dev/null +++ b/src/routes/login/+page.server.ts @@ -0,0 +1,40 @@ +import { Users } from '$lib/server/users/index.js'; +import { fail, redirect, type Actions } from '@sveltejs/kit'; + +export const actions = { + default: async ({ request, locals, url }) => { + // Redirect + const redirectUrl = url.searchParams.has('redirectTo') + ? (url.searchParams.get('redirectTo') as string) + : '/'; + + // Already logged in + if (locals.session.data?.user) { + return redirect(303, redirectUrl); + } + + const data = await request.formData(); + const email = data.get('email') as string; + const password = data.get('password') as string; + + if (!email?.trim() || !password?.trim()) { + return fail(400, { incorrect: true }); + } + + // Find existing active user + const loginUser = await Users.getByLogin(email); + + // Compare user password + if (!loginUser || !(await Users.validatePassword(loginUser, password))) { + return fail(400, { email, incorrect: true }); + } + + // TODO: check two-factor + + // Create session data for user + const sessionUser = await Users.toSession(loginUser); + await locals.session.set({ user: sessionUser }); + + return redirect(303, redirectUrl); + } +} as Actions; diff --git a/src/routes/login/+page.svelte b/src/routes/login/+page.svelte new file mode 100644 index 0000000..43b6aa1 --- /dev/null +++ b/src/routes/login/+page.svelte @@ -0,0 +1,74 @@ + + + + + diff --git a/static/background.jpg b/static/background.jpg new file mode 100644 index 0000000000000000000000000000000000000000..246ea33b704a5ff80cee9fac1dc3c480bea431f3 GIT binary patch literal 323903 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

Ui4-I&re=Xz=R==9}B(pA?m={2DT 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≤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