diff --git a/package.json b/package.json index 036f9cd..84a7076 100644 --- a/package.json +++ b/package.json @@ -18,6 +18,7 @@ "site:update": "pnpm update -i -L", "generate": "drizzle-kit generate:mysql", "migrate": "tsx ./src/migrate.ts", + "seed": "tsx ./src/seed/insert.ts", "push": "drizzle-kit push:mysql" }, "prisma": { @@ -26,35 +27,35 @@ "devDependencies": { "@melt-ui/pp": "^0.3.0", "@melt-ui/svelte": "^0.70.0", - "@playwright/test": "^1.41.1", + "@playwright/test": "^1.41.2", "@resvg/resvg-js": "^2.6.0", "@sveltejs/adapter-auto": "^3.1.1", "@sveltejs/enhanced-img": "^0.1.8", "@sveltejs/kit": "^2.5.0", "@sveltejs/vite-plugin-svelte": "^3.0.2", "@types/cookie": "^0.5.4", - "@types/node": "^18.19.10", - "@typescript-eslint/eslint-plugin": "^6.20.0", - "@typescript-eslint/parser": "^6.20.0", + "@types/node": "^18.19.14", + "@typescript-eslint/eslint-plugin": "^6.21.0", + "@typescript-eslint/parser": "^6.21.0", "autoprefixer": "^10.4.17", "dotenv": "^16.4.1", - "drizzle-kit": "^0.20.13", + "drizzle-kit": "^0.20.14", "eslint": "^8.56.0", "eslint-config-prettier": "^9.1.0", "eslint-plugin-svelte": "^2.35.1", "just-clone": "^6.2.0", "just-debounce-it": "^3.2.0", - "postcss": "^8.4.33", + "postcss": "^8.4.35", "postcss-import": "^15.1.0", "postcss-load-config": "^4.0.2", "postcss-preset-env": "^9.3.0", - "prettier": "^3.2.4", + "prettier": "^3.2.5", "prettier-plugin-svelte": "^3.1.2", "prisma": "^5.8.1", "sass": "^1.70.0", "satori": "^0.10.13", "satori-html": "^0.3.2", - "svelte": "^4.2.9", + "svelte": "^4.2.10", "svelte-check": "^3.6.3", "svelte-meta-tags": "^3.1.0", "svelte-preprocess": "^5.1.3", @@ -79,13 +80,13 @@ "@fontsource/fira-mono": "^4.5.10", "@iconify-icons/line-md": "^1.2.26", "@iconify-icons/mdi": "^1.2.47", - "@lucia-auth/adapter-drizzle": "^1.0.0", + "@lucia-auth/adapter-drizzle": "^1.0.1", "@lucia-auth/adapter-prisma": "4.0.0", "@lukeed/uuid": "^2.0.1", "@paralleldrive/cuid2": "^2.2.2", - "@planetscale/database": "^1.14.0", + "@planetscale/database": "^1.15.0", "@prisma/client": "^5.8.1", - "@sentry/sveltekit": "^7.88.0", + "@sentry/sveltekit": "^7.100.1", "@sveltejs/adapter-vercel": "^5.1.0", "@types/feather-icons": "^4.29.4", "@vercel/og": "^0.5.20", @@ -106,7 +107,7 @@ "mysql2": "^3.9.1", "nanoid": "^5.0.5", "open-props": "^1.6.18", - "oslo": "^1.0.3", + "oslo": "^1.1.0", "radix-svelte": "^0.9.0", "svelte-french-toast": "^1.2.0", "svelte-lazy-loader": "^1.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9d91880..be4740b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -15,8 +15,8 @@ dependencies: specifier: ^1.2.47 version: 1.2.48 '@lucia-auth/adapter-drizzle': - specifier: ^1.0.0 - version: 1.0.0(lucia@3.0.1) + specifier: ^1.0.1 + version: 1.0.1(lucia@3.0.1) '@lucia-auth/adapter-prisma': specifier: 4.0.0 version: 4.0.0(@prisma/client@5.8.1)(lucia@3.0.1) @@ -27,14 +27,14 @@ dependencies: specifier: ^2.2.2 version: 2.2.2 '@planetscale/database': - specifier: ^1.14.0 - version: 1.14.0 + specifier: ^1.15.0 + version: 1.15.0 '@prisma/client': specifier: ^5.8.1 version: 5.8.1(prisma@5.8.1) '@sentry/sveltekit': - specifier: ^7.88.0 - version: 7.88.0(@sveltejs/kit@2.5.0)(svelte@4.2.9) + specifier: ^7.100.1 + version: 7.100.1(@sveltejs/kit@2.5.0)(svelte@4.2.10) '@sveltejs/adapter-vercel': specifier: ^5.1.0 version: 5.1.0(@sveltejs/kit@2.5.0) @@ -46,7 +46,7 @@ dependencies: version: 0.5.20 bits-ui: specifier: ^0.15.1 - version: 0.15.1(svelte@4.2.9) + version: 0.15.1(svelte@4.2.10) boardgamegeekclient: specifier: ^1.9.1 version: 1.9.1 @@ -61,13 +61,13 @@ dependencies: version: 0.5.0 drizzle-orm: specifier: ^0.29.3 - version: 0.29.3(@planetscale/database@1.14.0)(mysql2@3.9.1) + version: 0.29.3(@planetscale/database@1.15.0)(mysql2@3.9.1) feather-icons: specifier: ^4.29.1 version: 4.29.1 formsnap: specifier: ^0.4.3 - version: 0.4.3(svelte@4.2.9)(sveltekit-superforms@1.13.4)(zod@3.22.4) + version: 0.4.3(svelte@4.2.10)(sveltekit-superforms@1.13.4)(zod@3.22.4) html-entities: specifier: ^2.4.0 version: 2.4.0 @@ -85,7 +85,7 @@ dependencies: version: 3.0.1 lucide-svelte: specifier: ^0.298.0 - version: 0.298.0(svelte@4.2.9) + version: 0.298.0(svelte@4.2.10) mysql2: specifier: ^3.9.1 version: 3.9.1 @@ -96,14 +96,14 @@ dependencies: specifier: ^1.6.18 version: 1.6.18 oslo: - specifier: ^1.0.3 - version: 1.0.3 + specifier: ^1.1.0 + version: 1.1.0 radix-svelte: specifier: ^0.9.0 - version: 0.9.0(svelte@4.2.9) + version: 0.9.0(svelte@4.2.10) svelte-french-toast: specifier: ^1.2.0 - version: 1.2.0(svelte@4.2.9) + version: 1.2.0(svelte@4.2.10) svelte-lazy-loader: specifier: ^1.0.0 version: 1.0.0 @@ -123,13 +123,13 @@ dependencies: devDependencies: '@melt-ui/pp': specifier: ^0.3.0 - version: 0.3.0(@melt-ui/svelte@0.70.0)(svelte@4.2.9) + version: 0.3.0(@melt-ui/svelte@0.70.0)(svelte@4.2.10) '@melt-ui/svelte': specifier: ^0.70.0 - version: 0.70.0(svelte@4.2.9) + version: 0.70.0(svelte@4.2.10) '@playwright/test': - specifier: ^1.41.1 - version: 1.41.1 + specifier: ^1.41.2 + version: 1.41.2 '@resvg/resvg-js': specifier: ^2.6.0 version: 2.6.0 @@ -138,34 +138,34 @@ devDependencies: version: 3.1.1(@sveltejs/kit@2.5.0) '@sveltejs/enhanced-img': specifier: ^0.1.8 - version: 0.1.8(svelte@4.2.9) + version: 0.1.8(svelte@4.2.10) '@sveltejs/kit': specifier: ^2.5.0 - version: 2.5.0(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@4.2.9)(vite@5.0.12) + version: 2.5.0(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@4.2.10)(vite@5.0.12) '@sveltejs/vite-plugin-svelte': specifier: ^3.0.2 - version: 3.0.2(svelte@4.2.9)(vite@5.0.12) + version: 3.0.2(svelte@4.2.10)(vite@5.0.12) '@types/cookie': specifier: ^0.5.4 version: 0.5.4 '@types/node': - specifier: ^18.19.10 - version: 18.19.10 + specifier: ^18.19.14 + version: 18.19.14 '@typescript-eslint/eslint-plugin': - specifier: ^6.20.0 - version: 6.20.0(@typescript-eslint/parser@6.20.0)(eslint@8.56.0)(typescript@5.3.3) + specifier: ^6.21.0 + version: 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3) '@typescript-eslint/parser': - specifier: ^6.20.0 - version: 6.20.0(eslint@8.56.0)(typescript@5.3.3) + specifier: ^6.21.0 + version: 6.21.0(eslint@8.56.0)(typescript@5.3.3) autoprefixer: specifier: ^10.4.17 - version: 10.4.17(postcss@8.4.33) + version: 10.4.17(postcss@8.4.35) dotenv: specifier: ^16.4.1 version: 16.4.1 drizzle-kit: - specifier: ^0.20.13 - version: 0.20.13 + specifier: ^0.20.14 + version: 0.20.14 eslint: specifier: ^8.56.0 version: 8.56.0 @@ -174,7 +174,7 @@ devDependencies: version: 9.1.0(eslint@8.56.0) eslint-plugin-svelte: specifier: ^2.35.1 - version: 2.35.1(eslint@8.56.0)(svelte@4.2.9)(ts-node@10.9.2) + version: 2.35.1(eslint@8.56.0)(svelte@4.2.10)(ts-node@10.9.2) just-clone: specifier: ^6.2.0 version: 6.2.0 @@ -182,23 +182,23 @@ devDependencies: specifier: ^3.2.0 version: 3.2.0 postcss: - specifier: ^8.4.33 - version: 8.4.33 + specifier: ^8.4.35 + version: 8.4.35 postcss-import: specifier: ^15.1.0 - version: 15.1.0(postcss@8.4.33) + version: 15.1.0(postcss@8.4.35) postcss-load-config: specifier: ^4.0.2 - version: 4.0.2(postcss@8.4.33)(ts-node@10.9.2) + version: 4.0.2(postcss@8.4.35)(ts-node@10.9.2) postcss-preset-env: specifier: ^9.3.0 - version: 9.3.0(postcss@8.4.33) + version: 9.3.0(postcss@8.4.35) prettier: - specifier: ^3.2.4 - version: 3.2.4 + specifier: ^3.2.5 + version: 3.2.5 prettier-plugin-svelte: specifier: ^3.1.2 - version: 3.1.2(prettier@3.2.4)(svelte@4.2.9) + version: 3.1.2(prettier@3.2.5)(svelte@4.2.10) prisma: specifier: ^5.8.1 version: 5.8.1 @@ -212,32 +212,32 @@ devDependencies: specifier: ^0.3.2 version: 0.3.2 svelte: - specifier: ^4.2.9 - version: 4.2.9 + specifier: ^4.2.10 + version: 4.2.10 svelte-check: specifier: ^3.6.3 - version: 3.6.3(postcss-load-config@4.0.2)(postcss@8.4.33)(sass@1.70.0)(svelte@4.2.9) + version: 3.6.3(postcss-load-config@4.0.2)(postcss@8.4.35)(sass@1.70.0)(svelte@4.2.10) svelte-meta-tags: specifier: ^3.1.0 - version: 3.1.0(svelte@4.2.9)(typescript@5.3.3) + version: 3.1.0(svelte@4.2.10)(typescript@5.3.3) svelte-preprocess: specifier: ^5.1.3 - version: 5.1.3(postcss-load-config@4.0.2)(postcss@8.4.33)(sass@1.70.0)(svelte@4.2.9)(typescript@5.3.3) + version: 5.1.3(postcss-load-config@4.0.2)(postcss@8.4.35)(sass@1.70.0)(svelte@4.2.10)(typescript@5.3.3) svelte-sequential-preprocessor: specifier: ^2.0.1 version: 2.0.1 sveltekit-flash-message: specifier: ^2.4.1 - version: 2.4.1(@sveltejs/kit@2.5.0)(svelte@4.2.9) + version: 2.4.1(@sveltejs/kit@2.5.0)(svelte@4.2.10) sveltekit-superforms: specifier: ^1.13.4 - version: 1.13.4(@sveltejs/kit@2.5.0)(svelte@4.2.9)(zod@3.22.4) + version: 1.13.4(@sveltejs/kit@2.5.0)(svelte@4.2.10)(zod@3.22.4) tailwindcss: specifier: ^3.4.1 version: 3.4.1(ts-node@10.9.2) ts-node: specifier: ^10.9.2 - version: 10.9.2(@types/node@18.19.10)(typescript@5.3.3) + version: 10.9.2(@types/node@18.19.14)(typescript@5.3.3) tslib: specifier: ^2.6.1 version: 2.6.2 @@ -249,10 +249,10 @@ devDependencies: version: 5.3.3 vite: specifier: ^5.0.12 - version: 5.0.12(@types/node@18.19.10)(sass@1.70.0) + version: 5.0.12(@types/node@18.19.14)(sass@1.70.0) vitest: specifier: ^1.2.2 - version: 1.2.2(@types/node@18.19.10)(sass@1.70.0) + version: 1.2.2(@types/node@18.19.14)(sass@1.70.0) zod: specifier: ^3.22.4 version: 3.22.4 @@ -264,6 +264,20 @@ packages: engines: {node: '>=0.10.0'} dev: true + /@actions/core@1.10.1: + resolution: {integrity: sha512-3lBR9EDAY+iYIpTnTIXmWcNbX3T2kCkAEQGIQx4NVQ0575nk2k3GRZDTPQG+vVtS2izSLmINlxXf0uLtnrTP+g==} + dependencies: + '@actions/http-client': 2.2.0 + uuid: 8.3.2 + dev: false + + /@actions/http-client@2.2.0: + resolution: {integrity: sha512-q+epW0trjVUUHboliPb4UF9g2msf+w61b32tAkFEwL/IwP0DQWgbCMM0Hbe3e3WXSKz5VcUXbzJQgy8Hkra/Lg==} + dependencies: + tunnel: 0.0.6 + undici: 5.28.3 + dev: false + /@alloc/quick-lru@5.2.0: resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} engines: {node: '>=10'} @@ -380,18 +394,18 @@ packages: '@csstools/css-tokenizer': 2.2.1 dev: true - /@csstools/postcss-cascade-layers@4.0.1(postcss@8.4.33): + /@csstools/postcss-cascade-layers@4.0.1(postcss@8.4.35): resolution: {integrity: sha512-UYFuFL9GgVnftg9v7tBvVEBRLaBeAD66euD+yYy5fYCUld9ZIWTJNCE30hm6STMEdt6FL5xzeVw1lAZ1tpvUEg==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: '@csstools/selector-specificity': 3.0.0(postcss-selector-parser@6.0.13) - postcss: 8.4.33 + postcss: 8.4.35 postcss-selector-parser: 6.0.13 dev: true - /@csstools/postcss-color-function@3.0.7(postcss@8.4.33): + /@csstools/postcss-color-function@3.0.7(postcss@8.4.35): resolution: {integrity: sha512-/PIB20G1TPCXmQlaJLWIYzTZRZpj6csT4ijgnshIj/kcmniIRroAfDa0xSWnfuO1eNo0NptIaPU7jzUukWn55Q==} engines: {node: ^14 || ^16 || >=18} peerDependencies: @@ -400,11 +414,11 @@ packages: '@csstools/css-color-parser': 1.4.0(@csstools/css-parser-algorithms@2.3.2)(@csstools/css-tokenizer@2.2.1) '@csstools/css-parser-algorithms': 2.3.2(@csstools/css-tokenizer@2.2.1) '@csstools/css-tokenizer': 2.2.1 - '@csstools/postcss-progressive-custom-properties': 3.0.2(postcss@8.4.33) - postcss: 8.4.33 + '@csstools/postcss-progressive-custom-properties': 3.0.2(postcss@8.4.35) + postcss: 8.4.35 dev: true - /@csstools/postcss-color-mix-function@2.0.7(postcss@8.4.33): + /@csstools/postcss-color-mix-function@2.0.7(postcss@8.4.35): resolution: {integrity: sha512-57/g8aGo5eKFjEeJMiRKh8Qq43K2rCyk5ZZTvJ34TNl4zUtYU5DvLkIkOnhCtL8/a4z9oMA42aOnFPddRrScUQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: @@ -413,11 +427,11 @@ packages: '@csstools/css-color-parser': 1.4.0(@csstools/css-parser-algorithms@2.3.2)(@csstools/css-tokenizer@2.2.1) '@csstools/css-parser-algorithms': 2.3.2(@csstools/css-tokenizer@2.2.1) '@csstools/css-tokenizer': 2.2.1 - '@csstools/postcss-progressive-custom-properties': 3.0.2(postcss@8.4.33) - postcss: 8.4.33 + '@csstools/postcss-progressive-custom-properties': 3.0.2(postcss@8.4.35) + postcss: 8.4.35 dev: true - /@csstools/postcss-exponential-functions@1.0.1(postcss@8.4.33): + /@csstools/postcss-exponential-functions@1.0.1(postcss@8.4.35): resolution: {integrity: sha512-ZLK2iSK4DUxeypGce2PnQSdYugUqDTwxnhNiq1o6OyKMNYgYs4eKbvEhFG8JKr1sJWbeqBi5jRr0017l2EWVvg==} engines: {node: ^14 || ^16 || >=18} peerDependencies: @@ -426,20 +440,20 @@ packages: '@csstools/css-calc': 1.1.4(@csstools/css-parser-algorithms@2.3.2)(@csstools/css-tokenizer@2.2.1) '@csstools/css-parser-algorithms': 2.3.2(@csstools/css-tokenizer@2.2.1) '@csstools/css-tokenizer': 2.2.1 - postcss: 8.4.33 + postcss: 8.4.35 dev: true - /@csstools/postcss-font-format-keywords@3.0.0(postcss@8.4.33): + /@csstools/postcss-font-format-keywords@3.0.0(postcss@8.4.35): resolution: {integrity: sha512-ntkGj+1uDa/u6lpjPxnkPcjJn7ChO/Kcy08YxctOZI7vwtrdYvFhmE476dq8bj1yna306+jQ9gzXIG/SWfOaRg==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 postcss-value-parser: 4.2.0 dev: true - /@csstools/postcss-gamut-mapping@1.0.0(postcss@8.4.33): + /@csstools/postcss-gamut-mapping@1.0.0(postcss@8.4.35): resolution: {integrity: sha512-6UQyK8l9YaG5Ao5rBDcCnKHrLsHiQ1E0zeFQuqDJqEtinVzAPb/MwSw3TenZXL1Rnd7th3tb+4CBFHBXdW5tbQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: @@ -448,10 +462,10 @@ packages: '@csstools/css-color-parser': 1.4.0(@csstools/css-parser-algorithms@2.3.2)(@csstools/css-tokenizer@2.2.1) '@csstools/css-parser-algorithms': 2.3.2(@csstools/css-tokenizer@2.2.1) '@csstools/css-tokenizer': 2.2.1 - postcss: 8.4.33 + postcss: 8.4.35 dev: true - /@csstools/postcss-gradients-interpolation-method@4.0.7(postcss@8.4.33): + /@csstools/postcss-gradients-interpolation-method@4.0.7(postcss@8.4.35): resolution: {integrity: sha512-GT1CzE/Tyr/ei4j5BwKESkHAgg+Gzys/0mAY7W+UiR+XrcYk5hDbOrE/YJIx1rflfO/7La1bDoZtA0YnLl4qNA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: @@ -460,11 +474,11 @@ packages: '@csstools/css-color-parser': 1.4.0(@csstools/css-parser-algorithms@2.3.2)(@csstools/css-tokenizer@2.2.1) '@csstools/css-parser-algorithms': 2.3.2(@csstools/css-tokenizer@2.2.1) '@csstools/css-tokenizer': 2.2.1 - '@csstools/postcss-progressive-custom-properties': 3.0.2(postcss@8.4.33) - postcss: 8.4.33 + '@csstools/postcss-progressive-custom-properties': 3.0.2(postcss@8.4.35) + postcss: 8.4.35 dev: true - /@csstools/postcss-hwb-function@3.0.6(postcss@8.4.33): + /@csstools/postcss-hwb-function@3.0.6(postcss@8.4.35): resolution: {integrity: sha512-uQgWt2Ho2yy2S6qthWY7mD5v57NKxi6dD1NB8nAybU5bJSsm+hLXRGm3/zbOH4xNrqO3Cl60DFSNlSrUME3Xjg==} engines: {node: ^14 || ^16 || >=18} peerDependencies: @@ -473,88 +487,88 @@ packages: '@csstools/css-color-parser': 1.4.0(@csstools/css-parser-algorithms@2.3.2)(@csstools/css-tokenizer@2.2.1) '@csstools/css-parser-algorithms': 2.3.2(@csstools/css-tokenizer@2.2.1) '@csstools/css-tokenizer': 2.2.1 - postcss: 8.4.33 + postcss: 8.4.35 dev: true - /@csstools/postcss-ic-unit@3.0.2(postcss@8.4.33): + /@csstools/postcss-ic-unit@3.0.2(postcss@8.4.35): resolution: {integrity: sha512-n28Er7W9qc48zNjJnvTKuVHY26/+6YlA9WzJRksIHiAWOMxSH5IksXkw7FpkIOd+jLi59BMrX/BWrZMgjkLBHg==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/postcss-progressive-custom-properties': 3.0.2(postcss@8.4.33) - postcss: 8.4.33 + '@csstools/postcss-progressive-custom-properties': 3.0.2(postcss@8.4.35) + postcss: 8.4.35 postcss-value-parser: 4.2.0 dev: true - /@csstools/postcss-initial@1.0.0(postcss@8.4.33): + /@csstools/postcss-initial@1.0.0(postcss@8.4.35): resolution: {integrity: sha512-1l7iHHjIl5qmVeGItugr4ZOlCREDP71mNKqoEyxlosIoiu3Os1nPWMHpuCvDLCLiWI/ONTOg3nzJh7gwHOrqUA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 dev: true - /@csstools/postcss-is-pseudo-class@4.0.3(postcss@8.4.33): + /@csstools/postcss-is-pseudo-class@4.0.3(postcss@8.4.35): resolution: {integrity: sha512-/dt5M9Ty/x3Yiq0Nm/5PJJzwkVFchJgdjKVnryBPtoMCb9ohb/nDIJOwr/Wr3hK3FDs1EA1GE6PyRYsUmQPS8Q==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: '@csstools/selector-specificity': 3.0.0(postcss-selector-parser@6.0.13) - postcss: 8.4.33 + postcss: 8.4.35 postcss-selector-parser: 6.0.13 dev: true - /@csstools/postcss-logical-float-and-clear@2.0.0(postcss@8.4.33): + /@csstools/postcss-logical-float-and-clear@2.0.0(postcss@8.4.35): resolution: {integrity: sha512-Wki4vxsF6icRvRz8eF9bPpAvwaAt0RHwhVOyzfoFg52XiIMjb6jcbHkGxwpJXP4DVrnFEwpwmrz5aTRqOW82kg==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 dev: true - /@csstools/postcss-logical-overflow@1.0.0(postcss@8.4.33): + /@csstools/postcss-logical-overflow@1.0.0(postcss@8.4.35): resolution: {integrity: sha512-cIrZ8f7bGGvr+W53nEuMspcwaeaI2YTmz6LZ4yiAO5z14/PQgOOv+Pn+qjvPOPoadeY2BmpaoTzZKvdAQuM17w==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 dev: true - /@csstools/postcss-logical-overscroll-behavior@1.0.0(postcss@8.4.33): + /@csstools/postcss-logical-overscroll-behavior@1.0.0(postcss@8.4.35): resolution: {integrity: sha512-e89S2LWjnxf0SB2wNUAbqDyFb/Fow/tlOe1XqOLbNx4rf3LrQokM9qldVx7sarnddml3ORE5LDUmlKpPOOeJTA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 dev: true - /@csstools/postcss-logical-resize@2.0.0(postcss@8.4.33): + /@csstools/postcss-logical-resize@2.0.0(postcss@8.4.35): resolution: {integrity: sha512-lCQ1aX8c5+WI4t5EoYf3alTzJNNocMqTb+u1J9CINdDhFh1fjovqK+0aHalUHsNstZmzFPNzIkU4Mb3eM9U8SA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 postcss-value-parser: 4.2.0 dev: true - /@csstools/postcss-logical-viewport-units@2.0.3(postcss@8.4.33): + /@csstools/postcss-logical-viewport-units@2.0.3(postcss@8.4.35): resolution: {integrity: sha512-xeVxqND5rlQyqLGdH7rX34sIm/JbbQKxpKQP8oD1YQqUHHCLQR9NUS57WqJKajxKN6AcNAMWJhb5LUH5RfPcyA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: '@csstools/css-tokenizer': 2.2.1 - postcss: 8.4.33 + postcss: 8.4.35 dev: true - /@csstools/postcss-media-minmax@1.1.0(postcss@8.4.33): + /@csstools/postcss-media-minmax@1.1.0(postcss@8.4.35): resolution: {integrity: sha512-t5Li/DPC5QmW/6VFLfUvsw/4dNYYseWR0tOXDeJg/9EKUodBgNawz5tuk5vYKtNvoj+Q08odMuXcpS5YJj0AFA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: @@ -564,10 +578,10 @@ packages: '@csstools/css-parser-algorithms': 2.3.2(@csstools/css-tokenizer@2.2.1) '@csstools/css-tokenizer': 2.2.1 '@csstools/media-query-list-parser': 2.1.5(@csstools/css-parser-algorithms@2.3.2)(@csstools/css-tokenizer@2.2.1) - postcss: 8.4.33 + postcss: 8.4.35 dev: true - /@csstools/postcss-media-queries-aspect-ratio-number-values@2.0.3(postcss@8.4.33): + /@csstools/postcss-media-queries-aspect-ratio-number-values@2.0.3(postcss@8.4.35): resolution: {integrity: sha512-IPL8AvnwMYW+cWtp+j8cW3MFN0RyXNT4hLOvs6Rf2N+NcbvXhSyKxZuE3W9Cv4KjaNoNoGx1d0UhT6tktq6tUw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: @@ -576,30 +590,30 @@ packages: '@csstools/css-parser-algorithms': 2.3.2(@csstools/css-tokenizer@2.2.1) '@csstools/css-tokenizer': 2.2.1 '@csstools/media-query-list-parser': 2.1.5(@csstools/css-parser-algorithms@2.3.2)(@csstools/css-tokenizer@2.2.1) - postcss: 8.4.33 + postcss: 8.4.35 dev: true - /@csstools/postcss-nested-calc@3.0.0(postcss@8.4.33): + /@csstools/postcss-nested-calc@3.0.0(postcss@8.4.35): resolution: {integrity: sha512-HsB66aDWAouOwD/GcfDTS0a7wCuVWaTpXcjl5VKP0XvFxDiU+r0T8FG7xgb6ovZNZ+qzvGIwRM+CLHhDgXrYgQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 postcss-value-parser: 4.2.0 dev: true - /@csstools/postcss-normalize-display-values@3.0.1(postcss@8.4.33): + /@csstools/postcss-normalize-display-values@3.0.1(postcss@8.4.35): resolution: {integrity: sha512-nUvRxI+ALJwkxZdPU4EDyuM380vP91sAGvI3jAOHs/sr3jfcCOzLkY6xKI1Mr526kZ3RivmMoYM/xq+XFyE/bw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 postcss-value-parser: 4.2.0 dev: true - /@csstools/postcss-oklab-function@3.0.7(postcss@8.4.33): + /@csstools/postcss-oklab-function@3.0.7(postcss@8.4.35): resolution: {integrity: sha512-vBFTQD3CARB3u/XIGO44wWbcO7xG/4GsYqJlcPuUGRSK8mtxes6n4vvNFlIByyAZy2k4d4RY63nyvTbMpeNTaQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: @@ -608,21 +622,21 @@ packages: '@csstools/css-color-parser': 1.4.0(@csstools/css-parser-algorithms@2.3.2)(@csstools/css-tokenizer@2.2.1) '@csstools/css-parser-algorithms': 2.3.2(@csstools/css-tokenizer@2.2.1) '@csstools/css-tokenizer': 2.2.1 - '@csstools/postcss-progressive-custom-properties': 3.0.2(postcss@8.4.33) - postcss: 8.4.33 + '@csstools/postcss-progressive-custom-properties': 3.0.2(postcss@8.4.35) + postcss: 8.4.35 dev: true - /@csstools/postcss-progressive-custom-properties@3.0.2(postcss@8.4.33): + /@csstools/postcss-progressive-custom-properties@3.0.2(postcss@8.4.35): resolution: {integrity: sha512-YEvTozk1SxnV/PGL5DllBVDuLQ+jiQhyCSQiZJ6CwBMU5JQ9hFde3i1qqzZHuclZfptjrU0JjlX4ePsOhxNzHw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 postcss-value-parser: 4.2.0 dev: true - /@csstools/postcss-relative-color-syntax@2.0.7(postcss@8.4.33): + /@csstools/postcss-relative-color-syntax@2.0.7(postcss@8.4.35): resolution: {integrity: sha512-2AiFbJSVF4EyymLxme4JzSrbXykHolx8DdZECHjYKMhoulhKLltx5ccYgtrK3BmXGd3v3nJrWFCc8JM8bjuiOg==} engines: {node: ^14 || ^16 || >=18} peerDependencies: @@ -631,21 +645,21 @@ packages: '@csstools/css-color-parser': 1.4.0(@csstools/css-parser-algorithms@2.3.2)(@csstools/css-tokenizer@2.2.1) '@csstools/css-parser-algorithms': 2.3.2(@csstools/css-tokenizer@2.2.1) '@csstools/css-tokenizer': 2.2.1 - '@csstools/postcss-progressive-custom-properties': 3.0.2(postcss@8.4.33) - postcss: 8.4.33 + '@csstools/postcss-progressive-custom-properties': 3.0.2(postcss@8.4.35) + postcss: 8.4.35 dev: true - /@csstools/postcss-scope-pseudo-class@3.0.0(postcss@8.4.33): + /@csstools/postcss-scope-pseudo-class@3.0.0(postcss@8.4.35): resolution: {integrity: sha512-GFNVsD97OuEcfHmcT0/DAZWAvTM/FFBDQndIOLawNc1Wq8YqpZwBdHa063Lq+Irk7azygTT+Iinyg3Lt76p7rg==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 postcss-selector-parser: 6.0.13 dev: true - /@csstools/postcss-stepped-value-functions@3.0.2(postcss@8.4.33): + /@csstools/postcss-stepped-value-functions@3.0.2(postcss@8.4.35): resolution: {integrity: sha512-I3wX44MZVv+tDuWfrd3BTvRB/YRIM2F5v1MBtTI89sxpFn47mNpTwpPYUOGPVCgKlRDfZSlxIUYhUQmqRQZZFQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: @@ -654,21 +668,21 @@ packages: '@csstools/css-calc': 1.1.4(@csstools/css-parser-algorithms@2.3.2)(@csstools/css-tokenizer@2.2.1) '@csstools/css-parser-algorithms': 2.3.2(@csstools/css-tokenizer@2.2.1) '@csstools/css-tokenizer': 2.2.1 - postcss: 8.4.33 + postcss: 8.4.35 dev: true - /@csstools/postcss-text-decoration-shorthand@3.0.3(postcss@8.4.33): + /@csstools/postcss-text-decoration-shorthand@3.0.3(postcss@8.4.35): resolution: {integrity: sha512-d5J9m49HhqXRcw1S6vTZuviHi/iknUKGjBpChiNK1ARg9sSa3b8m5lsWz5Izs8ISORZdv2bZRwbw5Z2R6gQ9kQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: '@csstools/color-helpers': 3.0.2 - postcss: 8.4.33 + postcss: 8.4.35 postcss-value-parser: 4.2.0 dev: true - /@csstools/postcss-trigonometric-functions@3.0.2(postcss@8.4.33): + /@csstools/postcss-trigonometric-functions@3.0.2(postcss@8.4.35): resolution: {integrity: sha512-AwzNhF4QOKaLOKvMljwwFkeYXwufhRO15G+kKohHkyoNOL75xWkN+W2Y9ik9tSeAyDv+cYNlYaF+o/a79WjVjg==} engines: {node: ^14 || ^16 || >=18} peerDependencies: @@ -677,16 +691,16 @@ packages: '@csstools/css-calc': 1.1.4(@csstools/css-parser-algorithms@2.3.2)(@csstools/css-tokenizer@2.2.1) '@csstools/css-parser-algorithms': 2.3.2(@csstools/css-tokenizer@2.2.1) '@csstools/css-tokenizer': 2.2.1 - postcss: 8.4.33 + postcss: 8.4.35 dev: true - /@csstools/postcss-unset-value@3.0.0(postcss@8.4.33): + /@csstools/postcss-unset-value@3.0.0(postcss@8.4.35): resolution: {integrity: sha512-P0JD1WHh3avVyKKRKjd0dZIjCEeaBer8t1BbwGMUDtSZaLhXlLNBqZ8KkqHzYWXOJgHleXAny2/sx8LYl6qhEA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 dev: true /@csstools/selector-specificity@3.0.0(postcss-selector-parser@6.0.13): @@ -1336,6 +1350,11 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true + /@fastify/busboy@2.1.0: + resolution: {integrity: sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA==} + engines: {node: '>=14'} + dev: false + /@floating-ui/core@1.5.0: resolution: {integrity: sha512-kK1h4m36DQ0UHGj5Ah4db7R0rHemTqqO0QLvUqi1/mUUp3LuAWbWxdxSIf/XsnH9VS6rRVPLJCncjRzUvyCLXg==} dependencies: @@ -1651,8 +1670,8 @@ packages: '@jridgewell/resolve-uri': 3.1.1 '@jridgewell/sourcemap-codec': 1.4.15 - /@lucia-auth/adapter-drizzle@1.0.0(lucia@3.0.1): - resolution: {integrity: sha512-3NJbAgEcgFn1bJ+s/XVBdatnQZCtSjKJ880H25SVB9X+V2jhYfsSu/mcW3PSis5bLial188Pd4oNTTHonh+6vg==} + /@lucia-auth/adapter-drizzle@1.0.1(lucia@3.0.1): + resolution: {integrity: sha512-xHgYwVh3ZmccEGsmkYWCALp2GlhCnomrpO5sgABCkIWgHvsmMZuJ5BYfgfaKmed1PDok81Dk6xFbj1tMH/uD6A==} peerDependencies: lucia: 3.x dependencies: @@ -1699,20 +1718,20 @@ packages: - supports-color dev: false - /@melt-ui/pp@0.3.0(@melt-ui/svelte@0.70.0)(svelte@4.2.9): + /@melt-ui/pp@0.3.0(@melt-ui/svelte@0.70.0)(svelte@4.2.10): resolution: {integrity: sha512-b07Bdh8l2KcwKVCXOY+SoBw1dk9eWvQfMSi6SoacpRVyVmmfpi0kV4oGt3HYF0tUCB3sEmVicxse50ZzZxEzEA==} engines: {pnpm: '>=8.6.3'} peerDependencies: '@melt-ui/svelte': '>= 0.29.0' svelte: ^3.55.0 || ^4.0.0 || ^5.0.0-next.1 dependencies: - '@melt-ui/svelte': 0.70.0(svelte@4.2.9) + '@melt-ui/svelte': 0.70.0(svelte@4.2.10) estree-walker: 3.0.3 magic-string: 0.30.5 - svelte: 4.2.9 + svelte: 4.2.10 dev: true - /@melt-ui/svelte@0.68.0(svelte@4.2.9): + /@melt-ui/svelte@0.68.0(svelte@4.2.10): resolution: {integrity: sha512-/QvA98hnYEodZtHJ71+ocum/WWp30hVNt3F8uiZKnNYwZDaiQYjlyR9AaGKYcZLCe6R68op1mfCzc0kTzJilyA==} peerDependencies: svelte: '>=3 <5' @@ -1723,10 +1742,10 @@ packages: dequal: 2.0.3 focus-trap: 7.5.4 nanoid: 5.0.5 - svelte: 4.2.9 + svelte: 4.2.10 dev: false - /@melt-ui/svelte@0.70.0(svelte@4.2.9): + /@melt-ui/svelte@0.70.0(svelte@4.2.10): resolution: {integrity: sha512-ni14892MHJMAxSl2cz1pcgfnLR7fee1nNDJmx47hV19ewxSs8eQ8iguPrfx1ONtgjbp2YYVZhlpERi7szd30cA==} peerDependencies: svelte: '>=3 <5' @@ -1737,7 +1756,7 @@ packages: dequal: 2.0.3 focus-trap: 7.5.4 nanoid: 5.0.5 - svelte: 4.2.9 + svelte: 4.2.10 dev: true /@napi-rs/wasm-runtime@0.1.1: @@ -2373,17 +2392,17 @@ packages: '@noble/hashes': 1.3.2 dev: false - /@planetscale/database@1.14.0: - resolution: {integrity: sha512-7BB+iH6EH4YJuDeVeEbxpo60BFz3wIXJNXCmBGl40eC4HStRMGZ1COxKfiuPcINWwwrJhAhI9AEI97AOZYT7JQ==} + /@planetscale/database@1.15.0: + resolution: {integrity: sha512-X4GmGGKE3o6tj/FM+ElDdyVb9BI8Y2OSSeOtyW/gCmVS0XLs4tTppg0cVLL89CS+awEhIIYXFDwqT3a7pbYROg==} engines: {node: '>=16'} dev: false - /@playwright/test@1.41.1: - resolution: {integrity: sha512-9g8EWTjiQ9yFBXc6HjCWe41msLpxEX0KhmfmPl9RPLJdfzL4F0lg2BdJ91O9azFdl11y1pmpwdjBiSxvqc+btw==} + /@playwright/test@1.41.2: + resolution: {integrity: sha512-qQB9h7KbibJzrDpkXkYvsmiDJK14FULCCZgEcoe2AvFAS64oCirWTwzTlAYEbKaRxWs5TFesE1Na6izMv3HfGg==} engines: {node: '>=16'} hasBin: true dependencies: - playwright: 1.41.1 + playwright: 1.41.2 dev: true /@polka/url@1.0.0-next.24: @@ -2673,13 +2692,32 @@ packages: requiresBuild: true optional: true - /@sentry-internal/feedback@7.88.0: - resolution: {integrity: sha512-lbK6jgO1I0M96nZQ99mcLSZ55ebwPAP6LhEWhkmc+eAfy97VpiY+qsbmgsmOzCEPqMmEUCEcI0rEZ7fiye2v2Q==} + /@sentry-internal/feedback@7.100.1: + resolution: {integrity: sha512-yqcRVnjf+qS+tC4NxOKLJOaSJ+csHmh/dHUzvCTkf5rLsplwXYRnny2r0tqGTQ4tuXMxwgSMKPYwicg81P+xuw==} engines: {node: '>=12'} dependencies: - '@sentry/core': 7.88.0 - '@sentry/types': 7.88.0 - '@sentry/utils': 7.88.0 + '@sentry/core': 7.100.1 + '@sentry/types': 7.100.1 + '@sentry/utils': 7.100.1 + dev: false + + /@sentry-internal/replay-canvas@7.100.1: + resolution: {integrity: sha512-TnqxqJGhbFhhYRhTG2WLFer+lVieV7mNGeIxFBiw1L4kuj8KGl+C0sknssKyZSRVJFSahhHIosHJGRMkkD//7g==} + engines: {node: '>=12'} + dependencies: + '@sentry/core': 7.100.1 + '@sentry/replay': 7.100.1 + '@sentry/types': 7.100.1 + '@sentry/utils': 7.100.1 + dev: false + + /@sentry-internal/tracing@7.100.1: + resolution: {integrity: sha512-+u9RRf5eL3StiyiRyAHZmdkAR7GTSGx4Mt4Lmi5NEtCcWlTGZ1QgW2r8ZbhouVmTiJkjhQgYCyej3cojtazeJg==} + engines: {node: '>=8'} + dependencies: + '@sentry/core': 7.100.1 + '@sentry/types': 7.100.1 + '@sentry/utils': 7.100.1 dev: false /@sentry-internal/tracing@7.77.0: @@ -2691,25 +2729,17 @@ packages: '@sentry/utils': 7.77.0 dev: false - /@sentry-internal/tracing@7.88.0: - resolution: {integrity: sha512-xXQdcYhsS+ourzJHjXNjZC9zakuc97udmpgaXRjEP7FjPYclIx+YXwgFBdHM2kzAwZLFOsEce5dr46GVXUDfZw==} + /@sentry/browser@7.100.1: + resolution: {integrity: sha512-IxHQ08ixf0bmaWpe4yt1J4UUsOpg02fxax9z3tOQYXw5MSzz5pDXn8M8DFUVJB3wWuyXhHXTub9yD3VIP9fnoA==} engines: {node: '>=8'} dependencies: - '@sentry/core': 7.88.0 - '@sentry/types': 7.88.0 - '@sentry/utils': 7.88.0 - dev: false - - /@sentry/browser@7.88.0: - resolution: {integrity: sha512-il4x3PB99nuU/OJQw2RltgYYbo8vtnYoIgneOeEiw4m0ppK1nKkMkd3vDRipGL6E/0i7IUmQfYYy6U10J5Rx+g==} - engines: {node: '>=8'} - dependencies: - '@sentry-internal/feedback': 7.88.0 - '@sentry-internal/tracing': 7.88.0 - '@sentry/core': 7.88.0 - '@sentry/replay': 7.88.0 - '@sentry/types': 7.88.0 - '@sentry/utils': 7.88.0 + '@sentry-internal/feedback': 7.100.1 + '@sentry-internal/replay-canvas': 7.100.1 + '@sentry-internal/tracing': 7.100.1 + '@sentry/core': 7.100.1 + '@sentry/replay': 7.100.1 + '@sentry/types': 7.100.1 + '@sentry/utils': 7.100.1 dev: false /@sentry/bundler-plugin-core@0.6.1: @@ -2717,7 +2747,7 @@ packages: engines: {node: '>= 10'} dependencies: '@sentry/cli': 2.21.2 - '@sentry/node': 7.88.0 + '@sentry/node': 7.100.1 '@sentry/tracing': 7.77.0 find-up: 5.0.0 glob: 9.3.2 @@ -2745,6 +2775,14 @@ packages: - supports-color dev: false + /@sentry/core@7.100.1: + resolution: {integrity: sha512-f+ItUge/o9AjlveQq0ZUbQauKlPH1FIJbC1TRaYLJ4KNfOdrsh8yZ29RmWv0cFJ/e+FGTr603gWpRPObF5rM8Q==} + engines: {node: '>=8'} + dependencies: + '@sentry/types': 7.100.1 + '@sentry/utils': 7.100.1 + dev: false + /@sentry/core@7.77.0: resolution: {integrity: sha512-Tj8oTYFZ/ZD+xW8IGIsU6gcFXD/gfE+FUxUaeSosd9KHwBQNOLhZSsYo/tTVf/rnQI/dQnsd4onPZLiL+27aTg==} engines: {node: '>=8'} @@ -2753,75 +2791,65 @@ packages: '@sentry/utils': 7.77.0 dev: false - /@sentry/core@7.88.0: - resolution: {integrity: sha512-Jzbb7dcwiCO7kI0a1w+32UzWxbEn2OcZWzp55QMEeAh6nZ/5CXhXwpuHi0tW7doPj+cJdmxMTMu9LqMVfdGkzQ==} + /@sentry/integrations@7.100.1: + resolution: {integrity: sha512-RUyZHcsN3Plc8G4hJN3BCMdbwS8ljUY3E3iLjzucA4HroBsGk5AMc6n7Pp/QqFIRgxrPjKEgA52Wgy5Nq6dSvw==} engines: {node: '>=8'} dependencies: - '@sentry/types': 7.88.0 - '@sentry/utils': 7.88.0 - dev: false - - /@sentry/integrations@7.88.0: - resolution: {integrity: sha512-YBYPAtJeylMaaCmGntgiDpp1nk3IT6+FBXsmHxMdTKlrpt5ELj/jcc8gEgaRNeSBjx4Kv1OVzmZcYyWwEhkR4Q==} - engines: {node: '>=8'} - dependencies: - '@sentry/core': 7.88.0 - '@sentry/types': 7.88.0 - '@sentry/utils': 7.88.0 + '@sentry/core': 7.100.1 + '@sentry/types': 7.100.1 + '@sentry/utils': 7.100.1 localforage: 1.10.0 dev: false - /@sentry/node@7.88.0: - resolution: {integrity: sha512-X6Xyh7AEitnWqn1CHQrmsUqRn0GKj/6nPE5VC2DLQfHiFH1Fknrt+csFzDchQ/86awXYwuY4Le5ECEH//X/WzQ==} + /@sentry/node@7.100.1: + resolution: {integrity: sha512-jB6tBLr7BpgdE2SlYZu343vvpa5jMFnqyFlprr+jdDu/ayNF4idB0qFwQe8p4C6LI6M/MNDRLVOgPBiCjjZSpw==} engines: {node: '>=8'} dependencies: - '@sentry-internal/tracing': 7.88.0 - '@sentry/core': 7.88.0 - '@sentry/types': 7.88.0 - '@sentry/utils': 7.88.0 - https-proxy-agent: 5.0.1 - transitivePeerDependencies: - - supports-color + '@sentry-internal/tracing': 7.100.1 + '@sentry/core': 7.100.1 + '@sentry/types': 7.100.1 + '@sentry/utils': 7.100.1 dev: false - /@sentry/replay@7.88.0: - resolution: {integrity: sha512-em5dPKLPG7c/HGDbpIj3aHrWbA4iMwqjevqTzn+++KNO1YslkOosCaGsb1whU3AL1T9c3aIFIhZ4u3rNo+DxcA==} + /@sentry/replay@7.100.1: + resolution: {integrity: sha512-B1NFjzGEFaqejxBRdUyEzH8ChXc2kfiqlA/W/Lg0aoWIl2/7nuMk+l4ld9gW5F5bIAXDTVd5vYltb1lWEbpr7w==} engines: {node: '>=12'} dependencies: - '@sentry-internal/tracing': 7.88.0 - '@sentry/core': 7.88.0 - '@sentry/types': 7.88.0 - '@sentry/utils': 7.88.0 + '@sentry-internal/tracing': 7.100.1 + '@sentry/core': 7.100.1 + '@sentry/types': 7.100.1 + '@sentry/utils': 7.100.1 dev: false - /@sentry/svelte@7.88.0(svelte@4.2.9): - resolution: {integrity: sha512-H1nVPfb8GXIj9HAa3Hw11yrWs4yUpm88+eW4eT1ryZeoIThcT4mSvqkFLWMq9APmoOjtXMF+LTi+aCboJMqbEg==} + /@sentry/svelte@7.100.1(svelte@4.2.10): + resolution: {integrity: sha512-2oZJNFZYfXeDX05mvBBLtve1KRfCI0DgrxZYe9qbYQIe7snobNSydTK+wIHX/SJeVUz3Z+qyovPqFzjkJPTFnw==} engines: {node: '>=8'} peerDependencies: svelte: 3.x || 4.x dependencies: - '@sentry/browser': 7.88.0 - '@sentry/types': 7.88.0 - '@sentry/utils': 7.88.0 - magic-string: 0.30.5 - svelte: 4.2.9 + '@sentry/browser': 7.100.1 + '@sentry/core': 7.100.1 + '@sentry/types': 7.100.1 + '@sentry/utils': 7.100.1 + magic-string: 0.30.7 + svelte: 4.2.10 dev: false - /@sentry/sveltekit@7.88.0(@sveltejs/kit@2.5.0)(svelte@4.2.9): - resolution: {integrity: sha512-ZkpTPOBb9RHWAenqasGVSQl3XxuYEecrEJVUignF+Dz7hpO/vpprihnFIp4QVnb5Tzjw6ba05/HCgzIQqJMfnA==} + /@sentry/sveltekit@7.100.1(@sveltejs/kit@2.5.0)(svelte@4.2.10): + resolution: {integrity: sha512-t6JaivTmw5oIqOpKQ8PNbGjNP99AQY6vMPkhxzVuwPa3A3o2WtmzQoIXNxdrkux5XkoBI9CsT6TsM5TbaMDwjQ==} engines: {node: '>=16'} peerDependencies: - '@sveltejs/kit': 1.x + '@sveltejs/kit': 1.x || 2.x dependencies: - '@sentry-internal/tracing': 7.88.0 - '@sentry/core': 7.88.0 - '@sentry/integrations': 7.88.0 - '@sentry/node': 7.88.0 - '@sentry/svelte': 7.88.0(svelte@4.2.9) - '@sentry/types': 7.88.0 - '@sentry/utils': 7.88.0 + '@sentry-internal/tracing': 7.100.1 + '@sentry/core': 7.100.1 + '@sentry/integrations': 7.100.1 + '@sentry/node': 7.100.1 + '@sentry/svelte': 7.100.1(svelte@4.2.10) + '@sentry/types': 7.100.1 + '@sentry/utils': 7.100.1 '@sentry/vite-plugin': 0.6.1 - '@sveltejs/kit': 2.5.0(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@4.2.9)(vite@5.0.12) + '@sveltejs/kit': 2.5.0(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@4.2.10)(vite@5.0.12) magicast: 0.2.8 sorcery: 0.11.0 transitivePeerDependencies: @@ -2837,14 +2865,21 @@ packages: '@sentry-internal/tracing': 7.77.0 dev: false + /@sentry/types@7.100.1: + resolution: {integrity: sha512-fLM+LedHuKzOd8IhXBqaQuym+AA519MGjeczBa5kGakes/BbAsUMwsNfjsKQedp7Kh44RgYF99jwoRPK2oDrXw==} + engines: {node: '>=8'} + dev: false + /@sentry/types@7.77.0: resolution: {integrity: sha512-nfb00XRJVi0QpDHg+JkqrmEBHsqBnxJu191Ded+Cs1OJ5oPXEW6F59LVcBScGvMqe+WEk1a73eH8XezwfgrTsA==} engines: {node: '>=8'} dev: false - /@sentry/types@7.88.0: - resolution: {integrity: sha512-FvwvmX1pWAZKicPj4EpKyho8Wm+C4+r5LiepbbBF8oKwSPJdD2QV1fo/LWxsrzNxWOllFIVIXF5Ed3nPYQWpTw==} + /@sentry/utils@7.100.1: + resolution: {integrity: sha512-Ve6dXr1o6xiBe3VCoJgiutmBKrugryI65EZAbYto5XI+t+PjiLLf9wXtEMF24ZrwImo4Lv3E9Uqza+fWkEbw6A==} engines: {node: '>=8'} + dependencies: + '@sentry/types': 7.100.1 dev: false /@sentry/utils@7.77.0: @@ -2854,13 +2889,6 @@ packages: '@sentry/types': 7.77.0 dev: false - /@sentry/utils@7.88.0: - resolution: {integrity: sha512-ukminfRmdBXTzk49orwJf3Lu3hR60ZRHjE2a4IXwYhyDT6JJgJqgsq1hzGXx0AyFfyS4WhfZ6QUBy7fu3BScZQ==} - engines: {node: '>=8'} - dependencies: - '@sentry/types': 7.88.0 - dev: false - /@sentry/vite-plugin@0.6.1: resolution: {integrity: sha512-qkvKaSOcNhNWcdxRXLSs+8cF3ey0XIRmEzTl8U7sTTcZwuOMHsJB+HsYij6aTGaqsKfP8w1ozVt9szBAiL4//w==} engines: {node: '>= 10'} @@ -2888,7 +2916,7 @@ packages: peerDependencies: '@sveltejs/kit': ^2.0.0 dependencies: - '@sveltejs/kit': 2.5.0(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@4.2.9)(vite@5.0.12) + '@sveltejs/kit': 2.5.0(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@4.2.10)(vite@5.0.12) import-meta-resolve: 4.0.0 dev: true @@ -2897,7 +2925,7 @@ packages: peerDependencies: '@sveltejs/kit': ^2.4.0 dependencies: - '@sveltejs/kit': 2.5.0(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@4.2.9)(vite@5.0.12) + '@sveltejs/kit': 2.5.0(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@4.2.10)(vite@5.0.12) '@vercel/nft': 0.26.2 esbuild: 0.19.11 transitivePeerDependencies: @@ -2905,18 +2933,18 @@ packages: - supports-color dev: false - /@sveltejs/enhanced-img@0.1.8(svelte@4.2.9): + /@sveltejs/enhanced-img@0.1.8(svelte@4.2.10): resolution: {integrity: sha512-0cLVR9KiO0/t3VVm64OM7bPHTkdaT2aaz1rwoAhao+EBXR3vMvLoYXLHvz8o9/552PSV8G844RkH7qkGc3YAiQ==} dependencies: magic-string: 0.30.5 - svelte-parse-markup: 0.1.2(svelte@4.2.9) + svelte-parse-markup: 0.1.2(svelte@4.2.10) vite-imagetools: 6.2.9 transitivePeerDependencies: - rollup - svelte dev: true - /@sveltejs/kit@2.5.0(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@4.2.9)(vite@5.0.12): + /@sveltejs/kit@2.5.0(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@4.2.10)(vite@5.0.12): resolution: {integrity: sha512-1uyXvzC2Lu1FZa30T4y5jUAC21R309ZMRG0TPt+PPPbNUoDpy8zSmSNVWYaBWxYDqLGQ5oPNWvjvvF2IjJ1jmA==} engines: {node: '>=18.13'} hasBin: true @@ -2926,7 +2954,7 @@ packages: svelte: ^4.0.0 || ^5.0.0-next.0 vite: ^5.0.3 dependencies: - '@sveltejs/vite-plugin-svelte': 3.0.2(svelte@4.2.9)(vite@5.0.12) + '@sveltejs/vite-plugin-svelte': 3.0.2(svelte@4.2.10)(vite@5.0.12) '@types/cookie': 0.6.0 cookie: 0.6.0 devalue: 4.3.2 @@ -2938,11 +2966,11 @@ packages: sade: 1.8.1 set-cookie-parser: 2.6.0 sirv: 2.0.4 - svelte: 4.2.9 + svelte: 4.2.10 tiny-glob: 0.2.9 - vite: 5.0.12(@types/node@18.19.10)(sass@1.70.0) + vite: 5.0.12(@types/node@18.19.14)(sass@1.70.0) - /@sveltejs/vite-plugin-svelte-inspector@2.0.0(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@4.2.9)(vite@5.0.12): + /@sveltejs/vite-plugin-svelte-inspector@2.0.0(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@4.2.10)(vite@5.0.12): resolution: {integrity: sha512-gjr9ZFg1BSlIpfZ4PRewigrvYmHWbDrq2uvvPB1AmTWKuM+dI1JXQSUu2pIrYLb/QncyiIGkFDFKTwJ0XqQZZg==} engines: {node: ^18.0.0 || >=20} peerDependencies: @@ -2950,28 +2978,28 @@ packages: svelte: ^4.0.0 || ^5.0.0-next.0 vite: ^5.0.0 dependencies: - '@sveltejs/vite-plugin-svelte': 3.0.2(svelte@4.2.9)(vite@5.0.12) + '@sveltejs/vite-plugin-svelte': 3.0.2(svelte@4.2.10)(vite@5.0.12) debug: 4.3.4 - svelte: 4.2.9 - vite: 5.0.12(@types/node@18.19.10)(sass@1.70.0) + svelte: 4.2.10 + vite: 5.0.12(@types/node@18.19.14)(sass@1.70.0) transitivePeerDependencies: - supports-color - /@sveltejs/vite-plugin-svelte@3.0.2(svelte@4.2.9)(vite@5.0.12): + /@sveltejs/vite-plugin-svelte@3.0.2(svelte@4.2.10)(vite@5.0.12): resolution: {integrity: sha512-MpmF/cju2HqUls50WyTHQBZUV3ovV/Uk8k66AN2gwHogNAG8wnW8xtZDhzNBsFJJuvmq1qnzA5kE7YfMJNFv2Q==} engines: {node: ^18.0.0 || >=20} peerDependencies: svelte: ^4.0.0 || ^5.0.0-next.0 vite: ^5.0.0 dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 2.0.0(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@4.2.9)(vite@5.0.12) + '@sveltejs/vite-plugin-svelte-inspector': 2.0.0(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@4.2.10)(vite@5.0.12) debug: 4.3.4 deepmerge: 4.3.1 kleur: 4.1.5 magic-string: 0.30.5 - svelte: 4.2.9 - svelte-hmr: 0.15.3(svelte@4.2.9) - vite: 5.0.12(@types/node@18.19.10)(sass@1.70.0) + svelte: 4.2.10 + svelte-hmr: 0.15.3(svelte@4.2.10) + vite: 5.0.12(@types/node@18.19.14)(sass@1.70.0) vitefu: 0.2.5(vite@5.0.12) transitivePeerDependencies: - supports-color @@ -3019,8 +3047,8 @@ packages: resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} dev: true - /@types/node@18.19.10: - resolution: {integrity: sha512-IZD8kAM02AW1HRDTPOlz3npFava678pr8Ie9Vp8uRhBROXAv8MXT2pCnGZZAKYdromsNQLHQcfWQ6EOatVLtqA==} + /@types/node@18.19.14: + resolution: {integrity: sha512-EnQ4Us2rmOS64nHDWr0XqAD8DsO6f3XR6lf9UIIrZQpUzPVdN/oPuEzfDWNHSyXLvoGgjuEm/sPwFGSSs35Wtg==} dependencies: undici-types: 5.26.5 @@ -3032,8 +3060,8 @@ packages: resolution: {integrity: sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==} dev: true - /@typescript-eslint/eslint-plugin@6.20.0(@typescript-eslint/parser@6.20.0)(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-fTwGQUnjhoYHeSF6m5pWNkzmDDdsKELYrOBxhjMrofPqCkoC2k3B2wvGHFxa1CTIqkEn88nlW1HVMztjo2K8Hg==} + /@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha @@ -3044,11 +3072,11 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 6.20.0(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/scope-manager': 6.20.0 - '@typescript-eslint/type-utils': 6.20.0(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/utils': 6.20.0(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.20.0 + '@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/scope-manager': 6.21.0 + '@typescript-eslint/type-utils': 6.21.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/utils': 6.21.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 6.21.0 debug: 4.3.4 eslint: 8.56.0 graphemer: 1.4.0 @@ -3061,8 +3089,8 @@ packages: - supports-color dev: true - /@typescript-eslint/parser@6.20.0(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-bYerPDF/H5v6V76MdMYhjwmwgMA+jlPVqjSDq2cRqMi8bP5sR3Z+RLOiOMad3nsnmDVmn2gAFCyNgh/dIrfP/w==} + /@typescript-eslint/parser@6.21.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -3071,10 +3099,10 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 6.20.0 - '@typescript-eslint/types': 6.20.0 - '@typescript-eslint/typescript-estree': 6.20.0(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.20.0 + '@typescript-eslint/scope-manager': 6.21.0 + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 6.21.0 debug: 4.3.4 eslint: 8.56.0 typescript: 5.3.3 @@ -3082,16 +3110,16 @@ packages: - supports-color dev: true - /@typescript-eslint/scope-manager@6.20.0: - resolution: {integrity: sha512-p4rvHQRDTI1tGGMDFQm+GtxP1ZHyAh64WANVoyEcNMpaTFn3ox/3CcgtIlELnRfKzSs/DwYlDccJEtr3O6qBvA==} + /@typescript-eslint/scope-manager@6.21.0: + resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.20.0 - '@typescript-eslint/visitor-keys': 6.20.0 + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/visitor-keys': 6.21.0 dev: true - /@typescript-eslint/type-utils@6.20.0(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-qnSobiJQb1F5JjN0YDRPHruQTrX7ICsmltXhkV536mp4idGAYrIyr47zF/JmkJtEcAVnIz4gUYJ7gOZa6SmN4g==} + /@typescript-eslint/type-utils@6.21.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -3100,8 +3128,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 6.20.0(typescript@5.3.3) - '@typescript-eslint/utils': 6.20.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.3.3) + '@typescript-eslint/utils': 6.21.0(eslint@8.56.0)(typescript@5.3.3) debug: 4.3.4 eslint: 8.56.0 ts-api-utils: 1.0.3(typescript@5.3.3) @@ -3110,13 +3138,13 @@ packages: - supports-color dev: true - /@typescript-eslint/types@6.20.0: - resolution: {integrity: sha512-MM9mfZMAhiN4cOEcUOEx+0HmuaW3WBfukBZPCfwSqFnQy0grXYtngKCqpQN339X3RrwtzspWJrpbrupKYUSBXQ==} + /@typescript-eslint/types@6.21.0: + resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==} engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/typescript-estree@6.20.0(typescript@5.3.3): - resolution: {integrity: sha512-RnRya9q5m6YYSpBN7IzKu9FmLcYtErkDkc8/dKv81I9QiLLtVBHrjz+Ev/crAqgMNW2FCsoZF4g2QUylMnJz+g==} + /@typescript-eslint/typescript-estree@6.21.0(typescript@5.3.3): + resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: typescript: '*' @@ -3124,21 +3152,21 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 6.20.0 - '@typescript-eslint/visitor-keys': 6.20.0 + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/visitor-keys': 6.21.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.3 - semver: 7.5.4 - ts-api-utils: 1.0.3(typescript@5.3.3) + semver: 7.6.0 + ts-api-utils: 1.2.1(typescript@5.3.3) typescript: 5.3.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils@6.20.0(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-/EKuw+kRu2vAqCoDwDCBtDRU6CTKbUmwwI7SH7AashZ+W+7o8eiyy6V2cdOqN49KsTcASWsC5QeghYuRDTyOOg==} + /@typescript-eslint/utils@6.21.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -3146,9 +3174,9 @@ packages: '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) '@types/json-schema': 7.0.15 '@types/semver': 7.5.6 - '@typescript-eslint/scope-manager': 6.20.0 - '@typescript-eslint/types': 6.20.0 - '@typescript-eslint/typescript-estree': 6.20.0(typescript@5.3.3) + '@typescript-eslint/scope-manager': 6.21.0 + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.3.3) eslint: 8.56.0 semver: 7.5.4 transitivePeerDependencies: @@ -3156,11 +3184,11 @@ packages: - typescript dev: true - /@typescript-eslint/visitor-keys@6.20.0: - resolution: {integrity: sha512-E8Cp98kRe4gKHjJD4NExXKz/zOJ1A2hhZc+IMVD6i7w4yjIvh6VyuRI0gRtxAsXtoC35uGMaQ9rjI2zJaXDEAw==} + /@typescript-eslint/visitor-keys@6.21.0: + resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.20.0 + '@typescript-eslint/types': 6.21.0 eslint-visitor-keys: 3.4.3 dev: true @@ -3340,6 +3368,12 @@ packages: /arg@5.0.2: resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + /argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + dependencies: + sprintf-js: 1.0.3 + dev: false + /argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} dev: true @@ -3379,7 +3413,18 @@ packages: resolution: {integrity: sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==} dev: false - /autoprefixer@10.4.17(postcss@8.4.33): + /auri@1.0.2: + resolution: {integrity: sha512-OC54Bv+hAPvYlo98ZwK3cTo2ijg0CBylaAO5dZ/xZQ7e897k0o4qtxkUPQHruJrFUnL5BebCXz+bUAeXQHp9dg==} + hasBin: true + dependencies: + '@actions/core': 1.10.1 + dotenv: 16.4.1 + front-matter: 4.0.2 + nanoid: 4.0.2 + oslo: 1.1.0 + dev: false + + /autoprefixer@10.4.17(postcss@8.4.35): resolution: {integrity: sha512-/cpVNRLSfhOtcGflT13P2794gVSgmPgTR+erw5ifnMLZb0UnSlkK4tquLmkd3BhA+nLo5tX8Cu0upUsGKvKbmg==} engines: {node: ^10 || ^12 || >=14} hasBin: true @@ -3391,7 +3436,7 @@ packages: fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.0.0 - postcss: 8.4.33 + postcss: 8.4.35 postcss-value-parser: 4.2.0 dev: true @@ -3422,15 +3467,15 @@ packages: file-uri-to-path: 1.0.0 dev: false - /bits-ui@0.15.1(svelte@4.2.9): + /bits-ui@0.15.1(svelte@4.2.10): resolution: {integrity: sha512-1Np8bT6W6SC2tKESfm0CySW+7+xU5S0GuUZqIxC41atZE3WIRiRlzXEYHxW88w6UaLFzZ51ns4E7pchkdV5XCQ==} peerDependencies: svelte: ^4.0.0 dependencies: '@internationalized/date': 3.5.1 - '@melt-ui/svelte': 0.68.0(svelte@4.2.9) + '@melt-ui/svelte': 0.68.0(svelte@4.2.10) nanoid: 5.0.5 - svelte: 4.2.9 + svelte: 4.2.10 dev: false /boardgamegeekclient@1.9.1: @@ -3697,13 +3742,13 @@ packages: /css-background-parser@0.1.0: resolution: {integrity: sha512-2EZLisiZQ+7m4wwur/qiYJRniHX4K5Tc9w93MT3AS0WS1u5kaZ4FKXlOTBhOjc+CgEgPiGY+fX1yWD8UwpEqUA==} - /css-blank-pseudo@6.0.0(postcss@8.4.33): + /css-blank-pseudo@6.0.0(postcss@8.4.35): resolution: {integrity: sha512-VbfLlOWO7sBHBTn6pwDQzc07Z0SDydgDBfNfCE0nvrehdBNv9RKsuupIRa/qal0+fBZhAALyQDPMKz5lnvcchw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 postcss-selector-parser: 6.0.13 dev: true @@ -3714,25 +3759,25 @@ packages: resolution: {integrity: sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg==} engines: {node: '>=4'} - /css-has-pseudo@6.0.0(postcss@8.4.33): + /css-has-pseudo@6.0.0(postcss@8.4.35): resolution: {integrity: sha512-X+r+JBuoO37FBOWVNhVJhxtSBUFHgHbrcc0CjFT28JEdOw1qaDwABv/uunyodUuSy2hMPe9j/HjssxSlvUmKjg==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: '@csstools/selector-specificity': 3.0.0(postcss-selector-parser@6.0.13) - postcss: 8.4.33 + postcss: 8.4.35 postcss-selector-parser: 6.0.13 postcss-value-parser: 4.2.0 dev: true - /css-prefers-color-scheme@9.0.0(postcss@8.4.33): + /css-prefers-color-scheme@9.0.0(postcss@8.4.35): resolution: {integrity: sha512-03QGAk/FXIRseDdLb7XAiu6gidQ0Nd8945xuM7VFVPpc6goJsG9uIO8xQjTxwbPdPIIV4o4AJoOJyt8gwDl67g==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 dev: true /css-to-react-native@3.2.0: @@ -3872,7 +3917,6 @@ packages: /dotenv@16.4.1: resolution: {integrity: sha512-CjA3y+Dr3FyFDOAMnxZEGtnW9KBR2M0JvvUtXNW+dYJL5ROWxP9DUHCwgFqpMk0OXCc0ljhaNTr2w/kutYIcHQ==} engines: {node: '>=12'} - dev: true /dreamopt@0.8.0: resolution: {integrity: sha512-vyJTp8+mC+G+5dfgsY+r3ckxlz+QMX40VjPQsZc5gxVAxLmi64TBoVkP54A/pRAXMXsbu2GMMBrZPxNv23waMg==} @@ -3881,8 +3925,8 @@ packages: wordwrap: 1.0.0 dev: true - /drizzle-kit@0.20.13: - resolution: {integrity: sha512-j9oZSQXNWG+KBJm0Sg3S/zJpncHGKnpqNfFuM4NUxUMGTcihDHhP9SW6Jncqwb5vsP1Xm0a8JLm3PZUIspC/oA==} + /drizzle-kit@0.20.14: + resolution: {integrity: sha512-0fHv3YIEaUcSVPSGyaaBfOi9bmpajjhbJNdPsRMIUvYdLVxBu9eGjH8mRc3Qk7HVmEidFc/lhG1YyJhoXrn5yA==} hasBin: true dependencies: '@drizzle-team/studio': 0.0.39 @@ -3903,7 +3947,7 @@ packages: - supports-color dev: true - /drizzle-orm@0.29.3(@planetscale/database@1.14.0)(mysql2@3.9.1): + /drizzle-orm@0.29.3(@planetscale/database@1.15.0)(mysql2@3.9.1): resolution: {integrity: sha512-uSE027csliGSGYD0pqtM+SAQATMREb3eSM/U8s6r+Y0RFwTKwftnwwSkqx3oS65UBgqDOM0gMTl5UGNpt6lW0A==} peerDependencies: '@aws-sdk/client-rds-data': '>=3' @@ -3974,7 +4018,7 @@ packages: sqlite3: optional: true dependencies: - '@planetscale/database': 1.14.0 + '@planetscale/database': 1.15.0 mysql2: 3.9.1 dev: false @@ -4167,7 +4211,7 @@ packages: eslint: 8.56.0 dev: true - /eslint-plugin-svelte@2.35.1(eslint@8.56.0)(svelte@4.2.9)(ts-node@10.9.2): + /eslint-plugin-svelte@2.35.1(eslint@8.56.0)(svelte@4.2.10)(ts-node@10.9.2): resolution: {integrity: sha512-IF8TpLnROSGy98Z3NrsKXWDSCbNY2ReHDcrYTuXZMbfX7VmESISR78TWgO9zdg4Dht1X8coub5jKwHzP0ExRug==} engines: {node: ^14.17.0 || >=16.0.0} peerDependencies: @@ -4184,13 +4228,13 @@ packages: eslint-compat-utils: 0.1.2(eslint@8.56.0) esutils: 2.0.3 known-css-properties: 0.29.0 - postcss: 8.4.33 - postcss-load-config: 3.1.4(postcss@8.4.33)(ts-node@10.9.2) - postcss-safe-parser: 6.0.0(postcss@8.4.33) + postcss: 8.4.35 + postcss-load-config: 3.1.4(postcss@8.4.35)(ts-node@10.9.2) + postcss-safe-parser: 6.0.0(postcss@8.4.35) postcss-selector-parser: 6.0.13 semver: 7.5.4 - svelte: 4.2.9 - svelte-eslint-parser: 0.33.1(svelte@4.2.9) + svelte: 4.2.10 + svelte-eslint-parser: 0.33.1(svelte@4.2.10) transitivePeerDependencies: - supports-color - ts-node @@ -4437,15 +4481,15 @@ packages: is-callable: 1.2.7 dev: false - /formsnap@0.4.3(svelte@4.2.9)(sveltekit-superforms@1.13.4)(zod@3.22.4): + /formsnap@0.4.3(svelte@4.2.10)(sveltekit-superforms@1.13.4)(zod@3.22.4): resolution: {integrity: sha512-PWVq78XVUHhAU1tcVGKeGamk6B4Opkk1uVNRW2YofiQpnA5Bry1c3TQjB9cVDw5u4oAwmDvIoAzVHlrAIgc+tw==} peerDependencies: svelte: ^4.0.0 sveltekit-superforms: ^1.7.1 zod: ^3.22.2 dependencies: - svelte: 4.2.9 - sveltekit-superforms: 1.13.4(@sveltejs/kit@2.5.0)(svelte@4.2.9)(zod@3.22.4) + svelte: 4.2.10 + sveltekit-superforms: 1.13.4(@sveltejs/kit@2.5.0)(svelte@4.2.10)(zod@3.22.4) zod: 3.22.4 dev: false @@ -4453,6 +4497,12 @@ packages: resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} dev: true + /front-matter@4.0.2: + resolution: {integrity: sha512-I8ZuJ/qG92NWX8i5x1Y8qyj3vizhXS31OxjKDu3LKP+7/qBgfIKValiZIEwoVoJKUHlhWtYrktkxV1XsX+pPlg==} + dependencies: + js-yaml: 3.14.1 + dev: false + /fs-minipass@2.1.0: resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} engines: {node: '>= 8'} @@ -4602,7 +4652,7 @@ packages: array-union: 2.1.0 dir-glob: 3.0.1 fast-glob: 3.3.2 - ignore: 5.3.0 + ignore: 5.3.1 merge2: 1.4.1 slash: 3.0.0 dev: true @@ -4713,6 +4763,11 @@ packages: engines: {node: '>= 4'} dev: true + /ignore@5.3.1: + resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} + engines: {node: '>= 4'} + dev: true + /imagetools-core@6.0.4: resolution: {integrity: sha512-N1qs5qn7u9nR3kboISkYuvJm8MohiphCfBa+wx1UOropVaFis9/mh6wuDPLHJNhl6/64C7q2Pch5NASVKAaSrg==} engines: {node: '>=12.0.0'} @@ -4874,6 +4929,14 @@ packages: resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} hasBin: true + /js-yaml@3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + hasBin: true + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + dev: false + /js-yaml@4.1.0: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true @@ -5020,8 +5083,8 @@ packages: get-func-name: 2.0.2 dev: true - /lru-cache@10.0.1: - resolution: {integrity: sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==} + /lru-cache@10.2.0: + resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==} engines: {node: 14 || >=16.14} dev: false @@ -5053,12 +5116,12 @@ packages: oslo: 1.0.1 dev: false - /lucide-svelte@0.298.0(svelte@4.2.9): + /lucide-svelte@0.298.0(svelte@4.2.10): resolution: {integrity: sha512-7xYNSMY1z1QMjLe8GWToFtFh0lvTsrxdgEAXMite/Urn9tPD16Xk3597ibpgt9Ff7IBb/ArMc3y3ZKofZhs8fQ==} peerDependencies: svelte: '>=3 <5' dependencies: - svelte: 4.2.9 + svelte: 4.2.10 dev: false /magic-string@0.27.0: @@ -5074,6 +5137,13 @@ packages: dependencies: '@jridgewell/sourcemap-codec': 1.4.15 + /magic-string@0.30.7: + resolution: {integrity: sha512-8vBuFF/I/+OSLRmdf2wwFCJCz+nSn0m6DPvGH1fS/KiQoSaR+sETbov0eIk9KhEKy8CYqIkIAnbohxT/4H0kuA==} + engines: {node: '>=12'} + dependencies: + '@jridgewell/sourcemap-codec': 1.4.15 + dev: false + /magicast@0.2.8: resolution: {integrity: sha512-zEnqeb3E6TfMKYXGyHv3utbuHNixr04o3/gVGviSzVQkbFiU46VZUd+Ea/1npKfvEsEWxBYuIksKzoztTDPg0A==} dependencies: @@ -5278,6 +5348,12 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true + /nanoid@4.0.2: + resolution: {integrity: sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==} + engines: {node: ^14 || ^16 || >=18} + hasBin: true + dev: false + /nanoid@5.0.5: resolution: {integrity: sha512-/Veqm+QKsyMY3kqi4faWplnY1u+VuKO3dD2binyPIybP31DRO29bPF+1mszgLnrR2KqSLceFLBNw0zmvDzN1QQ==} engines: {node: ^18 || >=20} @@ -5415,11 +5491,12 @@ packages: '@node-rs/bcrypt': 1.9.2 dev: false - /oslo@1.0.3: - resolution: {integrity: sha512-k3XTmHGqr++d5UsekRDRVY18riITJWerX2aNRg5pqCR8XsFpbGG7g81bbjm/5Cr113QoTkn/W7Vrc25PB0LSPA==} + /oslo@1.1.0: + resolution: {integrity: sha512-uUvVt1boGt1aO0oMjzyzxIiDGAkfOdh6jPOzfJZBXsOsHuHfvTnrW7ealrBb27sgg5pHnTjmen6xPz4so+gQEQ==} dependencies: '@node-rs/argon2': 1.7.0 '@node-rs/bcrypt': 1.9.0 + auri: 1.0.2 dev: false /p-limit@3.1.0: @@ -5482,7 +5559,7 @@ packages: resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} engines: {node: '>=16 || 14 >=14.17'} dependencies: - lru-cache: 10.0.1 + lru-cache: 10.2.0 minipass: 7.0.4 dev: false @@ -5529,74 +5606,74 @@ packages: pathe: 1.1.1 dev: true - /playwright-core@1.41.1: - resolution: {integrity: sha512-/KPO5DzXSMlxSX77wy+HihKGOunh3hqndhqeo/nMxfigiKzogn8kfL0ZBDu0L1RKgan5XHCPmn6zXd2NUJgjhg==} + /playwright-core@1.41.2: + resolution: {integrity: sha512-VaTvwCA4Y8kxEe+kfm2+uUUw5Lubf38RxF7FpBxLPmGe5sdNkSg5e3ChEigaGrX7qdqT3pt2m/98LiyvU2x6CA==} engines: {node: '>=16'} hasBin: true dev: true - /playwright@1.41.1: - resolution: {integrity: sha512-gdZAWG97oUnbBdRL3GuBvX3nDDmUOuqzV/D24dytqlKt+eI5KbwusluZRGljx1YoJKZ2NRPaeWiFTeGZO7SosQ==} + /playwright@1.41.2: + resolution: {integrity: sha512-v0bOa6H2GJChDL8pAeLa/LZC4feoAMbSQm1/jF/ySsWWoaNItvrMP7GEkvEEFyCTUYKMxjQKaTSg5up7nR6/8A==} engines: {node: '>=16'} hasBin: true dependencies: - playwright-core: 1.41.1 + playwright-core: 1.41.2 optionalDependencies: fsevents: 2.3.2 dev: true - /postcss-attribute-case-insensitive@6.0.2(postcss@8.4.33): + /postcss-attribute-case-insensitive@6.0.2(postcss@8.4.35): resolution: {integrity: sha512-IRuCwwAAQbgaLhxQdQcIIK0dCVXg3XDUnzgKD8iwdiYdwU4rMWRWyl/W9/0nA4ihVpq5pyALiHB2veBJ0292pw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 postcss-selector-parser: 6.0.13 dev: true - /postcss-clamp@4.1.0(postcss@8.4.33): + /postcss-clamp@4.1.0(postcss@8.4.35): resolution: {integrity: sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==} engines: {node: '>=7.6.0'} peerDependencies: postcss: ^8.4.6 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 postcss-value-parser: 4.2.0 dev: true - /postcss-color-functional-notation@6.0.2(postcss@8.4.33): + /postcss-color-functional-notation@6.0.2(postcss@8.4.35): resolution: {integrity: sha512-FsjSmlSufuiFBsIqQ++VxFmvX7zKndZpBkHmfXr4wqhvzM92FTEkAh703iqWTl1U3faTgqioIqCbfqdWiFVwtw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/postcss-progressive-custom-properties': 3.0.2(postcss@8.4.33) - postcss: 8.4.33 + '@csstools/postcss-progressive-custom-properties': 3.0.2(postcss@8.4.35) + postcss: 8.4.35 postcss-value-parser: 4.2.0 dev: true - /postcss-color-hex-alpha@9.0.2(postcss@8.4.33): + /postcss-color-hex-alpha@9.0.2(postcss@8.4.35): resolution: {integrity: sha512-SfPjgr//VQ/DOCf80STIAsdAs7sbIbxATvVmd+Ec7JvR8onz9pjawhq3BJM3Pie40EE3TyB0P6hft16D33Nlyg==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 postcss-value-parser: 4.2.0 dev: true - /postcss-color-rebeccapurple@9.0.1(postcss@8.4.33): + /postcss-color-rebeccapurple@9.0.1(postcss@8.4.35): resolution: {integrity: sha512-ds4cq5BjRieizVb2PnvbJ0omg9VCo2/KzluvoFZbxuGpsGJ5BQSD93CHBooinEtangCM5YqUOerGDl4xGmOb6Q==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 postcss-value-parser: 4.2.0 dev: true - /postcss-custom-media@10.0.2(postcss@8.4.33): + /postcss-custom-media@10.0.2(postcss@8.4.35): resolution: {integrity: sha512-zcEFNRmDm2fZvTPdI1pIW3W//UruMcLosmMiCdpQnrCsTRzWlKQPYMa1ud9auL0BmrryKK1+JjIGn19K0UjO/w==} engines: {node: ^14 || ^16 || >=18} peerDependencies: @@ -5606,10 +5683,10 @@ packages: '@csstools/css-parser-algorithms': 2.3.2(@csstools/css-tokenizer@2.2.1) '@csstools/css-tokenizer': 2.2.1 '@csstools/media-query-list-parser': 2.1.5(@csstools/css-parser-algorithms@2.3.2)(@csstools/css-tokenizer@2.2.1) - postcss: 8.4.33 + postcss: 8.4.35 dev: true - /postcss-custom-properties@13.3.2(postcss@8.4.33): + /postcss-custom-properties@13.3.2(postcss@8.4.35): resolution: {integrity: sha512-2Coszybpo8lpLY24vy2CYv9AasiZ39/bs8Imv0pWMq55Gl8NWzfc24OAo3zIX7rc6uUJAqESnVOMZ6V6lpMjJA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: @@ -5618,11 +5695,11 @@ packages: '@csstools/cascade-layer-name-parser': 1.0.5(@csstools/css-parser-algorithms@2.3.2)(@csstools/css-tokenizer@2.2.1) '@csstools/css-parser-algorithms': 2.3.2(@csstools/css-tokenizer@2.2.1) '@csstools/css-tokenizer': 2.2.1 - postcss: 8.4.33 + postcss: 8.4.35 postcss-value-parser: 4.2.0 dev: true - /postcss-custom-selectors@7.1.6(postcss@8.4.33): + /postcss-custom-selectors@7.1.6(postcss@8.4.35): resolution: {integrity: sha512-svsjWRaxqL3vAzv71dV0/65P24/FB8TbPX+lWyyf9SZ7aZm4S4NhCn7N3Bg+Z5sZunG3FS8xQ80LrCU9hb37cw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: @@ -5631,99 +5708,99 @@ packages: '@csstools/cascade-layer-name-parser': 1.0.5(@csstools/css-parser-algorithms@2.3.2)(@csstools/css-tokenizer@2.2.1) '@csstools/css-parser-algorithms': 2.3.2(@csstools/css-tokenizer@2.2.1) '@csstools/css-tokenizer': 2.2.1 - postcss: 8.4.33 + postcss: 8.4.35 postcss-selector-parser: 6.0.13 dev: true - /postcss-dir-pseudo-class@8.0.0(postcss@8.4.33): + /postcss-dir-pseudo-class@8.0.0(postcss@8.4.35): resolution: {integrity: sha512-Oy5BBi0dWPwij/IA+yDYj+/OBMQ9EPqAzTHeSNUYrUWdll/PRJmcbiUj0MNcsBi681I1gcSTLvMERPaXzdbvJg==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 postcss-selector-parser: 6.0.13 dev: true - /postcss-double-position-gradients@5.0.2(postcss@8.4.33): + /postcss-double-position-gradients@5.0.2(postcss@8.4.35): resolution: {integrity: sha512-KTbvdOOy8z8zb0BTkEg4/1vqlRlApdvjw8/pFoehgQl0WVO+fezDGlvo0B8xRA+XccA7ohkQCULKNsiNOx70Cw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/postcss-progressive-custom-properties': 3.0.2(postcss@8.4.33) - postcss: 8.4.33 + '@csstools/postcss-progressive-custom-properties': 3.0.2(postcss@8.4.35) + postcss: 8.4.35 postcss-value-parser: 4.2.0 dev: true - /postcss-focus-visible@9.0.0(postcss@8.4.33): + /postcss-focus-visible@9.0.0(postcss@8.4.35): resolution: {integrity: sha512-zA4TbVaIaT8npZBEROhZmlc+GBKE8AELPHXE7i4TmIUEQhw/P/mSJfY9t6tBzpQ1rABeGtEOHYrW4SboQeONMQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 postcss-selector-parser: 6.0.13 dev: true - /postcss-focus-within@8.0.0(postcss@8.4.33): + /postcss-focus-within@8.0.0(postcss@8.4.35): resolution: {integrity: sha512-E7+J9nuQzZaA37D/MUZMX1K817RZGDab8qw6pFwzAkDd/QtlWJ9/WTKmzewNiuxzeq6WWY7ATiRePVoDKp+DnA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 postcss-selector-parser: 6.0.13 dev: true - /postcss-font-variant@5.0.0(postcss@8.4.33): + /postcss-font-variant@5.0.0(postcss@8.4.35): resolution: {integrity: sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==} peerDependencies: postcss: ^8.1.0 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 dev: true - /postcss-gap-properties@5.0.0(postcss@8.4.33): + /postcss-gap-properties@5.0.0(postcss@8.4.35): resolution: {integrity: sha512-YjsEEL6890P7MCv6fch6Am1yq0EhQCJMXyT4LBohiu87+4/WqR7y5W3RIv53WdA901hhytgRvjlrAhibhW4qsA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 dev: true - /postcss-image-set-function@6.0.1(postcss@8.4.33): + /postcss-image-set-function@6.0.1(postcss@8.4.35): resolution: {integrity: sha512-VlZncC9hhZ5tg0JllY4g6Z28BeoPO8DIkelioEEkXL0AA0IORlqYpTi2L8TUnl4YQrlwvBgxVy+mdZJw5R/cIQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 postcss-value-parser: 4.2.0 dev: true - /postcss-import@15.1.0(postcss@8.4.33): + /postcss-import@15.1.0(postcss@8.4.35): resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} engines: {node: '>=14.0.0'} peerDependencies: postcss: ^8.0.0 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 postcss-value-parser: 4.2.0 read-cache: 1.0.0 resolve: 1.22.8 - /postcss-js@4.0.1(postcss@8.4.33): + /postcss-js@4.0.1(postcss@8.4.35): resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} engines: {node: ^12 || ^14 || >= 16} peerDependencies: postcss: ^8.4.21 dependencies: camelcase-css: 2.0.1 - postcss: 8.4.33 + postcss: 8.4.35 - /postcss-lab-function@6.0.7(postcss@8.4.33): + /postcss-lab-function@6.0.7(postcss@8.4.35): resolution: {integrity: sha512-4d1lhDVPukHFqkMv4G5vVcK+tgY52vwb5uR1SWKOaO5389r2q8fMxBWuXSW+YtbCOEGP0/X9KERi9E9le2pJuw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: @@ -5732,11 +5809,11 @@ packages: '@csstools/css-color-parser': 1.4.0(@csstools/css-parser-algorithms@2.3.2)(@csstools/css-tokenizer@2.2.1) '@csstools/css-parser-algorithms': 2.3.2(@csstools/css-tokenizer@2.2.1) '@csstools/css-tokenizer': 2.2.1 - '@csstools/postcss-progressive-custom-properties': 3.0.2(postcss@8.4.33) - postcss: 8.4.33 + '@csstools/postcss-progressive-custom-properties': 3.0.2(postcss@8.4.35) + postcss: 8.4.35 dev: true - /postcss-load-config@3.1.4(postcss@8.4.33)(ts-node@10.9.2): + /postcss-load-config@3.1.4(postcss@8.4.35)(ts-node@10.9.2): resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} engines: {node: '>= 10'} peerDependencies: @@ -5749,12 +5826,12 @@ packages: optional: true dependencies: lilconfig: 2.1.0 - postcss: 8.4.33 - ts-node: 10.9.2(@types/node@18.19.10)(typescript@5.3.3) + postcss: 8.4.35 + ts-node: 10.9.2(@types/node@18.19.14)(typescript@5.3.3) yaml: 1.10.2 dev: true - /postcss-load-config@4.0.2(postcss@8.4.33)(ts-node@10.9.2): + /postcss-load-config@4.0.2(postcss@8.4.35)(ts-node@10.9.2): resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} engines: {node: '>= 14'} peerDependencies: @@ -5767,189 +5844,189 @@ packages: optional: true dependencies: lilconfig: 3.0.0 - postcss: 8.4.33 - ts-node: 10.9.2(@types/node@18.19.10)(typescript@5.3.3) + postcss: 8.4.35 + ts-node: 10.9.2(@types/node@18.19.14)(typescript@5.3.3) yaml: 2.3.4 - /postcss-logical@7.0.0(postcss@8.4.33): + /postcss-logical@7.0.0(postcss@8.4.35): resolution: {integrity: sha512-zYf3vHkoW82f5UZTEXChTJvH49Yl9X37axTZsJGxrCG2kOUwtaAoz9E7tqYg0lsIoJLybaL8fk/2mOi81zVIUw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 postcss-value-parser: 4.2.0 dev: true - /postcss-nested@6.0.1(postcss@8.4.33): + /postcss-nested@6.0.1(postcss@8.4.35): resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} engines: {node: '>=12.0'} peerDependencies: postcss: ^8.2.14 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 postcss-selector-parser: 6.0.13 - /postcss-nesting@12.0.1(postcss@8.4.33): + /postcss-nesting@12.0.1(postcss@8.4.35): resolution: {integrity: sha512-6LCqCWP9pqwXw/njMvNK0hGY44Fxc4B2EsGbn6xDcxbNRzP8GYoxT7yabVVMLrX3quqOJ9hg2jYMsnkedOf8pA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: '@csstools/selector-specificity': 3.0.0(postcss-selector-parser@6.0.13) - postcss: 8.4.33 + postcss: 8.4.35 postcss-selector-parser: 6.0.13 dev: true - /postcss-opacity-percentage@2.0.0(postcss@8.4.33): + /postcss-opacity-percentage@2.0.0(postcss@8.4.35): resolution: {integrity: sha512-lyDrCOtntq5Y1JZpBFzIWm2wG9kbEdujpNt4NLannF+J9c8CgFIzPa80YQfdza+Y+yFfzbYj/rfoOsYsooUWTQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.2 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 dev: true - /postcss-overflow-shorthand@5.0.0(postcss@8.4.33): + /postcss-overflow-shorthand@5.0.0(postcss@8.4.35): resolution: {integrity: sha512-2rlxDyeSics/hC2FuMdPnWiP9WUPZ5x7FTuArXLFVpaSQ2woPSfZS4RD59HuEokbZhs/wPUQJ1E3MT6zVv94MQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 postcss-value-parser: 4.2.0 dev: true - /postcss-page-break@3.0.4(postcss@8.4.33): + /postcss-page-break@3.0.4(postcss@8.4.35): resolution: {integrity: sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==} peerDependencies: postcss: ^8 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 dev: true - /postcss-place@9.0.0(postcss@8.4.33): + /postcss-place@9.0.0(postcss@8.4.35): resolution: {integrity: sha512-qLEPD9VPH5opDVemwmRaujODF9nExn24VOC3ghgVLEvfYN7VZLwJHes0q/C9YR5hI2UC3VgBE8Wkdp1TxCXhtg==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 postcss-value-parser: 4.2.0 dev: true - /postcss-preset-env@9.3.0(postcss@8.4.33): + /postcss-preset-env@9.3.0(postcss@8.4.35): resolution: {integrity: sha512-ycw6doPrqV6QxDCtgiyGDef61bEfiSc59HGM4gOw/wxQxmKnhuEery61oOC/5ViENz/ycpRsuhTexs1kUBTvVw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/postcss-cascade-layers': 4.0.1(postcss@8.4.33) - '@csstools/postcss-color-function': 3.0.7(postcss@8.4.33) - '@csstools/postcss-color-mix-function': 2.0.7(postcss@8.4.33) - '@csstools/postcss-exponential-functions': 1.0.1(postcss@8.4.33) - '@csstools/postcss-font-format-keywords': 3.0.0(postcss@8.4.33) - '@csstools/postcss-gamut-mapping': 1.0.0(postcss@8.4.33) - '@csstools/postcss-gradients-interpolation-method': 4.0.7(postcss@8.4.33) - '@csstools/postcss-hwb-function': 3.0.6(postcss@8.4.33) - '@csstools/postcss-ic-unit': 3.0.2(postcss@8.4.33) - '@csstools/postcss-initial': 1.0.0(postcss@8.4.33) - '@csstools/postcss-is-pseudo-class': 4.0.3(postcss@8.4.33) - '@csstools/postcss-logical-float-and-clear': 2.0.0(postcss@8.4.33) - '@csstools/postcss-logical-overflow': 1.0.0(postcss@8.4.33) - '@csstools/postcss-logical-overscroll-behavior': 1.0.0(postcss@8.4.33) - '@csstools/postcss-logical-resize': 2.0.0(postcss@8.4.33) - '@csstools/postcss-logical-viewport-units': 2.0.3(postcss@8.4.33) - '@csstools/postcss-media-minmax': 1.1.0(postcss@8.4.33) - '@csstools/postcss-media-queries-aspect-ratio-number-values': 2.0.3(postcss@8.4.33) - '@csstools/postcss-nested-calc': 3.0.0(postcss@8.4.33) - '@csstools/postcss-normalize-display-values': 3.0.1(postcss@8.4.33) - '@csstools/postcss-oklab-function': 3.0.7(postcss@8.4.33) - '@csstools/postcss-progressive-custom-properties': 3.0.2(postcss@8.4.33) - '@csstools/postcss-relative-color-syntax': 2.0.7(postcss@8.4.33) - '@csstools/postcss-scope-pseudo-class': 3.0.0(postcss@8.4.33) - '@csstools/postcss-stepped-value-functions': 3.0.2(postcss@8.4.33) - '@csstools/postcss-text-decoration-shorthand': 3.0.3(postcss@8.4.33) - '@csstools/postcss-trigonometric-functions': 3.0.2(postcss@8.4.33) - '@csstools/postcss-unset-value': 3.0.0(postcss@8.4.33) - autoprefixer: 10.4.17(postcss@8.4.33) + '@csstools/postcss-cascade-layers': 4.0.1(postcss@8.4.35) + '@csstools/postcss-color-function': 3.0.7(postcss@8.4.35) + '@csstools/postcss-color-mix-function': 2.0.7(postcss@8.4.35) + '@csstools/postcss-exponential-functions': 1.0.1(postcss@8.4.35) + '@csstools/postcss-font-format-keywords': 3.0.0(postcss@8.4.35) + '@csstools/postcss-gamut-mapping': 1.0.0(postcss@8.4.35) + '@csstools/postcss-gradients-interpolation-method': 4.0.7(postcss@8.4.35) + '@csstools/postcss-hwb-function': 3.0.6(postcss@8.4.35) + '@csstools/postcss-ic-unit': 3.0.2(postcss@8.4.35) + '@csstools/postcss-initial': 1.0.0(postcss@8.4.35) + '@csstools/postcss-is-pseudo-class': 4.0.3(postcss@8.4.35) + '@csstools/postcss-logical-float-and-clear': 2.0.0(postcss@8.4.35) + '@csstools/postcss-logical-overflow': 1.0.0(postcss@8.4.35) + '@csstools/postcss-logical-overscroll-behavior': 1.0.0(postcss@8.4.35) + '@csstools/postcss-logical-resize': 2.0.0(postcss@8.4.35) + '@csstools/postcss-logical-viewport-units': 2.0.3(postcss@8.4.35) + '@csstools/postcss-media-minmax': 1.1.0(postcss@8.4.35) + '@csstools/postcss-media-queries-aspect-ratio-number-values': 2.0.3(postcss@8.4.35) + '@csstools/postcss-nested-calc': 3.0.0(postcss@8.4.35) + '@csstools/postcss-normalize-display-values': 3.0.1(postcss@8.4.35) + '@csstools/postcss-oklab-function': 3.0.7(postcss@8.4.35) + '@csstools/postcss-progressive-custom-properties': 3.0.2(postcss@8.4.35) + '@csstools/postcss-relative-color-syntax': 2.0.7(postcss@8.4.35) + '@csstools/postcss-scope-pseudo-class': 3.0.0(postcss@8.4.35) + '@csstools/postcss-stepped-value-functions': 3.0.2(postcss@8.4.35) + '@csstools/postcss-text-decoration-shorthand': 3.0.3(postcss@8.4.35) + '@csstools/postcss-trigonometric-functions': 3.0.2(postcss@8.4.35) + '@csstools/postcss-unset-value': 3.0.0(postcss@8.4.35) + autoprefixer: 10.4.17(postcss@8.4.35) browserslist: 4.22.1 - css-blank-pseudo: 6.0.0(postcss@8.4.33) - css-has-pseudo: 6.0.0(postcss@8.4.33) - css-prefers-color-scheme: 9.0.0(postcss@8.4.33) + css-blank-pseudo: 6.0.0(postcss@8.4.35) + css-has-pseudo: 6.0.0(postcss@8.4.35) + css-prefers-color-scheme: 9.0.0(postcss@8.4.35) cssdb: 7.9.0 - postcss: 8.4.33 - postcss-attribute-case-insensitive: 6.0.2(postcss@8.4.33) - postcss-clamp: 4.1.0(postcss@8.4.33) - postcss-color-functional-notation: 6.0.2(postcss@8.4.33) - postcss-color-hex-alpha: 9.0.2(postcss@8.4.33) - postcss-color-rebeccapurple: 9.0.1(postcss@8.4.33) - postcss-custom-media: 10.0.2(postcss@8.4.33) - postcss-custom-properties: 13.3.2(postcss@8.4.33) - postcss-custom-selectors: 7.1.6(postcss@8.4.33) - postcss-dir-pseudo-class: 8.0.0(postcss@8.4.33) - postcss-double-position-gradients: 5.0.2(postcss@8.4.33) - postcss-focus-visible: 9.0.0(postcss@8.4.33) - postcss-focus-within: 8.0.0(postcss@8.4.33) - postcss-font-variant: 5.0.0(postcss@8.4.33) - postcss-gap-properties: 5.0.0(postcss@8.4.33) - postcss-image-set-function: 6.0.1(postcss@8.4.33) - postcss-lab-function: 6.0.7(postcss@8.4.33) - postcss-logical: 7.0.0(postcss@8.4.33) - postcss-nesting: 12.0.1(postcss@8.4.33) - postcss-opacity-percentage: 2.0.0(postcss@8.4.33) - postcss-overflow-shorthand: 5.0.0(postcss@8.4.33) - postcss-page-break: 3.0.4(postcss@8.4.33) - postcss-place: 9.0.0(postcss@8.4.33) - postcss-pseudo-class-any-link: 9.0.0(postcss@8.4.33) - postcss-replace-overflow-wrap: 4.0.0(postcss@8.4.33) - postcss-selector-not: 7.0.1(postcss@8.4.33) + postcss: 8.4.35 + postcss-attribute-case-insensitive: 6.0.2(postcss@8.4.35) + postcss-clamp: 4.1.0(postcss@8.4.35) + postcss-color-functional-notation: 6.0.2(postcss@8.4.35) + postcss-color-hex-alpha: 9.0.2(postcss@8.4.35) + postcss-color-rebeccapurple: 9.0.1(postcss@8.4.35) + postcss-custom-media: 10.0.2(postcss@8.4.35) + postcss-custom-properties: 13.3.2(postcss@8.4.35) + postcss-custom-selectors: 7.1.6(postcss@8.4.35) + postcss-dir-pseudo-class: 8.0.0(postcss@8.4.35) + postcss-double-position-gradients: 5.0.2(postcss@8.4.35) + postcss-focus-visible: 9.0.0(postcss@8.4.35) + postcss-focus-within: 8.0.0(postcss@8.4.35) + postcss-font-variant: 5.0.0(postcss@8.4.35) + postcss-gap-properties: 5.0.0(postcss@8.4.35) + postcss-image-set-function: 6.0.1(postcss@8.4.35) + postcss-lab-function: 6.0.7(postcss@8.4.35) + postcss-logical: 7.0.0(postcss@8.4.35) + postcss-nesting: 12.0.1(postcss@8.4.35) + postcss-opacity-percentage: 2.0.0(postcss@8.4.35) + postcss-overflow-shorthand: 5.0.0(postcss@8.4.35) + postcss-page-break: 3.0.4(postcss@8.4.35) + postcss-place: 9.0.0(postcss@8.4.35) + postcss-pseudo-class-any-link: 9.0.0(postcss@8.4.35) + postcss-replace-overflow-wrap: 4.0.0(postcss@8.4.35) + postcss-selector-not: 7.0.1(postcss@8.4.35) postcss-value-parser: 4.2.0 dev: true - /postcss-pseudo-class-any-link@9.0.0(postcss@8.4.33): + /postcss-pseudo-class-any-link@9.0.0(postcss@8.4.35): resolution: {integrity: sha512-QNCYIL98VKFKY6HGDEJpF6+K/sg9bxcUYnOmNHJxZS5wsFDFaVoPeG68WAuhsqwbIBSo/b9fjEnTwY2mTSD+uA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 postcss-selector-parser: 6.0.13 dev: true - /postcss-replace-overflow-wrap@4.0.0(postcss@8.4.33): + /postcss-replace-overflow-wrap@4.0.0(postcss@8.4.35): resolution: {integrity: sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==} peerDependencies: postcss: ^8.0.3 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 dev: true - /postcss-safe-parser@6.0.0(postcss@8.4.33): + /postcss-safe-parser@6.0.0(postcss@8.4.35): resolution: {integrity: sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==} engines: {node: '>=12.0'} peerDependencies: postcss: ^8.3.3 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 dev: true - /postcss-scss@4.0.9(postcss@8.4.33): + /postcss-scss@4.0.9(postcss@8.4.35): resolution: {integrity: sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==} engines: {node: '>=12.0'} peerDependencies: postcss: ^8.4.29 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 dev: true - /postcss-selector-not@7.0.1(postcss@8.4.33): + /postcss-selector-not@7.0.1(postcss@8.4.35): resolution: {integrity: sha512-1zT5C27b/zeJhchN7fP0kBr16Cc61mu7Si9uWWLoA3Px/D9tIJPKchJCkUH3tPO5D0pCFmGeApAv8XpXBQJ8SQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.33 + postcss: 8.4.35 postcss-selector-parser: 6.0.13 dev: true @@ -5963,8 +6040,8 @@ packages: /postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - /postcss@8.4.33: - resolution: {integrity: sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==} + /postcss@8.4.35: + resolution: {integrity: sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==} engines: {node: ^10 || ^12 || >=14} dependencies: nanoid: 3.3.7 @@ -5976,18 +6053,18 @@ packages: engines: {node: '>= 0.8.0'} dev: true - /prettier-plugin-svelte@3.1.2(prettier@3.2.4)(svelte@4.2.9): + /prettier-plugin-svelte@3.1.2(prettier@3.2.5)(svelte@4.2.10): resolution: {integrity: sha512-7xfMZtwgAWHMT0iZc8jN4o65zgbAQ3+O32V6W7pXrqNvKnHnkoyQCGCbKeUyXKZLbYE0YhFRnamfxfkEGxm8qA==} peerDependencies: prettier: ^3.0.0 svelte: ^3.2.0 || ^4.0.0-next.0 || ^5.0.0-next.0 dependencies: - prettier: 3.2.4 - svelte: 4.2.9 + prettier: 3.2.5 + svelte: 4.2.10 dev: true - /prettier@3.2.4: - resolution: {integrity: sha512-FWu1oLHKCrtpO1ypU6J0SbK2d9Ckwysq6bHj/uaCP26DxrPpppCLQRGVuqAxSTvhF00AcvDRyYrLNW7ocBhFFQ==} + /prettier@3.2.5: + resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==} engines: {node: '>=14'} hasBin: true dev: true @@ -6026,7 +6103,7 @@ packages: /queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - /radix-svelte@0.9.0(svelte@4.2.9): + /radix-svelte@0.9.0(svelte@4.2.10): resolution: {integrity: sha512-0PJMHiZVTjWGrjK7c2/FY+nq0fBGwPXNy6fFvkLZIs73hTIai/Exw+pi3TCvtd80gSjFb5utdHWI3qiuuN0B/Q==} engines: {node: '>= 16'} peerDependencies: @@ -6034,7 +6111,7 @@ packages: dependencies: '@floating-ui/core': 1.5.0 '@floating-ui/dom': 1.5.3 - svelte: 4.2.9 + svelte: 4.2.10 dev: false /react-is@18.2.0: @@ -6232,6 +6309,14 @@ packages: dependencies: lru-cache: 6.0.0 + /semver@7.6.0: + resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + dev: true + /seq-queue@0.0.5: resolution: {integrity: sha512-hr3Wtp/GZIc/6DAGPDcV4/9WoZhjrkXsi5B/07QgX8tsdc6ilr7BFM6PM6rbdAX1kFSDYeZGLipIZZKyQP0O5Q==} dev: false @@ -6355,6 +6440,10 @@ packages: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} + /sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + dev: false + /sqlstring@2.3.3: resolution: {integrity: sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==} engines: {node: '>= 0.6'} @@ -6450,7 +6539,7 @@ packages: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} - /svelte-check@3.6.3(postcss-load-config@4.0.2)(postcss@8.4.33)(sass@1.70.0)(svelte@4.2.9): + /svelte-check@3.6.3(postcss-load-config@4.0.2)(postcss@8.4.35)(sass@1.70.0)(svelte@4.2.10): resolution: {integrity: sha512-Q2nGnoysxUnB9KjnjpQLZwdjK62DHyW6nuH/gm2qteFnDk0lCehe/6z8TsIvYeKjC6luKaWxiNGyOcWiLLPSwA==} hasBin: true peerDependencies: @@ -6462,8 +6551,8 @@ packages: import-fresh: 3.3.0 picocolors: 1.0.0 sade: 1.8.1 - svelte: 4.2.9 - svelte-preprocess: 5.1.3(postcss-load-config@4.0.2)(postcss@8.4.33)(sass@1.70.0)(svelte@4.2.9)(typescript@5.3.3) + svelte: 4.2.10 + svelte-preprocess: 5.1.3(postcss-load-config@4.0.2)(postcss@8.4.35)(sass@1.70.0)(svelte@4.2.10)(typescript@5.3.3) typescript: 5.3.3 transitivePeerDependencies: - '@babel/core' @@ -6477,7 +6566,7 @@ packages: - sugarss dev: true - /svelte-eslint-parser@0.33.1(svelte@4.2.9): + /svelte-eslint-parser@0.33.1(svelte@4.2.10): resolution: {integrity: sha512-vo7xPGTlKBGdLH8T5L64FipvTrqv3OQRx9d2z5X05KKZDlF4rQk8KViZO4flKERY+5BiVdOh7zZ7JGJWo5P0uA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -6489,52 +6578,52 @@ packages: eslint-scope: 7.2.2 eslint-visitor-keys: 3.4.3 espree: 9.6.1 - postcss: 8.4.33 - postcss-scss: 4.0.9(postcss@8.4.33) - svelte: 4.2.9 + postcss: 8.4.35 + postcss-scss: 4.0.9(postcss@8.4.35) + svelte: 4.2.10 dev: true - /svelte-french-toast@1.2.0(svelte@4.2.9): + /svelte-french-toast@1.2.0(svelte@4.2.10): resolution: {integrity: sha512-5PW+6RFX3xQPbR44CngYAP1Sd9oCq9P2FOox4FZffzJuZI2mHOB7q5gJBVnOiLF5y3moVGZ7u2bYt7+yPAgcEQ==} peerDependencies: svelte: ^3.57.0 || ^4.0.0 dependencies: - svelte: 4.2.9 - svelte-writable-derived: 3.1.0(svelte@4.2.9) + svelte: 4.2.10 + svelte-writable-derived: 3.1.0(svelte@4.2.10) dev: false - /svelte-hmr@0.15.3(svelte@4.2.9): + /svelte-hmr@0.15.3(svelte@4.2.10): resolution: {integrity: sha512-41snaPswvSf8TJUhlkoJBekRrABDXDMdpNpT2tfHIv4JuhgvHqLMhEPGtaQn0BmbNSTkuz2Ed20DF2eHw0SmBQ==} engines: {node: ^12.20 || ^14.13.1 || >= 16} peerDependencies: svelte: ^3.19.0 || ^4.0.0 dependencies: - svelte: 4.2.9 + svelte: 4.2.10 /svelte-lazy-loader@1.0.0: resolution: {integrity: sha512-AZD6R60vksyojn21FgXLglmBiBB9K5Dkdu0hdGrLbCaRCYT68IsWkZfRUqKhMx1IfzqWcZQ8X9y/f+Ih0oNQkQ==} dev: false - /svelte-meta-tags@3.1.0(svelte@4.2.9)(typescript@5.3.3): + /svelte-meta-tags@3.1.0(svelte@4.2.10)(typescript@5.3.3): resolution: {integrity: sha512-wFBfpktSua1R5rdvQ/aFucvXmRqzDhRYrPpMQ/pL4+KL5QHIzomPf29a5WN3yDR0reSy1PXyQ2ah0+uCYCbi0g==} peerDependencies: svelte: ^3.55.0 || ^4.0.0 dependencies: schema-dts: 1.1.2(typescript@5.3.3) - svelte: 4.2.9 + svelte: 4.2.10 transitivePeerDependencies: - typescript dev: true - /svelte-parse-markup@0.1.2(svelte@4.2.9): + /svelte-parse-markup@0.1.2(svelte@4.2.10): resolution: {integrity: sha512-DycY7DJr7VqofiJ63ut1/NEG92HrWWL56VWITn/cJCu+LlZhMoBkBXT4opUitPEEwbq1nMQbv4vTKUfbOqIW1g==} peerDependencies: svelte: ^3.0.0 || ^4.0.0 dependencies: - svelte: 4.2.9 + svelte: 4.2.10 dev: true - /svelte-preprocess@5.1.3(postcss-load-config@4.0.2)(postcss@8.4.33)(sass@1.70.0)(svelte@4.2.9)(typescript@5.3.3): + /svelte-preprocess@5.1.3(postcss-load-config@4.0.2)(postcss@8.4.35)(sass@1.70.0)(svelte@4.2.10)(typescript@5.3.3): resolution: {integrity: sha512-xxAkmxGHT+J/GourS5mVJeOXZzne1FR5ljeOUAMXUkfEhkLEllRreXpbl3dIYJlcJRfL1LO1uIAPpBpBfiqGPw==} engines: {node: '>= 16.0.0', pnpm: ^8.0.0} requiresBuild: true @@ -6575,12 +6664,12 @@ packages: '@types/pug': 2.0.8 detect-indent: 6.1.0 magic-string: 0.30.5 - postcss: 8.4.33 - postcss-load-config: 4.0.2(postcss@8.4.33)(ts-node@10.9.2) + postcss: 8.4.35 + postcss-load-config: 4.0.2(postcss@8.4.35)(ts-node@10.9.2) sass: 1.70.0 sorcery: 0.11.0 strip-indent: 3.0.0 - svelte: 4.2.9 + svelte: 4.2.10 typescript: 5.3.3 dev: true @@ -6588,20 +6677,20 @@ packages: resolution: {integrity: sha512-N5JqlBni6BzElxmuFrOPxOJnjsxh1cFDACLEVKs8OHBcx8ZNRO1p5SxuQex1m3qbLzAC8G99EHeWcxGkjyKjLQ==} engines: {node: '>=16'} dependencies: - svelte: 4.2.9 + svelte: 4.2.10 tslib: 2.6.2 dev: true - /svelte-writable-derived@3.1.0(svelte@4.2.9): + /svelte-writable-derived@3.1.0(svelte@4.2.10): resolution: {integrity: sha512-cTvaVFNIJ036vSDIyPxJYivKC7ZLtcFOPm1Iq6qWBDo1fOHzfk6ZSbwaKrxhjgy52Rbl5IHzRcWgos6Zqn9/rg==} peerDependencies: svelte: ^3.2.1 || ^4.0.0-next.1 dependencies: - svelte: 4.2.9 + svelte: 4.2.10 dev: false - /svelte@4.2.9: - resolution: {integrity: sha512-hsoB/WZGEPFXeRRLPhPrbRz67PhP6sqYgvwcAs+gWdSQSvNDw+/lTeUJSWe5h2xC97Fz/8QxAOqItwBzNJPU8w==} + /svelte@4.2.10: + resolution: {integrity: sha512-Ep06yCaCdgG1Mafb/Rx8sJ1QS3RW2I2BxGp2Ui9LBHSZ2/tO/aGLc5WqPjgiAP6KAnLJGaIr/zzwQlOo1b8MxA==} engines: {node: '>=16'} dependencies: '@ampproject/remapping': 2.2.1 @@ -6619,27 +6708,27 @@ packages: magic-string: 0.30.5 periscopic: 3.1.0 - /sveltekit-flash-message@2.4.1(@sveltejs/kit@2.5.0)(svelte@4.2.9): + /sveltekit-flash-message@2.4.1(@sveltejs/kit@2.5.0)(svelte@4.2.10): resolution: {integrity: sha512-n01N62FkXL6tp3VK3u4eCHKz1RwZVgqEEj63pUG/Pj3caHWkjtTUHKX8GRb14kpt9bkML8t93D/B1l1UorskvA==} peerDependencies: '@sveltejs/kit': 1.x || 2.x svelte: 3.x || 4.x dependencies: - '@sveltejs/kit': 2.5.0(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@4.2.9)(vite@5.0.12) - svelte: 4.2.9 + '@sveltejs/kit': 2.5.0(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@4.2.10)(vite@5.0.12) + svelte: 4.2.10 dev: true - /sveltekit-superforms@1.13.4(@sveltejs/kit@2.5.0)(svelte@4.2.9)(zod@3.22.4): + /sveltekit-superforms@1.13.4(@sveltejs/kit@2.5.0)(svelte@4.2.10)(zod@3.22.4): resolution: {integrity: sha512-rM2+Ictaw7OAIorCLmvg82orci/mtO9ZouI4emtx8SyYngx9aED+eNZlHPLufgB6D7geL2a+hMSFtM3zmMQixQ==} peerDependencies: '@sveltejs/kit': 1.x || 2.x svelte: 3.x || 4.x zod: 3.x dependencies: - '@sveltejs/kit': 2.5.0(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@4.2.9)(vite@5.0.12) + '@sveltejs/kit': 2.5.0(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@4.2.10)(vite@5.0.12) devalue: 4.3.2 klona: 2.0.6 - svelte: 4.2.9 + svelte: 4.2.10 zod: 3.22.4 /tabbable@6.2.0: @@ -6692,11 +6781,11 @@ packages: normalize-path: 3.0.0 object-hash: 3.0.0 picocolors: 1.0.0 - postcss: 8.4.33 - postcss-import: 15.1.0(postcss@8.4.33) - postcss-js: 4.0.1(postcss@8.4.33) - postcss-load-config: 4.0.2(postcss@8.4.33)(ts-node@10.9.2) - postcss-nested: 6.0.1(postcss@8.4.33) + postcss: 8.4.35 + postcss-import: 15.1.0(postcss@8.4.35) + postcss-js: 4.0.1(postcss@8.4.35) + postcss-load-config: 4.0.2(postcss@8.4.35)(ts-node@10.9.2) + postcss-nested: 6.0.1(postcss@8.4.35) postcss-selector-parser: 6.0.13 resolve: 1.22.8 sucrase: 3.34.0 @@ -6788,10 +6877,19 @@ packages: typescript: 5.3.3 dev: true + /ts-api-utils@1.2.1(typescript@5.3.3): + resolution: {integrity: sha512-RIYA36cJn2WiH9Hy77hdF9r7oEwxAtB/TS9/S4Qd90Ap4z5FSiin5zEiTL44OII1Y3IIlEvxwxFUVgrHSZ/UpA==} + engines: {node: '>=16'} + peerDependencies: + typescript: '>=4.2.0' + dependencies: + typescript: 5.3.3 + dev: true + /ts-interface-checker@0.1.13: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} - /ts-node@10.9.2(@types/node@18.19.10)(typescript@5.3.3): + /ts-node@10.9.2(@types/node@18.19.14)(typescript@5.3.3): resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} hasBin: true peerDependencies: @@ -6810,7 +6908,7 @@ packages: '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 18.19.10 + '@types/node': 18.19.14 acorn: 8.11.2 acorn-walk: 8.3.0 arg: 4.1.3 @@ -6835,6 +6933,11 @@ packages: fsevents: 2.3.3 dev: true + /tunnel@0.0.6: + resolution: {integrity: sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==} + engines: {node: '>=0.6.11 <=0.7.0 || >=0.7.3'} + dev: false + /type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} @@ -6876,6 +6979,13 @@ packages: /undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + /undici@5.28.3: + resolution: {integrity: sha512-3ItfzbrhDlINjaP0duwnNsKpDQk3acHI3gVJ1z4fmwMK31k5G9OVIAMLSIaP6w4FaGkaAkN6zaQO9LUvZ1t7VA==} + engines: {node: '>=14.0'} + dependencies: + '@fastify/busboy': 2.1.0 + dev: false + /unfetch@4.2.0: resolution: {integrity: sha512-F9p7yYCn6cIW9El1zi0HI6vqpeIvBsr3dSuRO6Xuppb1u5rXpCPmMvLSyECLhybr9isec8Ohl0hPekMVrEinDA==} dev: false @@ -6936,6 +7046,11 @@ packages: which-typed-array: 1.1.13 dev: false + /uuid@8.3.2: + resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + hasBin: true + dev: false + /v8-compile-cache-lib@3.0.1: resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} @@ -6949,7 +7064,7 @@ packages: - rollup dev: true - /vite-node@1.2.2(@types/node@18.19.10)(sass@1.70.0): + /vite-node@1.2.2(@types/node@18.19.14)(sass@1.70.0): resolution: {integrity: sha512-1as4rDTgVWJO3n1uHmUYqq7nsFgINQ9u+mRcXpjeOMJUmviqNKjcZB7UfRZrlM7MjYXMKpuWp5oGkjaFLnjawg==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true @@ -6958,7 +7073,7 @@ packages: debug: 4.3.4 pathe: 1.1.1 picocolors: 1.0.0 - vite: 5.0.12(@types/node@18.19.10)(sass@1.70.0) + vite: 5.0.12(@types/node@18.19.14)(sass@1.70.0) transitivePeerDependencies: - '@types/node' - less @@ -6970,7 +7085,7 @@ packages: - terser dev: true - /vite@5.0.12(@types/node@18.19.10)(sass@1.70.0): + /vite@5.0.12(@types/node@18.19.14)(sass@1.70.0): resolution: {integrity: sha512-4hsnEkG3q0N4Tzf1+t6NdN9dg/L3BM+q8SWgbSPnJvrgH2kgdyzfVJwbR1ic69/4uMJJ/3dqDZZE5/WwqW8U1w==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true @@ -6998,9 +7113,9 @@ packages: terser: optional: true dependencies: - '@types/node': 18.19.10 + '@types/node': 18.19.14 esbuild: 0.19.10 - postcss: 8.4.33 + postcss: 8.4.35 rollup: 4.9.1 sass: 1.70.0 optionalDependencies: @@ -7014,9 +7129,9 @@ packages: vite: optional: true dependencies: - vite: 5.0.12(@types/node@18.19.10)(sass@1.70.0) + vite: 5.0.12(@types/node@18.19.14)(sass@1.70.0) - /vitest@1.2.2(@types/node@18.19.10)(sass@1.70.0): + /vitest@1.2.2(@types/node@18.19.14)(sass@1.70.0): resolution: {integrity: sha512-d5Ouvrnms3GD9USIK36KG8OZ5bEvKEkITFtnGv56HFaSlbItJuYr7hv2Lkn903+AvRAgSixiamozUVfORUekjw==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true @@ -7041,7 +7156,7 @@ packages: jsdom: optional: true dependencies: - '@types/node': 18.19.10 + '@types/node': 18.19.14 '@vitest/expect': 1.2.2 '@vitest/runner': 1.2.2 '@vitest/snapshot': 1.2.2 @@ -7060,8 +7175,8 @@ packages: strip-literal: 1.3.0 tinybench: 2.5.1 tinypool: 0.8.2 - vite: 5.0.12(@types/node@18.19.10)(sass@1.70.0) - vite-node: 1.2.2(@types/node@18.19.10)(sass@1.70.0) + vite: 5.0.12(@types/node@18.19.14)(sass@1.70.0) + vite-node: 1.2.2(@types/node@18.19.14)(sass@1.70.0) why-is-node-running: 2.2.2 transitivePeerDependencies: - less diff --git a/src/lib/drizzle.ts b/src/lib/drizzle.ts index bcea3e5..a4e824c 100644 --- a/src/lib/drizzle.ts +++ b/src/lib/drizzle.ts @@ -1,6 +1,7 @@ import { drizzle } from 'drizzle-orm/mysql2'; import mysql from 'mysql2/promise'; import { DATABASE_USER, DATABASE_PASSWORD, DATABASE_HOST, DATABASE_DB } from '$env/static/private'; +import * as schema from '../schema'; // create the connection const connection = await mysql.createConnection({ @@ -11,6 +12,6 @@ const connection = await mysql.createConnection({ database: DATABASE_DB }); -const db = drizzle(connection); +const db = drizzle(connection, { schema: schema, mode: 'default' }); export default db; diff --git a/src/lib/utils/authUtils.ts b/src/lib/utils/authUtils.ts new file mode 100644 index 0000000..6b132d3 --- /dev/null +++ b/src/lib/utils/authUtils.ts @@ -0,0 +1,3 @@ +export const normalizeEmail = (email: string): string => { + return decodeURIComponent(email).toLowerCase().trim(); +}; diff --git a/src/routes/(auth)/sign-up/+page.server.ts b/src/routes/(auth)/sign-up/+page.server.ts index ef35291..f34c5f5 100644 --- a/src/routes/(auth)/sign-up/+page.server.ts +++ b/src/routes/(auth)/sign-up/+page.server.ts @@ -8,8 +8,9 @@ import { userSchema } from '$lib/config/zod-schemas'; import { add_user_to_role } from '$server/roles'; import type { Message } from '$lib/types.js'; import db from '$lib/drizzle'; -import { users } from '../../../schema'; +import { collections, users, wishlists } from '../../../schema'; import { eq } from 'drizzle-orm'; +import { nanoid } from 'nanoid'; const signUpSchema = userSchema .pick({ @@ -58,6 +59,19 @@ export const actions: Actions = { let sessionCookie; // Adding user to the db try { + console.log('Check if user already exists'); + + const existing_user = await db.query + .users + .findFirst({ where: eq(users.username, form.data.username) }); + + if (existing_user) { + return fail(400, { + form, + message: 'You cannot create an account with that username' + }); + } + console.log('Creating user'); const hashedPassword = await new Argon2id().hash(form.data.password); @@ -77,25 +91,29 @@ export const actions: Actions = { .from(users) .where(eq(users.username, form.data.username)); console.log('signup user', user); + + if (!user || user.length === 0) { + return fail(400, { + form, + message: `Could not create your account. Please try again. If the problem persists, please contact support. Error ID: ${nanoid()}` + }); + } + add_user_to_role(user[0].id, 'user'); - // await prisma.collection.create({ - // data: { - // user_id: user.id - // } - // }); - // await prisma.wishlist.create({ - // data: { - // user_id: user.id - // } - // }); + await db.insert(collections) + .values({ + user_id: user[0].id + }); + await db.insert(wishlists) + .values({ + user_id: user[0].id + }); - // console.log('User', user); - - // session = await lucia.createSession(user.id, { - // ipCountry: event.locals.session?.ipCountry, - // ipAddress: event.locals.session?.ipAddress - // }); - // sessionCookie = lucia.createSessionCookie(session.id); + session = await lucia.createSession(user[0].id, { + ip_country: event.locals.session?.ipCountry, + ip_address: event.locals.session?.ipAddress + }); + sessionCookie = lucia.createSessionCookie(session.id); } catch (e: any) { if (e.message.toUpperCase() === `DUPLICATE_KEY_ID`) { // key already exists @@ -111,13 +129,13 @@ export const actions: Actions = { error(500, message); } - // event.cookies.set(sessionCookie.name, sessionCookie.value, { - // path: ".", - // ...sessionCookie.attributes - // }); + event.cookies.set(sessionCookie.name, sessionCookie.value, { + path: ".", + ...sessionCookie.attributes + }); - redirect(302, '/'); - // const message = { type: 'success', message: 'Signed Up!' } as const; - // throw flashRedirect(message, event); + // redirect(302, '/'); + const message = { type: 'success', message: 'Signed Up!' } as const; + throw flashRedirect(message, event); } }; diff --git a/src/schema.ts b/src/schema.ts index df08a12..8917df9 100644 --- a/src/schema.ts +++ b/src/schema.ts @@ -70,27 +70,27 @@ export const user_roles = mysqlTable("user_roles", { length: 255 }).primaryKey() .$defaultFn(() => nanoid()), - userId: varchar("user_id", { + user_id: varchar("user_id", { length: 255 }) .notNull() .references(() => users.id, { onDelete: 'cascade' }), - roleId: varchar("role_id", { + role_id: varchar("role_id", { length: 255 }) .notNull() .references(() => roles.id, { onDelete: 'cascade' }), - createdAt: datetime("created_at").default(sql`(now(6))`), - updatedAt: datetime("updated_at").default(sql`(now(6))`) + created_at: datetime("created_at").default(sql`(now(6))`), + updated_at: datetime("updated_at").default(sql`(now(6))`) }); export const user_role_relations = relations(user_roles, ({ one }) => ({ role: one(roles, { - fields: [user_roles.roleId], + fields: [user_roles.role_id], references: [roles.id] }), user: one(users, { - fields: [user_roles.userId], + fields: [user_roles.user_id], references: [users.id] }) })); @@ -107,26 +107,26 @@ export const games = mysqlTable("games", { length: 255 }), description: text("description"), - yearPublished: year("year_published"), - minPlayers: int("min_players"), - maxPlayers: int("max_players"), + year_published: year("year_published"), + min_players: int("min_players"), + max_players: int("max_players"), playtime: int("playtime"), - minPlaytime: int("min_playtime"), - maxPlaytime: int("max_playtime"), - minAge: int("min_age"), - imageUrl: varchar("image_url", { + min_playtime: int("min_playtime"), + max_playtime: int("max_playtime"), + min_age: int("min_age"), + image_url: varchar("image_url", { length: 255 }), - thumbUrl: varchar("thumb_url", { + thumb_url: varchar("thumb_url", { length: 255 }), url: varchar("url", { length: 255 }), - externalId: int("external_id").unique(), - lastSyncAt: datetime("last_sync_at"), - createdAt: datetime("created_at").default(sql`(now(6))`), - updatedAt: datetime("updated_at").default(sql`(now(6))`) + external_id: int("external_id").unique(), + last_sync_at: datetime("last_sync_at"), + created_at: datetime("created_at").default(sql`(now(6))`), + updated_at: datetime("updated_at").default(sql`(now(6))`) }); export type Games = InferSelectModel; @@ -144,27 +144,27 @@ export const expansions = mysqlTable("expansions", { length: 255 }).primaryKey() .$defaultFn(() => nanoid()), - baseGameId: varchar("base_game_id", { + base_game_id: varchar("base_game_id", { length: 255 }) .notNull() .references(() => games.id, { onDelete: 'cascade' }), - gameId: varchar("game_id", { + game_id: varchar("game_id", { length: 255 }) .notNull() .references(() => games.id, { onDelete: 'cascade' }), - createdAt: datetime("created_at").default(sql`(now(6))`), - updatedAt: datetime("updated_at").default(sql`(now(6))`) + created_at: datetime("created_at").default(sql`(now(6))`), + updated_at: datetime("updated_at").default(sql`(now(6))`) }) export const expansion_relations = relations(expansions, ({ one }) => ({ baseGame: one(games, { - fields: [expansions.baseGameId], + fields: [expansions.base_game_id], references: [games.id] }), game: one(games, { - fields: [expansions.gameId], + fields: [expansions.game_id], references: [games.id] }) })); @@ -174,18 +174,18 @@ export const collections = mysqlTable("collections", { length: 255 }).primaryKey() .$defaultFn(() => nanoid()), - userId: varchar("user_id", { + user_id: varchar("user_id", { length: 255 }) .notNull() .references(() => users.id, { onDelete: 'cascade' }), - createdAt: datetime("created_at").default(sql`(now(6))`), - updatedAt: datetime("updated_at").default(sql`(now(6))`) + created_at: datetime("created_at").default(sql`(now(6))`), + updated_at: datetime("updated_at").default(sql`(now(6))`) }); export const collection_relations = relations(collections, ({ one }) => ({ user: one(users, { - fields: [collections.userId], + fields: [collections.user_id], references: [users.id] }), })) @@ -195,27 +195,27 @@ export const collection_items = mysqlTable("collection_items", { length: 255 }).primaryKey() .$defaultFn(() => nanoid()), - collectionId: varchar("collection_id", { + collection_id: varchar("collection_id", { length: 255 }) .notNull() .references(() => collections.id, { onDelete: 'cascade' }), - gameId: varchar("game_id", { + game_id: varchar("game_id", { length: 255 }) .notNull() .references(() => games.id, { onDelete: 'cascade' }), - createdAt: datetime("created_at").default(sql`(now(6))`), - updatedAt: datetime("updated_at").default(sql`(now(6))`) + created_at: datetime("created_at").default(sql`(now(6))`), + updated_at: datetime("updated_at").default(sql`(now(6))`) }); export const collection_item_relations = relations(collection_items, ({ one }) =>({ collection: one(collections, { - fields: [collection_items.collectionId], + fields: [collection_items.collection_id], references: [collections.id] }), game: one(games, { - fields: [collection_items.gameId], + fields: [collection_items.game_id], references: [games.id] }) })); @@ -225,18 +225,18 @@ export const wishlists = mysqlTable("wishlists", { length: 255 }).primaryKey() .$defaultFn(() => nanoid()), - userId: varchar("user_id", { + user_id: varchar("user_id", { length: 255 }) .notNull() .references(() => users.id, { onDelete: 'cascade' }), - createdAt: datetime("created_at").default(sql`(now(6))`), - updatedAt: datetime("updated_at").default(sql`(now(6))`) + created_at: datetime("created_at").default(sql`(now(6))`), + updated_at: datetime("updated_at").default(sql`(now(6))`) }); export const wishlists_relations = relations(wishlists, ({ one }) => ({ user: one(users, { - fields: [wishlists.userId], + fields: [wishlists.user_id], references: [users.id] }), })) @@ -247,27 +247,27 @@ export const wishlist_items = mysqlTable('wishlist_items', { }) .primaryKey() .$defaultFn(() => nanoid()), - wishlistId: varchar('wishlist_id', { + wishlist_id: varchar('wishlist_id', { length: 255 }) .notNull() .references(() => wishlists.id, { onDelete: 'cascade' }), - gameId: varchar('game_id', { + game_id: varchar('game_id', { length: 255 }) .notNull() .references(() => games.id, { onDelete: 'cascade' }), - createdAt: datetime('created_at').default(sql`(now(6))`), - updatedAt: datetime('updated_at').default(sql`(now(6))`) + created_at: datetime('created_at').default(sql`(now(6))`), + updated_at: datetime('updated_at').default(sql`(now(6))`) }); export const wishlist_item_relations = relations(wishlist_items, ({ one }) => ({ wishlist: one(wishlists, { - fields: [wishlist_items.wishlistId], + fields: [wishlist_items.wishlist_id], references: [wishlists.id] }), game: one(games, { - fields: [wishlist_items.gameId], + fields: [wishlist_items.game_id], references: [games.id] }) })) @@ -283,9 +283,9 @@ export const publishers = mysqlTable("publishers", { slug: varchar("slug", { length: 255 }), - externalId: int("external_id"), - createdAt: datetime("created_at").default(sql`(now(6))`), - updatedAt: datetime("updated_at").default(sql`(now(6))`) + external_id: int("external_id"), + created_at: datetime("created_at").default(sql`(now(6))`), + updated_at: datetime("updated_at").default(sql`(now(6))`) }); export const publishers_relations = relations(publishers, ({ many }) => ({ @@ -303,9 +303,9 @@ export const categories = mysqlTable("categories", { slug: varchar("slug", { length: 255 }), - externalId: int("external_id"), - createdAt: datetime("created_at").default(sql`(now(6))`), - updatedAt: datetime("updated_at").default(sql`(now(6))`) + external_id: int("external_id"), + created_at: datetime("created_at").default(sql`(now(6))`), + updated_at: datetime("updated_at").default(sql`(now(6))`) }); export const categories_relations = relations(categories, ({ many }) => ({ @@ -323,9 +323,9 @@ export const mechanics = mysqlTable("mechanics", { slug: varchar("slug", { length: 255 }), - externalId: int("external_id"), - createdAt: datetime("created_at").default(sql`(now(6))`), - updatedAt: datetime("updated_at").default(sql`(now(6))`) + external_id: int("external_id"), + created_at: datetime("created_at").default(sql`(now(6))`), + updated_at: datetime("updated_at").default(sql`(now(6))`) }); export const mechanic_relations = relations(mechanics, ({ many }) => ({ @@ -343,9 +343,9 @@ export const designers = mysqlTable("designers", { slug: varchar("slug", { length: 255 }), - externalId: int("external_id"), - createdAt: datetime("created_at").default(sql`(now(6))`), - updatedAt: datetime("updated_at").default(sql`(now(6))`) + external_id: int("external_id"), + created_at: datetime("created_at").default(sql`(now(6))`), + updated_at: datetime("updated_at").default(sql`(now(6))`) }); export const designers_relations = relations(designers, ({ many }) => ({ @@ -363,9 +363,9 @@ export const artists = mysqlTable("artists", { slug: varchar("slug", { length: 255 }), - externalId: int("external_id"), - createdAt: datetime("created_at").default(sql`(now(6))`), - updatedAt: datetime("updated_at").default(sql`(now(6))`) + external_id: int("external_id"), + created_at: datetime("created_at").default(sql`(now(6))`), + updated_at: datetime("updated_at").default(sql`(now(6))`) }); export const artists_relations = relations(artists, ({ many }) => ({ @@ -373,101 +373,101 @@ export const artists_relations = relations(artists, ({ many }) => ({ })); export const artists_to_games = mysqlTable('artists_to_games', { - artistId: varchar('artist_id', { + artist_id: varchar('artist_id', { length: 255 }), - gameId: varchar('game_id', { + game_id: varchar('game_id', { length: 255 }), }); export const artists_to_games_relations = relations(artists_to_games, ({ one }) => ({ artist: one(artists, { - fields: [artists_to_games.artistId], + fields: [artists_to_games.artist_id], references: [artists.id] }), game: one(games, { - fields: [artists_to_games.gameId], + fields: [artists_to_games.game_id], references: [games.id] }), })); export const categories_to_games = mysqlTable("categories_to_games", { - categoryId: varchar("category_id", { + category_id: varchar("category_id", { length: 255 }), - gameId: varchar("game_id", { + game_id: varchar("game_id", { length: 255 }), }); export const categories_to_games_relations = relations(categories_to_games, ({ one }) => ({ category: one(categories, { - fields: [categories_to_games.categoryId], + fields: [categories_to_games.category_id], references: [categories.id] }), game: one(games, { - fields: [categories_to_games.gameId], + fields: [categories_to_games.game_id], references: [games.id] }), })) export const designers_to_games = mysqlTable("designers_to_games", { - designerId: varchar("designer_id", { + designer_id: varchar("designer_id", { length: 255 }), - gameId: varchar("game_id", { + game_id: varchar("game_id", { length: 255 }), }); export const designers_to_games_relations = relations(designers_to_games, ({ one }) => ({ designer: one(designers, { - fields: [designers_to_games.designerId], + fields: [designers_to_games.designer_id], references: [designers.id] }), game: one(games, { - fields: [designers_to_games.gameId], + fields: [designers_to_games.game_id], references: [games.id] }), })) export const mechanics_to_games = mysqlTable("mechanics_to_games", { - mechanicId: varchar("mechanic_id", { + mechanic_id: varchar("mechanic_id", { length: 255 }), - gameId: varchar("game_id", { + game_id: varchar("game_id", { length: 255 }), }); export const mechanics_to_games_relations = relations(mechanics_to_games, ({ one }) => ({ mechanic: one(mechanics, { - fields: [mechanics_to_games.mechanicId], + fields: [mechanics_to_games.mechanic_id], references: [mechanics.id] }), game: one(games, { - fields: [mechanics_to_games.gameId], + fields: [mechanics_to_games.game_id], references: [games.id] }), })); export const publishers_to_games = mysqlTable("publishers_to_games", { - publisherId: varchar("publisher_id", { + publisher_id: varchar("publisher_id", { length: 255 }), - gameId: varchar("game_id", { + game_id: varchar("game_id", { length: 255 }), }); export const publishers_to_games_relations = relations(publishers_to_games, ({ one }) => ({ publisher: one(publishers, { - fields: [publishers_to_games.publisherId], + fields: [publishers_to_games.publisher_id], references: [publishers.id] }), game: one(games, { - fields: [publishers_to_games.gameId], + fields: [publishers_to_games.game_id], references: [games.id] }), })); diff --git a/src/seed/insert.ts b/src/seed/insert.ts new file mode 100644 index 0000000..4d13cf3 --- /dev/null +++ b/src/seed/insert.ts @@ -0,0 +1,27 @@ +import 'dotenv/config'; +import { drizzle } from 'drizzle-orm/mysql2'; +import { createConnection } from 'mysql2'; +import * as schema from '../schema'; + +const connection = createConnection({ + host: process.env.DATABASE_HOST, + port: 3306, + user: process.env.DATABASE_USER, + password: process.env.DATABASE_PASSWORD, + database: process.env.DATABASE_DB +}); +const db = drizzle(connection, { schema: schema, mode: 'default' }); + +const existingRoles = await db.query.roles.findMany(); +if (existingRoles.length === 0) { + await db.insert(schema.roles).values([{ + name: 'admin' + }, { + name: 'user' + }]); + console.log('Roles created.'); +} else { + console.log('Roles already exist. No action taken.'); +} + +await connection.end(); diff --git a/src/server/roles.ts b/src/server/roles.ts index 7434854..b1c7aa5 100644 --- a/src/server/roles.ts +++ b/src/server/roles.ts @@ -1,31 +1,21 @@ -import prisma from "$lib/prisma"; +import db from "$lib/drizzle"; +import { eq } from "drizzle-orm"; +import { roles, user_roles } from "../schema"; export async function add_user_to_role(user_id: string, role_name: string) { // Find the role by its name - const role = await prisma.role.findUnique({ - where: { - name: role_name - } + const role = await db.query.roles.findFirst({ + where: eq(roles.name, role_name) }); - if (!role) { + if (!role || !role.id) { throw new Error(`Role with name ${role_name} not found`); } // Create a UserRole entry linking the user and the role - const userRole = await prisma.userRole.create({ - data: { - user: { - connect: { - id: user_id - } - }, - role: { - connect: { - id: role.id - } - } - } + const userRole = await db.insert(user_roles).values({ + user_id, + role_id: role.id }); return userRole;