From 16aad6696d177d1983f32bc605f361dbe4fb996a Mon Sep 17 00:00:00 2001 From: Bradley Shellnut Date: Sun, 28 May 2023 23:34:39 -0700 Subject: [PATCH] Fixing all the root imports, installing and adding logging based on auth example. --- package.json | 10 +- pnpm-lock.yaml | 333 +++++++++++------- prisma/schema.prisma | 97 ++++- src/app.d.ts | 13 + src/hooks.server.ts | 32 +- .../dialog/ClearCollectionDialog.svelte | 4 +- .../dialog/ClearWishlistDialog.svelte | 4 +- .../components/dialog/DefaultDialog.svelte | 2 +- .../dialog/RemoveCollectionDialog.svelte | 6 +- .../dialog/RemoveWishlistDialog.svelte | 6 +- src/lib/components/game/index.svelte | 6 +- .../preferences/gameCollection.svelte | 6 +- .../preferences/gameWishlist.svelte | 6 +- src/lib/components/random/index.svelte | 2 +- src/lib/components/search/random/index.svelte | 18 +- .../components/search/textSearch/index.svelte | 4 +- src/lib/config/constants.ts | 1 + src/lib/server/log.ts | 70 ++++ src/lib/util/getAllUrlParams.ts | 11 + src/lib/util/parseMessage.ts | 15 + src/lib/util/parseTrack.ts | 15 + src/routes/+error.svelte | 18 +- src/routes/+layout.svelte | 2 +- src/routes/+page.server.ts | 2 + src/routes/auth/signin/+page.server.ts | 14 +- src/routes/auth/signin/+page.svelte | 1 + src/routes/auth/signup/+page.svelte | 2 +- src/routes/collection/+page.svelte | 12 +- src/routes/game/[id]/+page.svelte | 14 +- src/routes/wishlist/+page.svelte | 12 +- src/search/actions.ts | 308 ++++++++-------- src/styles/styles.pcss | 2 +- svelte.config.js | 12 +- 33 files changed, 707 insertions(+), 353 deletions(-) create mode 100644 src/lib/server/log.ts create mode 100644 src/lib/util/getAllUrlParams.ts create mode 100644 src/lib/util/parseMessage.ts create mode 100644 src/lib/util/parseTrack.ts diff --git a/package.json b/package.json index b75fe6f..c6309b8 100644 --- a/package.json +++ b/package.json @@ -17,14 +17,14 @@ "seed": "ts-node --esm prisma/seed.ts" }, "devDependencies": { - "@playwright/test": "^1.34.1", + "@playwright/test": "^1.34.3", "@rgossiaux/svelte-headlessui": "1.0.2", "@rgossiaux/svelte-heroicons": "^0.1.2", "@sveltejs/adapter-auto": "^1.0.3", "@sveltejs/adapter-vercel": "^1.0.6", - "@sveltejs/kit": "^1.18.0", + "@sveltejs/kit": "^1.19.0", "@types/cookie": "^0.5.1", - "@types/node": "^18.16.14", + "@types/node": "^18.16.16", "@typescript-eslint/eslint-plugin": "^5.59.7", "@typescript-eslint/parser": "^5.59.7", "autoprefixer": "^10.4.14", @@ -52,12 +52,13 @@ "ts-node": "^10.9.1", "tslib": "^2.5.2", "typescript": "^4.9.5", - "vite": "^4.3.8", + "vite": "^4.3.9", "vitest": "^0.25.3", "zod": "^3.21.4" }, "type": "module", "dependencies": { + "@axiomhq/axiom-node": "^0.12.0", "@fontsource/fira-mono": "^4.5.10", "@iconify-icons/line-md": "^1.2.22", "@iconify-icons/mdi": "^1.2.46", @@ -76,6 +77,7 @@ "open-props": "^1.5.8", "svelte-lazy": "^1.2.1", "svelte-lazy-loader": "^1.0.0", + "sveltekit-flash-message": "^0.11.3", "zod-to-json-schema": "^3.21.1" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c00ea0c..bd31987 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,6 +1,9 @@ lockfileVersion: '6.0' dependencies: + '@axiomhq/axiom-node': + specifier: ^0.12.0 + version: 0.12.0 '@fontsource/fira-mono': specifier: ^4.5.10 version: 4.5.10 @@ -55,14 +58,17 @@ dependencies: svelte-lazy-loader: specifier: ^1.0.0 version: 1.0.0 + sveltekit-flash-message: + specifier: ^0.11.3 + version: 0.11.3(@sveltejs/kit@1.19.0)(svelte@3.59.1) zod-to-json-schema: specifier: ^3.21.1 version: 3.21.1(zod@3.21.4) devDependencies: '@playwright/test': - specifier: ^1.34.1 - version: 1.34.1 + specifier: ^1.34.3 + version: 1.34.3 '@rgossiaux/svelte-headlessui': specifier: 1.0.2 version: 1.0.2(svelte@3.59.1) @@ -71,19 +77,19 @@ devDependencies: version: 0.1.2(svelte@3.59.1) '@sveltejs/adapter-auto': specifier: ^1.0.3 - version: 1.0.3(@sveltejs/kit@1.18.0) + version: 1.0.3(@sveltejs/kit@1.19.0) '@sveltejs/adapter-vercel': specifier: ^1.0.6 - version: 1.0.6(@sveltejs/kit@1.18.0) + version: 1.0.6(@sveltejs/kit@1.19.0) '@sveltejs/kit': - specifier: ^1.18.0 - version: 1.18.0(svelte@3.59.1)(vite@4.3.8) + specifier: ^1.19.0 + version: 1.19.0(svelte@3.59.1)(vite@4.3.9) '@types/cookie': specifier: ^0.5.1 version: 0.5.1 '@types/node': - specifier: ^18.16.14 - version: 18.16.14 + specifier: ^18.16.16 + version: 18.16.16 '@typescript-eslint/eslint-plugin': specifier: ^5.59.7 version: 5.59.7(@typescript-eslint/parser@5.59.7)(eslint@8.41.0)(typescript@4.9.5) @@ -155,10 +161,10 @@ devDependencies: version: 5.0.3(postcss-load-config@4.0.1)(postcss@8.4.23)(sass@1.62.1)(svelte@3.59.1)(typescript@4.9.5) sveltekit-superforms: specifier: ^0.8.7 - version: 0.8.7(@sveltejs/kit@1.18.0)(svelte@3.59.1)(zod@3.21.4) + version: 0.8.7(@sveltejs/kit@1.19.0)(svelte@3.59.1)(zod@3.21.4) ts-node: specifier: ^10.9.1 - version: 10.9.1(@types/node@18.16.14)(typescript@4.9.5) + version: 10.9.1(@types/node@18.16.16)(typescript@4.9.5) tslib: specifier: ^2.5.2 version: 2.5.2 @@ -166,8 +172,8 @@ devDependencies: specifier: ^4.9.5 version: 4.9.5 vite: - specifier: ^4.3.8 - version: 4.3.8(@types/node@18.16.14)(sass@1.62.1) + specifier: ^4.3.9 + version: 4.3.9(@types/node@18.16.16)(sass@1.62.1) vitest: specifier: ^0.25.3 version: 0.25.8(sass@1.62.1) @@ -177,6 +183,30 @@ devDependencies: packages: + /@axiomhq/axiom-node@0.12.0: + resolution: {integrity: sha512-998jnkwSCzKk4oTqiWfHIeW18yj7LZu5+srTq72nLXaEZ5rrGMqKPx5W96hs8u9TeOjFxGBsfJCStEIVnrru1g==} + engines: {node: '>=14'} + dependencies: + axios: 1.4.0 + axios-retry: 3.5.0 + to-time: 1.0.2 + winston-transport: 4.5.0 + transitivePeerDependencies: + - debug + dev: false + + /@babel/runtime@7.22.3: + resolution: {integrity: sha512-XsDuspWKLUsxwCp6r7EhsExHtYfbe5oAGQ19kqngTdCPUoPQzOPdUbD/pB9PJiwb2ptYKQDjSJT3R6dC+EPqfQ==} + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: 0.13.11 + dev: false + + /@colors/colors@1.5.0: + resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} + engines: {node: '>=0.1.90'} + dev: false + /@cspotcode/source-map-support@0.8.1: resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} @@ -235,7 +265,6 @@ packages: cpu: [arm64] os: [android] requiresBuild: true - dev: true optional: true /@esbuild/android-arm@0.16.8: @@ -253,7 +282,6 @@ packages: cpu: [arm] os: [android] requiresBuild: true - dev: true optional: true /@esbuild/android-x64@0.16.8: @@ -271,7 +299,6 @@ packages: cpu: [x64] os: [android] requiresBuild: true - dev: true optional: true /@esbuild/darwin-arm64@0.16.8: @@ -289,7 +316,6 @@ packages: cpu: [arm64] os: [darwin] requiresBuild: true - dev: true optional: true /@esbuild/darwin-x64@0.16.8: @@ -307,7 +333,6 @@ packages: cpu: [x64] os: [darwin] requiresBuild: true - dev: true optional: true /@esbuild/freebsd-arm64@0.16.8: @@ -325,7 +350,6 @@ packages: cpu: [arm64] os: [freebsd] requiresBuild: true - dev: true optional: true /@esbuild/freebsd-x64@0.16.8: @@ -343,7 +367,6 @@ packages: cpu: [x64] os: [freebsd] requiresBuild: true - dev: true optional: true /@esbuild/linux-arm64@0.16.8: @@ -361,7 +384,6 @@ packages: cpu: [arm64] os: [linux] requiresBuild: true - dev: true optional: true /@esbuild/linux-arm@0.16.8: @@ -379,7 +401,6 @@ packages: cpu: [arm] os: [linux] requiresBuild: true - dev: true optional: true /@esbuild/linux-ia32@0.16.8: @@ -397,7 +418,6 @@ packages: cpu: [ia32] os: [linux] requiresBuild: true - dev: true optional: true /@esbuild/linux-loong64@0.16.8: @@ -415,7 +435,6 @@ packages: cpu: [loong64] os: [linux] requiresBuild: true - dev: true optional: true /@esbuild/linux-mips64el@0.16.8: @@ -433,7 +452,6 @@ packages: cpu: [mips64el] os: [linux] requiresBuild: true - dev: true optional: true /@esbuild/linux-ppc64@0.16.8: @@ -451,7 +469,6 @@ packages: cpu: [ppc64] os: [linux] requiresBuild: true - dev: true optional: true /@esbuild/linux-riscv64@0.16.8: @@ -469,7 +486,6 @@ packages: cpu: [riscv64] os: [linux] requiresBuild: true - dev: true optional: true /@esbuild/linux-s390x@0.16.8: @@ -487,7 +503,6 @@ packages: cpu: [s390x] os: [linux] requiresBuild: true - dev: true optional: true /@esbuild/linux-x64@0.16.8: @@ -505,7 +520,6 @@ packages: cpu: [x64] os: [linux] requiresBuild: true - dev: true optional: true /@esbuild/netbsd-x64@0.16.8: @@ -523,7 +537,6 @@ packages: cpu: [x64] os: [netbsd] requiresBuild: true - dev: true optional: true /@esbuild/openbsd-x64@0.16.8: @@ -541,7 +554,6 @@ packages: cpu: [x64] os: [openbsd] requiresBuild: true - dev: true optional: true /@esbuild/sunos-x64@0.16.8: @@ -559,7 +571,6 @@ packages: cpu: [x64] os: [sunos] requiresBuild: true - dev: true optional: true /@esbuild/win32-arm64@0.16.8: @@ -577,7 +588,6 @@ packages: cpu: [arm64] os: [win32] requiresBuild: true - dev: true optional: true /@esbuild/win32-ia32@0.16.8: @@ -595,7 +605,6 @@ packages: cpu: [ia32] os: [win32] requiresBuild: true - dev: true optional: true /@esbuild/win32-x64@0.16.8: @@ -613,7 +622,6 @@ packages: cpu: [x64] os: [win32] requiresBuild: true - dev: true optional: true /@eslint-community/eslint-utils@4.4.0(eslint@8.41.0): @@ -704,7 +712,6 @@ packages: /@jridgewell/sourcemap-codec@1.4.15: resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} - dev: true /@jridgewell/trace-mapping@0.3.17: resolution: {integrity: sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==} @@ -806,20 +813,19 @@ packages: fastq: 1.15.0 dev: true - /@playwright/test@1.34.1: - resolution: {integrity: sha512-hKBpxD79vGkmeqLkJwPBjd4DMUahf1W7ra+83lDNL4JPmLhjITMiy0HoR0WM/PGU6nqnl1cisHc3yKQQgKMxOQ==} + /@playwright/test@1.34.3: + resolution: {integrity: sha512-zPLef6w9P6T/iT6XDYG3mvGOqOyb6eHaV9XtkunYs0+OzxBtrPAAaHotc0X+PJ00WPPnLfFBTl7mf45Mn8DBmw==} engines: {node: '>=14'} hasBin: true dependencies: - '@types/node': 18.16.14 - playwright-core: 1.34.1 + '@types/node': 18.16.16 + playwright-core: 1.34.3 optionalDependencies: fsevents: 2.3.2 dev: true /@polka/url@1.0.0-next.21: resolution: {integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==} - dev: true /@prisma/client@4.14.1(prisma@4.14.1): resolution: {integrity: sha512-TZIswkeX1ccsHG/eN2kICzg/csXll0osK3EHu1QKd8VJ3XLcXozbNELKkCNfsCUvKJAwPdDtFCzF+O+raIVldw==} @@ -867,21 +873,21 @@ packages: picomatch: 2.3.1 dev: true - /@sveltejs/adapter-auto@1.0.3(@sveltejs/kit@1.18.0): + /@sveltejs/adapter-auto@1.0.3(@sveltejs/kit@1.19.0): resolution: {integrity: sha512-hc7O12YQqvZ1CD4fo1gMJuPzBZvuoG5kwxb2RRoz4fVoB8B2vuPO2cY751Ln0G6T/HMrAf8kCqw6Pg+wbxcstw==} peerDependencies: '@sveltejs/kit': ^1.0.0 dependencies: - '@sveltejs/kit': 1.18.0(svelte@3.59.1)(vite@4.3.8) + '@sveltejs/kit': 1.19.0(svelte@3.59.1)(vite@4.3.9) import-meta-resolve: 2.2.0 dev: true - /@sveltejs/adapter-vercel@1.0.6(@sveltejs/kit@1.18.0): + /@sveltejs/adapter-vercel@1.0.6(@sveltejs/kit@1.19.0): resolution: {integrity: sha512-fo6aaEygPd/6B5Jms4Ff7R4jbADnppuLvKOWBNTGe5MGB7ZRUkl+gxHWMQx2av2knyEZkA6V8y5M6R3ML5yN4g==} peerDependencies: '@sveltejs/kit': ^1.0.0 dependencies: - '@sveltejs/kit': 1.18.0(svelte@3.59.1)(vite@4.3.8) + '@sveltejs/kit': 1.19.0(svelte@3.59.1)(vite@4.3.9) '@vercel/nft': 0.22.6 esbuild: 0.16.8 transitivePeerDependencies: @@ -889,8 +895,8 @@ packages: - supports-color dev: true - /@sveltejs/kit@1.18.0(svelte@3.59.1)(vite@4.3.8): - resolution: {integrity: sha512-QE5X9gCG34khrO6j01ZbRXtVx+yyUNe8PmVPeG0M+I8eyFejqYMEhD1JtjCrLzpd4KukvuO8bL35M1VWmPM7hQ==} + /@sveltejs/kit@1.19.0(svelte@3.59.1)(vite@4.3.9): + resolution: {integrity: sha512-39fHvYvUQL3bCdV6Ed9MRIESO6ceM/MRNxAloQin+Qs9DfiM53vhUJBWtbwWAvRR/nM6isWnsbContjE/2/JxQ==} engines: {node: ^16.14 || >=18} hasBin: true requiresBuild: true @@ -898,7 +904,7 @@ packages: svelte: ^3.54.0 vite: ^4.0.0 dependencies: - '@sveltejs/vite-plugin-svelte': 2.1.1(svelte@3.59.1)(vite@4.3.8) + '@sveltejs/vite-plugin-svelte': 2.1.1(svelte@3.59.1)(vite@4.3.9) '@types/cookie': 0.5.1 cookie: 0.5.0 devalue: 4.3.1 @@ -912,12 +918,11 @@ packages: svelte: 3.59.1 tiny-glob: 0.2.9 undici: 5.22.0 - vite: 4.3.8(@types/node@18.16.14)(sass@1.62.1) + vite: 4.3.9(@types/node@18.16.16)(sass@1.62.1) transitivePeerDependencies: - supports-color - dev: true - /@sveltejs/vite-plugin-svelte@2.1.1(svelte@3.59.1)(vite@4.3.8): + /@sveltejs/vite-plugin-svelte@2.1.1(svelte@3.59.1)(vite@4.3.9): resolution: {integrity: sha512-7YeBDt4us0FiIMNsVXxyaP4Hwyn2/v9x3oqStkHU3ZdIc5O22pGwUwH33wUqYo+7Itdmo8zxJ45Qvfm3H7UUjQ==} engines: {node: ^14.18.0 || >= 16} peerDependencies: @@ -930,11 +935,10 @@ packages: magic-string: 0.30.0 svelte: 3.59.1 svelte-hmr: 0.15.1(svelte@3.59.1) - vite: 4.3.8(@types/node@18.16.14)(sass@1.62.1) - vitefu: 0.2.4(vite@4.3.8) + vite: 4.3.9(@types/node@18.16.16)(sass@1.62.1) + vitefu: 0.2.4(vite@4.3.9) transitivePeerDependencies: - supports-color - dev: true /@tsconfig/node10@1.0.9: resolution: {integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==} @@ -964,7 +968,6 @@ packages: /@types/cookie@0.5.1: resolution: {integrity: sha512-COUnqfB2+ckwXXSFInsFdOAWQzCCx+a5hq2ruyj+Vjund94RJQd4LG2u9hnvJrTgunKAaax7ancBYlDrNYxA0g==} - dev: true /@types/feather-icons@4.29.1: resolution: {integrity: sha512-8+PdenCN8UWTfyIHNaJdmk/oPg6zyw7S9kHtT8PdkmHEwfTHSrSWEHpNZJzbuWmZBXQKA/+dLVXjrloX9XixPg==} @@ -974,9 +977,8 @@ packages: resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==} dev: true - /@types/node@18.16.14: - resolution: {integrity: sha512-+ImzUB3mw2c5ISJUq0punjDilUQ5GnUim0ZRvchHIWJmOC0G+p0kzhXBqj6cDjK0QdPFwzrHWgrJp3RPvCG5qg==} - dev: true + /@types/node@18.16.16: + resolution: {integrity: sha512-NpaM49IGQQAUlBhHMF82QH80J08os4ZmyF9MkpCzWAGuOHqE4gTEbhzd7L3l5LmWuZ6E0OiC1FweQ4tsiW35+g==} /@types/pug@2.0.6: resolution: {integrity: sha512-SnHmG9wN1UVmagJOnyo/qkk0Z7gejYxOYYmaAwr5u2yFYfsupN3sg10kyzN8Hep/2zbHxCnsumxOoRIRMBwKCg==} @@ -985,13 +987,17 @@ packages: /@types/sass@1.43.1: resolution: {integrity: sha512-BPdoIt1lfJ6B7rw35ncdwBZrAssjcwzI5LByIrYs+tpXlj/CAkuVdRsgZDdP4lq5EjyWzwxZCqAoFyHKFwp32g==} dependencies: - '@types/node': 18.16.14 + '@types/node': 18.16.16 dev: true /@types/semver@7.5.0: resolution: {integrity: sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==} dev: true + /@types/triple-beam@1.3.2: + resolution: {integrity: sha512-txGIh+0eDFzKGC25zORnswy+br1Ha7hj5cMVwKIU7+s0U2AxxJru/jZSMU6OC9MJWP6+pc/hc6ZjyZShpsyY2g==} + dev: false + /@typescript-eslint/eslint-plugin@5.59.7(@typescript-eslint/parser@5.59.7)(eslint@8.41.0)(typescript@4.9.5): resolution: {integrity: sha512-BL+jYxUFIbuYwy+4fF86k5vdT9lT0CNJ6HtwrIvGh0PhH8s0yy5rjaKH2fDCrz5ITHy07WCzVGNvAmjJh4IJFA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -1208,7 +1214,6 @@ packages: dependencies: normalize-path: 3.0.0 picomatch: 2.3.1 - dev: true /aproba@2.0.0: resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} @@ -1243,6 +1248,10 @@ packages: resolution: {integrity: sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==} dev: true + /asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + dev: false + /autoprefixer@10.4.14(postcss@8.4.23): resolution: {integrity: sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==} engines: {node: ^10 || ^12 || >=14} @@ -1259,14 +1268,34 @@ packages: postcss-value-parser: 4.2.0 dev: true + /axios-retry@3.5.0: + resolution: {integrity: sha512-g48qNrLX30VU6ECWltpFCPegKK6dWzMDYv2o83W2zUL/Zh/SLXbT6ksGoKqYZHtghzqeeXhZBcSXJkO1fPbCcw==} + dependencies: + '@babel/runtime': 7.22.3 + is-retry-allowed: 2.2.0 + dev: false + + /axios@1.4.0: + resolution: {integrity: sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==} + dependencies: + follow-redirects: 1.15.2 + form-data: 4.0.0 + proxy-from-env: 1.1.0 + transitivePeerDependencies: + - debug + dev: false + /balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} dev: true + /bignumber.js@2.4.0: + resolution: {integrity: sha512-uw4ra6Cv483Op/ebM0GBKKfxZlSmn6NgFRby5L3yGTlunLj53KQgndDlqy2WVFOwgvurocApYkSud0aO+mvrpQ==} + dev: false + /binary-extensions@2.2.0: resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} engines: {node: '>=8'} - dev: true /bindings@1.5.0: resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} @@ -1286,7 +1315,6 @@ packages: engines: {node: '>=8'} dependencies: fill-range: 7.0.1 - dev: true /browserslist@4.21.5: resolution: {integrity: sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==} @@ -1308,7 +1336,6 @@ packages: engines: {node: '>=10.16.0'} dependencies: streamsearch: 1.1.0 - dev: true /callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} @@ -1357,7 +1384,6 @@ packages: readdirp: 3.6.0 optionalDependencies: fsevents: 2.3.2 - dev: true /chownr@2.0.0: resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} @@ -1384,6 +1410,13 @@ packages: hasBin: true dev: true + /combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + dependencies: + delayed-stream: 1.0.0 + dev: false + /concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} dev: true @@ -1430,7 +1463,6 @@ packages: optional: true dependencies: ms: 2.1.2 - dev: true /deep-eql@4.1.3: resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} @@ -1446,7 +1478,11 @@ packages: /deepmerge@4.3.1: resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} engines: {node: '>=0.10.0'} - dev: true + + /delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + dev: false /delegates@1.0.0: resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} @@ -1464,7 +1500,6 @@ packages: /devalue@4.3.1: resolution: {integrity: sha512-Kc0TSP9IUU9eg55au5Q3YtqaYI2cgntVpunJV9Exbm9nvlBeTE5p2NqYHfpuXK6+VF2hF5PI+BPFPUti7e2N1g==} - dev: true /diff@4.0.2: resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} @@ -1555,7 +1590,6 @@ packages: '@esbuild/win32-arm64': 0.17.18 '@esbuild/win32-ia32': 0.17.18 '@esbuild/win32-x64': 0.17.18 - dev: true /escalade@3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} @@ -1673,7 +1707,6 @@ packages: /esm-env@1.0.0: resolution: {integrity: sha512-Cf6VksWPsTuW01vU9Mk/3vRue91Zevka5SjyNf3nEpokFRuqt/KjUQoGAwq9qMmhpLTHmXzSIrFRw8zxWzmFBA==} - dev: true /espree@9.5.2: resolution: {integrity: sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw==} @@ -1753,6 +1786,10 @@ packages: core-js: 3.26.1 dev: false + /fecha@4.2.3: + resolution: {integrity: sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==} + dev: false + /file-entry-cache@6.0.1: resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} engines: {node: ^10.12.0 || >=12.0.0} @@ -1769,7 +1806,6 @@ packages: engines: {node: '>=8'} dependencies: to-regex-range: 5.0.1 - dev: true /find-up@5.0.0: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} @@ -1791,6 +1827,25 @@ packages: resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} dev: true + /follow-redirects@1.15.2: + resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + dev: false + + /form-data@4.0.0: + resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} + engines: {node: '>= 6'} + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + dev: false + /fraction.js@4.2.0: resolution: {integrity: sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==} dev: true @@ -1811,7 +1866,6 @@ packages: engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] requiresBuild: true - dev: true optional: true /function-bind@1.1.1: @@ -1842,7 +1896,6 @@ packages: engines: {node: '>= 6'} dependencies: is-glob: 4.0.3 - dev: true /glob-parent@6.0.2: resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} @@ -1871,7 +1924,6 @@ packages: /globalyzer@0.1.0: resolution: {integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==} - dev: true /globby@11.1.0: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} @@ -1887,7 +1939,6 @@ packages: /globrex@0.1.2: resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} - dev: true /graceful-fs@4.2.10: resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} @@ -1945,7 +1996,6 @@ packages: /immutable@4.1.0: resolution: {integrity: sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ==} - dev: true /import-fresh@3.3.0: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} @@ -1973,14 +2023,12 @@ packages: /inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - dev: true /is-binary-path@2.1.0: resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} engines: {node: '>=8'} dependencies: binary-extensions: 2.2.0 - dev: true /is-core-module@2.12.1: resolution: {integrity: sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==} @@ -1991,7 +2039,6 @@ packages: /is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} - dev: true /is-fullwidth-code-point@3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} @@ -2003,18 +2050,21 @@ packages: engines: {node: '>=0.10.0'} dependencies: is-extglob: 2.1.1 - dev: true /is-number@7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} - dev: true /is-path-inside@3.0.3: resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} engines: {node: '>=8'} dev: true + /is-retry-allowed@2.2.0: + resolution: {integrity: sha512-XVm7LOeLpTW4jV19QSH38vkswxoLud8sQ57YwJVTPWdiaI9I8keEhGFpBlslyVsgdQy4Opg8QOLb8YRgsyZiQg==} + engines: {node: '>=10'} + dev: false + /isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} dev: true @@ -2045,7 +2095,6 @@ packages: /kleur@4.1.5: resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} engines: {node: '>=6'} - dev: true /known-css-properties@0.27.0: resolution: {integrity: sha512-uMCj6+hZYDoffuvAJjFAPz56E9uoowFHmTkqRtRq5WyC5Q6Cu/fTZKNQpX/RbzChBYLLl3lo8CjFZBAZXq9qFg==} @@ -2088,6 +2137,17 @@ packages: resolution: {integrity: sha512-4hNPN5jlm/N/HLMCO43v8BXKq9Z7QdAGc/VGrRD61w8gN9g/6jF9A4L1pbUgBLCffi0w9VsXfTOij5x8iTyFvg==} dev: false + /logform@2.5.1: + resolution: {integrity: sha512-9FyqAm9o9NKKfiAKfZoYo9bGXXuwMkxQiQttkT4YjjVtQVIQtK6LmVtlxmCaFswo6N4AfEkHqZTV0taDtPotNg==} + dependencies: + '@colors/colors': 1.5.0 + '@types/triple-beam': 1.3.2 + fecha: 4.2.3 + ms: 2.1.2 + safe-stable-stringify: 2.4.3 + triple-beam: 1.3.0 + dev: false + /loupe@2.3.6: resolution: {integrity: sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==} dependencies: @@ -2123,7 +2183,6 @@ packages: engines: {node: '>=12'} dependencies: '@jridgewell/sourcemap-codec': 1.4.15 - dev: true /make-dir@3.1.0: resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} @@ -2149,11 +2208,22 @@ packages: picomatch: 2.3.1 dev: true + /mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + dev: false + + /mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + dependencies: + mime-db: 1.52.0 + dev: false + /mime@3.0.0: resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} engines: {node: '>=10.0.0'} hasBin: true - dev: true /min-indent@1.0.1: resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} @@ -2208,22 +2278,18 @@ packages: /mri@1.2.0: resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} engines: {node: '>=4'} - dev: true /mrmime@1.0.1: resolution: {integrity: sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==} engines: {node: '>=10'} - dev: true /ms@2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - dev: true /nanoid@3.3.6: resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - dev: true /natural-compare-lite@1.4.0: resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} @@ -2265,7 +2331,6 @@ packages: /normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} - dev: true /normalize-range@0.1.2: resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} @@ -2359,20 +2424,18 @@ packages: /picocolors@1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} - dev: true /picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} - dev: true /pify@2.3.0: resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} engines: {node: '>=0.10.0'} dev: true - /playwright-core@1.34.1: - resolution: {integrity: sha512-4Y5hGLoSrnB/BXj2NFKBNWP/bI9uVejTVbso1ZBtkKZ+O2KiVIeCJ3R4c7Cf2PbP7htjLolHXY+mImt2IWOlEg==} + /playwright-core@1.34.3: + resolution: {integrity: sha512-2pWd6G7OHKemc5x1r1rp8aQcpvDh7goMBZlJv6Co5vCNLVcQJdhxRL09SGaY6HcyHH9aT4tiynZabMofVasBYw==} engines: {node: '>=14'} hasBin: true dev: true @@ -2436,7 +2499,7 @@ packages: dependencies: lilconfig: 2.0.6 postcss: 8.4.23 - ts-node: 10.9.1(@types/node@18.16.14)(typescript@4.9.5) + ts-node: 10.9.1(@types/node@18.16.16)(typescript@4.9.5) yaml: 1.10.2 dev: true @@ -2454,7 +2517,7 @@ packages: dependencies: lilconfig: 2.0.6 postcss: 8.4.23 - ts-node: 10.9.1(@types/node@18.16.14)(typescript@4.9.5) + ts-node: 10.9.1(@types/node@18.16.16)(typescript@4.9.5) yaml: 2.1.3 dev: true @@ -2505,7 +2568,6 @@ packages: nanoid: 3.3.6 picocolors: 1.0.0 source-map-js: 1.0.2 - dev: true /prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} @@ -2536,6 +2598,10 @@ packages: dependencies: '@prisma/engines': 4.14.1 + /proxy-from-env@1.1.0: + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + dev: false + /punycode@2.1.1: resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==} engines: {node: '>=6'} @@ -2558,14 +2624,16 @@ packages: inherits: 2.0.4 string_decoder: 1.3.0 util-deprecate: 1.0.2 - dev: true /readdirp@3.6.0: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} dependencies: picomatch: 2.3.1 - dev: true + + /regenerator-runtime@0.13.11: + resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} + dev: false /resolve-from@4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} @@ -2611,7 +2679,6 @@ packages: hasBin: true optionalDependencies: fsevents: 2.3.2 - dev: true /run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} @@ -2624,11 +2691,14 @@ packages: engines: {node: '>=6'} dependencies: mri: 1.2.0 - dev: true /safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - dev: true + + /safe-stable-stringify@2.4.3: + resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==} + engines: {node: '>=10'} + dev: false /sander@0.5.1: resolution: {integrity: sha512-3lVqBir7WuKDHGrKRDn/1Ye3kwpXaDOMsiRP1wd6wpZW56gJhsbp5RqQpA6JG/P+pkXizygnr1dKR8vzWaVsfA==} @@ -2647,7 +2717,6 @@ packages: chokidar: 3.5.3 immutable: 4.1.0 source-map-js: 1.0.2 - dev: true /semver@6.3.0: resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} @@ -2676,7 +2745,6 @@ packages: /set-cookie-parser@2.6.0: resolution: {integrity: sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==} - dev: true /shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} @@ -2701,7 +2769,6 @@ packages: '@polka/url': 1.0.0-next.21 mrmime: 1.0.1 totalist: 3.0.0 - dev: true /slash@3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} @@ -2731,7 +2798,6 @@ packages: /source-map-js@1.0.2: resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} engines: {node: '>=0.10.0'} - dev: true /source-map@0.6.1: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} @@ -2746,7 +2812,6 @@ packages: /streamsearch@1.1.0: resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} engines: {node: '>=10.0.0'} - dev: true /string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} @@ -2761,7 +2826,6 @@ packages: resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} dependencies: safe-buffer: 5.2.1 - dev: true /strip-ansi@6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} @@ -2850,7 +2914,6 @@ packages: svelte: '>=3.19.0' dependencies: svelte: 3.59.1 - dev: true /svelte-lazy-loader@1.0.0: resolution: {integrity: sha512-AZD6R60vksyojn21FgXLglmBiBB9K5Dkdu0hdGrLbCaRCYT68IsWkZfRUqKhMx1IfzqWcZQ8X9y/f+Ih0oNQkQ==} @@ -2972,14 +3035,24 @@ packages: resolution: {integrity: sha512-pKj8fEBmqf6mq3/NfrB9SLtcJcUvjYSWyePlfCqN9gujLB25RitWK8PvFzlwim6hD/We35KbPlRteuA6rnPGcQ==} engines: {node: '>= 8'} - /sveltekit-superforms@0.8.7(@sveltejs/kit@1.18.0)(svelte@3.59.1)(zod@3.21.4): + /sveltekit-flash-message@0.11.3(@sveltejs/kit@1.19.0)(svelte@3.59.1): + resolution: {integrity: sha512-tMKBobVFLYth0z2Kq9M+pi7Ip2OBhOrzivzx64v9+D2bWRwnZ3pmdWStYfQYxlz5CayozRQsmtipNg1vM+JN9Q==} + peerDependencies: + '@sveltejs/kit': ^1.0.0 + svelte: ^3 + dependencies: + '@sveltejs/kit': 1.19.0(svelte@3.59.1)(vite@4.3.9) + svelte: 3.59.1 + dev: false + + /sveltekit-superforms@0.8.7(@sveltejs/kit@1.19.0)(svelte@3.59.1)(zod@3.21.4): resolution: {integrity: sha512-0aFK31TNz4AM3N7dzL99QUXlVF2O+W/TNVU+M41VVaAKtJKFNasbv8GNLd5wrhN7UWN6kNJnt4MlZBPISkIQ6w==} peerDependencies: '@sveltejs/kit': 1.x svelte: 3.x zod: 3.x dependencies: - '@sveltejs/kit': 1.18.0(svelte@3.59.1)(vite@4.3.8) + '@sveltejs/kit': 1.19.0(svelte@3.59.1)(vite@4.3.9) svelte: 3.59.1 zod: 3.21.4 dev: true @@ -3005,7 +3078,6 @@ packages: dependencies: globalyzer: 0.1.0 globrex: 0.1.2 - dev: true /tinybench@2.3.1: resolution: {integrity: sha512-hGYWYBMPr7p4g5IarQE7XhlyWveh1EKhy4wUBS1LrHXCKYgvz+4/jCqgmJqZxxldesn05vccrtME2RLLZNW7iA==} @@ -3026,18 +3098,26 @@ packages: engines: {node: '>=8.0'} dependencies: is-number: 7.0.0 - dev: true + + /to-time@1.0.2: + resolution: {integrity: sha512-+wqaiQvnido2DI1bpiQ/Zv1LiOE9Fd0v35ySnNeqFmKNYJTJY/+ENI+3sHXCMzbAAOR/43aNyLM0XTpi0/zSQg==} + dependencies: + bignumber.js: 2.4.0 + dev: false /totalist@3.0.0: resolution: {integrity: sha512-eM+pCBxXO/njtF7vdFsHuqb+ElbxqtI4r5EAvk6grfAFyJ6IvWlSkfZ5T9ozC6xWw3Fj1fGoSmrl0gUs46JVIw==} engines: {node: '>=6'} - dev: true /tr46@0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} dev: true - /ts-node@10.9.1(@types/node@18.16.14)(typescript@4.9.5): + /triple-beam@1.3.0: + resolution: {integrity: sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==} + dev: false + + /ts-node@10.9.1(@types/node@18.16.16)(typescript@4.9.5): resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true peerDependencies: @@ -3056,7 +3136,7 @@ packages: '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 18.16.14 + '@types/node': 18.16.16 acorn: 8.8.2 acorn-walk: 8.2.0 arg: 4.1.3 @@ -3114,7 +3194,6 @@ packages: engines: {node: '>=14.0'} dependencies: busboy: 1.6.0 - dev: true /update-browserslist-db@1.0.11(browserslist@4.21.5): resolution: {integrity: sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==} @@ -3135,14 +3214,13 @@ packages: /util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - dev: true /v8-compile-cache-lib@3.0.1: resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} dev: true - /vite@4.3.8(@types/node@18.16.14)(sass@1.62.1): - resolution: {integrity: sha512-uYB8PwN7hbMrf4j1xzGDk/lqjsZvCDbt/JC5dyfxc19Pg8kRm14LinK/uq+HSLNswZEoKmweGdtpbnxRtrAXiQ==} + /vite@4.3.9(@types/node@18.16.16)(sass@1.62.1): + resolution: {integrity: sha512-qsTNZjO9NoJNW7KnOrgYwczm0WctJ8m/yqYAMAK9Lxt4SoySUfS5S8ia9K7JHpa3KEeMfyF8LoJ3c5NeBJy6pg==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true peerDependencies: @@ -3166,16 +3244,15 @@ packages: terser: optional: true dependencies: - '@types/node': 18.16.14 + '@types/node': 18.16.16 esbuild: 0.17.18 postcss: 8.4.23 rollup: 3.21.0 sass: 1.62.1 optionalDependencies: fsevents: 2.3.2 - dev: true - /vitefu@0.2.4(vite@4.3.8): + /vitefu@0.2.4(vite@4.3.9): resolution: {integrity: sha512-fanAXjSaf9xXtOOeno8wZXIhgia+CZury481LsDaV++lSvcU2R9Ch2bPh3PYFyoHW+w9LqAeYRISVQjUIew14g==} peerDependencies: vite: ^3.0.0 || ^4.0.0 @@ -3183,8 +3260,7 @@ packages: vite: optional: true dependencies: - vite: 4.3.8(@types/node@18.16.14)(sass@1.62.1) - dev: true + vite: 4.3.9(@types/node@18.16.16)(sass@1.62.1) /vitest@0.25.8(sass@1.62.1): resolution: {integrity: sha512-X75TApG2wZTJn299E/TIYevr4E9/nBo1sUtZzn0Ci5oK8qnpZAZyhwg0qCeMSakGIWtc6oRwcQFyFfW14aOFWg==} @@ -3210,7 +3286,7 @@ packages: dependencies: '@types/chai': 4.3.4 '@types/chai-subset': 1.3.3 - '@types/node': 18.16.14 + '@types/node': 18.16.16 acorn: 8.8.1 acorn-walk: 8.2.0 chai: 4.3.7 @@ -3221,7 +3297,7 @@ packages: tinybench: 2.3.1 tinypool: 0.3.0 tinyspy: 1.0.2 - vite: 4.3.8(@types/node@18.16.14)(sass@1.62.1) + vite: 4.3.9(@types/node@18.16.16)(sass@1.62.1) transitivePeerDependencies: - less - sass @@ -3256,6 +3332,15 @@ packages: string-width: 4.2.3 dev: true + /winston-transport@4.5.0: + resolution: {integrity: sha512-YpZzcUzBedhlTAfJg6vJDlyEai/IFMIVcaEZZyl3UXIl4gmqRpU7AE89AHLkbzLUsv0NVmw7ts+iztqKxxPW1Q==} + engines: {node: '>= 6.4.0'} + dependencies: + logform: 2.5.1 + readable-stream: 3.6.0 + triple-beam: 1.3.0 + dev: false + /word-wrap@1.2.3: resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} engines: {node: '>=0.10.0'} diff --git a/prisma/schema.prisma b/prisma/schema.prisma index ce3cc06..df8cbbb 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -55,4 +55,99 @@ model AuthKey { enum Role { USER ADMIN -} \ No newline at end of file +} + +model Game { + id String @id + name String + description String? + yearPublished Int? + minPlayers Int? + maxPlayers Int? + minPlaytime Int? + maxPlaytime Int? + minAge Int? + imageUrl String? + thumbUrl String? + url String? + rulesUrl String? + weightAmount Float? + weightUnits String? + bggId String? + bggUrl String? + primaryPublisher Publisher? + categories Category[] + mechanics Mechanic[] + designers Designer[] + publishers Publisher[] + artists Artist[] + names String[] @db.Array + expansions Expansion[] + + @@index([game_id]) + @@map("games") +} + +model Publisher { + id String @id + name String + games Game[] @relation(references: [id], fields: [game_id]) + primaryPublisher Game[] @relation("PrimaryPublisher") + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt + + @@map("publishers") +} + +model Category { + id String @id + name String + slug String + games Game[] @relation("GameCategories") + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt + + @@map("categories") +} + +model Mechanic { + id String @id + name String + games Game[] @relation("GameMechanics") + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt + + @@map("mechanics") +} + +model Designer { + id String @id + name String + games Game[] @relation("GameDesigners") + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt + + @@map("designers") +} + +model Artist { + id String @id + name String + games Game[] @relation("GameArtists") + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt + + @@map("artists") +} + +model Expansion { + id String @id + name String + yearPublished Int? + baseGame Game? @relation("Expansions", fields: [baseGameId], references: [id]) + baseGameId String? + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt + + @@map("expansions") +} diff --git a/src/app.d.ts b/src/app.d.ts index 588c3b2..7759350 100644 --- a/src/app.d.ts +++ b/src/app.d.ts @@ -4,9 +4,22 @@ // src/app.d.ts declare global { namespace App { + interface PageData { + flash?: { type: 'success' | 'error'; message: string }; + } interface Locals { auth: import('lucia-auth').AuthRequest; user: Lucia.UserAttributes; + startTimer: number; + error: string; + errorId: string; + errorStackTrace: string; + message: unknown; + track: unknown; + } + interface Error { + code?: string; + errorId?: string; } } } diff --git a/src/hooks.server.ts b/src/hooks.server.ts index fb77a80..7b82c00 100644 --- a/src/hooks.server.ts +++ b/src/hooks.server.ts @@ -1,7 +1,33 @@ import { redirect, type Handle } from '@sveltejs/kit'; +import type { HandleServerError } from '@sveltejs/kit'; import { auth } from '$lib/server/lucia'; +import log from '$lib/server/log'; +import { dev } from '$app/environment'; + +export const handleError: HandleServerError = async ({ error, event }) => { + const errorId = crypto.randomUUID(); + + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + //@ts-ignore + event.locals.error = error?.toString() || undefined; + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + //@ts-ignore + event.locals.errorStackTrace = error?.stack || undefined; + event.locals.errorId = errorId; + if (!dev) { + log(500, event); + } + + return { + message: 'An unexpected error occurred.', + errorId + }; +}; export const handle: Handle = async ({ event, resolve }) => { + const startTimer = Date.now(); + event.locals.startTimer = startTimer; + event.locals.auth = auth.handleRequest(event); console.log(JSON.stringify(event)); if (event.locals?.auth) { @@ -13,5 +39,9 @@ export const handle: Handle = async ({ event, resolve }) => { } } - return await resolve(event); + const response = await resolve(event); + if (!dev) { + log(response.status, event); + } + return response; }; diff --git a/src/lib/components/dialog/ClearCollectionDialog.svelte b/src/lib/components/dialog/ClearCollectionDialog.svelte index 6a9d3c5..c6a5934 100644 --- a/src/lib/components/dialog/ClearCollectionDialog.svelte +++ b/src/lib/components/dialog/ClearCollectionDialog.svelte @@ -6,8 +6,8 @@ DialogOverlay, DialogTitle } from '@rgossiaux/svelte-headlessui'; - import { boredState } from '$root/lib/stores/boredState'; - import { collectionStore } from '$root/lib/stores/collectionStore'; + import { boredState } from '$lib/stores/boredState'; + import { collectionStore } from '$lib/stores/collectionStore'; import { browser } from '$app/environment'; function clearCollection() { diff --git a/src/lib/components/dialog/ClearWishlistDialog.svelte b/src/lib/components/dialog/ClearWishlistDialog.svelte index 4d29abd..60e2967 100644 --- a/src/lib/components/dialog/ClearWishlistDialog.svelte +++ b/src/lib/components/dialog/ClearWishlistDialog.svelte @@ -1,7 +1,7 @@ + +
+ {#if $page.status === 404} +

The page you requested doesn't exist! 🤷‍♂️

+

Go Home

+ {:else} +

Unexpected Error

+

We're investigating the issue.

+ {/if} + + {#if $page.error?.errorId} +

Error ID: {$page.error.errorId}

+ {/if} +