diff --git a/.prettierrc b/.prettierrc index 5f4511a..a77fdde 100644 --- a/.prettierrc +++ b/.prettierrc @@ -1,6 +1,9 @@ { - "useTabs": false, - "singleQuote": true, - "trailingComma": "none", - "printWidth": 100 + "useTabs": true, + "singleQuote": true, + "trailingComma": "none", + "printWidth": 100, + "plugins": ["prettier-plugin-svelte"], + "pluginSearchDirs": ["."], + "overrides": [{ "files": "*.svelte", "options": { "parser": "svelte" } }] } diff --git a/package.json b/package.json index 19e67e8..8ff43b8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "boredgame", - "version": "0.0.1", + "version": "0.0.2", "scripts": { "dev": "NODE_OPTIONS=\"--inspect\" vite dev --host", "build": "vite build", @@ -13,40 +13,41 @@ "format": "prettier --write --plugin-search-dir=. ." }, "devDependencies": { - "@playwright/test": "^1.25.1", + "@playwright/test": "^1.27.1", "@rgossiaux/svelte-headlessui": "1.0.2", "@rgossiaux/svelte-heroicons": "^0.1.2", - "@sveltejs/adapter-auto": "1.0.0-next.71", - "@sveltejs/kit": "1.0.0-next.461", + "@sveltejs/adapter-auto": "1.0.0-next.72", + "@sveltejs/kit": "1.0.0-next.480", "@types/cookie": "^0.5.1", - "@types/node": "^18.7.14", - "@typescript-eslint/eslint-plugin": "^5.36.1", - "@typescript-eslint/parser": "^5.36.1", - "carbon-components-svelte": "^0.70.4", - "carbon-icons-svelte": "^11.2.0", - "eslint": "^8.23.0", + "@types/node": "^18.11.7", + "@typescript-eslint/eslint-plugin": "^5.41.0", + "@typescript-eslint/parser": "^5.41.0", + "carbon-components-svelte": "^0.70.12", + "carbon-icons-svelte": "^11.4.0", + "eslint": "^8.26.0", "eslint-config-prettier": "^8.1.0", "eslint-plugin-svelte3": "^4.0.0", "just-debounce-it": "^3.1.1", "prettier": "^2.7.1", - "prettier-plugin-svelte": "^2.7.0", - "sass": "^1.54.8", - "svelte": "^3.49.0", - "svelte-check": "^2.9.0", + "prettier-plugin-svelte": "^2.8.0", + "sass": "^1.55.0", + "svelte": "^3.52.0", + "svelte-check": "^2.9.2", "svelte-preprocess": "^4.10.7", "tslib": "^2.0.0", - "typescript": "^4.8.2", - "vite": "^3.1.0-beta.1" + "typescript": "^4.8.4", + "vite": "^3.2.0" }, "type": "module", "dependencies": { - "@fontsource/fira-mono": "^4.5.9", + "@fontsource/fira-mono": "^4.5.10", "@leveluptuts/svelte-side-menu": "^1.0.5", "@leveluptuts/svelte-toy": "^2.0.3", "@lukeed/uuid": "^2.0.0", "@types/feather-icons": "^4.7.0", "cookie": "^0.5.0", "feather-icons": "^4.29.0", - "zod": "^3.18.0" + "zod": "^3.19.1", + "zod-to-json-schema": "^3.18.1" } } \ No newline at end of file diff --git a/playwright.config.ts b/playwright.config.ts index 393283e..6ad3a7f 100644 --- a/playwright.config.ts +++ b/playwright.config.ts @@ -1,10 +1,10 @@ import type { PlaywrightTestConfig } from '@playwright/test'; const config: PlaywrightTestConfig = { - webServer: { - command: 'npm run build && npm run preview', - port: 3000 - } + webServer: { + command: 'npm run build && npm run preview', + port: 4173 + } }; export default config; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 257b328..ed51618 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,81 +1,92 @@ lockfileVersion: 5.4 specifiers: - '@fontsource/fira-mono': ^4.5.9 + '@fontsource/fira-mono': ^4.5.10 '@leveluptuts/svelte-side-menu': ^1.0.5 '@leveluptuts/svelte-toy': ^2.0.3 '@lukeed/uuid': ^2.0.0 - '@playwright/test': ^1.25.1 + '@playwright/test': ^1.27.1 '@rgossiaux/svelte-headlessui': 1.0.2 '@rgossiaux/svelte-heroicons': ^0.1.2 - '@sveltejs/adapter-auto': 1.0.0-next.71 - '@sveltejs/kit': 1.0.0-next.461 + '@sveltejs/adapter-auto': 1.0.0-next.72 + '@sveltejs/kit': 1.0.0-next.480 '@types/cookie': ^0.5.1 '@types/feather-icons': ^4.7.0 - '@types/node': ^18.7.14 - '@typescript-eslint/eslint-plugin': ^5.36.1 - '@typescript-eslint/parser': ^5.36.1 - carbon-components-svelte: ^0.70.4 - carbon-icons-svelte: ^11.2.0 + '@types/node': ^18.11.7 + '@typescript-eslint/eslint-plugin': ^5.41.0 + '@typescript-eslint/parser': ^5.41.0 + carbon-components-svelte: ^0.70.12 + carbon-icons-svelte: ^11.4.0 cookie: ^0.5.0 - eslint: ^8.23.0 + eslint: ^8.26.0 eslint-config-prettier: ^8.1.0 eslint-plugin-svelte3: ^4.0.0 feather-icons: ^4.29.0 just-debounce-it: ^3.1.1 prettier: ^2.7.1 - prettier-plugin-svelte: ^2.7.0 - sass: ^1.54.8 - svelte: ^3.49.0 - svelte-check: ^2.9.0 + prettier-plugin-svelte: ^2.8.0 + sass: ^1.55.0 + svelte: ^3.52.0 + svelte-check: ^2.9.2 svelte-preprocess: ^4.10.7 tslib: ^2.0.0 - typescript: ^4.8.2 - vite: ^3.1.0-beta.1 - zod: ^3.18.0 + typescript: ^4.8.4 + vite: ^3.2.0 + zod: ^3.19.1 + zod-to-json-schema: ^3.18.1 dependencies: - '@fontsource/fira-mono': 4.5.9 + '@fontsource/fira-mono': 4.5.10 '@leveluptuts/svelte-side-menu': 1.0.5 '@leveluptuts/svelte-toy': 2.0.3 '@lukeed/uuid': 2.0.0 '@types/feather-icons': 4.7.0 cookie: 0.5.0 feather-icons: 4.29.0 - zod: 3.18.0 + zod: 3.19.1 + zod-to-json-schema: 3.18.1_zod@3.19.1 devDependencies: - '@playwright/test': 1.25.1 - '@rgossiaux/svelte-headlessui': 1.0.2_svelte@3.49.0 - '@rgossiaux/svelte-heroicons': 0.1.2_svelte@3.49.0 - '@sveltejs/adapter-auto': 1.0.0-next.71 - '@sveltejs/kit': 1.0.0-next.461_fhgkwirxvgjw2igda6zmhiisma + '@playwright/test': 1.27.1 + '@rgossiaux/svelte-headlessui': 1.0.2_svelte@3.52.0 + '@rgossiaux/svelte-heroicons': 0.1.2_svelte@3.52.0 + '@sveltejs/adapter-auto': 1.0.0-next.72 + '@sveltejs/kit': 1.0.0-next.480_svelte@3.52.0+vite@3.2.0 '@types/cookie': 0.5.1 - '@types/node': 18.7.14 - '@typescript-eslint/eslint-plugin': 5.36.1_lbwfnm54o3pmr3ypeqp3btnera - '@typescript-eslint/parser': 5.36.1_yqf6kl63nyoq5megxukfnom5rm - carbon-components-svelte: 0.70.4 - carbon-icons-svelte: 11.2.0 - eslint: 8.23.0 - eslint-config-prettier: 8.5.0_eslint@8.23.0 - eslint-plugin-svelte3: 4.0.0_sfdub7vxhxkt5wmgvhhmmgyu2e + '@types/node': 18.11.7 + '@typescript-eslint/eslint-plugin': 5.41.0_huremdigmcnkianavgfk3x6iou + '@typescript-eslint/parser': 5.41.0_wyqvi574yv7oiwfeinomdzmc3m + carbon-components-svelte: 0.70.12 + carbon-icons-svelte: 11.4.0 + eslint: 8.26.0 + eslint-config-prettier: 8.5.0_eslint@8.26.0 + eslint-plugin-svelte3: 4.0.0_l6ppk7eerpslmlsqymzic46t24 just-debounce-it: 3.1.1 prettier: 2.7.1 - prettier-plugin-svelte: 2.7.0_o3ioganyptcsrh6x4hnxvjkpqi - sass: 1.54.8 - svelte: 3.49.0 - svelte-check: 2.9.0_sass@1.54.8+svelte@3.49.0 - svelte-preprocess: 4.10.7_wvqslddg27v5ozoudw2pkwd4de + prettier-plugin-svelte: 2.8.0_lrllcp5xtrkmmdzifit4hd52ze + sass: 1.55.0 + svelte: 3.52.0 + svelte-check: 2.9.2_sass@1.55.0+svelte@3.52.0 + svelte-preprocess: 4.10.7_q7oepo4r57y5enzswpidbbgzsy tslib: 2.4.0 - typescript: 4.8.2 - vite: 3.1.0-beta.1_sass@1.54.8 + typescript: 4.8.4 + vite: 3.2.0_sass@1.55.0 packages: - /@cloudflare/workers-types/3.15.0: - resolution: {integrity: sha512-meL/Afy5qdIsgfdnlbVfcYUh/YjHk23EWUvgmULf6iDrDbrBcd+fse2os3CC7rxSfScdP1OqJVTHgRSEjUm/Pw==} + /@cloudflare/workers-types/3.16.0: + resolution: {integrity: sha512-gaBUSaKS65mN3iKZEgichbXYEmAa/pXkc5Gbt+1BptYphdGkj09ggdsiE4w8g0F/uI1g36QaTKrzVnBAWMipvQ==} dev: true + /@esbuild/android-arm/0.15.10: + resolution: {integrity: sha512-FNONeQPy/ox+5NBkcSbYJxoXj9GWu8gVGJTVmUyoOCKQFDTrHVKgNSzChdNt0I8Aj/iKcsDf2r9BFwv+FSNUXg==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-loong64/0.14.54: resolution: {integrity: sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==} engines: {node: '>=12'} @@ -85,8 +96,17 @@ packages: dev: true optional: true - /@eslint/eslintrc/1.3.1: - resolution: {integrity: sha512-OhSY22oQQdw3zgPOOwdoj01l/Dzl1Z+xyUP33tkSN+aqyEhymJCcPHyXt+ylW8FSe0TfRC2VG+ROQOapD0aZSQ==} + /@esbuild/linux-loong64/0.15.10: + resolution: {integrity: sha512-w0Ou3Z83LOYEkwaui2M8VwIp+nLi/NA60lBLMvaJ+vXVMcsARYdEzLNE7RSm4+lSg4zq4d7fAVuzk7PNQ5JFgg==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@eslint/eslintrc/1.3.3: + resolution: {integrity: sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 @@ -102,12 +122,12 @@ packages: - supports-color dev: true - /@fontsource/fira-mono/4.5.9: - resolution: {integrity: sha512-DDhkRUjPHwPK/wB7GM/7LzGkcEC5JyTZM93YnFoP2Qfjffq3qX1asnXNqfglgZxXHXVmu3RI8OjRf87I97XCfA==} + /@fontsource/fira-mono/4.5.10: + resolution: {integrity: sha512-bxUnRP8xptGRo8YXeY073DSpfK74XpSb0ZyRNpHV9WvLnJ7TwPOjZll8hTMin7zLC6iOp59pDZ8EQDj1gzgAQQ==} dev: false - /@humanwhocodes/config-array/0.10.4: - resolution: {integrity: sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw==} + /@humanwhocodes/config-array/0.11.6: + resolution: {integrity: sha512-jJr+hPTJYKyDILJfhNSHsjiwXYf26Flsz8DvNndOsHs5pwSnpGUEy8yzF0JYhCEvTDdV2vuOK5tt8BVhwO5/hg==} engines: {node: '>=10.10.0'} dependencies: '@humanwhocodes/object-schema': 1.2.1 @@ -117,10 +137,6 @@ packages: - supports-color dev: true - /@humanwhocodes/gitignore-to-minimatch/1.0.2: - resolution: {integrity: sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==} - dev: true - /@humanwhocodes/module-importer/1.0.1: resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} engines: {node: '>=12.22'} @@ -172,8 +188,8 @@ packages: '@lukeed/csprng': 1.0.1 dev: false - /@mapbox/node-pre-gyp/1.0.9: - resolution: {integrity: sha512-aDF3S3rK9Q2gey/WAttUlISduDItz5BU3306M9Eyv6/oS40aMprnopshtlKTykxRNIBEZuRMaZAnbrQ4QtKGyw==} + /@mapbox/node-pre-gyp/1.0.10: + resolution: {integrity: sha512-4ySo4CjzStuprMwk35H5pPbkymjv1SF3jGLj6rAHp/xT/RF7TL7bd9CTm1xDY49K2qF7jmR/g7k+SkLETP6opA==} hasBin: true dependencies: detect-libc: 2.0.1 @@ -183,7 +199,7 @@ packages: nopt: 5.0.0 npmlog: 5.0.1 rimraf: 3.0.2 - semver: 7.3.7 + semver: 7.3.8 tar: 6.1.11 transitivePeerDependencies: - encoding @@ -211,33 +227,33 @@ packages: fastq: 1.13.0 dev: true - /@playwright/test/1.25.1: - resolution: {integrity: sha512-IJ4X0yOakXtwkhbnNzKkaIgXe6df7u3H3FnuhI9Jqh+CdO0e/lYQlDLYiyI9cnXK8E7UAppAWP+VqAv6VX7HQg==} + /@playwright/test/1.27.1: + resolution: {integrity: sha512-mrL2q0an/7tVqniQQF6RBL2saskjljXzqNcCOVMUjRIgE6Y38nCNaP+Dc2FBW06bcpD3tqIws/HT9qiMHbNU0A==} engines: {node: '>=14'} hasBin: true dependencies: - '@types/node': 18.7.14 - playwright-core: 1.25.1 + '@types/node': 18.11.7 + playwright-core: 1.27.1 dev: true /@polka/url/1.0.0-next.21: resolution: {integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==} dev: true - /@rgossiaux/svelte-headlessui/1.0.2_svelte@3.49.0: + /@rgossiaux/svelte-headlessui/1.0.2_svelte@3.52.0: resolution: {integrity: sha512-sauopYTSivhzXe1kAvgawkhyYJcQlK8Li3p0d2OtcCIVprOzdbard5lbqWB4xHDv83zAobt2mR08oizO2poHLQ==} peerDependencies: svelte: ^3.44.0 dependencies: - svelte: 3.49.0 + svelte: 3.52.0 dev: true - /@rgossiaux/svelte-heroicons/0.1.2_svelte@3.49.0: + /@rgossiaux/svelte-heroicons/0.1.2_svelte@3.52.0: resolution: {integrity: sha512-c5Ep1QDvBo9HD/P0AxbXItDbn6x77fldCjjL0aBjNseUntV4fkdHkBde1IaLr8i0kmrhTSovjkIen8W83jUPzg==} peerDependencies: svelte: ^3.44.0 dependencies: - svelte: 3.49.0 + svelte: 3.52.0 dev: true /@rollup/pluginutils/4.2.1: @@ -248,12 +264,12 @@ packages: picomatch: 2.3.1 dev: true - /@sveltejs/adapter-auto/1.0.0-next.71: - resolution: {integrity: sha512-Qsl82HcehWJbZztXgmU/nTPDeeIaB4jrOQpSvy3Pi8octs+rEf/CO87Wk06EP+M/zUzEHDNENMOx0DgWuHpj7Q==} + /@sveltejs/adapter-auto/1.0.0-next.72: + resolution: {integrity: sha512-SisfQ6adHkkmm6ANVq9V9hemowl9mSVQd+XoNDAhjgf1DtCdJEgpkdJDZ7xq7RB0lsTZTSiAp7c/LlV4lCSTMA==} dependencies: '@sveltejs/adapter-cloudflare': 1.0.0-next.32 '@sveltejs/adapter-netlify': 1.0.0-next.76 - '@sveltejs/adapter-vercel': 1.0.0-next.72 + '@sveltejs/adapter-vercel': 1.0.0-next.73 transitivePeerDependencies: - encoding - supports-color @@ -262,7 +278,7 @@ packages: /@sveltejs/adapter-cloudflare/1.0.0-next.32: resolution: {integrity: sha512-tzkUsdQlBk9xUjcGUOBYos4HKaeaXvz9v4TQ1QS2yIHEtL5xvMEDPZ94/DB2gPL4LZCnYbdY2lsy5HCsoN0hkQ==} dependencies: - '@cloudflare/workers-types': 3.15.0 + '@cloudflare/workers-types': 3.16.0 esbuild: 0.14.54 worktop: 0.8.0-next.14 dev: true @@ -276,28 +292,28 @@ packages: tiny-glob: 0.2.9 dev: true - /@sveltejs/adapter-vercel/1.0.0-next.72: - resolution: {integrity: sha512-oNs8FQaYC2NnwDcvX/jc9MDNqXc9HxwGPQNkd+1vBpFVWZl9mShQgCcOMzfTOIH0ka984jYNa0ZawYYHex79xg==} + /@sveltejs/adapter-vercel/1.0.0-next.73: + resolution: {integrity: sha512-wYm80tDSkwa9YfXHCHqMFMHmGYsQjVWj2oLbQdijQ2k8dnQPq908Pla3IES1cLwtT+fIMbZyh3Xly7mt06FwJg==} dependencies: - '@vercel/nft': 0.22.0 + '@vercel/nft': 0.22.1 esbuild: 0.14.54 transitivePeerDependencies: - encoding - supports-color dev: true - /@sveltejs/kit/1.0.0-next.461_fhgkwirxvgjw2igda6zmhiisma: - resolution: {integrity: sha512-REe/ZIjE9F6ndEtCn4oPXpGWjiyLtOVWKJ73q53I3zxxoohL8OG6Zy0tnrdSvQj0nOBFTyQ4QXeYFn4TAO5oSw==} + /@sveltejs/kit/1.0.0-next.480_svelte@3.52.0+vite@3.2.0: + resolution: {integrity: sha512-RnltVDZFksAkeIZ0wgMQDr4POz3WZxSDy6D/ycIjrz3VXMDYWxKRqmTEI7Yl7TxPgUabeYHGRm/qI+nSXOb/Yw==} engines: {node: '>=16.14'} hasBin: true requiresBuild: true peerDependencies: svelte: ^3.44.0 - vite: ^3.1.0-beta.1 + vite: ^3.1.0 dependencies: - '@sveltejs/vite-plugin-svelte': 1.0.3_fhgkwirxvgjw2igda6zmhiisma + '@sveltejs/vite-plugin-svelte': 1.0.5_svelte@3.52.0+vite@3.2.0 cookie: 0.5.0 - devalue: 3.1.2 + devalue: 3.1.3 kleur: 4.1.5 magic-string: 0.26.3 mime: 3.0.0 @@ -305,17 +321,17 @@ packages: sade: 1.8.1 set-cookie-parser: 2.5.1 sirv: 2.0.2 - svelte: 3.49.0 + svelte: 3.52.0 tiny-glob: 0.2.9 undici: 5.10.0 - vite: 3.1.0-beta.1_sass@1.54.8 + vite: 3.2.0_sass@1.55.0 transitivePeerDependencies: - diff-match-patch - supports-color dev: true - /@sveltejs/vite-plugin-svelte/1.0.3_fhgkwirxvgjw2igda6zmhiisma: - resolution: {integrity: sha512-0Qu51m2W9RBlxWPp8i31KJpnqmjWMOne8vAzgmOX6ZM9uX+/RAv6BNhEMcNoP5MsyLjyW1ZTCiJoaZZ5EeqpFg==} + /@sveltejs/vite-plugin-svelte/1.0.5_svelte@3.52.0+vite@3.2.0: + resolution: {integrity: sha512-CmSdSow0Dr5ua1A11BQMtreWnE0JZmkVIcRU/yG3PKbycKUpXjNdgYTWFSbStLB0vdlGnBbm2+Y4sBVj+C+TIw==} engines: {node: ^14.18.0 || >= 16} peerDependencies: diff-match-patch: ^1.0.5 @@ -330,9 +346,9 @@ packages: deepmerge: 4.2.2 kleur: 4.1.5 magic-string: 0.26.3 - svelte: 3.49.0 - svelte-hmr: 0.14.12_svelte@3.49.0 - vite: 3.1.0-beta.1_sass@1.54.8 + svelte: 3.52.0 + svelte-hmr: 0.14.12_svelte@3.52.0 + vite: 3.2.0_sass@1.55.0 transitivePeerDependencies: - supports-color dev: true @@ -349,8 +365,8 @@ packages: resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==} dev: true - /@types/node/18.7.14: - resolution: {integrity: sha512-6bbDaETVi8oyIARulOE9qF1/Qdi/23z6emrUh0fNJRUmjznqrixD4MpGDdgOFk5Xb0m2H6Xu42JGdvAxaJR/wA==} + /@types/node/18.11.7: + resolution: {integrity: sha512-LhFTglglr63mNXUSRYD8A+ZAIu5sFqNJ4Y2fPuY7UlrySJH87rRRlhtVmMHplmfk5WkoJGmDjE9oiTfyX94CpQ==} dev: true /@types/pug/2.0.6: @@ -360,11 +376,15 @@ packages: /@types/sass/1.43.1: resolution: {integrity: sha512-BPdoIt1lfJ6B7rw35ncdwBZrAssjcwzI5LByIrYs+tpXlj/CAkuVdRsgZDdP4lq5EjyWzwxZCqAoFyHKFwp32g==} dependencies: - '@types/node': 18.7.14 + '@types/node': 18.11.7 dev: true - /@typescript-eslint/eslint-plugin/5.36.1_lbwfnm54o3pmr3ypeqp3btnera: - resolution: {integrity: sha512-iC40UK8q1tMepSDwiLbTbMXKDxzNy+4TfPWgIL661Ym0sD42vRcQU93IsZIrmi+x292DBr60UI/gSwfdVYexCA==} + /@types/semver/7.3.12: + resolution: {integrity: sha512-WwA1MW0++RfXmCr12xeYOOC5baSC9mSb0ZqCquFzKhcoF4TvHu5MKOuXsncgZcpVFhB1pXd5hZmM0ryAoCp12A==} + dev: true + + /@typescript-eslint/eslint-plugin/5.41.0_huremdigmcnkianavgfk3x6iou: + resolution: {integrity: sha512-DXUS22Y57/LAFSg3x7Vi6RNAuLpTXwxB9S2nIA7msBb/Zt8p7XqMwdpdc1IU7CkOQUPgAqR5fWvxuKCbneKGmA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: '@typescript-eslint/parser': ^5.0.0 @@ -374,24 +394,23 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/parser': 5.36.1_yqf6kl63nyoq5megxukfnom5rm - '@typescript-eslint/scope-manager': 5.36.1 - '@typescript-eslint/type-utils': 5.36.1_yqf6kl63nyoq5megxukfnom5rm - '@typescript-eslint/utils': 5.36.1_yqf6kl63nyoq5megxukfnom5rm + '@typescript-eslint/parser': 5.41.0_wyqvi574yv7oiwfeinomdzmc3m + '@typescript-eslint/scope-manager': 5.41.0 + '@typescript-eslint/type-utils': 5.41.0_wyqvi574yv7oiwfeinomdzmc3m + '@typescript-eslint/utils': 5.41.0_wyqvi574yv7oiwfeinomdzmc3m debug: 4.3.4 - eslint: 8.23.0 - functional-red-black-tree: 1.0.1 + eslint: 8.26.0 ignore: 5.2.0 regexpp: 3.2.0 semver: 7.3.7 - tsutils: 3.21.0_typescript@4.8.2 - typescript: 4.8.2 + tsutils: 3.21.0_typescript@4.8.4 + typescript: 4.8.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser/5.36.1_yqf6kl63nyoq5megxukfnom5rm: - resolution: {integrity: sha512-/IsgNGOkBi7CuDfUbwt1eOqUXF9WGVBW9dwEe1pi+L32XrTsZIgmDFIi2RxjzsvB/8i+MIf5JIoTEH8LOZ368A==} + /@typescript-eslint/parser/5.41.0_wyqvi574yv7oiwfeinomdzmc3m: + resolution: {integrity: sha512-HQVfix4+RL5YRWZboMD1pUfFN8MpRH4laziWkkAzyO1fvNOY/uinZcvo3QiFJVS/siNHupV8E5+xSwQZrl6PZA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -400,26 +419,26 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 5.36.1 - '@typescript-eslint/types': 5.36.1 - '@typescript-eslint/typescript-estree': 5.36.1_typescript@4.8.2 + '@typescript-eslint/scope-manager': 5.41.0 + '@typescript-eslint/types': 5.41.0 + '@typescript-eslint/typescript-estree': 5.41.0_typescript@4.8.4 debug: 4.3.4 - eslint: 8.23.0 - typescript: 4.8.2 + eslint: 8.26.0 + typescript: 4.8.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/scope-manager/5.36.1: - resolution: {integrity: sha512-pGC2SH3/tXdu9IH3ItoqciD3f3RRGCh7hb9zPdN2Drsr341zgd6VbhP5OHQO/reUqihNltfPpMpTNihFMarP2w==} + /@typescript-eslint/scope-manager/5.41.0: + resolution: {integrity: sha512-xOxPJCnuktUkY2xoEZBKXO5DBCugFzjrVndKdUnyQr3+9aDWZReKq9MhaoVnbL+maVwWJu/N0SEtrtEUNb62QQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.36.1 - '@typescript-eslint/visitor-keys': 5.36.1 + '@typescript-eslint/types': 5.41.0 + '@typescript-eslint/visitor-keys': 5.41.0 dev: true - /@typescript-eslint/type-utils/5.36.1_yqf6kl63nyoq5megxukfnom5rm: - resolution: {integrity: sha512-xfZhfmoQT6m3lmlqDvDzv9TiCYdw22cdj06xY0obSznBsT///GK5IEZQdGliXpAOaRL34o8phEvXzEo/VJx13Q==} + /@typescript-eslint/type-utils/5.41.0_wyqvi574yv7oiwfeinomdzmc3m: + resolution: {integrity: sha512-L30HNvIG6A1Q0R58e4hu4h+fZqaO909UcnnPbwKiN6Rc3BUEx6ez2wgN7aC0cBfcAjZfwkzE+E2PQQ9nEuoqfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '*' @@ -428,23 +447,23 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 5.36.1_typescript@4.8.2 - '@typescript-eslint/utils': 5.36.1_yqf6kl63nyoq5megxukfnom5rm + '@typescript-eslint/typescript-estree': 5.41.0_typescript@4.8.4 + '@typescript-eslint/utils': 5.41.0_wyqvi574yv7oiwfeinomdzmc3m debug: 4.3.4 - eslint: 8.23.0 - tsutils: 3.21.0_typescript@4.8.2 - typescript: 4.8.2 + eslint: 8.26.0 + tsutils: 3.21.0_typescript@4.8.4 + typescript: 4.8.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/types/5.36.1: - resolution: {integrity: sha512-jd93ShpsIk1KgBTx9E+hCSEuLCUFwi9V/urhjOWnOaksGZFbTOxAT47OH2d4NLJnLhkVD+wDbB48BuaycZPLBg==} + /@typescript-eslint/types/5.41.0: + resolution: {integrity: sha512-5BejraMXMC+2UjefDvrH0Fo/eLwZRV6859SXRg+FgbhA0R0l6lDqDGAQYhKbXhPN2ofk2kY5sgGyLNL907UXpA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/typescript-estree/5.36.1_typescript@4.8.2: - resolution: {integrity: sha512-ih7V52zvHdiX6WcPjsOdmADhYMDN15SylWRZrT2OMy80wzKbc79n8wFW0xpWpU0x3VpBz/oDgTm2xwDAnFTl+g==} + /@typescript-eslint/typescript-estree/5.41.0_typescript@4.8.4: + resolution: {integrity: sha512-SlzFYRwFSvswzDSQ/zPkIWcHv8O5y42YUskko9c4ki+fV6HATsTODUPbRbcGDFYP86gaJL5xohUEytvyNNcXWg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: typescript: '*' @@ -452,49 +471,51 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 5.36.1 - '@typescript-eslint/visitor-keys': 5.36.1 + '@typescript-eslint/types': 5.41.0 + '@typescript-eslint/visitor-keys': 5.41.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 - semver: 7.3.7 - tsutils: 3.21.0_typescript@4.8.2 - typescript: 4.8.2 + semver: 7.3.8 + tsutils: 3.21.0_typescript@4.8.4 + typescript: 4.8.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils/5.36.1_yqf6kl63nyoq5megxukfnom5rm: - resolution: {integrity: sha512-lNj4FtTiXm5c+u0pUehozaUWhh7UYKnwryku0nxJlYUEWetyG92uw2pr+2Iy4M/u0ONMKzfrx7AsGBTCzORmIg==} + /@typescript-eslint/utils/5.41.0_wyqvi574yv7oiwfeinomdzmc3m: + resolution: {integrity: sha512-QlvfwaN9jaMga9EBazQ+5DDx/4sAdqDkcs05AsQHMaopluVCUyu1bTRUVKzXbgjDlrRAQrYVoi/sXJ9fmG+KLQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: '@types/json-schema': 7.0.11 - '@typescript-eslint/scope-manager': 5.36.1 - '@typescript-eslint/types': 5.36.1 - '@typescript-eslint/typescript-estree': 5.36.1_typescript@4.8.2 - eslint: 8.23.0 + '@types/semver': 7.3.12 + '@typescript-eslint/scope-manager': 5.41.0 + '@typescript-eslint/types': 5.41.0 + '@typescript-eslint/typescript-estree': 5.41.0_typescript@4.8.4 + eslint: 8.26.0 eslint-scope: 5.1.1 - eslint-utils: 3.0.0_eslint@8.23.0 + eslint-utils: 3.0.0_eslint@8.26.0 + semver: 7.3.7 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/visitor-keys/5.36.1: - resolution: {integrity: sha512-ojB9aRyRFzVMN3b5joSYni6FAS10BBSCAfKJhjJAV08t/a95aM6tAhz+O1jF+EtgxktuSO3wJysp2R+Def/IWQ==} + /@typescript-eslint/visitor-keys/5.41.0: + resolution: {integrity: sha512-vilqeHj267v8uzzakbm13HkPMl7cbYpKVjgFWZPIOHIJHZtinvypUhJ5xBXfWYg4eFKqztbMMpOgFpT9Gfx4fw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.36.1 + '@typescript-eslint/types': 5.41.0 eslint-visitor-keys: 3.3.0 dev: true - /@vercel/nft/0.22.0: - resolution: {integrity: sha512-hB80/093PPiCefN2gVbqv6J93MH+63Zr7uDCwkiS/U4W07DXkLoftbnkBmZoS0Q84LiTSl9DRVSHU4XYCX+sJA==} + /@vercel/nft/0.22.1: + resolution: {integrity: sha512-lYYZIoxRurqDOSoVIdBicGnpUIpfyaS5qVjdPq+EfI285WqtZK3NK/dyCkiyBul+X2U2OEhRyeMdXPCHGJbohw==} hasBin: true dependencies: - '@mapbox/node-pre-gyp': 1.0.9 + '@mapbox/node-pre-gyp': 1.0.10 acorn: 8.8.0 async-sema: 3.1.1 bindings: 1.5.0 @@ -629,14 +650,14 @@ packages: engines: {node: '>=6'} dev: true - /carbon-components-svelte/0.70.4: - resolution: {integrity: sha512-XLvGi5lFv1JqcOuUxo02rSIWyT4UVkaHtzqZVHgwM+Gbs86expe3SA2FqE4FzungASoERBr8CaQG5UuoF2aD9w==} + /carbon-components-svelte/0.70.12: + resolution: {integrity: sha512-CSVXWr53kSP/6ITaLxcCd/7rZStM3Mgl1tXedlwgvkViqDgCexWzSsK1u2RoSptmqL5IggUehabcETD6tm5EFg==} dependencies: flatpickr: 4.6.9 dev: true - /carbon-icons-svelte/11.2.0: - resolution: {integrity: sha512-nbqCEKoZA5EzT2Lr8vNYnfWcDl5GnFFLnbD861U32g9cNe7D7nmQKx4T+goFp5AoY60OyAgKUNJov8LwNEkhbg==} + /carbon-icons-svelte/11.4.0: + resolution: {integrity: sha512-p/llZde2kP2BI9SOqM+QFKGfQnYrW+4dVxF1rAYriEADXDsjt9EYlh+KpQ5qf4JpXAq+e2+TB/r/lIG1xdUbAQ==} dev: true /chalk/4.1.2: @@ -753,8 +774,8 @@ packages: engines: {node: '>=8'} dev: true - /devalue/3.1.2: - resolution: {integrity: sha512-wUXbMGPAsBx79UF14nsWSsJlC7RcwPlf2w3bGheODWxKx57e9n68ceoijbqCJCEbjyo0S79nqfPwQgyijwLaqw==} + /devalue/3.1.3: + resolution: {integrity: sha512-9KO89Cb+qjzf2CqdrH+NuLaqdk9GhDP5EhR4zlkR51dvuIaiqtlkDkGzLMShDemwUy21raSMdu+kpX8Enw3yGQ==} dev: true /dir-glob/3.0.1: @@ -788,6 +809,15 @@ packages: dev: true optional: true + /esbuild-android-64/0.15.10: + resolution: {integrity: sha512-UI7krF8OYO1N7JYTgLT9ML5j4+45ra3amLZKx7LO3lmLt1Ibn8t3aZbX5Pu4BjWiqDuJ3m/hsvhPhK/5Y/YpnA==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + /esbuild-android-arm64/0.14.54: resolution: {integrity: sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg==} engines: {node: '>=12'} @@ -797,6 +827,15 @@ packages: dev: true optional: true + /esbuild-android-arm64/0.15.10: + resolution: {integrity: sha512-EOt55D6xBk5O05AK8brXUbZmoFj4chM8u3riGflLa6ziEoVvNjRdD7Cnp82NHQGfSHgYR06XsPI8/sMuA/cUwg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + /esbuild-darwin-64/0.14.54: resolution: {integrity: sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug==} engines: {node: '>=12'} @@ -806,6 +845,15 @@ packages: dev: true optional: true + /esbuild-darwin-64/0.15.10: + resolution: {integrity: sha512-hbDJugTicqIm+WKZgp208d7FcXcaK8j2c0l+fqSJ3d2AzQAfjEYDRM3Z2oMeqSJ9uFxyj/muSACLdix7oTstRA==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + /esbuild-darwin-arm64/0.14.54: resolution: {integrity: sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw==} engines: {node: '>=12'} @@ -815,6 +863,15 @@ packages: dev: true optional: true + /esbuild-darwin-arm64/0.15.10: + resolution: {integrity: sha512-M1t5+Kj4IgSbYmunf2BB6EKLkWUq+XlqaFRiGOk8bmBapu9bCDrxjf4kUnWn59Dka3I27EiuHBKd1rSO4osLFQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + /esbuild-freebsd-64/0.14.54: resolution: {integrity: sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg==} engines: {node: '>=12'} @@ -824,6 +881,15 @@ packages: dev: true optional: true + /esbuild-freebsd-64/0.15.10: + resolution: {integrity: sha512-KMBFMa7C8oc97nqDdoZwtDBX7gfpolkk6Bcmj6YFMrtCMVgoU/x2DI1p74DmYl7CSS6Ppa3xgemrLrr5IjIn0w==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + /esbuild-freebsd-arm64/0.14.54: resolution: {integrity: sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q==} engines: {node: '>=12'} @@ -833,6 +899,15 @@ packages: dev: true optional: true + /esbuild-freebsd-arm64/0.15.10: + resolution: {integrity: sha512-m2KNbuCX13yQqLlbSojFMHpewbn8wW5uDS6DxRpmaZKzyq8Dbsku6hHvh2U+BcLwWY4mpgXzFUoENEf7IcioGg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + /esbuild-linux-32/0.14.54: resolution: {integrity: sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw==} engines: {node: '>=12'} @@ -842,6 +917,15 @@ packages: dev: true optional: true + /esbuild-linux-32/0.15.10: + resolution: {integrity: sha512-guXrwSYFAvNkuQ39FNeV4sNkNms1bLlA5vF1H0cazZBOLdLFIny6BhT+TUbK/hdByMQhtWQ5jI9VAmPKbVPu1w==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + /esbuild-linux-64/0.14.54: resolution: {integrity: sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg==} engines: {node: '>=12'} @@ -851,6 +935,15 @@ packages: dev: true optional: true + /esbuild-linux-64/0.15.10: + resolution: {integrity: sha512-jd8XfaSJeucMpD63YNMO1JCrdJhckHWcMv6O233bL4l6ogQKQOxBYSRP/XLWP+6kVTu0obXovuckJDcA0DKtQA==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /esbuild-linux-arm/0.14.54: resolution: {integrity: sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw==} engines: {node: '>=12'} @@ -860,6 +953,15 @@ packages: dev: true optional: true + /esbuild-linux-arm/0.15.10: + resolution: {integrity: sha512-6N8vThLL/Lysy9y4Ex8XoLQAlbZKUyExCWyayGi2KgTBelKpPgj6RZnUaKri0dHNPGgReJriKVU6+KDGQwn10A==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + /esbuild-linux-arm64/0.14.54: resolution: {integrity: sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig==} engines: {node: '>=12'} @@ -869,6 +971,15 @@ packages: dev: true optional: true + /esbuild-linux-arm64/0.15.10: + resolution: {integrity: sha512-GByBi4fgkvZFTHFDYNftu1DQ1GzR23jws0oWyCfhnI7eMOe+wgwWrc78dbNk709Ivdr/evefm2PJiUBMiusS1A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /esbuild-linux-mips64le/0.14.54: resolution: {integrity: sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw==} engines: {node: '>=12'} @@ -878,6 +989,15 @@ packages: dev: true optional: true + /esbuild-linux-mips64le/0.15.10: + resolution: {integrity: sha512-BxP+LbaGVGIdQNJUNF7qpYjEGWb0YyHVSKqYKrn+pTwH/SiHUxFyJYSP3pqkku61olQiSBnSmWZ+YUpj78Tw7Q==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + /esbuild-linux-ppc64le/0.14.54: resolution: {integrity: sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ==} engines: {node: '>=12'} @@ -887,6 +1007,15 @@ packages: dev: true optional: true + /esbuild-linux-ppc64le/0.15.10: + resolution: {integrity: sha512-LoSQCd6498PmninNgqd/BR7z3Bsk/mabImBWuQ4wQgmQEeanzWd5BQU2aNi9mBURCLgyheuZS6Xhrw5luw3OkQ==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /esbuild-linux-riscv64/0.14.54: resolution: {integrity: sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg==} engines: {node: '>=12'} @@ -896,6 +1025,15 @@ packages: dev: true optional: true + /esbuild-linux-riscv64/0.15.10: + resolution: {integrity: sha512-Lrl9Cr2YROvPV4wmZ1/g48httE8z/5SCiXIyebiB5N8VT7pX3t6meI7TQVHw/wQpqP/AF4SksDuFImPTM7Z32Q==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /esbuild-linux-s390x/0.14.54: resolution: {integrity: sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA==} engines: {node: '>=12'} @@ -905,6 +1043,15 @@ packages: dev: true optional: true + /esbuild-linux-s390x/0.15.10: + resolution: {integrity: sha512-ReP+6q3eLVVP2lpRrvl5EodKX7EZ1bS1/z5j6hsluAlZP5aHhk6ghT6Cq3IANvvDdscMMCB4QEbI+AjtvoOFpA==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + /esbuild-netbsd-64/0.14.54: resolution: {integrity: sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w==} engines: {node: '>=12'} @@ -914,6 +1061,15 @@ packages: dev: true optional: true + /esbuild-netbsd-64/0.15.10: + resolution: {integrity: sha512-iGDYtJCMCqldMskQ4eIV+QSS/CuT7xyy9i2/FjpKvxAuCzrESZXiA1L64YNj6/afuzfBe9i8m/uDkFHy257hTw==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + /esbuild-openbsd-64/0.14.54: resolution: {integrity: sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw==} engines: {node: '>=12'} @@ -923,6 +1079,15 @@ packages: dev: true optional: true + /esbuild-openbsd-64/0.15.10: + resolution: {integrity: sha512-ftMMIwHWrnrYnvuJQRJs/Smlcb28F9ICGde/P3FUTCgDDM0N7WA0o9uOR38f5Xe2/OhNCgkjNeb7QeaE3cyWkQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + /esbuild-sunos-64/0.14.54: resolution: {integrity: sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw==} engines: {node: '>=12'} @@ -932,6 +1097,15 @@ packages: dev: true optional: true + /esbuild-sunos-64/0.15.10: + resolution: {integrity: sha512-mf7hBL9Uo2gcy2r3rUFMjVpTaGpFJJE5QTDDqUFf1632FxteYANffDZmKbqX0PfeQ2XjUDE604IcE7OJeoHiyg==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + /esbuild-windows-32/0.14.54: resolution: {integrity: sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w==} engines: {node: '>=12'} @@ -941,6 +1115,15 @@ packages: dev: true optional: true + /esbuild-windows-32/0.15.10: + resolution: {integrity: sha512-ttFVo+Cg8b5+qHmZHbEc8Vl17kCleHhLzgT8X04y8zudEApo0PxPg9Mz8Z2cKH1bCYlve1XL8LkyXGFjtUYeGg==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + /esbuild-windows-64/0.14.54: resolution: {integrity: sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ==} engines: {node: '>=12'} @@ -950,6 +1133,15 @@ packages: dev: true optional: true + /esbuild-windows-64/0.15.10: + resolution: {integrity: sha512-2H0gdsyHi5x+8lbng3hLbxDWR7mKHWh5BXZGKVG830KUmXOOWFE2YKJ4tHRkejRduOGDrBvHBriYsGtmTv3ntA==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + /esbuild-windows-arm64/0.14.54: resolution: {integrity: sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg==} engines: {node: '>=12'} @@ -959,6 +1151,15 @@ packages: dev: true optional: true + /esbuild-windows-arm64/0.15.10: + resolution: {integrity: sha512-S+th4F+F8VLsHLR0zrUcG+Et4hx0RKgK1eyHc08kztmLOES8BWwMiaGdoW9hiXuzznXQ0I/Fg904MNbr11Nktw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + /esbuild/0.14.54: resolution: {integrity: sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA==} engines: {node: '>=12'} @@ -988,28 +1189,58 @@ packages: esbuild-windows-arm64: 0.14.54 dev: true + /esbuild/0.15.10: + resolution: {integrity: sha512-N7wBhfJ/E5fzn/SpNgX+oW2RLRjwaL8Y0ezqNqhjD6w0H2p0rDuEz2FKZqpqLnO8DCaWumKe8dsC/ljvVSSxng==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': 0.15.10 + '@esbuild/linux-loong64': 0.15.10 + esbuild-android-64: 0.15.10 + esbuild-android-arm64: 0.15.10 + esbuild-darwin-64: 0.15.10 + esbuild-darwin-arm64: 0.15.10 + esbuild-freebsd-64: 0.15.10 + esbuild-freebsd-arm64: 0.15.10 + esbuild-linux-32: 0.15.10 + esbuild-linux-64: 0.15.10 + esbuild-linux-arm: 0.15.10 + esbuild-linux-arm64: 0.15.10 + esbuild-linux-mips64le: 0.15.10 + esbuild-linux-ppc64le: 0.15.10 + esbuild-linux-riscv64: 0.15.10 + esbuild-linux-s390x: 0.15.10 + esbuild-netbsd-64: 0.15.10 + esbuild-openbsd-64: 0.15.10 + esbuild-sunos-64: 0.15.10 + esbuild-windows-32: 0.15.10 + esbuild-windows-64: 0.15.10 + esbuild-windows-arm64: 0.15.10 + dev: true + /escape-string-regexp/4.0.0: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} dev: true - /eslint-config-prettier/8.5.0_eslint@8.23.0: + /eslint-config-prettier/8.5.0_eslint@8.26.0: resolution: {integrity: sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.23.0 + eslint: 8.26.0 dev: true - /eslint-plugin-svelte3/4.0.0_sfdub7vxhxkt5wmgvhhmmgyu2e: + /eslint-plugin-svelte3/4.0.0_l6ppk7eerpslmlsqymzic46t24: resolution: {integrity: sha512-OIx9lgaNzD02+MDFNLw0GEUbuovNcglg+wnd/UY0fbZmlQSz7GlQiQ1f+yX0XvC07XPcDOnFcichqI3xCwp71g==} peerDependencies: eslint: '>=8.0.0' svelte: ^3.2.0 dependencies: - eslint: 8.23.0 - svelte: 3.49.0 + eslint: 8.26.0 + svelte: 3.52.0 dev: true /eslint-scope/5.1.1: @@ -1028,13 +1259,13 @@ packages: estraverse: 5.3.0 dev: true - /eslint-utils/3.0.0_eslint@8.23.0: + /eslint-utils/3.0.0_eslint@8.26.0: resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} peerDependencies: eslint: '>=5' dependencies: - eslint: 8.23.0 + eslint: 8.26.0 eslint-visitor-keys: 2.1.0 dev: true @@ -1048,15 +1279,15 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint/8.23.0: - resolution: {integrity: sha512-pBG/XOn0MsJcKcTRLr27S5HpzQo4kLr+HjLQIyK4EiCsijDl/TB+h5uEuJU6bQ8Edvwz1XWOjpaP2qgnXGpTcA==} + /eslint/8.26.0: + resolution: {integrity: sha512-kzJkpaw1Bfwheq4VXUezFriD1GxszX6dUekM7Z3aC2o4hju+tsR/XyTC3RcoSD7jmy9VkPU3+N6YjVU2e96Oyg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint/eslintrc': 1.3.1 - '@humanwhocodes/config-array': 0.10.4 - '@humanwhocodes/gitignore-to-minimatch': 1.0.2 + '@eslint/eslintrc': 1.3.3 + '@humanwhocodes/config-array': 0.11.6 '@humanwhocodes/module-importer': 1.0.1 + '@nodelib/fs.walk': 1.2.8 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 @@ -1064,7 +1295,7 @@ packages: doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.1.1 - eslint-utils: 3.0.0_eslint@8.23.0 + eslint-utils: 3.0.0_eslint@8.26.0 eslint-visitor-keys: 3.3.0 espree: 9.4.0 esquery: 1.4.0 @@ -1072,15 +1303,15 @@ packages: fast-deep-equal: 3.1.3 file-entry-cache: 6.0.1 find-up: 5.0.0 - functional-red-black-tree: 1.0.1 glob-parent: 6.0.2 globals: 13.17.0 - globby: 11.1.0 grapheme-splitter: 1.0.4 ignore: 5.2.0 import-fresh: 3.3.0 imurmurhash: 0.1.4 is-glob: 4.0.3 + is-path-inside: 3.0.3 + js-sdsl: 4.1.4 js-yaml: 4.1.0 json-stable-stringify-without-jsonify: 1.0.1 levn: 0.4.1 @@ -1157,6 +1388,17 @@ packages: micromatch: 4.0.5 dev: true + /fast-glob/3.2.12: + resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} + engines: {node: '>=8.6.0'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.5 + dev: true + /fast-json-stable-stringify/2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} dev: true @@ -1258,10 +1500,6 @@ packages: resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} dev: true - /functional-red-black-tree/1.0.1: - resolution: {integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==} - dev: true - /gauge/3.0.2: resolution: {integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==} engines: {node: '>=10'} @@ -1319,7 +1557,7 @@ packages: dependencies: array-union: 2.1.0 dir-glob: 3.0.1 - fast-glob: 3.2.11 + fast-glob: 3.2.12 ignore: 5.2.0 merge2: 1.4.1 slash: 3.0.0 @@ -1431,10 +1669,19 @@ packages: 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 + /isexe/2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} dev: true + /js-sdsl/4.1.4: + resolution: {integrity: sha512-Y2/yD55y5jteOAmY50JbUZYwk3CP3wnLPEZnlR1w9oKhITrBEtAxwuWKebFf8hMrPMgbYwFoWK/lH2sBkErELw==} + dev: true + /js-yaml/4.1.0: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true @@ -1725,14 +1972,14 @@ packages: engines: {node: '>=8.6'} dev: true - /playwright-core/1.25.1: - resolution: {integrity: sha512-lSvPCmA2n7LawD2Hw7gSCLScZ+vYRkhU8xH0AapMyzwN+ojoDqhkH/KIEUxwNu2PjPoE/fcE0wLAksdOhJ2O5g==} + /playwright-core/1.27.1: + resolution: {integrity: sha512-9EmeXDncC2Pmp/z+teoVYlvmPWUC6ejSSYZUln7YaP89Z6lpAaiaAnqroUt/BoLo8tn7WYShcfaCh+xofZa44Q==} engines: {node: '>=14'} hasBin: true dev: true - /postcss/8.4.16: - resolution: {integrity: sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==} + /postcss/8.4.18: + resolution: {integrity: sha512-Wi8mWhncLJm11GATDaQKobXSNEYGUHeQLiQqDFG1qQ5UTDPTEvKw0Xt5NsTpktGTwLps3ByrWsBrG0rB8YQ9oA==} engines: {node: ^10 || ^12 || >=14} dependencies: nanoid: 3.3.4 @@ -1745,14 +1992,14 @@ packages: engines: {node: '>= 0.8.0'} dev: true - /prettier-plugin-svelte/2.7.0_o3ioganyptcsrh6x4hnxvjkpqi: - resolution: {integrity: sha512-fQhhZICprZot2IqEyoiUYLTRdumULGRvw0o4dzl5jt0jfzVWdGqeYW27QTWAeXhoupEZJULmNoH3ueJwUWFLIA==} + /prettier-plugin-svelte/2.8.0_lrllcp5xtrkmmdzifit4hd52ze: + resolution: {integrity: sha512-QlXv/U3bUszks3XYDPsk1fsaQC+fo2lshwKbcbO+lrSVdJ+40mB1BfL8OCAk1W9y4pJxpqO/4gqm6NtF3zNGCw==} peerDependencies: prettier: ^1.16.4 || ^2.0.0 svelte: ^3.2.0 dependencies: prettier: 2.7.1 - svelte: 3.49.0 + svelte: 3.52.0 dev: true /prettier/2.7.1: @@ -1840,8 +2087,8 @@ packages: estree-walker: 0.6.1 dev: true - /rollup/2.78.1: - resolution: {integrity: sha512-VeeCgtGi4P+o9hIg+xz4qQpRl6R401LWEXBmxYKOV4zlF82lyhgh2hTZnheFUbANE8l2A41F458iwj2vEYaXJg==} + /rollup/2.79.1: + resolution: {integrity: sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==} engines: {node: '>=10.0.0'} hasBin: true optionalDependencies: @@ -1874,8 +2121,8 @@ packages: rimraf: 2.7.1 dev: true - /sass/1.54.8: - resolution: {integrity: sha512-ib4JhLRRgbg6QVy6bsv5uJxnJMTS2soVcCp9Y88Extyy13A8vV0G1fAwujOzmNkFQbR3LvedudAMbtuNRPbQww==} + /sass/1.55.0: + resolution: {integrity: sha512-Pk+PMy7OGLs9WaxZGJMn7S96dvlyVBwwtToX895WmCpAOr5YiJYEUJfiJidMuKb613z2xNWcXCHEuOvjZbqC6A==} engines: {node: '>=12.0.0'} hasBin: true dependencies: @@ -1897,6 +2144,14 @@ packages: lru-cache: 6.0.0 dev: true + /semver/7.3.8: + resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + dev: true + /set-blocking/2.0.0: resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} dev: true @@ -2000,8 +2255,8 @@ packages: engines: {node: '>= 0.4'} dev: true - /svelte-check/2.9.0_sass@1.54.8+svelte@3.49.0: - resolution: {integrity: sha512-9AVrtP7WbfDgCdqTZNPdj5CCCy1OrYMxFVWAWzNw7fl93c9klFJFtqzVXa6fovfQ050CcpUyJE2dPFL9TFAREw==} + /svelte-check/2.9.2_sass@1.55.0+svelte@3.52.0: + resolution: {integrity: sha512-DRi8HhnCiqiGR2YF9ervPGvtoYrheE09cXieCTEqeTPOTJzfoa54Py8rovIBv4bH4n5HgZYIyTQ3DDLHQLl2uQ==} hasBin: true peerDependencies: svelte: ^3.24.0 @@ -2012,9 +2267,9 @@ packages: import-fresh: 3.3.0 picocolors: 1.0.0 sade: 1.8.1 - svelte: 3.49.0 - svelte-preprocess: 4.10.7_wvqslddg27v5ozoudw2pkwd4de - typescript: 4.8.2 + svelte: 3.52.0 + svelte-preprocess: 4.10.7_q7oepo4r57y5enzswpidbbgzsy + typescript: 4.8.4 transitivePeerDependencies: - '@babel/core' - coffeescript @@ -2028,16 +2283,16 @@ packages: - sugarss dev: true - /svelte-hmr/0.14.12_svelte@3.49.0: + /svelte-hmr/0.14.12_svelte@3.52.0: resolution: {integrity: sha512-4QSW/VvXuqVcFZ+RhxiR8/newmwOCTlbYIezvkeN6302YFRE8cXy0naamHcjz8Y9Ce3ITTZtrHrIL0AGfyo61w==} engines: {node: ^12.20 || ^14.13.1 || >= 16} peerDependencies: svelte: '>=3.19.0' dependencies: - svelte: 3.49.0 + svelte: 3.52.0 dev: true - /svelte-preprocess/4.10.7_wvqslddg27v5ozoudw2pkwd4de: + /svelte-preprocess/4.10.7_q7oepo4r57y5enzswpidbbgzsy: resolution: {integrity: sha512-sNPBnqYD6FnmdBrUmBCaqS00RyCsCpj2BG58A1JBswNF7b0OKviwxqVrOL/CKyJrLSClrSeqQv5BXNg2RUbPOw==} engines: {node: '>= 9.11.2'} requiresBuild: true @@ -2082,15 +2337,15 @@ packages: '@types/sass': 1.43.1 detect-indent: 6.1.0 magic-string: 0.25.9 - sass: 1.54.8 + sass: 1.55.0 sorcery: 0.10.0 strip-indent: 3.0.0 - svelte: 3.49.0 - typescript: 4.8.2 + svelte: 3.52.0 + typescript: 4.8.4 dev: true - /svelte/3.49.0: - resolution: {integrity: sha512-+lmjic1pApJWDfPCpUUTc1m8azDqYCG1JN9YEngrx/hUyIcFJo6VZhj0A1Ai0wqoHcEIuQy+e9tk+4uDgdtsFA==} + /svelte/3.52.0: + resolution: {integrity: sha512-FxcnEUOAVfr10vDU5dVgJN19IvqeHQCS1zfe8vayTfis9A2t5Fhx+JDe5uv/C3j//bB1umpLJ6quhgs9xyUbCQ==} engines: {node: '>= 8'} dev: true @@ -2141,14 +2396,14 @@ packages: resolution: {integrity: sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==} dev: true - /tsutils/3.21.0_typescript@4.8.2: + /tsutils/3.21.0_typescript@4.8.4: resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} engines: {node: '>= 6'} peerDependencies: typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' dependencies: tslib: 1.14.1 - typescript: 4.8.2 + typescript: 4.8.4 dev: true /type-check/0.4.0: @@ -2163,8 +2418,8 @@ packages: engines: {node: '>=10'} dev: true - /typescript/4.8.2: - resolution: {integrity: sha512-C0I1UsrrDHo2fYI5oaCGbSejwX4ch+9Y5jTQELvovfmFkK3HHSZJB8MSJcWLmCUBzQBchCrZ9rMRV6GuNrvGtw==} + /typescript/4.8.4: + resolution: {integrity: sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==} engines: {node: '>=4.2.0'} hasBin: true dev: true @@ -2184,14 +2439,15 @@ packages: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} dev: true - /vite/3.1.0-beta.1_sass@1.54.8: - resolution: {integrity: sha512-JGEnWSC0hfarcduTCQr6wnRjPLbT62iLCK59HBJXYt9oyWSUMtrvcnDqzvLFC+lHV6KGFQkmWlZucyIQmgUnLA==} + /vite/3.2.0_sass@1.55.0: + resolution: {integrity: sha512-Ovj7+cqIdM1I0LPCk2CWxzgADXMix3NLXpUT6g7P7zg/a9grk/TaC3qn9YMg7w7M0POIVCBOp1aBANJW+RH7oA==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true peerDependencies: less: '*' sass: '*' stylus: '*' + sugarss: '*' terser: ^5.4.0 peerDependenciesMeta: less: @@ -2200,14 +2456,16 @@ packages: optional: true stylus: optional: true + sugarss: + optional: true terser: optional: true dependencies: - esbuild: 0.14.54 - postcss: 8.4.16 + esbuild: 0.15.10 + postcss: 8.4.18 resolve: 1.22.1 - rollup: 2.78.1 - sass: 1.54.8 + rollup: 2.79.1 + sass: 1.55.0 optionalDependencies: fsevents: 2.3.2 dev: true @@ -2268,6 +2526,14 @@ packages: engines: {node: '>=10'} dev: true - /zod/3.18.0: - resolution: {integrity: sha512-gwTm8RfUCe8l9rDwN5r2A17DkAa8Ez4Yl4yXqc5VqeGaXaJahzYYXbTwvhroZi0SNBqTwh/bKm2N0mpCzuw4bA==} + /zod-to-json-schema/3.18.1_zod@3.19.1: + resolution: {integrity: sha512-YFP4dAZR2GHDkTOZL7E7p2E3/yoUZeB5RD797JEpJTyh/L+9WvIK/tEMuF+MhzDPhQWXlkSugxmO8nbdXjJKYA==} + peerDependencies: + zod: ^3.18.0 + dependencies: + zod: 3.19.1 + dev: false + + /zod/3.19.1: + resolution: {integrity: sha512-LYjZsEDhCdYET9ikFu6dVPGp2YH9DegXjdJToSzD9rO6fy4qiRYFoyEYwps88OseJlPyl2NOe2iJuhEhL7IpEA==} dev: false diff --git a/src/app.d.ts b/src/app.d.ts index f201c93..89fa05e 100644 --- a/src/app.d.ts +++ b/src/app.d.ts @@ -1,11 +1,14 @@ -/// - // See https://kit.svelte.dev/docs/types#app // for information about these interfaces // and what to do when importing types declare namespace App { - // interface Locals {} - // interface Platform {} - // interface Session {} - // interface Stuff {} + interface Locals { + userid: string; + } + + // interface PageData {} + + // interface PageError {} + + // interface Platform {} } diff --git a/src/db/actions.ts b/src/db/actions.ts new file mode 100644 index 0000000..54bc225 --- /dev/null +++ b/src/db/actions.ts @@ -0,0 +1,65 @@ +function isNumber(str: string): boolean { + if (typeof str !== 'string') { + return false; + } + + if (str.trim() === '') { + return false; + } + + return !Number.isNaN(Number(str)); +} + +function convertToBoolean(input: string): boolean | undefined { + try { + return JSON.parse(input.toLowerCase()); + } catch (e) { + return undefined; + } +} + +export async function getFormDataObject(request: Request): Promise<{ [key: string]: string }> { + const formData = await request.formData(); + let data = formData.entries(); + var obj = data.next(); + var retrieved: any = {}; + while (undefined !== obj.value) { + retrieved[obj.value[0]] = obj.value[1]; + obj = data.next(); + } + return retrieved; +} + +export async function getFormData(request: Request, schema: any): T { + const data = await getFormDataObject(request); + return transformFormDataTypes(data, schema); +} + +// TODO: Modify this as schema refers to a JSON schema helper + +export function transformFormDataTypes(data, schema): T { + for (const property in data) { + if (isNumber(schema[property])) { + data[property] = parseInt(data[property]); + } else if (typeof convertToBoolean(schema[property]) === boolean) { + data[property] = convertToBoolean(schema[property]); // data[property] === 'true'; + } else if (Array.isArray(JSON.parse(schema[property]))) { + data[property] = JSON.parse(schema[property]); + } + } + return data; +} + +interface Actions { + [key: string]: any // Action +} + +export const Games: Actions = { + search: async function search({ request, locals }): Promise { + + } + // create: async function create({ request, locals }): Promise { + // const data = await getFormDataObject(request); + // return data; + // } +} \ No newline at end of file diff --git a/src/hooks.server..ts b/src/hooks.server..ts new file mode 100644 index 0000000..ef64e7f --- /dev/null +++ b/src/hooks.server..ts @@ -0,0 +1,16 @@ +import type { Handle } from '@sveltejs/kit'; + +export const handle: Handle = async ({ event, resolve }) => { + let userid = event.cookies.get('userid'); + + if (!userid) { + // if this is the first time the user has visited this app, + // set a cookie so that we recognise them when they return + userid = crypto.randomUUID(); + event.cookies.set('userid', userid, { path: '/' }); + } + + event.locals.userid = userid; + + return resolve(event); +}; diff --git a/src/hooks.ts b/src/hooks.ts deleted file mode 100644 index 1a08dbc..0000000 --- a/src/hooks.ts +++ /dev/null @@ -1,23 +0,0 @@ -import type { Handle } from '@sveltejs/kit'; -import * as cookie from 'cookie'; - -export const handle: Handle = async ({ event, resolve }) => { - const cookies = cookie.parse(event.request.headers.get('cookie') || ''); - event.locals.userid = cookies['userid'] || crypto.randomUUID(); - - const response = await resolve(event); - - if (!cookies['userid']) { - // if this is the first time the user has visited this app, - // set a cookie so that we recognise them when they return - response.headers.set( - 'set-cookie', - cookie.serialize('userid', event.locals.userid, { - path: '/', - httpOnly: true - }) - ); - } - - return response; -}; diff --git a/src/lib/apis/game.ts b/src/lib/apis/game.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/lib/components/GameSearchContainer.svelte b/src/lib/components/GameSearchContainer.svelte new file mode 100644 index 0000000..e69de29 diff --git a/src/lib/components/pagination/index.svelte b/src/lib/components/pagination/index.svelte index 97616b6..5fb6804 100644 --- a/src/lib/components/pagination/index.svelte +++ b/src/lib/components/pagination/index.svelte @@ -1,47 +1,138 @@
- - {#each pageArray as page} - - {/each} - + +

Items per-page:

+
+ { + dispatch('pageSizeEvent', e.detail); + // boredState.update((n) => ({ + // ...n, + // search: { totalCount, pageSize: e.detail, skip, currentPage } + // })); + }} + let:open + > + {pageSize} + {#if open} +
+ + {#each pageSizes as size (size)} + (active ? 'active' : '')} + let:selected + > + {#if selected} + + {/if} +

{size.toString()}

+
+ {/each} +
+
+ {/if} +
+
+
+

+ Page {currentPage || 1} of {totalPages || 1} +

+

+ {itemsLeft} Item{itemsLeft > 1 || itemsLeft === 0 ? 's' : ''} Left +

+ +
diff --git a/src/lib/components/search/random/index.svelte b/src/lib/components/search/random/index.svelte index 441a80d..835cd73 100644 --- a/src/lib/components/search/random/index.svelte +++ b/src/lib/components/search/random/index.svelte @@ -1,43 +1,72 @@ -
-
- - -
+ { + boredState.update((n) => ({ ...n, loading: true })); + return async ({ result }) => { + boredState.update((n) => ({ ...n, loading: false })); + console.log('result main page search', result); + // `result` is an `ActionResult` object + if (result.type === 'success') { + console.log('In success'); + gameStore.removeAll(); + const resultGames = result?.data?.games; + if (resultGames?.length <= 0) { + toast.send('No results!', { duration: 3000, type: ToastType.INFO, dismissible: true }); + } + gameStore.addAll(resultGames); + console.log(`Frontend result: ${JSON.stringify(result)}`); + await applyAction(result); + } else { + console.log('Invalid'); + await applyAction(result); + } + }; + }} +> +
+ + +
diff --git a/src/lib/components/search/textSearch/index.svelte b/src/lib/components/search/textSearch/index.svelte index 287adab..986cf5f 100644 --- a/src/lib/components/search/textSearch/index.svelte +++ b/src/lib/components/search/textSearch/index.svelte @@ -1,88 +1,88 @@ - + {/if} + + {/if} {#if showButton} - + {/if} diff --git a/src/lib/stores/boredState.ts b/src/lib/stores/boredState.ts index 1052131..ca25302 100644 --- a/src/lib/stores/boredState.ts +++ b/src/lib/stores/boredState.ts @@ -12,7 +12,7 @@ const state = () => { const initial: BoredStore = { loading: false, dialog: initialDialog, search: { totalCount: 1, - pageSize: 25, + pageSize: 10, skip: 0, currentPage: 1 } diff --git a/src/lib/zodValidation.ts b/src/lib/zodValidation.ts index 43a93b3..5c27741 100644 --- a/src/lib/zodValidation.ts +++ b/src/lib/zodValidation.ts @@ -1,4 +1,5 @@ import { z } from 'zod'; +import zodToJsonSchema from 'zod-to-json-schema'; export const BoardGameSearch = z.object({ minAge: z.number(), @@ -7,7 +8,9 @@ export const BoardGameSearch = z.object({ maxPlayers: z.number() }); -export const Game = z.object({ +export const Board + +export const game_schema = z.object({ id: z.string(), handle: z.string(), name: z.string(), @@ -28,3 +31,9 @@ export const Game = z.object({ players: z.string(), playtime: z.string() }); + +export const game_raw_schema_json = zodToJsonSchema(game_schema, { + $refStrategy: 'none', +}); + +export type Game = z.infer; diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index 2c5e64f..12ce4d4 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -1,159 +1,159 @@ {#if dev} - + {/if} - - {#if $boredState?.loading} - - -
- -

Loading...

-
-
-
- - {/if} - {#if isOpen} -
- -
- {/if} - + + {#if $boredState?.loading} + + +
+ +

Loading...

+
+
+
+ + {/if} + {#if isOpen} +
+ +
+ {/if} + diff --git a/src/routes/+page.server.ts b/src/routes/+page.server.ts new file mode 100644 index 0000000..67f6811 --- /dev/null +++ b/src/routes/+page.server.ts @@ -0,0 +1,8 @@ +import type { PageServerLoad, Actions } from './$types'; + +export const actions: Actions = { + default: async ({ request, locals }): Promise => { + // Do things in here + return {}; + } +} \ No newline at end of file diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index c60749a..269157b 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -1,121 +1,182 @@ - Bored Game | Home + Bored Game | Home

Search Boardgames!

- Input your requirements to search for board game that match your criteria. + Input your requirements to search for board games that match your criteria.

{#if $gameStore?.length > 0} -
-

Games Found:

-
- {#each $gameStore as game (game.id)} - - {/each} -
- -
+
+

Games Found:

+
+ {#each $gameStore as game (game.id)} + + {/each} +
+ +
{/if} diff --git a/src/routes/about/+page.svelte b/src/routes/about/+page.svelte new file mode 100644 index 0000000..0972241 --- /dev/null +++ b/src/routes/about/+page.svelte @@ -0,0 +1,13 @@ + + Bored Game | About + + + +
+

About Bored Game

+

+ One day we were bored and wanted to play one of our board games. Our problem was that we didn't + know which one to play. +

+

Rather than just pick one I decided to make this overcomplicated version of choice.

+
diff --git a/src/routes/about/+page.ts b/src/routes/about/+page.ts new file mode 100644 index 0000000..3e13462 --- /dev/null +++ b/src/routes/about/+page.ts @@ -0,0 +1,9 @@ +import { dev } from '$app/environment'; + +// we don't need any JS on this page, though we'll load +// it in dev so that we get hot module replacement... +export const csr = dev; + +// since there's no dynamic data here, we can prerender +// it so that it gets served as a static asset in prod +export const prerender = true; diff --git a/src/routes/api.ts b/src/routes/api.ts index cf7e015..4f5a9c1 100644 --- a/src/routes/api.ts +++ b/src/routes/api.ts @@ -8,7 +8,7 @@ (The data on the todo app will expire periodically; no guarantees are made. Don't use it to organize your life.) */ - +import { BOARD_GAME_ATLAS_CLIENT_ID } from '$env/static/private'; import { URLSearchParams } from 'url'; const base = 'https://api.boardgameatlas.com/api'; @@ -20,7 +20,7 @@ export function boardGameApi( data?: Record ) { // console.log('queryParams', queryParams); - queryParams.client_id = import.meta.env.VITE_PUBLIC_CLIENT_ID; + queryParams.client_id = BOARD_GAME_ATLAS_CLIENT_ID; const urlQueryParams = new URLSearchParams(queryParams); const url = `${base}/${resource}${urlQueryParams ? `?${urlQueryParams}` : ''}`; return fetch(url, { diff --git a/src/routes/api/game/+server.ts b/src/routes/api/game/+server.ts index 06baf2f..7605f3f 100644 --- a/src/routes/api/game/+server.ts +++ b/src/routes/api/game/+server.ts @@ -9,7 +9,8 @@ export const POST: RequestHandler = async ({ request }) => { const queryParams: SearchQuery = { order_by: 'rank', ascending: false, - limit: 25, + limit: 10, + skip: 0, client_id: import.meta.env.VITE_PUBLIC_CLIENT_ID, fuzzy_match: true, name: '' @@ -54,6 +55,7 @@ export const POST: RequestHandler = async ({ request }) => { }); return json$1({ + totalCount, games }); } diff --git a/src/routes/api/games/+server.ts b/src/routes/api/games/+server.ts index 6aef45f..e0d8ab4 100644 --- a/src/routes/api/games/+server.ts +++ b/src/routes/api/games/+server.ts @@ -91,9 +91,9 @@ export const POST: RequestHandler = async ({ request }) => { games.push(mapAPIGameToBoredGame(game)); }); console.log('games', games); - return json$1({ + return { games - }); + }; } return new Response(undefined, { status: response.status }); diff --git a/src/routes/game/[id]/+page.server.ts b/src/routes/game/[id]/+page.server.ts index 039765e..8972570 100644 --- a/src/routes/game/[id]/+page.server.ts +++ b/src/routes/game/[id]/+page.server.ts @@ -1,6 +1,7 @@ import { error } from '@sveltejs/kit'; import type { PageServerLoad } from './$types' import { boardGameApi } from '../../api'; +// import { Games } from '$lib/db/actions'; type GamePageParams = { params: { @@ -8,8 +9,12 @@ type GamePageParams = { } } +// export const actions = { +// default Games.create, +// } + export const load: PageServerLoad = async ({ params }: GamePageParams) => { - console.log('params', params); + console.log('params', params); const queryParams = { ids: `${params?.id}` }; diff --git a/src/routes/search/+page.server.ts b/src/routes/search/+page.server.ts new file mode 100644 index 0000000..874a83a --- /dev/null +++ b/src/routes/search/+page.server.ts @@ -0,0 +1,224 @@ +import type { Actions, PageServerLoad, RequestEvent } from '../$types'; +import { BOARD_GAME_ATLAS_CLIENT_ID } from '$env/static/private'; +import { invalid } from '@sveltejs/kit'; +import type { GameType, SearchQuery } from '$root/lib/types'; +import { mapAPIGameToBoredGame } from '$root/lib/util/gameMapper'; + +export const load: PageServerLoad = (v) => { + console.log('page server load request', v) + + return { + games: [], + totalCount: 0 + }; +}; + +export const actions: Actions = { + default: async ({ request, locals }: RequestEvent): Promise => { + console.log("In search action specific") + // Do things in here + const form = await request.formData(); + console.log('action form', form); + const queryParams: SearchQuery = { + order_by: 'rank', + ascending: false, + limit: 10, + skip: 0, + client_id: BOARD_GAME_ATLAS_CLIENT_ID, + fuzzy_match: true, + name: '' + }; + + const random = form.get('random') && form.get('random') === 'on'; + + if (random) { + queryParams.random = random; + } else { + const minAge = form.get('minAge'); + const minPlayers = form.get('minPlayers'); + const maxPlayers = form.get('maxPlayers'); + const exactMinAge = form.get('exactMinAge') || false; + const exactMinPlayers = form.get('exactMinPlayers') || false; + const exactMaxPlayers = form.get('exactMaxPlayers') || false; + + if (minAge) { + if (exactMinAge) { + queryParams.min_age = +minAge; + } else { + queryParams.gt_min_age = +minAge === 1 ? 0 : +minAge - 1; + } + } + + if (minPlayers && maxPlayers) { + if (minPlayers > maxPlayers) { + return invalid(400, { minPlayers, error: { id: 'minPlayers', message: 'Min must be less than max' } }); + } else if (maxPlayers < minPlayers) { + return invalid(400, { maxPlayers, error: { id: 'maxPlayers', message: 'Max must be greater than min' } }); + } + if (exactMinPlayers) { + queryParams.min_players = +minPlayers; + } else { + queryParams.gt_min_players = +minPlayers === 1 ? 0 : +minPlayers - 1; + } + + if (exactMaxPlayers) { + queryParams.max_players = +maxPlayers; + } else { + queryParams.lt_max_players = +maxPlayers + 1; + } + } + + const name = form.has('name') ? form.get('name') : await request?.text(); + console.log('name', name); + if (name) { + queryParams.name = `${name}`; + } + } + + const newQueryParams: Record = {}; + for (const key in queryParams) { + console.log('key', key); + console.log('queryParams[key]', queryParams[key as keyof SearchQuery]); + newQueryParams[key] = `${queryParams[key as keyof SearchQuery]}`; + } + + const urlQueryParams = new URLSearchParams(newQueryParams); + console.log('urlQueryParams', urlQueryParams); + + try { + const url = `https://api.boardgameatlas.com/api/search${urlQueryParams ? `?${urlQueryParams}` : '' + }`; + const response = await fetch(url, { + method: 'get', + headers: { + 'content-type': 'application/json' + } + }); + console.log('board game response', response); + if (response.status !== 200) { + console.log('Status not 200', response.status) + invalid(response.status, {}); + } + + if (response.status === 200) { + const gameResponse = await response.json(); + console.log('gameResponse', gameResponse); + const gameList = gameResponse?.games; + const totalCount = gameResponse?.count; + console.log('totalCount', totalCount); + const games: GameType[] = []; + gameList.forEach((game) => { + games.push(mapAPIGameToBoredGame(game)); + }); + + console.log('returning from search', games) + + return { + games, + totalCount: games.length + }; + } + } catch (e) { + console.log(`Error searching board games ${e}`); + } + return { + games: [], + totalCount: 0 + }; + } + + // const id = form.get('id'); + // const ids = form.get('ids'); + // const minAge = form.get('minAge'); + // const minPlayers = form.get('minPlayers'); + // const maxPlayers = form.get('maxPlayers'); + // const exactMinAge = form.get('exactMinAge') || false; + // const exactMinPlayers = form.get('exactMinPlayers') || false; + // const exactMaxPlayers = form.get('exactMaxPlayers') || false; + // const random = form.get('random') === 'on' || false; + + // if (minAge) { + // if (exactMinAge) { + // queryParams.min_age = +minAge; + // } else { + // queryParams.gt_min_age = +minAge === 1 ? 0 : +minAge - 1; + // } + // } + + // if (minPlayers) { + // if (exactMinPlayers) { + // queryParams.min_players = +minPlayers; + // } else { + // queryParams.gt_min_players = +minPlayers === 1 ? 0 : +minPlayers - 1; + // } + // } + + // if (maxPlayers) { + // if (exactMaxPlayers) { + // queryParams.max_players = +maxPlayers; + // } else { + // queryParams.lt_max_players = +maxPlayers + 1; + // } + // } + + // if (id) { + // queryParams.ids = new Array(`${id}`); + // } + + // if (ids) { + // // TODO: Pass in ids array from localstorage / game store + // queryParams.ids = new Array(ids); + // } + + // queryParams.random = random; + // console.log('queryParams', queryParams); + + // const newQueryParams: Record = {}; + // for (const key in queryParams) { + // newQueryParams[key] = `${queryParams[key as keyof typeof queryParams]}`; + // } + + // const urlQueryParams = new URLSearchParams(newQueryParams); + + // const url = `https://api.boardgameatlas.com/api/search${urlQueryParams ? `?${urlQueryParams}` : '' + // }`; + // const response = await fetch(url, { + // method: 'get', + // headers: { + // 'content-type': 'application/json' + // } + // }); + // console.log('response status', response.status); + // console.log('board game response action', response); + // if (response.status === 404) { + // // user hasn't created a todo list. + // // start with an empty array + // return { + // success: true, + // games: [], + // totalCount: 0 + // }; + // } + + // if (response.status === 200) { + // const gameResponse = await response.json(); + // console.log('gameResponse', gameResponse); + // const gameList = gameResponse?.games; + // const games: GameType[] = []; + // gameList.forEach((game: GameType) => { + // games.push(mapAPIGameToBoredGame(game)); + // }); + // console.log('action games', games); + // return { + // games, + // totalCount: games.length + // }; + // } + + // return { success: false }; + // } + // create: async function create({ request, locals }): Promise { + // const data = await getFormDataObject(request); + // return data; + // } +} diff --git a/src/routes/search/+page.svelte b/src/routes/search/+page.svelte new file mode 100644 index 0000000..0ab0bf4 --- /dev/null +++ b/src/routes/search/+page.svelte @@ -0,0 +1,103 @@ + + + + +{#if $gameStore?.length > 0} +
+

Games Found:

+
+ {#each $gameStore as game (game.id)} + + {/each} +
+
+{/if} + + diff --git a/src/search/actions.ts b/src/search/actions.ts new file mode 100644 index 0000000..91f9962 --- /dev/null +++ b/src/search/actions.ts @@ -0,0 +1,181 @@ +import { invalid, type RequestEvent } from '@sveltejs/kit'; +import { BOARD_GAME_ATLAS_CLIENT_ID } from '$env/static/private'; +import type { GameType, SearchQuery } from "$root/lib/types"; +import { mapAPIGameToBoredGame } from "$root/lib/util/gameMapper"; + +interface Actions { + [key: string]: any // Action +} + +export const Games: Actions = { + search: async ({ request, locals }: RequestEvent): Promise => { + console.log("In search action specific") + // Do things in here + const form = await request.formData(); + console.log('action form', form); + const queryParams: SearchQuery = { + order_by: 'rank', + ascending: false, + limit: 10, + skip: 0, + client_id: BOARD_GAME_ATLAS_CLIENT_ID, + fuzzy_match: true, + name: '' + }; + + const name = form.has('name') ? form.get('name') : await request?.text(); + console.log('name', name); + if (name) { + queryParams.name = `${name}`; + } + + const newQueryParams: Record = {}; + for (const key in queryParams) { + console.log('key', key); + console.log('queryParams[key]', queryParams[key]); + newQueryParams[key] = `${queryParams[key]}`; + } + + const urlQueryParams = new URLSearchParams(newQueryParams); + console.log('urlQueryParams', urlQueryParams); + + try { + throw new Error("test error"); + // const url = `https://api.boardgameatlas.com/api/search${urlQueryParams ? `?${urlQueryParams}` : '' + // }`; + // const response = await fetch(url, { + // method: 'get', + // headers: { + // 'content-type': 'application/json' + // } + // }); + // console.log('board game response', response); + // if (response.status !== 200) { + // console.log('Status not 200', response.status) + // invalid(response.status, {}); + // } + + // if (response.status === 200) { + // const gameResponse = await response.json(); + // console.log('gameResponse', gameResponse); + // const gameList = gameResponse?.games; + // const totalCount = gameResponse?.count; + // console.log('totalCount', totalCount); + // const games: GameType[] = []; + // gameList.forEach((game) => { + // games.push(mapAPIGameToBoredGame(game)); + // }); + + // console.log('returning from search') + + // return { + // games, + // totalCount: games.length + // }; + // } + + // return { + // games: [], + // totalCount: 0 + // }; + } catch (e) { + console.log(`Error searching board games ${e}`); + invalid(400, { reason: 'Exception' }) + } + } + + // const id = form.get('id'); + // const ids = form.get('ids'); + // const minAge = form.get('minAge'); + // const minPlayers = form.get('minPlayers'); + // const maxPlayers = form.get('maxPlayers'); + // const exactMinAge = form.get('exactMinAge') || false; + // const exactMinPlayers = form.get('exactMinPlayers') || false; + // const exactMaxPlayers = form.get('exactMaxPlayers') || false; + // const random = form.get('random') === 'on' || false; + + // if (minAge) { + // if (exactMinAge) { + // queryParams.min_age = +minAge; + // } else { + // queryParams.gt_min_age = +minAge === 1 ? 0 : +minAge - 1; + // } + // } + + // if (minPlayers) { + // if (exactMinPlayers) { + // queryParams.min_players = +minPlayers; + // } else { + // queryParams.gt_min_players = +minPlayers === 1 ? 0 : +minPlayers - 1; + // } + // } + + // if (maxPlayers) { + // if (exactMaxPlayers) { + // queryParams.max_players = +maxPlayers; + // } else { + // queryParams.lt_max_players = +maxPlayers + 1; + // } + // } + + // if (id) { + // queryParams.ids = new Array(`${id}`); + // } + + // if (ids) { + // // TODO: Pass in ids array from localstorage / game store + // queryParams.ids = new Array(ids); + // } + + // queryParams.random = random; + // console.log('queryParams', queryParams); + + // const newQueryParams: Record = {}; + // for (const key in queryParams) { + // newQueryParams[key] = `${queryParams[key as keyof typeof queryParams]}`; + // } + + // const urlQueryParams = new URLSearchParams(newQueryParams); + + // const url = `https://api.boardgameatlas.com/api/search${urlQueryParams ? `?${urlQueryParams}` : '' + // }`; + // const response = await fetch(url, { + // method: 'get', + // headers: { + // 'content-type': 'application/json' + // } + // }); + // console.log('response status', response.status); + // console.log('board game response action', response); + // if (response.status === 404) { + // // user hasn't created a todo list. + // // start with an empty array + // return { + // success: true, + // games: [], + // totalCount: 0 + // }; + // } + + // if (response.status === 200) { + // const gameResponse = await response.json(); + // console.log('gameResponse', gameResponse); + // const gameList = gameResponse?.games; + // const games: GameType[] = []; + // gameList.forEach((game: GameType) => { + // games.push(mapAPIGameToBoredGame(game)); + // }); + // console.log('action games', games); + // return { + // games, + // totalCount: games.length + // }; + // } + + // return { success: false }; + // } + // create: async function create({ request, locals }): Promise { + // const data = await getFormDataObject(request); + // return data; + // } +} \ No newline at end of file diff --git a/svelte.config.js b/svelte.config.js index d6f36f5..63bee1a 100644 --- a/svelte.config.js +++ b/svelte.config.js @@ -9,14 +9,16 @@ const config = { kit: { adapter: adapter(), alias: { - $components: 'src/components', $root: './src' }, - // Override http methods in the Todo forms - methodOverride: { - allowed: ['PATCH', 'DELETE'] - } - } + }, + vitePlugin: { + experimental: { + inspector: { + toggleKeyCombo: 'control-alt-shift', + }, + }, + }, }; export default config; diff --git a/tsconfig.json b/tsconfig.json index 5c56cee..6ae0c8c 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,13 +1,17 @@ { - "extends": "./.svelte-kit/tsconfig.json", - "compilerOptions": { - "allowJs": true, - "checkJs": true, - "esModuleInterop": true, - "forceConsistentCasingInFileNames": true, - "resolveJsonModule": true, - "skipLibCheck": true, - "sourceMap": true, - "strict": true - } + "extends": "./.svelte-kit/tsconfig.json", + "compilerOptions": { + "allowJs": true, + "checkJs": true, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "resolveJsonModule": true, + "skipLibCheck": true, + "sourceMap": true, + "strict": true + } + // Path aliases are handled by https://kit.svelte.dev/docs/configuration#alias + // + // If you want to overwrite includes/excludes, make sure to copy over the relevant includes/excludes + // from the referenced tsconfig.json - TypeScript does not merge them in } diff --git a/vite.config.js b/vite.config.js deleted file mode 100644 index 096c206..0000000 --- a/vite.config.js +++ /dev/null @@ -1,8 +0,0 @@ -import { sveltekit } from '@sveltejs/kit/vite'; - -/** @type {import('vite').UserConfig} */ -const config = { - plugins: [sveltekit()] -}; - -export default config; diff --git a/vite.config.ts b/vite.config.ts new file mode 100644 index 0000000..1695034 --- /dev/null +++ b/vite.config.ts @@ -0,0 +1,8 @@ +import { sveltekit } from '@sveltejs/kit/vite'; +import type { UserConfig } from 'vite'; + +const config: UserConfig = { + plugins: [sveltekit()] +}; + +export default config;