From c7a07d5b830a546d3f9d03b6ce12c5e74e658597 Mon Sep 17 00:00:00 2001 From: Kai Vogelgesang Date: Sun, 4 Sep 2022 13:07:07 +0200 Subject: [PATCH] Add frontend boilerplate --- frontend/.gitignore | 24 + frontend/README.md | 48 + frontend/index.html | 16 + frontend/package-lock.json | 2405 ++++++++++++++++++++++++++++++++ frontend/package.json | 24 + frontend/public/thumb.png | Bin 0 -> 30726 bytes frontend/src/App.svelte | 8 + frontend/src/Navbar.svelte | 13 + frontend/src/app.scss | 11 + frontend/src/assets/turtle.png | Bin 0 -> 17133 bytes frontend/src/main.ts | 8 + frontend/src/variables.scss | 4 + frontend/src/vite-env.d.ts | 2 + frontend/svelte.config.js | 13 + frontend/tsconfig.json | 21 + frontend/tsconfig.node.json | 8 + frontend/vite.config.ts | 7 + 17 files changed, 2612 insertions(+) create mode 100644 frontend/.gitignore create mode 100644 frontend/README.md create mode 100644 frontend/index.html create mode 100644 frontend/package-lock.json create mode 100644 frontend/package.json create mode 100644 frontend/public/thumb.png create mode 100644 frontend/src/App.svelte create mode 100644 frontend/src/Navbar.svelte create mode 100644 frontend/src/app.scss create mode 100644 frontend/src/assets/turtle.png create mode 100644 frontend/src/main.ts create mode 100644 frontend/src/variables.scss create mode 100644 frontend/src/vite-env.d.ts create mode 100644 frontend/svelte.config.js create mode 100644 frontend/tsconfig.json create mode 100644 frontend/tsconfig.node.json create mode 100644 frontend/vite.config.ts diff --git a/frontend/.gitignore b/frontend/.gitignore new file mode 100644 index 0000000..a547bf3 --- /dev/null +++ b/frontend/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/frontend/README.md b/frontend/README.md new file mode 100644 index 0000000..4ef762f --- /dev/null +++ b/frontend/README.md @@ -0,0 +1,48 @@ +# Svelte + TS + Vite + +This template should help get you started developing with Svelte and TypeScript in Vite. + +## Recommended IDE Setup + +[VS Code](https://code.visualstudio.com/) + [Svelte](https://marketplace.visualstudio.com/items?itemName=svelte.svelte-vscode). + +## Need an official Svelte framework? + +Check out [SvelteKit](https://github.com/sveltejs/kit#readme), which is also powered by Vite. Deploy anywhere with its serverless-first approach and adapt to various platforms, with out of the box support for TypeScript, SCSS, and Less, and easily-added support for mdsvex, GraphQL, PostCSS, Tailwind CSS, and more. + +## Technical considerations + +**Why use this over SvelteKit?** + +- It brings its own routing solution which might not be preferable for some users. +- It is first and foremost a framework that just happens to use Vite under the hood, not a Vite app. + `vite dev` and `vite build` wouldn't work in a SvelteKit environment, for example. + +This template contains as little as possible to get started with Vite + TypeScript + Svelte, while taking into account the developer experience with regards to HMR and intellisense. It demonstrates capabilities on par with the other `create-vite` templates and is a good starting point for beginners dipping their toes into a Vite + Svelte project. + +Should you later need the extended capabilities and extensibility provided by SvelteKit, the template has been structured similarly to SvelteKit so that it is easy to migrate. + +**Why `global.d.ts` instead of `compilerOptions.types` inside `jsconfig.json` or `tsconfig.json`?** + +Setting `compilerOptions.types` shuts out all other types not explicitly listed in the configuration. Using triple-slash references keeps the default TypeScript setting of accepting type information from the entire workspace, while also adding `svelte` and `vite/client` type information. + +**Why include `.vscode/extensions.json`?** + +Other templates indirectly recommend extensions via the README, but this file allows VS Code to prompt the user to install the recommended extension upon opening the project. + +**Why enable `allowJs` in the TS template?** + +While `allowJs: false` would indeed prevent the use of `.js` files in the project, it does not prevent the use of JavaScript syntax in `.svelte` files. In addition, it would force `checkJs: false`, bringing the worst of both worlds: not being able to guarantee the entire codebase is TypeScript, and also having worse typechecking for the existing JavaScript. In addition, there are valid use cases in which a mixed codebase may be relevant. + +**Why is HMR not preserving my local component state?** + +HMR state preservation comes with a number of gotchas! It has been disabled by default in both `svelte-hmr` and `@sveltejs/vite-plugin-svelte` due to its often surprising behavior. You can read the details [here](https://github.com/rixo/svelte-hmr#svelte-hmr). + +If you have state that's important to retain within a component, consider creating an external store which would not be replaced by HMR. + +```ts +// store.ts +// An extremely simple external store +import { writable } from 'svelte/store' +export default writable(0) +``` diff --git a/frontend/index.html b/frontend/index.html new file mode 100644 index 0000000..47c2af3 --- /dev/null +++ b/frontend/index.html @@ -0,0 +1,16 @@ + + + + + + + + Control Panel + + + +
+ + + + \ No newline at end of file diff --git a/frontend/package-lock.json b/frontend/package-lock.json new file mode 100644 index 0000000..99fa2d9 --- /dev/null +++ b/frontend/package-lock.json @@ -0,0 +1,2405 @@ +{ + "name": "frontend", + "version": "0.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "frontend", + "version": "0.0.0", + "devDependencies": { + "@sveltejs/vite-plugin-svelte": "^1.0.1", + "@tsconfig/svelte": "^3.0.0", + "bulma": "^0.9.4", + "sass": "^1.53.0", + "svelte": "^3.49.0", + "svelte-check": "^2.8.0", + "svelte-preprocess": "^4.10.7", + "tslib": "^2.4.0", + "typescript": "^4.6.4", + "vite": "^3.0.7" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.14.54.tgz", + "integrity": "sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.15", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz", + "integrity": "sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@rollup/pluginutils": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", + "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==", + "dev": true, + "dependencies": { + "estree-walker": "^2.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/@sveltejs/vite-plugin-svelte": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-1.0.4.tgz", + "integrity": "sha512-UZco2fdj0OVuRWC0SUJjEOftITc2IeHLFJNp00ym9MuQ9dShnlO4P29G8KUxRlcS7kSpzHuko6eCR9MOALj7lQ==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^4.2.1", + "debug": "^4.3.4", + "deepmerge": "^4.2.2", + "kleur": "^4.1.5", + "magic-string": "^0.26.2", + "svelte-hmr": "^0.14.12" + }, + "engines": { + "node": "^14.18.0 || >= 16" + }, + "peerDependencies": { + "diff-match-patch": "^1.0.5", + "svelte": "^3.44.0", + "vite": "^3.0.0 || ^3.1.0-beta.1" + }, + "peerDependenciesMeta": { + "diff-match-patch": { + "optional": true + } + } + }, + "node_modules/@tsconfig/svelte": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@tsconfig/svelte/-/svelte-3.0.0.tgz", + "integrity": "sha512-pYrtLtOwku/7r1i9AMONsJMVYAtk3hzOfiGNekhtq5tYBGA7unMve8RvUclKLMT3PrihvJqUmzsRGh0RP84hKg==", + "dev": true + }, + "node_modules/@types/node": { + "version": "18.7.14", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.7.14.tgz", + "integrity": "sha512-6bbDaETVi8oyIARulOE9qF1/Qdi/23z6emrUh0fNJRUmjznqrixD4MpGDdgOFk5Xb0m2H6Xu42JGdvAxaJR/wA==", + "dev": true + }, + "node_modules/@types/pug": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/pug/-/pug-2.0.6.tgz", + "integrity": "sha512-SnHmG9wN1UVmagJOnyo/qkk0Z7gejYxOYYmaAwr5u2yFYfsupN3sg10kyzN8Hep/2zbHxCnsumxOoRIRMBwKCg==", + "dev": true + }, + "node_modules/@types/sass": { + "version": "1.43.1", + "resolved": "https://registry.npmjs.org/@types/sass/-/sass-1.43.1.tgz", + "integrity": "sha512-BPdoIt1lfJ6B7rw35ncdwBZrAssjcwzI5LByIrYs+tpXlj/CAkuVdRsgZDdP4lq5EjyWzwxZCqAoFyHKFwp32g==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/bulma": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/bulma/-/bulma-0.9.4.tgz", + "integrity": "sha512-86FlT5+1GrsgKbPLRRY7cGDg8fsJiP/jzTqXXVqiUZZ2aZT8uemEOHlU1CDU+TxklPEZ11HZNNWclRBBecP4CQ==", + "dev": true + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/detect-indent": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz", + "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/es6-promise": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz", + "integrity": "sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==", + "dev": true + }, + "node_modules/esbuild": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.54.tgz", + "integrity": "sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/linux-loong64": "0.14.54", + "esbuild-android-64": "0.14.54", + "esbuild-android-arm64": "0.14.54", + "esbuild-darwin-64": "0.14.54", + "esbuild-darwin-arm64": "0.14.54", + "esbuild-freebsd-64": "0.14.54", + "esbuild-freebsd-arm64": "0.14.54", + "esbuild-linux-32": "0.14.54", + "esbuild-linux-64": "0.14.54", + "esbuild-linux-arm": "0.14.54", + "esbuild-linux-arm64": "0.14.54", + "esbuild-linux-mips64le": "0.14.54", + "esbuild-linux-ppc64le": "0.14.54", + "esbuild-linux-riscv64": "0.14.54", + "esbuild-linux-s390x": "0.14.54", + "esbuild-netbsd-64": "0.14.54", + "esbuild-openbsd-64": "0.14.54", + "esbuild-sunos-64": "0.14.54", + "esbuild-windows-32": "0.14.54", + "esbuild-windows-64": "0.14.54", + "esbuild-windows-arm64": "0.14.54" + } + }, + "node_modules/esbuild-android-64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.54.tgz", + "integrity": "sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-android-arm64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.54.tgz", + "integrity": "sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-darwin-64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.54.tgz", + "integrity": "sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-darwin-arm64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.54.tgz", + "integrity": "sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-freebsd-64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.54.tgz", + "integrity": "sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-freebsd-arm64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.54.tgz", + "integrity": "sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-32": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.54.tgz", + "integrity": "sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.54.tgz", + "integrity": "sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-arm": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.54.tgz", + "integrity": "sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-arm64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.54.tgz", + "integrity": "sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-mips64le": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.54.tgz", + "integrity": "sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-ppc64le": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.54.tgz", + "integrity": "sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-riscv64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.54.tgz", + "integrity": "sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-s390x": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.54.tgz", + "integrity": "sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-netbsd-64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.54.tgz", + "integrity": "sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-openbsd-64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.54.tgz", + "integrity": "sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-sunos-64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.54.tgz", + "integrity": "sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-32": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.54.tgz", + "integrity": "sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.54.tgz", + "integrity": "sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-arm64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.54.tgz", + "integrity": "sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/immutable": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.1.0.tgz", + "integrity": "sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ==", + "dev": true + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", + "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/kleur": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/magic-string": { + "version": "0.26.3", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.26.3.tgz", + "integrity": "sha512-u1Po0NDyFcwdg2nzHT88wSK0+Rih0N1M+Ph1Sp08k8yvFFU3KR72wryS7e1qMPJypt99WB7fIFVCA92mQrMjrg==", + "dev": true, + "dependencies": { + "sourcemap-codec": "^1.4.8" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", + "dev": true + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/mri": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", + "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "dev": true, + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss": { + "version": "8.4.16", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.16.tgz", + "integrity": "sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + } + ], + "dependencies": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/rollup": { + "version": "2.77.3", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.77.3.tgz", + "integrity": "sha512-/qxNTG7FbmefJWoeeYJFbHehJ2HNWnjkAFRKzWN/45eNBBF/r8lo992CwcJXEzyVxs5FmfId+vTSTQDb+bxA+g==", + "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=10.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/sade": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", + "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", + "dev": true, + "dependencies": { + "mri": "^1.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/sander": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/sander/-/sander-0.5.1.tgz", + "integrity": "sha512-3lVqBir7WuKDHGrKRDn/1Ye3kwpXaDOMsiRP1wd6wpZW56gJhsbp5RqQpA6JG/P+pkXizygnr1dKR8vzWaVsfA==", + "dev": true, + "dependencies": { + "es6-promise": "^3.1.2", + "graceful-fs": "^4.1.3", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.2" + } + }, + "node_modules/sass": { + "version": "1.54.8", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.54.8.tgz", + "integrity": "sha512-ib4JhLRRgbg6QVy6bsv5uJxnJMTS2soVcCp9Y88Extyy13A8vV0G1fAwujOzmNkFQbR3LvedudAMbtuNRPbQww==", + "dev": true, + "dependencies": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/sorcery": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/sorcery/-/sorcery-0.10.0.tgz", + "integrity": "sha512-R5ocFmKZQFfSTstfOtHjJuAwbpGyf9qjQa1egyhvXSbM7emjrtLXtGdZsDJDABC85YBfVvrOiGWKSYXPKdvP1g==", + "dev": true, + "dependencies": { + "buffer-crc32": "^0.2.5", + "minimist": "^1.2.0", + "sander": "^0.5.0", + "sourcemap-codec": "^1.3.0" + }, + "bin": { + "sorcery": "bin/index.js" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "dev": true + }, + "node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svelte": { + "version": "3.50.0", + "resolved": "https://registry.npmjs.org/svelte/-/svelte-3.50.0.tgz", + "integrity": "sha512-zXeOUDS7+85i+RxLN+0iB6PMbGH7OhEgjETcD1fD8ZrhuhNFxYxYEHU41xuhkHIulJavcu3PKbPyuCrBxdxskQ==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/svelte-check": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-2.9.0.tgz", + "integrity": "sha512-9AVrtP7WbfDgCdqTZNPdj5CCCy1OrYMxFVWAWzNw7fl93c9klFJFtqzVXa6fovfQ050CcpUyJE2dPFL9TFAREw==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.9", + "chokidar": "^3.4.1", + "fast-glob": "^3.2.7", + "import-fresh": "^3.2.1", + "picocolors": "^1.0.0", + "sade": "^1.7.4", + "svelte-preprocess": "^4.0.0", + "typescript": "*" + }, + "bin": { + "svelte-check": "bin/svelte-check" + }, + "peerDependencies": { + "svelte": "^3.24.0" + } + }, + "node_modules/svelte-hmr": { + "version": "0.14.12", + "resolved": "https://registry.npmjs.org/svelte-hmr/-/svelte-hmr-0.14.12.tgz", + "integrity": "sha512-4QSW/VvXuqVcFZ+RhxiR8/newmwOCTlbYIezvkeN6302YFRE8cXy0naamHcjz8Y9Ce3ITTZtrHrIL0AGfyo61w==", + "dev": true, + "engines": { + "node": "^12.20 || ^14.13.1 || >= 16" + }, + "peerDependencies": { + "svelte": ">=3.19.0" + } + }, + "node_modules/svelte-preprocess": { + "version": "4.10.7", + "resolved": "https://registry.npmjs.org/svelte-preprocess/-/svelte-preprocess-4.10.7.tgz", + "integrity": "sha512-sNPBnqYD6FnmdBrUmBCaqS00RyCsCpj2BG58A1JBswNF7b0OKviwxqVrOL/CKyJrLSClrSeqQv5BXNg2RUbPOw==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@types/pug": "^2.0.4", + "@types/sass": "^1.16.0", + "detect-indent": "^6.0.0", + "magic-string": "^0.25.7", + "sorcery": "^0.10.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">= 9.11.2" + }, + "peerDependencies": { + "@babel/core": "^7.10.2", + "coffeescript": "^2.5.1", + "less": "^3.11.3 || ^4.0.0", + "postcss": "^7 || ^8", + "postcss-load-config": "^2.1.0 || ^3.0.0 || ^4.0.0", + "pug": "^3.0.0", + "sass": "^1.26.8", + "stylus": "^0.55.0", + "sugarss": "^2.0.0", + "svelte": "^3.23.0", + "typescript": "^3.9.5 || ^4.0.0" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "coffeescript": { + "optional": true + }, + "less": { + "optional": true + }, + "node-sass": { + "optional": true + }, + "postcss": { + "optional": true + }, + "postcss-load-config": { + "optional": true + }, + "pug": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "typescript": { + "optional": true + } + } + }, + "node_modules/svelte-preprocess/node_modules/magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dev": true, + "dependencies": { + "sourcemap-codec": "^1.4.8" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "dev": true + }, + "node_modules/typescript": { + "version": "4.8.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.2.tgz", + "integrity": "sha512-C0I1UsrrDHo2fYI5oaCGbSejwX4ch+9Y5jTQELvovfmFkK3HHSZJB8MSJcWLmCUBzQBchCrZ9rMRV6GuNrvGtw==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/vite": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/vite/-/vite-3.0.9.tgz", + "integrity": "sha512-waYABTM+G6DBTCpYAxvevpG50UOlZuynR0ckTK5PawNVt7ebX6X7wNXHaGIO6wYYFXSM7/WcuFuO2QzhBB6aMw==", + "dev": true, + "dependencies": { + "esbuild": "^0.14.47", + "postcss": "^8.4.16", + "resolve": "^1.22.1", + "rollup": ">=2.75.6 <2.77.0 || ~2.77.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "less": "*", + "sass": "*", + "stylus": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "less": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + } + }, + "dependencies": { + "@esbuild/linux-loong64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.14.54.tgz", + "integrity": "sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==", + "dev": true, + "optional": true + }, + "@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.15", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz", + "integrity": "sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@rollup/pluginutils": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", + "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==", + "dev": true, + "requires": { + "estree-walker": "^2.0.1", + "picomatch": "^2.2.2" + } + }, + "@sveltejs/vite-plugin-svelte": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-1.0.4.tgz", + "integrity": "sha512-UZco2fdj0OVuRWC0SUJjEOftITc2IeHLFJNp00ym9MuQ9dShnlO4P29G8KUxRlcS7kSpzHuko6eCR9MOALj7lQ==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^4.2.1", + "debug": "^4.3.4", + "deepmerge": "^4.2.2", + "kleur": "^4.1.5", + "magic-string": "^0.26.2", + "svelte-hmr": "^0.14.12" + } + }, + "@tsconfig/svelte": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@tsconfig/svelte/-/svelte-3.0.0.tgz", + "integrity": "sha512-pYrtLtOwku/7r1i9AMONsJMVYAtk3hzOfiGNekhtq5tYBGA7unMve8RvUclKLMT3PrihvJqUmzsRGh0RP84hKg==", + "dev": true + }, + "@types/node": { + "version": "18.7.14", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.7.14.tgz", + "integrity": "sha512-6bbDaETVi8oyIARulOE9qF1/Qdi/23z6emrUh0fNJRUmjznqrixD4MpGDdgOFk5Xb0m2H6Xu42JGdvAxaJR/wA==", + "dev": true + }, + "@types/pug": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/pug/-/pug-2.0.6.tgz", + "integrity": "sha512-SnHmG9wN1UVmagJOnyo/qkk0Z7gejYxOYYmaAwr5u2yFYfsupN3sg10kyzN8Hep/2zbHxCnsumxOoRIRMBwKCg==", + "dev": true + }, + "@types/sass": { + "version": "1.43.1", + "resolved": "https://registry.npmjs.org/@types/sass/-/sass-1.43.1.tgz", + "integrity": "sha512-BPdoIt1lfJ6B7rw35ncdwBZrAssjcwzI5LByIrYs+tpXlj/CAkuVdRsgZDdP4lq5EjyWzwxZCqAoFyHKFwp32g==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true + }, + "bulma": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/bulma/-/bulma-0.9.4.tgz", + "integrity": "sha512-86FlT5+1GrsgKbPLRRY7cGDg8fsJiP/jzTqXXVqiUZZ2aZT8uemEOHlU1CDU+TxklPEZ11HZNNWclRBBecP4CQ==", + "dev": true + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "dev": true + }, + "detect-indent": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz", + "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==", + "dev": true + }, + "es6-promise": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz", + "integrity": "sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==", + "dev": true + }, + "esbuild": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.54.tgz", + "integrity": "sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA==", + "dev": true, + "requires": { + "@esbuild/linux-loong64": "0.14.54", + "esbuild-android-64": "0.14.54", + "esbuild-android-arm64": "0.14.54", + "esbuild-darwin-64": "0.14.54", + "esbuild-darwin-arm64": "0.14.54", + "esbuild-freebsd-64": "0.14.54", + "esbuild-freebsd-arm64": "0.14.54", + "esbuild-linux-32": "0.14.54", + "esbuild-linux-64": "0.14.54", + "esbuild-linux-arm": "0.14.54", + "esbuild-linux-arm64": "0.14.54", + "esbuild-linux-mips64le": "0.14.54", + "esbuild-linux-ppc64le": "0.14.54", + "esbuild-linux-riscv64": "0.14.54", + "esbuild-linux-s390x": "0.14.54", + "esbuild-netbsd-64": "0.14.54", + "esbuild-openbsd-64": "0.14.54", + "esbuild-sunos-64": "0.14.54", + "esbuild-windows-32": "0.14.54", + "esbuild-windows-64": "0.14.54", + "esbuild-windows-arm64": "0.14.54" + } + }, + "esbuild-android-64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.54.tgz", + "integrity": "sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ==", + "dev": true, + "optional": true + }, + "esbuild-android-arm64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.54.tgz", + "integrity": "sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg==", + "dev": true, + "optional": true + }, + "esbuild-darwin-64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.54.tgz", + "integrity": "sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug==", + "dev": true, + "optional": true + }, + "esbuild-darwin-arm64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.54.tgz", + "integrity": "sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw==", + "dev": true, + "optional": true + }, + "esbuild-freebsd-64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.54.tgz", + "integrity": "sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg==", + "dev": true, + "optional": true + }, + "esbuild-freebsd-arm64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.54.tgz", + "integrity": "sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q==", + "dev": true, + "optional": true + }, + "esbuild-linux-32": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.54.tgz", + "integrity": "sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw==", + "dev": true, + "optional": true + }, + "esbuild-linux-64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.54.tgz", + "integrity": "sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg==", + "dev": true, + "optional": true + }, + "esbuild-linux-arm": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.54.tgz", + "integrity": "sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw==", + "dev": true, + "optional": true + }, + "esbuild-linux-arm64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.54.tgz", + "integrity": "sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig==", + "dev": true, + "optional": true + }, + "esbuild-linux-mips64le": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.54.tgz", + "integrity": "sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw==", + "dev": true, + "optional": true + }, + "esbuild-linux-ppc64le": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.54.tgz", + "integrity": "sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ==", + "dev": true, + "optional": true + }, + "esbuild-linux-riscv64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.54.tgz", + "integrity": "sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg==", + "dev": true, + "optional": true + }, + "esbuild-linux-s390x": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.54.tgz", + "integrity": "sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA==", + "dev": true, + "optional": true + }, + "esbuild-netbsd-64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.54.tgz", + "integrity": "sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w==", + "dev": true, + "optional": true + }, + "esbuild-openbsd-64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.54.tgz", + "integrity": "sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw==", + "dev": true, + "optional": true + }, + "esbuild-sunos-64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.54.tgz", + "integrity": "sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw==", + "dev": true, + "optional": true + }, + "esbuild-windows-32": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.54.tgz", + "integrity": "sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w==", + "dev": true, + "optional": true + }, + "esbuild-windows-64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.54.tgz", + "integrity": "sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ==", + "dev": true, + "optional": true + }, + "esbuild-windows-arm64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.54.tgz", + "integrity": "sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg==", + "dev": true, + "optional": true + }, + "estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, + "fast-glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + } + }, + "fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "immutable": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.1.0.tgz", + "integrity": "sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ==", + "dev": true + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-core-module": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", + "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "kleur": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "dev": true + }, + "magic-string": { + "version": "0.26.3", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.26.3.tgz", + "integrity": "sha512-u1Po0NDyFcwdg2nzHT88wSK0+Rih0N1M+Ph1Sp08k8yvFFU3KR72wryS7e1qMPJypt99WB7fIFVCA92mQrMjrg==", + "dev": true, + "requires": { + "sourcemap-codec": "^1.4.8" + } + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, + "min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", + "dev": true + }, + "mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "requires": { + "minimist": "^1.2.6" + } + }, + "mri": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", + "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "dev": true + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, + "postcss": { + "version": "8.4.16", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.16.tgz", + "integrity": "sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==", + "dev": true, + "requires": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + } + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dev": true, + "requires": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "rollup": { + "version": "2.77.3", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.77.3.tgz", + "integrity": "sha512-/qxNTG7FbmefJWoeeYJFbHehJ2HNWnjkAFRKzWN/45eNBBF/r8lo992CwcJXEzyVxs5FmfId+vTSTQDb+bxA+g==", + "dev": true, + "requires": { + "fsevents": "~2.3.2" + } + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "sade": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", + "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", + "dev": true, + "requires": { + "mri": "^1.1.0" + } + }, + "sander": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/sander/-/sander-0.5.1.tgz", + "integrity": "sha512-3lVqBir7WuKDHGrKRDn/1Ye3kwpXaDOMsiRP1wd6wpZW56gJhsbp5RqQpA6JG/P+pkXizygnr1dKR8vzWaVsfA==", + "dev": true, + "requires": { + "es6-promise": "^3.1.2", + "graceful-fs": "^4.1.3", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.2" + } + }, + "sass": { + "version": "1.54.8", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.54.8.tgz", + "integrity": "sha512-ib4JhLRRgbg6QVy6bsv5uJxnJMTS2soVcCp9Y88Extyy13A8vV0G1fAwujOzmNkFQbR3LvedudAMbtuNRPbQww==", + "dev": true, + "requires": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + } + }, + "sorcery": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/sorcery/-/sorcery-0.10.0.tgz", + "integrity": "sha512-R5ocFmKZQFfSTstfOtHjJuAwbpGyf9qjQa1egyhvXSbM7emjrtLXtGdZsDJDABC85YBfVvrOiGWKSYXPKdvP1g==", + "dev": true, + "requires": { + "buffer-crc32": "^0.2.5", + "minimist": "^1.2.0", + "sander": "^0.5.0", + "sourcemap-codec": "^1.3.0" + } + }, + "source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true + }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "dev": true + }, + "strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "requires": { + "min-indent": "^1.0.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true + }, + "svelte": { + "version": "3.50.0", + "resolved": "https://registry.npmjs.org/svelte/-/svelte-3.50.0.tgz", + "integrity": "sha512-zXeOUDS7+85i+RxLN+0iB6PMbGH7OhEgjETcD1fD8ZrhuhNFxYxYEHU41xuhkHIulJavcu3PKbPyuCrBxdxskQ==", + "dev": true + }, + "svelte-check": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-2.9.0.tgz", + "integrity": "sha512-9AVrtP7WbfDgCdqTZNPdj5CCCy1OrYMxFVWAWzNw7fl93c9klFJFtqzVXa6fovfQ050CcpUyJE2dPFL9TFAREw==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.9", + "chokidar": "^3.4.1", + "fast-glob": "^3.2.7", + "import-fresh": "^3.2.1", + "picocolors": "^1.0.0", + "sade": "^1.7.4", + "svelte-preprocess": "^4.0.0", + "typescript": "*" + } + }, + "svelte-hmr": { + "version": "0.14.12", + "resolved": "https://registry.npmjs.org/svelte-hmr/-/svelte-hmr-0.14.12.tgz", + "integrity": "sha512-4QSW/VvXuqVcFZ+RhxiR8/newmwOCTlbYIezvkeN6302YFRE8cXy0naamHcjz8Y9Ce3ITTZtrHrIL0AGfyo61w==", + "dev": true, + "requires": {} + }, + "svelte-preprocess": { + "version": "4.10.7", + "resolved": "https://registry.npmjs.org/svelte-preprocess/-/svelte-preprocess-4.10.7.tgz", + "integrity": "sha512-sNPBnqYD6FnmdBrUmBCaqS00RyCsCpj2BG58A1JBswNF7b0OKviwxqVrOL/CKyJrLSClrSeqQv5BXNg2RUbPOw==", + "dev": true, + "requires": { + "@types/pug": "^2.0.4", + "@types/sass": "^1.16.0", + "detect-indent": "^6.0.0", + "magic-string": "^0.25.7", + "sorcery": "^0.10.0", + "strip-indent": "^3.0.0" + }, + "dependencies": { + "magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dev": true, + "requires": { + "sourcemap-codec": "^1.4.8" + } + } + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "dev": true + }, + "typescript": { + "version": "4.8.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.2.tgz", + "integrity": "sha512-C0I1UsrrDHo2fYI5oaCGbSejwX4ch+9Y5jTQELvovfmFkK3HHSZJB8MSJcWLmCUBzQBchCrZ9rMRV6GuNrvGtw==", + "dev": true + }, + "vite": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/vite/-/vite-3.0.9.tgz", + "integrity": "sha512-waYABTM+G6DBTCpYAxvevpG50UOlZuynR0ckTK5PawNVt7ebX6X7wNXHaGIO6wYYFXSM7/WcuFuO2QzhBB6aMw==", + "dev": true, + "requires": { + "esbuild": "^0.14.47", + "fsevents": "~2.3.2", + "postcss": "^8.4.16", + "resolve": "^1.22.1", + "rollup": ">=2.75.6 <2.77.0 || ~2.77.0" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + } + } +} diff --git a/frontend/package.json b/frontend/package.json new file mode 100644 index 0000000..8a39bd4 --- /dev/null +++ b/frontend/package.json @@ -0,0 +1,24 @@ +{ + "name": "frontend", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview", + "check": "svelte-check --tsconfig ./tsconfig.json" + }, + "devDependencies": { + "@sveltejs/vite-plugin-svelte": "^1.0.1", + "@tsconfig/svelte": "^3.0.0", + "svelte": "^3.49.0", + "svelte-check": "^2.8.0", + "svelte-preprocess": "^4.10.7", + "tslib": "^2.4.0", + "typescript": "^4.6.4", + "vite": "^3.0.7", + "sass": "^1.53.0", + "bulma": "^0.9.4" + } +} diff --git a/frontend/public/thumb.png b/frontend/public/thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..c931b187c073bb2f807ba935e807311f22ae9c72 GIT binary patch literal 30726 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 + import Navbar from "./Navbar.svelte"; + + + +
+ Hallo i bims 1 frontend +
diff --git a/frontend/src/Navbar.svelte b/frontend/src/Navbar.svelte new file mode 100644 index 0000000..f0f8d8a --- /dev/null +++ b/frontend/src/Navbar.svelte @@ -0,0 +1,13 @@ + + + diff --git a/frontend/src/app.scss b/frontend/src/app.scss new file mode 100644 index 0000000..58f765d --- /dev/null +++ b/frontend/src/app.scss @@ -0,0 +1,11 @@ +/* Write your global styles here, in SCSS syntax. Variables and mixins from the src/variables.scss file are available here without importing */ + +/* Import only what you need from Bulma */ +@import "bulma/sass/utilities/_all"; +@import "bulma/sass/base/_all"; +@import "bulma/sass/elements/_all"; +@import "bulma/sass/form/_all"; +@import "bulma/sass/components/_all"; +@import "bulma/sass/grid/_all"; +@import "bulma/sass/helpers/_all"; +@import "bulma/sass/layout/_all"; diff --git a/frontend/src/assets/turtle.png b/frontend/src/assets/turtle.png new file mode 100644 index 0000000000000000000000000000000000000000..c286edf43f9e2a3d12247bbfb14aa40f0839996d GIT binary patch literal 17133 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 Mj^6E}o92Z7135ue(EtDd literal 0 HcmV?d00001 diff --git a/frontend/src/main.ts b/frontend/src/main.ts new file mode 100644 index 0000000..1ef5cbc --- /dev/null +++ b/frontend/src/main.ts @@ -0,0 +1,8 @@ +import "./app.scss"; +import App from "./App.svelte"; + +const app = new App({ + target: document.getElementById("app"), +}); + +export default app; diff --git a/frontend/src/variables.scss b/frontend/src/variables.scss new file mode 100644 index 0000000..8c6001b --- /dev/null +++ b/frontend/src/variables.scss @@ -0,0 +1,4 @@ +/* Variables and mixins declared here will be available in all other SCSS files */ + +/* https://github.com/jgthms/bulma/issues/1293 */ +$body-overflow-y: auto; diff --git a/frontend/src/vite-env.d.ts b/frontend/src/vite-env.d.ts new file mode 100644 index 0000000..4078e74 --- /dev/null +++ b/frontend/src/vite-env.d.ts @@ -0,0 +1,2 @@ +/// +/// diff --git a/frontend/svelte.config.js b/frontend/svelte.config.js new file mode 100644 index 0000000..8f5740a --- /dev/null +++ b/frontend/svelte.config.js @@ -0,0 +1,13 @@ +import sveltePreprocess from "svelte-preprocess"; + +export default { + // Consult https://github.com/sveltejs/svelte-preprocess + // for more information about preprocessors + preprocess: [ + sveltePreprocess({ + scss: { + prependData: '@use "src/variables.scss" as *;', + }, + }), + ], +}; diff --git a/frontend/tsconfig.json b/frontend/tsconfig.json new file mode 100644 index 0000000..d383031 --- /dev/null +++ b/frontend/tsconfig.json @@ -0,0 +1,21 @@ +{ + "extends": "@tsconfig/svelte/tsconfig.json", + "compilerOptions": { + "target": "ESNext", + "useDefineForClassFields": true, + "module": "ESNext", + "resolveJsonModule": true, + "baseUrl": ".", + /** + * Typecheck JS in `.svelte` and `.js` files by default. + * Disable checkJs if you'd like to use dynamic types in JS. + * Note that setting allowJs false does not prevent the use + * of JS in `.svelte` files. + */ + "allowJs": true, + "checkJs": true, + "isolatedModules": true + }, + "include": ["src/**/*.d.ts", "src/**/*.ts", "src/**/*.js", "src/**/*.svelte"], + "references": [{ "path": "./tsconfig.node.json" }] +} diff --git a/frontend/tsconfig.node.json b/frontend/tsconfig.node.json new file mode 100644 index 0000000..65dbdb9 --- /dev/null +++ b/frontend/tsconfig.node.json @@ -0,0 +1,8 @@ +{ + "compilerOptions": { + "composite": true, + "module": "ESNext", + "moduleResolution": "Node" + }, + "include": ["vite.config.ts"] +} diff --git a/frontend/vite.config.ts b/frontend/vite.config.ts new file mode 100644 index 0000000..401b4d4 --- /dev/null +++ b/frontend/vite.config.ts @@ -0,0 +1,7 @@ +import { defineConfig } from 'vite' +import { svelte } from '@sveltejs/vite-plugin-svelte' + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [svelte()] +})