~siegfriedehret/nyrst.tools

134ca3ef91458c5a145187bd0393d1b0fe63fe56 — Siegfried Ehret 3 years ago ae0a175
🎁 update svelte version, reformat files, remove github action
17 files changed, 1387 insertions(+), 447 deletions(-)

M .eslintrc.cjs
D .github/workflows/main.yml
M .gitignore
A .npmrc
M .prettierignore
M README.md
M package-lock.json
M package.json
R src/{global.d.js => global.d.ts}
A src/hooks.ts
A src/lib/form.ts
A src/lib/types.d.ts
R src/routes/{$layout.svelte => __layout.svelte}
M src/routes/brrr/index.svelte
D svelte.config.cjs
A svelte.config.js
A tsconfig.json
M .eslintrc.cjs => .eslintrc.cjs +7 -2
@@ 1,8 1,13 @@
module.exports = {
	root: true,
	extends: ['eslint:recommended', 'prettier'],
	plugins: ['svelte3'],
	parser: '@typescript-eslint/parser',
	extends: ['eslint:recommended', 'plugin:@typescript-eslint/recommended', 'prettier'],
	plugins: ['svelte3', '@typescript-eslint'],
	ignorePatterns: ['*.cjs'],
	overrides: [{ files: ['*.svelte'], processor: 'svelte3/svelte3' }],
	settings: {
		'svelte3/typescript': () => require('typescript')
	},
	parserOptions: {
		sourceType: 'module',
		ecmaVersion: 2019

D .github/workflows/main.yml => .github/workflows/main.yml +0 -42
@@ 1,42 0,0 @@
# This is a basic workflow to help you get started with Actions

name: CI

# Controls when the action will run.
on:
  # Triggers the workflow on push or pull request events but only for the main branch
  push:
    branches: [main]
#  schedule:
#    - cron: '0 * * * *'

  # Allows you to run this workflow manually from the Actions tab
#  workflow_dispatch:

# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
  # This workflow contains a single job called "build"
  build:
    # The type of runner that the job will run on
    runs-on: ubuntu-latest

    # Steps represent a sequence of tasks that will be executed as part of the job
    steps:
      # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
      - uses: actions/checkout@v2

      - uses: actions/setup-node@v2
        with:
          node-version: '12'

      - run: npm i
      - run: npm run build

      - name: Deploy
        uses: apex/actions/up@v0.5.1
        env:
          AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
          AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
          UP_CONFIG: ${{ secrets.UP_CONFIG }}
        with:
          stage: production

M .gitignore => .gitignore +6 -3
@@ 1,6 1,9 @@
/node_modules/
.svelte/
build/
.DS_Store
node_modules
/.svelte-kit
/build
/functions
.vercel_build_output

.idea/
*.iml
\ No newline at end of file

A .npmrc => .npmrc +1 -0
@@ 0,0 1,1 @@
engine-strict=true

M .prettierignore => .prettierignore +1 -1
@@ 1,4 1,4 @@
.svelte/**
.svelte-kit/**
static/**
build/**
node_modules/**

M README.md => README.md +1 -1
@@ 2,4 2,4 @@

The website for `brrr` and `freezer`.

Made with [SvelteKit](https://kit.svelte.dev/).
\ No newline at end of file
Made with [SvelteKit](https://kit.svelte.dev/).

M package-lock.json => package-lock.json +1213 -365
@@ 1,23 1,30 @@
{
	"name": "nyrst-dot-tools",
	"name": "nyrstdottools",
	"version": "0.0.1",
	"lockfileVersion": 2,
	"requires": true,
	"packages": {
		"": {
			"name": "nyrst-dot-tools",
			"name": "nyrstdottools",
			"version": "0.0.1",
			"dependencies": {
				"@lukeed/uuid": "^2.0.0",
				"cookie": "^0.4.1"
			},
			"devDependencies": {
				"@sveltejs/adapter-node": "next",
				"@sveltejs/adapter-static": "^1.0.0-next.0",
				"@sveltejs/adapter-vercel": "^1.0.0-next.19",
				"@sveltejs/kit": "next",
				"@typescript-eslint/eslint-plugin": "^4.19.0",
				"@typescript-eslint/parser": "^4.19.0",
				"eslint": "^7.22.0",
				"eslint-config-prettier": "^8.1.0",
				"eslint-plugin-svelte3": "^3.1.0",
				"eslint-plugin-svelte3": "^3.2.0",
				"prettier": "~2.2.1",
				"prettier-plugin-svelte": "^2.2.0",
				"svelte": "^3.29.0",
				"vite": "^2.1.0"
				"svelte": "^3.34.0",
				"svelte-preprocess": "^4.0.0",
				"tslib": "^2.0.0",
				"typescript": "^4.0.0"
			}
		},
		"node_modules/@babel/code-frame": {


@@ 30,18 37,18 @@
			}
		},
		"node_modules/@babel/helper-validator-identifier": {
			"version": "7.12.11",
			"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz",
			"integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==",
			"version": "7.14.0",
			"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz",
			"integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==",
			"dev": true
		},
		"node_modules/@babel/highlight": {
			"version": "7.13.10",
			"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.13.10.tgz",
			"integrity": "sha512-5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg==",
			"version": "7.14.0",
			"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.0.tgz",
			"integrity": "sha512-YSCOwxvTYEIMSGaBQb5kDDsCopDdiUGsqpatp3fOlI4+2HQSkTmEVWnVuySdAC5EWCqSWWTv0ib63RjR7dTBdg==",
			"dev": true,
			"dependencies": {
				"@babel/helper-validator-identifier": "^7.12.11",
				"@babel/helper-validator-identifier": "^7.14.0",
				"chalk": "^2.0.0",
				"js-tokens": "^4.0.0"
			}


@@ 87,6 94,15 @@
			"integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
			"dev": true
		},
		"node_modules/@babel/highlight/node_modules/escape-string-regexp": {
			"version": "1.0.5",
			"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
			"integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
			"dev": true,
			"engines": {
				"node": ">=0.8.0"
			}
		},
		"node_modules/@babel/highlight/node_modules/has-flag": {
			"version": "3.0.0",
			"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",


@@ 109,9 125,9 @@
			}
		},
		"node_modules/@eslint/eslintrc": {
			"version": "0.4.0",
			"resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.0.tgz",
			"integrity": "sha512-2ZPCc+uNbjV5ERJr+aKSPRwZgKd2z11x0EgLvb1PURmUrn9QNRXFqje0Ldq454PfAVyaJYyrDvvIKSFP4NnBog==",
			"version": "0.4.1",
			"resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.1.tgz",
			"integrity": "sha512-5v7TDE9plVhvxQeWLXDTvFvJBdH6pEsdnl2g/dAptmuFEPedQ4Erq5rsDsX+mvAM610IhNaO2W5V1dOOnDKxkQ==",
			"dev": true,
			"dependencies": {
				"ajv": "^6.12.4",


@@ 152,6 168,60 @@
				"node": ">=8"
			}
		},
		"node_modules/@lukeed/csprng": {
			"version": "1.0.0",
			"resolved": "https://registry.npmjs.org/@lukeed/csprng/-/csprng-1.0.0.tgz",
			"integrity": "sha512-ruuGHsnabmObBdeMg3vKdGRmh06Oog3eFpf/Tk6X0kDSJDpJTDCj2dqdp1+0VjzIUgHlFF9GBm7uFqfYhhdX9g==",
			"engines": {
				"node": ">=8"
			}
		},
		"node_modules/@lukeed/uuid": {
			"version": "2.0.0",
			"resolved": "https://registry.npmjs.org/@lukeed/uuid/-/uuid-2.0.0.tgz",
			"integrity": "sha512-dUz8OmYvlY5A9wXaroHIMSPASpSYRLCqbPvxGSyHguhtTQIy24lC+EGxQlwv71AhRCO55WOtgwhzQLpw27JaJQ==",
			"dependencies": {
				"@lukeed/csprng": "^1.0.0"
			},
			"engines": {
				"node": ">=8"
			}
		},
		"node_modules/@nodelib/fs.scandir": {
			"version": "2.1.4",
			"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz",
			"integrity": "sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA==",
			"dev": true,
			"dependencies": {
				"@nodelib/fs.stat": "2.0.4",
				"run-parallel": "^1.1.9"
			},
			"engines": {
				"node": ">= 8"
			}
		},
		"node_modules/@nodelib/fs.stat": {
			"version": "2.0.4",
			"resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz",
			"integrity": "sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q==",
			"dev": true,
			"engines": {
				"node": ">= 8"
			}
		},
		"node_modules/@nodelib/fs.walk": {
			"version": "1.2.6",
			"resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz",
			"integrity": "sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow==",
			"dev": true,
			"dependencies": {
				"@nodelib/fs.scandir": "2.1.4",
				"fastq": "^1.6.0"
			},
			"engines": {
				"node": ">= 8"
			}
		},
		"node_modules/@rollup/pluginutils": {
			"version": "4.1.0",
			"resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.1.0.tgz",


@@ 168,60 238,244 @@
				"rollup": "^1.20.0||^2.0.0"
			}
		},
		"node_modules/@sveltejs/adapter-node": {
			"version": "1.0.0-next.12",
			"resolved": "https://registry.npmjs.org/@sveltejs/adapter-node/-/adapter-node-1.0.0-next.12.tgz",
			"integrity": "sha512-DGP3dT5ijsTV0zmLDmZP8wI4RjZlifGGzA0y4HLoWNEKhZJLDjFDJnNcA+O5S9QBxQOVaYUlAY2z19r+skBVjA==",
			"dev": true
		},
		"node_modules/@sveltejs/adapter-static": {
			"version": "1.0.0-next.0",
			"resolved": "https://registry.npmjs.org/@sveltejs/adapter-static/-/adapter-static-1.0.0-next.0.tgz",
			"integrity": "sha512-5QYrPSjfqI/Jd2av/WuwhZjRZHaWu8tGmBHM6dh5W7cd4s0PG3eW0p4eASZESHmtCFWGG00PYMRjUUFPPtEcOg==",
			"dev": true
		"node_modules/@sveltejs/adapter-vercel": {
			"version": "1.0.0-next.19",
			"resolved": "https://registry.npmjs.org/@sveltejs/adapter-vercel/-/adapter-vercel-1.0.0-next.19.tgz",
			"integrity": "sha512-A2fTQDTTARahncaW5qP5sOyyw3xrCFj4rORw9dh819AvpajzO5PLwmQiAm2Fj2D8hrG7cnU0c30g89RsPsQ+OA==",
			"dev": true,
			"dependencies": {
				"esbuild": "^0.11.18"
			},
			"peerDependencies": {
				"@sveltejs/kit": "1.0.0-next.109"
			}
		},
		"node_modules/@sveltejs/kit": {
			"version": "1.0.0-next.77",
			"resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-1.0.0-next.77.tgz",
			"integrity": "sha512-3qxJAa+P8hjKtQt0+VlVkv0ktdxJ3Ouf8DTcttv5wejf9EysDWcnrGEePuJWsU0pVSS4WGHdmPEgHGsaUB18BA==",
			"version": "1.0.0-next.109",
			"resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-1.0.0-next.109.tgz",
			"integrity": "sha512-72iHsgcZTj9WU2VMq/qzMdFidTrSlJ1+KE0Iiw43Gee8TkKi5tMOyeu/f8lWa4HzdHLFZ2CJdvmcL7w3F4SWjg==",
			"dev": true,
			"dependencies": {
				"@sveltejs/vite-plugin-svelte": "1.0.0-next.5",
				"@sveltejs/vite-plugin-svelte": "^1.0.0-next.10",
				"cheap-watch": "^1.0.3",
				"sade": "^1.7.4"
				"sade": "^1.7.4",
				"vite": "^2.3.1"
			},
			"bin": {
				"svelte-kit": "svelte-kit.js"
			},
			"engines": {
				"node": ">= 12.17.0"
				"node": "^12.20 || ^14.13.1 || >= 16"
			},
			"peerDependencies": {
				"svelte": "^3.32.1",
				"vite": "^2.1.0"
				"svelte": "^3.38.2"
			}
		},
		"node_modules/@sveltejs/vite-plugin-svelte": {
			"version": "1.0.0-next.5",
			"resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-1.0.0-next.5.tgz",
			"integrity": "sha512-RVjafsqziWwnQm8VEy2y0qNaugNDvRd8tTaCt9rjgQkqaS/BDiyDCluXxA28PRC+ddZjvwUeq9k+0EfbLVObfg==",
			"version": "1.0.0-next.10",
			"resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-1.0.0-next.10.tgz",
			"integrity": "sha512-ImvxbhPePm2hWNTKBSA3LHAYGwiEjHjvvgfPLXm4R87sfZ+BMXql9jBmDpzUC/URBLT4BB3Jxos/i523qkJBHg==",
			"dev": true,
			"dependencies": {
				"@rollup/pluginutils": "^4.1.0",
				"chalk": "^4.1.0",
				"chalk": "^4.1.1",
				"debug": "^4.3.2",
				"hash-sum": "^2.0.0",
				"require-relative": "^0.8.7",
				"slash": "^3.0.0",
				"slash": "^4.0.0",
				"source-map": "^0.7.3",
				"svelte-hmr": "^0.13.3"
				"svelte-hmr": "^0.14.2"
			},
			"engines": {
				"node": ">=12.0.0"
			},
			"peerDependencies": {
				"svelte": "^3.35.0",
				"vite": "^2.1.2"
				"svelte": "^3.37.0",
				"vite": "^2.2.3"
			}
		},
		"node_modules/@types/json-schema": {
			"version": "7.0.7",
			"resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz",
			"integrity": "sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==",
			"dev": true
		},
		"node_modules/@types/node": {
			"version": "15.6.1",
			"resolved": "https://registry.npmjs.org/@types/node/-/node-15.6.1.tgz",
			"integrity": "sha512-7EIraBEyRHEe7CH+Fm1XvgqU6uwZN8Q7jppJGcqjROMT29qhAuuOxYB1uEY5UMYQKEmA5D+5tBnhdaPXSsLONA==",
			"dev": true
		},
		"node_modules/@types/pug": {
			"version": "2.0.4",
			"resolved": "https://registry.npmjs.org/@types/pug/-/pug-2.0.4.tgz",
			"integrity": "sha1-h3L80EGOPNLMFxVV1zAHQVBR9LI=",
			"dev": true
		},
		"node_modules/@types/sass": {
			"version": "1.16.0",
			"resolved": "https://registry.npmjs.org/@types/sass/-/sass-1.16.0.tgz",
			"integrity": "sha512-2XZovu4NwcqmtZtsBR5XYLw18T8cBCnU2USFHTnYLLHz9fkhnoEMoDsqShJIOFsFhn5aJHjweiUUdTrDGujegA==",
			"dev": true,
			"dependencies": {
				"@types/node": "*"
			}
		},
		"node_modules/@typescript-eslint/eslint-plugin": {
			"version": "4.25.0",
			"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.25.0.tgz",
			"integrity": "sha512-Qfs3dWkTMKkKwt78xp2O/KZQB8MPS1UQ5D3YW2s6LQWBE1074BE+Rym+b1pXZIX3M3fSvPUDaCvZLKV2ylVYYQ==",
			"dev": true,
			"dependencies": {
				"@typescript-eslint/experimental-utils": "4.25.0",
				"@typescript-eslint/scope-manager": "4.25.0",
				"debug": "^4.1.1",
				"functional-red-black-tree": "^1.0.1",
				"lodash": "^4.17.15",
				"regexpp": "^3.0.0",
				"semver": "^7.3.2",
				"tsutils": "^3.17.1"
			},
			"engines": {
				"node": "^10.12.0 || >=12.0.0"
			},
			"funding": {
				"type": "opencollective",
				"url": "https://opencollective.com/typescript-eslint"
			},
			"peerDependencies": {
				"@typescript-eslint/parser": "^4.0.0",
				"eslint": "^5.0.0 || ^6.0.0 || ^7.0.0"
			},
			"peerDependenciesMeta": {
				"typescript": {
					"optional": true
				}
			}
		},
		"node_modules/@typescript-eslint/experimental-utils": {
			"version": "4.25.0",
			"resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.25.0.tgz",
			"integrity": "sha512-f0doRE76vq7NEEU0tw+ajv6CrmPelw5wLoaghEHkA2dNLFb3T/zJQqGPQ0OYt5XlZaS13MtnN+GTPCuUVg338w==",
			"dev": true,
			"dependencies": {
				"@types/json-schema": "^7.0.3",
				"@typescript-eslint/scope-manager": "4.25.0",
				"@typescript-eslint/types": "4.25.0",
				"@typescript-eslint/typescript-estree": "4.25.0",
				"eslint-scope": "^5.0.0",
				"eslint-utils": "^2.0.0"
			},
			"engines": {
				"node": "^10.12.0 || >=12.0.0"
			},
			"funding": {
				"type": "opencollective",
				"url": "https://opencollective.com/typescript-eslint"
			},
			"peerDependencies": {
				"eslint": "*"
			}
		},
		"node_modules/@typescript-eslint/parser": {
			"version": "4.25.0",
			"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.25.0.tgz",
			"integrity": "sha512-OZFa1SKyEJpAhDx8FcbWyX+vLwh7OEtzoo2iQaeWwxucyfbi0mT4DijbOSsTgPKzGHr6GrF2V5p/CEpUH/VBxg==",
			"dev": true,
			"dependencies": {
				"@typescript-eslint/scope-manager": "4.25.0",
				"@typescript-eslint/types": "4.25.0",
				"@typescript-eslint/typescript-estree": "4.25.0",
				"debug": "^4.1.1"
			},
			"engines": {
				"node": "^10.12.0 || >=12.0.0"
			},
			"funding": {
				"type": "opencollective",
				"url": "https://opencollective.com/typescript-eslint"
			},
			"peerDependencies": {
				"eslint": "^5.0.0 || ^6.0.0 || ^7.0.0"
			},
			"peerDependenciesMeta": {
				"typescript": {
					"optional": true
				}
			}
		},
		"node_modules/@typescript-eslint/scope-manager": {
			"version": "4.25.0",
			"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.25.0.tgz",
			"integrity": "sha512-2NElKxMb/0rya+NJG1U71BuNnp1TBd1JgzYsldsdA83h/20Tvnf/HrwhiSlNmuq6Vqa0EzidsvkTArwoq+tH6w==",
			"dev": true,
			"dependencies": {
				"@typescript-eslint/types": "4.25.0",
				"@typescript-eslint/visitor-keys": "4.25.0"
			},
			"engines": {
				"node": "^8.10.0 || ^10.13.0 || >=11.10.1"
			},
			"funding": {
				"type": "opencollective",
				"url": "https://opencollective.com/typescript-eslint"
			}
		},
		"node_modules/@typescript-eslint/types": {
			"version": "4.25.0",
			"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.25.0.tgz",
			"integrity": "sha512-+CNINNvl00OkW6wEsi32wU5MhHti2J25TJsJJqgQmJu3B3dYDBcmOxcE5w9cgoM13TrdE/5ND2HoEnBohasxRQ==",
			"dev": true,
			"engines": {
				"node": "^8.10.0 || ^10.13.0 || >=11.10.1"
			},
			"funding": {
				"type": "opencollective",
				"url": "https://opencollective.com/typescript-eslint"
			}
		},
		"node_modules/@typescript-eslint/typescript-estree": {
			"version": "4.25.0",
			"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.25.0.tgz",
			"integrity": "sha512-1B8U07TGNAFMxZbSpF6jqiDs1cVGO0izVkf18Q/SPcUAc9LhHxzvSowXDTvkHMWUVuPpagupaW63gB6ahTXVlg==",
			"dev": true,
			"dependencies": {
				"@typescript-eslint/types": "4.25.0",
				"@typescript-eslint/visitor-keys": "4.25.0",
				"debug": "^4.1.1",
				"globby": "^11.0.1",
				"is-glob": "^4.0.1",
				"semver": "^7.3.2",
				"tsutils": "^3.17.1"
			},
			"engines": {
				"node": "^10.12.0 || >=12.0.0"
			},
			"funding": {
				"type": "opencollective",
				"url": "https://opencollective.com/typescript-eslint"
			},
			"peerDependenciesMeta": {
				"typescript": {
					"optional": true
				}
			}
		},
		"node_modules/@typescript-eslint/visitor-keys": {
			"version": "4.25.0",
			"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.25.0.tgz",
			"integrity": "sha512-AmkqV9dDJVKP/TcZrbf6s6i1zYXt5Hl8qOLrRDTFfRNae4+LB8A4N3i+FLZPW85zIxRy39BgeWOfMS3HoH5ngg==",
			"dev": true,
			"dependencies": {
				"@typescript-eslint/types": "4.25.0",
				"eslint-visitor-keys": "^2.0.0"
			},
			"engines": {
				"node": "^8.10.0 || ^10.13.0 || >=11.10.1"
			},
			"funding": {
				"type": "opencollective",
				"url": "https://opencollective.com/typescript-eslint"
			}
		},
		"node_modules/acorn": {


@@ 303,6 557,15 @@
				"sprintf-js": "~1.0.2"
			}
		},
		"node_modules/array-union": {
			"version": "2.1.0",
			"resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
			"integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
			"dev": true,
			"engines": {
				"node": ">=8"
			}
		},
		"node_modules/astral-regex": {
			"version": "2.0.0",
			"resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz",


@@ 328,17 591,16 @@
				"concat-map": "0.0.1"
			}
		},
		"node_modules/call-bind": {
			"version": "1.0.2",
			"resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
			"integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
		"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": {
				"function-bind": "^1.1.1",
				"get-intrinsic": "^1.0.2"
				"fill-range": "^7.0.1"
			},
			"funding": {
				"url": "https://github.com/sponsors/ljharb"
			"engines": {
				"node": ">=8"
			}
		},
		"node_modules/callsites": {


@@ 351,9 613,9 @@
			}
		},
		"node_modules/chalk": {
			"version": "4.1.0",
			"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz",
			"integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==",
			"version": "4.1.1",
			"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz",
			"integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==",
			"dev": true,
			"dependencies": {
				"ansi-styles": "^4.1.0",


@@ 405,6 667,14 @@
			"integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
			"dev": true
		},
		"node_modules/cookie": {
			"version": "0.4.1",
			"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz",
			"integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==",
			"engines": {
				"node": ">= 0.6"
			}
		},
		"node_modules/cross-spawn": {
			"version": "7.0.3",
			"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",


@@ 442,6 712,27 @@
			"integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=",
			"dev": true
		},
		"node_modules/detect-indent": {
			"version": "6.0.0",
			"resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.0.0.tgz",
			"integrity": "sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA==",
			"dev": true,
			"engines": {
				"node": ">=8"
			}
		},
		"node_modules/dir-glob": {
			"version": "3.0.1",
			"resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
			"integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
			"dev": true,
			"dependencies": {
				"path-type": "^4.0.0"
			},
			"engines": {
				"node": ">=8"
			}
		},
		"node_modules/doctrine": {
			"version": "3.0.0",
			"resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",


@@ 473,9 764,9 @@
			}
		},
		"node_modules/esbuild": {
			"version": "0.9.7",
			"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.9.7.tgz",
			"integrity": "sha512-VtUf6aQ89VTmMLKrWHYG50uByMF4JQlVysb8dmg6cOgW8JnFCipmz7p+HNBl+RR3LLCuBxFGVauAe2wfnF9bLg==",
			"version": "0.11.23",
			"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.11.23.tgz",
			"integrity": "sha512-iaiZZ9vUF5wJV8ob1tl+5aJTrwDczlvGP0JoMmnpC2B0ppiMCu8n8gmy5ZTGl5bcG081XBVn+U+jP+mPFm5T5Q==",
			"dev": true,
			"hasInstallScript": true,
			"bin": {


@@ 483,34 774,39 @@
			}
		},
		"node_modules/escape-string-regexp": {
			"version": "1.0.5",
			"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
			"integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
			"version": "4.0.0",
			"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
			"integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
			"dev": true,
			"engines": {
				"node": ">=0.8.0"
				"node": ">=10"
			},
			"funding": {
				"url": "https://github.com/sponsors/sindresorhus"
			}
		},
		"node_modules/eslint": {
			"version": "7.24.0",
			"resolved": "https://registry.npmjs.org/eslint/-/eslint-7.24.0.tgz",
			"integrity": "sha512-k9gaHeHiFmGCDQ2rEfvULlSLruz6tgfA8DEn+rY9/oYPFFTlz55mM/Q/Rij1b2Y42jwZiK3lXvNTw6w6TXzcKQ==",
			"version": "7.27.0",
			"resolved": "https://registry.npmjs.org/eslint/-/eslint-7.27.0.tgz",
			"integrity": "sha512-JZuR6La2ZF0UD384lcbnd0Cgg6QJjiCwhMD6eU4h/VGPcVGwawNNzKU41tgokGXnfjOOyI6QIffthhJTPzzuRA==",
			"dev": true,
			"dependencies": {
				"@babel/code-frame": "7.12.11",
				"@eslint/eslintrc": "^0.4.0",
				"@eslint/eslintrc": "^0.4.1",
				"ajv": "^6.10.0",
				"chalk": "^4.0.0",
				"cross-spawn": "^7.0.2",
				"debug": "^4.0.1",
				"doctrine": "^3.0.0",
				"enquirer": "^2.3.5",
				"escape-string-regexp": "^4.0.0",
				"eslint-scope": "^5.1.1",
				"eslint-utils": "^2.1.0",
				"eslint-visitor-keys": "^2.0.0",
				"espree": "^7.3.1",
				"esquery": "^1.4.0",
				"esutils": "^2.0.2",
				"fast-deep-equal": "^3.1.3",
				"file-entry-cache": "^6.0.1",
				"functional-red-black-tree": "^1.0.1",
				"glob-parent": "^5.0.0",


@@ 522,7 818,7 @@
				"js-yaml": "^3.13.1",
				"json-stable-stringify-without-jsonify": "^1.0.1",
				"levn": "^0.4.1",
				"lodash": "^4.17.21",
				"lodash.merge": "^4.6.2",
				"minimatch": "^3.0.4",
				"natural-compare": "^1.4.0",
				"optionator": "^0.9.1",


@@ 531,7 827,7 @@
				"semver": "^7.2.1",
				"strip-ansi": "^6.0.0",
				"strip-json-comments": "^3.1.0",
				"table": "^6.0.4",
				"table": "^6.0.9",
				"text-table": "^0.2.0",
				"v8-compile-cache": "^2.0.3"
			},


@@ 546,9 842,9 @@
			}
		},
		"node_modules/eslint-config-prettier": {
			"version": "8.2.0",
			"resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.2.0.tgz",
			"integrity": "sha512-dWV9EVeSo2qodOPi1iBYU/x6F6diHv8uujxbxr77xExs3zTAlNXvVZKiyLsQGNz7yPV2K49JY5WjPzNIuDc2Bw==",
			"version": "8.3.0",
			"resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.3.0.tgz",
			"integrity": "sha512-BgZuLUSeKzvlL/VUjx/Yb787VQ26RU3gGjA3iiFvdsp/2bMfVIWUVP7tjxtjS0e+HP409cPlPvNkQloz8C91ew==",
			"dev": true,
			"bin": {
				"eslint-config-prettier": "bin/cli.js"


@@ 558,9 854,9 @@
			}
		},
		"node_modules/eslint-plugin-svelte3": {
			"version": "3.1.2",
			"resolved": "https://registry.npmjs.org/eslint-plugin-svelte3/-/eslint-plugin-svelte3-3.1.2.tgz",
			"integrity": "sha512-+aGgYFC/yjhGXmBevzwICFVif8tu++C9/lRg8cE6TTS45Hw8qZ6t5wItSXVNPqnxJ212ik+bad1F0Y9A3Swo0Q==",
			"version": "3.2.0",
			"resolved": "https://registry.npmjs.org/eslint-plugin-svelte3/-/eslint-plugin-svelte3-3.2.0.tgz",
			"integrity": "sha512-qdWB1QN21dEozsJFdR8XlEhMnsS6aKHjsXWuNmchYwxoet5I6QdCr1Xcq62++IzRBMCNCeH4waXqSOAdqrZzgA==",
			"dev": true,
			"engines": {
				"node": ">=10"


@@ 608,9 904,9 @@
			}
		},
		"node_modules/eslint-visitor-keys": {
			"version": "2.0.0",
			"resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz",
			"integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==",
			"version": "2.1.0",
			"resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz",
			"integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==",
			"dev": true,
			"engines": {
				"node": ">=10"


@@ 724,6 1020,23 @@
			"integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
			"dev": true
		},
		"node_modules/fast-glob": {
			"version": "3.2.5",
			"resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz",
			"integrity": "sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==",
			"dev": true,
			"dependencies": {
				"@nodelib/fs.stat": "^2.0.2",
				"@nodelib/fs.walk": "^1.2.3",
				"glob-parent": "^5.1.0",
				"merge2": "^1.3.0",
				"micromatch": "^4.0.2",
				"picomatch": "^2.2.1"
			},
			"engines": {
				"node": ">=8"
			}
		},
		"node_modules/fast-json-stable-stringify": {
			"version": "2.1.0",
			"resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",


@@ 736,6 1049,15 @@
			"integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
			"dev": true
		},
		"node_modules/fastq": {
			"version": "1.11.0",
			"resolved": "https://registry.npmjs.org/fastq/-/fastq-1.11.0.tgz",
			"integrity": "sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g==",
			"dev": true,
			"dependencies": {
				"reusify": "^1.0.4"
			}
		},
		"node_modules/file-entry-cache": {
			"version": "6.0.1",
			"resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",


@@ 748,6 1070,18 @@
				"node": "^10.12.0 || >=12.0.0"
			}
		},
		"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/flat-cache": {
			"version": "3.0.4",
			"resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz",


@@ 799,24 1133,10 @@
			"integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=",
			"dev": true
		},
		"node_modules/get-intrinsic": {
			"version": "1.1.1",
			"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz",
			"integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==",
			"dev": true,
			"dependencies": {
				"function-bind": "^1.1.1",
				"has": "^1.0.3",
				"has-symbols": "^1.0.1"
			},
			"funding": {
				"url": "https://github.com/sponsors/ljharb"
			}
		},
		"node_modules/glob": {
			"version": "7.1.6",
			"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
			"integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
			"version": "7.1.7",
			"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz",
			"integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==",
			"dev": true,
			"dependencies": {
				"fs.realpath": "^1.0.0",


@@ 860,6 1180,44 @@
				"url": "https://github.com/sponsors/sindresorhus"
			}
		},
		"node_modules/globby": {
			"version": "11.0.3",
			"resolved": "https://registry.npmjs.org/globby/-/globby-11.0.3.tgz",
			"integrity": "sha512-ffdmosjA807y7+lA1NM0jELARVmYul/715xiILEjo3hBLPTcirgQNnXECn5g3mtR8TOLCVbkfua1Hpen25/Xcg==",
			"dev": true,
			"dependencies": {
				"array-union": "^2.1.0",
				"dir-glob": "^3.0.1",
				"fast-glob": "^3.1.1",
				"ignore": "^5.1.4",
				"merge2": "^1.3.0",
				"slash": "^3.0.0"
			},
			"engines": {
				"node": ">=10"
			},
			"funding": {
				"url": "https://github.com/sponsors/sindresorhus"
			}
		},
		"node_modules/globby/node_modules/ignore": {
			"version": "5.1.8",
			"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz",
			"integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==",
			"dev": true,
			"engines": {
				"node": ">= 4"
			}
		},
		"node_modules/globby/node_modules/slash": {
			"version": "3.0.0",
			"resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
			"integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
			"dev": true,
			"engines": {
				"node": ">=8"
			}
		},
		"node_modules/has": {
			"version": "1.0.3",
			"resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",


@@ 881,18 1239,6 @@
				"node": ">=8"
			}
		},
		"node_modules/has-symbols": {
			"version": "1.0.2",
			"resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz",
			"integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==",
			"dev": true,
			"engines": {
				"node": ">= 0.4"
			},
			"funding": {
				"url": "https://github.com/sponsors/ljharb"
			}
		},
		"node_modules/hash-sum": {
			"version": "2.0.0",
			"resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-2.0.0.tgz",


@@ 949,25 1295,10 @@
			"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
			"dev": true
		},
		"node_modules/is-boolean-object": {
			"version": "1.1.0",
			"resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.0.tgz",
			"integrity": "sha512-a7Uprx8UtD+HWdyYwnD1+ExtTgqQtD2k/1yJgtXP6wnMm8byhkoTZRl+95LLThpzNZJ5aEvi46cdH+ayMFRwmA==",
			"dev": true,
			"dependencies": {
				"call-bind": "^1.0.0"
			},
			"engines": {
				"node": ">= 0.4"
			},
			"funding": {
				"url": "https://github.com/sponsors/ljharb"
			}
		},
		"node_modules/is-core-module": {
			"version": "2.2.0",
			"resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz",
			"integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==",
			"version": "2.4.0",
			"resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.4.0.tgz",
			"integrity": "sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A==",
			"dev": true,
			"dependencies": {
				"has": "^1.0.3"


@@ 1006,28 1337,13 @@
				"node": ">=0.10.0"
			}
		},
		"node_modules/is-number-object": {
			"version": "1.0.4",
			"resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.4.tgz",
			"integrity": "sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw==",
			"dev": true,
			"engines": {
				"node": ">= 0.4"
			},
			"funding": {
				"url": "https://github.com/sponsors/ljharb"
			}
		},
		"node_modules/is-string": {
			"version": "1.0.5",
			"resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz",
			"integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==",
		"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.4"
			},
			"funding": {
				"url": "https://github.com/sponsors/ljharb"
				"node": ">=0.12.0"
			}
		},
		"node_modules/isexe": {


@@ 1092,10 1408,10 @@
			"integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=",
			"dev": true
		},
		"node_modules/lodash.flatten": {
			"version": "4.4.0",
			"resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz",
			"integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=",
		"node_modules/lodash.merge": {
			"version": "4.6.2",
			"resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
			"integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
			"dev": true
		},
		"node_modules/lodash.truncate": {


@@ 1116,6 1432,37 @@
				"node": ">=10"
			}
		},
		"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.4",
			"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz",
			"integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==",
			"dev": true,
			"dependencies": {
				"braces": "^3.0.1",
				"picomatch": "^2.2.3"
			},
			"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.0.4",
			"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",


@@ 1144,9 1491,9 @@
			"dev": true
		},
		"node_modules/nanoid": {
			"version": "3.1.22",
			"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.22.tgz",
			"integrity": "sha512-/2ZUaJX2ANuLtTvqTlgqBQNJoQO398KyJgZloL0PZkC0dpysjncRUPsFe3DUPzz/y3h+u7C46np8RMuvF3jsSQ==",
			"version": "3.1.23",
			"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.23.tgz",
			"integrity": "sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw==",
			"dev": true,
			"bin": {
				"nanoid": "bin/nanoid.cjs"


@@ 1218,15 1565,24 @@
			}
		},
		"node_modules/path-parse": {
			"version": "1.0.6",
			"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
			"integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
			"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/path-type": {
			"version": "4.0.0",
			"resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
			"integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
			"dev": true,
			"engines": {
				"node": ">=8"
			}
		},
		"node_modules/picomatch": {
			"version": "2.2.3",
			"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.3.tgz",
			"integrity": "sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==",
			"version": "2.3.0",
			"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz",
			"integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==",
			"dev": true,
			"engines": {
				"node": ">=8.6"


@@ 1236,14 1592,14 @@
			}
		},
		"node_modules/postcss": {
			"version": "8.2.10",
			"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.2.10.tgz",
			"integrity": "sha512-b/h7CPV7QEdrqIxtAf2j31U5ef05uBDuvoXv6L51Q4rcS1jdlXAVKJv+atCFdUXYl9dyTHGyoMzIepwowRJjFw==",
			"version": "8.3.0",
			"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.0.tgz",
			"integrity": "sha512-+ogXpdAjWGa+fdYY5BQ96V/6tAo+TdSSIMP5huJBIygdWwKtVoB5JWZ7yUd4xZ8r+8Kvvx4nyg/PQ071H4UtcQ==",
			"dev": true,
			"dependencies": {
				"colorette": "^1.2.2",
				"nanoid": "^3.1.22",
				"source-map": "^0.6.1"
				"nanoid": "^3.1.23",
				"source-map-js": "^0.6.2"
			},
			"engines": {
				"node": "^10 || ^12 || >=14"


@@ 1253,15 1609,6 @@
				"url": "https://opencollective.com/postcss/"
			}
		},
		"node_modules/postcss/node_modules/source-map": {
			"version": "0.6.1",
			"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
			"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
			"dev": true,
			"engines": {
				"node": ">=0.10.0"
			}
		},
		"node_modules/prelude-ls": {
			"version": "1.2.1",
			"resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",


@@ 1284,9 1631,9 @@
			}
		},
		"node_modules/prettier-plugin-svelte": {
			"version": "2.2.0",
			"resolved": "https://registry.npmjs.org/prettier-plugin-svelte/-/prettier-plugin-svelte-2.2.0.tgz",
			"integrity": "sha512-Xdmqgr71tAuMqqzNCK52/v94g/Yv7V7lz+nmbO9NEA+9ol15VV3uUHOfydMNOo3SWvFaVlBcp947ebEaMWqVfQ==",
			"version": "2.3.0",
			"resolved": "https://registry.npmjs.org/prettier-plugin-svelte/-/prettier-plugin-svelte-2.3.0.tgz",
			"integrity": "sha512-HTzXvSq7lWFuLsSaxYOUkGkVNCl3RrSjDCOgQjkBX5FQGmWjL8o3IFACSGhjPMMfWKADpapAr0zdbBWkND9mqw==",
			"dev": true,
			"peerDependencies": {
				"prettier": "^1.16.4 || ^2.0.0",


@@ 1311,6 1658,26 @@
				"node": ">=6"
			}
		},
		"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/regexpp": {
			"version": "3.1.0",
			"resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz",


@@ 1360,6 1727,16 @@
				"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": "3.0.2",
			"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",


@@ 1376,9 1753,9 @@
			}
		},
		"node_modules/rollup": {
			"version": "2.45.2",
			"resolved": "https://registry.npmjs.org/rollup/-/rollup-2.45.2.tgz",
			"integrity": "sha512-kRRU7wXzFHUzBIv0GfoFFIN3m9oteY4uAsKllIpQDId5cfnkWF2J130l+27dzDju0E6MScKiV0ZM5Bw8m4blYQ==",
			"version": "2.50.1",
			"resolved": "https://registry.npmjs.org/rollup/-/rollup-2.50.1.tgz",
			"integrity": "sha512-3MQhSdGpms4xjYrtR3WNHMT+VrWWM4oqUxUC770MmLo1FWFR2pr/OL81HSPC/ifmiu0uMFk0qPGLmjkSMRIESw==",
			"dev": true,
			"bin": {
				"rollup": "dist/bin/rollup"


@@ 1390,6 1767,29 @@
				"fsevents": "~2.3.1"
			}
		},
		"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.7.4",
			"resolved": "https://registry.npmjs.org/sade/-/sade-1.7.4.tgz",


@@ 1439,12 1839,15 @@
			}
		},
		"node_modules/slash": {
			"version": "3.0.0",
			"resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
			"integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
			"version": "4.0.0",
			"resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz",
			"integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==",
			"dev": true,
			"engines": {
				"node": ">=8"
				"node": ">=12"
			},
			"funding": {
				"url": "https://github.com/sponsors/sindresorhus"
			}
		},
		"node_modules/slice-ansi": {


@@ 1473,6 1876,15 @@
				"node": ">= 8"
			}
		},
		"node_modules/source-map-js": {
			"version": "0.6.2",
			"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-0.6.2.tgz",
			"integrity": "sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug==",
			"dev": true,
			"engines": {
				"node": ">=0.10.0"
			}
		},
		"node_modules/sprintf-js": {
			"version": "1.0.3",
			"resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",


@@ 1499,7 1911,19 @@
			"integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
			"dev": true,
			"dependencies": {
				"ansi-regex": "^5.0.0"
				"ansi-regex": "^5.0.0"
			},
			"engines": {
				"node": ">=8"
			}
		},
		"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"


@@ 1530,47 1954,108 @@
			}
		},
		"node_modules/svelte": {
			"version": "3.37.0",
			"resolved": "https://registry.npmjs.org/svelte/-/svelte-3.37.0.tgz",
			"integrity": "sha512-TRF30F4W4+d+Jr2KzUUL1j8Mrpns/WM/WacxYlo5MMb2E5Qy2Pk1Guj6GylxsW9OnKQl1tnF8q3hG/hQ3h6VUA==",
			"version": "3.38.2",
			"resolved": "https://registry.npmjs.org/svelte/-/svelte-3.38.2.tgz",
			"integrity": "sha512-q5Dq0/QHh4BLJyEVWGe7Cej5NWs040LWjMbicBGZ+3qpFWJ1YObRmUDZKbbovddLC9WW7THTj3kYbTOFmU9fbg==",
			"dev": true,
			"engines": {
				"node": ">= 8"
			}
		},
		"node_modules/svelte-hmr": {
			"version": "0.13.3",
			"resolved": "https://registry.npmjs.org/svelte-hmr/-/svelte-hmr-0.13.3.tgz",
			"integrity": "sha512-gagW62pLQ2lULmvNA3pIZu9pBCYOaGu3rQikUOv6Nokz5VxUgT9/mQLfMxj9phDEKHCg/lgr3i6PkqZDbO9P2Q==",
			"version": "0.14.4",
			"resolved": "https://registry.npmjs.org/svelte-hmr/-/svelte-hmr-0.14.4.tgz",
			"integrity": "sha512-kItFF7vqzStckSigoFmMnxJpTOdB9TWnQAW6Js+yAB4277tLbJIIE5KBlGHNmJNpA7MguqidsPB27Uw5UzQPCA==",
			"dev": true,
			"peerDependencies": {
				"svelte": ">=3.19.0"
			}
		},
		"node_modules/svelte-preprocess": {
			"version": "4.7.3",
			"resolved": "https://registry.npmjs.org/svelte-preprocess/-/svelte-preprocess-4.7.3.tgz",
			"integrity": "sha512-Zx1/xLeGOIBlZMGPRCaXtlMe4ZA0faato5Dc3CosEqwu75MIEPuOstdkH6cy+RYTUYynoxzNaDxkPX4DbrPwRA==",
			"dev": true,
			"hasInstallScript": true,
			"dependencies": {
				"@types/pug": "^2.0.4",
				"@types/sass": "^1.16.0",
				"detect-indent": "^6.0.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",
				"postcss": "^7 || ^8",
				"postcss-load-config": "^2.1.0 || ^3.0.0",
				"pug": "^3.0.0",
				"sass": "^1.26.8",
				"stylus": "^0.54.7",
				"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/table": {
			"version": "6.1.0",
			"resolved": "https://registry.npmjs.org/table/-/table-6.1.0.tgz",
			"integrity": "sha512-T4G5KMmqIk6X87gLKWyU5exPpTjLjY5KyrFWaIjv3SvgaIUGXV7UEzGEnZJdTA38/yUS6f9PlKezQ0bYXG3iIQ==",
			"version": "6.7.1",
			"resolved": "https://registry.npmjs.org/table/-/table-6.7.1.tgz",
			"integrity": "sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg==",
			"dev": true,
			"dependencies": {
				"ajv": "^8.0.1",
				"is-boolean-object": "^1.1.0",
				"is-number-object": "^1.0.4",
				"is-string": "^1.0.5",
				"lodash.clonedeep": "^4.5.0",
				"lodash.flatten": "^4.4.0",
				"lodash.truncate": "^4.4.2",
				"slice-ansi": "^4.0.0",
				"string-width": "^4.2.0"
				"string-width": "^4.2.0",
				"strip-ansi": "^6.0.0"
			},
			"engines": {
				"node": ">=10.0.0"
			}
		},
		"node_modules/table/node_modules/ajv": {
			"version": "8.1.0",
			"resolved": "https://registry.npmjs.org/ajv/-/ajv-8.1.0.tgz",
			"integrity": "sha512-B/Sk2Ix7A36fs/ZkuGLIR86EdjbgR6fsAcbx9lOP/QBSXujDNbVmIS/U4Itz5k8fPFDeVZl/zQ/gJW4Jrq6XjQ==",
			"version": "8.5.0",
			"resolved": "https://registry.npmjs.org/ajv/-/ajv-8.5.0.tgz",
			"integrity": "sha512-Y2l399Tt1AguU3BPRP9Fn4eN+Or+StUGWCUpbnFyXSo8NZ9S4uj+AG2pjs5apK+ZMOwYOz1+a+VKvKH7CudXgQ==",
			"dev": true,
			"dependencies": {
				"fast-deep-equal": "^3.1.1",


@@ 1595,6 2080,45 @@
			"integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
			"dev": true
		},
		"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.2.0",
			"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz",
			"integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==",
			"dev": true
		},
		"node_modules/tsutils": {
			"version": "3.21.0",
			"resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz",
			"integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==",
			"dev": true,
			"dependencies": {
				"tslib": "^1.8.1"
			},
			"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"
			}
		},
		"node_modules/tsutils/node_modules/tslib": {
			"version": "1.14.1",
			"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
			"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
			"dev": true
		},
		"node_modules/type-check": {
			"version": "0.4.0",
			"resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",


@@ 1619,6 2143,19 @@
				"url": "https://github.com/sponsors/sindresorhus"
			}
		},
		"node_modules/typescript": {
			"version": "4.2.4",
			"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.2.4.tgz",
			"integrity": "sha512-V+evlYHZnQkaz8TRBuxTA92yZBPotr5H+WhQ7bD3hZUndx5tGOa1fuCgeSjxAzM1RiN5IzvadIXTVefuuwZCRg==",
			"dev": true,
			"bin": {
				"tsc": "bin/tsc",
				"tsserver": "bin/tsserver"
			},
			"engines": {
				"node": ">=4.2.0"
			}
		},
		"node_modules/uri-js": {
			"version": "4.4.1",
			"resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",


@@ 1635,13 2172,13 @@
			"dev": true
		},
		"node_modules/vite": {
			"version": "2.1.5",
			"resolved": "https://registry.npmjs.org/vite/-/vite-2.1.5.tgz",
			"integrity": "sha512-tYU5iaYeUgQYvK/CNNz3tiJ8vYqPWfCE9IQ7K0iuzYovWw7lzty7KRYGWwV3CQPh0NKxWjOczAqiJsCL0Xb+Og==",
			"version": "2.3.4",
			"resolved": "https://registry.npmjs.org/vite/-/vite-2.3.4.tgz",
			"integrity": "sha512-7orxrF65+Q5n/sMCnO91S8OS0gkPJ7g+y3bLlc7CPCXVswK8to1T8YycCk9SZh+AcIc0TuN6YajWTBFS5atMNA==",
			"dev": true,
			"dependencies": {
				"esbuild": "^0.9.3",
				"postcss": "^8.2.1",
				"esbuild": "^0.11.23",
				"postcss": "^8.2.10",
				"resolve": "^1.19.0",
				"rollup": "^2.38.5"
			},


@@ 1703,18 2240,18 @@
			}
		},
		"@babel/helper-validator-identifier": {
			"version": "7.12.11",
			"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz",
			"integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==",
			"version": "7.14.0",
			"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz",
			"integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==",
			"dev": true
		},
		"@babel/highlight": {
			"version": "7.13.10",
			"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.13.10.tgz",
			"integrity": "sha512-5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg==",
			"version": "7.14.0",
			"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.0.tgz",
			"integrity": "sha512-YSCOwxvTYEIMSGaBQb5kDDsCopDdiUGsqpatp3fOlI4+2HQSkTmEVWnVuySdAC5EWCqSWWTv0ib63RjR7dTBdg==",
			"dev": true,
			"requires": {
				"@babel/helper-validator-identifier": "^7.12.11",
				"@babel/helper-validator-identifier": "^7.14.0",
				"chalk": "^2.0.0",
				"js-tokens": "^4.0.0"
			},


@@ 1754,6 2291,12 @@
					"integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
					"dev": true
				},
				"escape-string-regexp": {
					"version": "1.0.5",
					"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
					"integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
					"dev": true
				},
				"has-flag": {
					"version": "3.0.0",
					"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",


@@ 1772,9 2315,9 @@
			}
		},
		"@eslint/eslintrc": {
			"version": "0.4.0",
			"resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.0.tgz",
			"integrity": "sha512-2ZPCc+uNbjV5ERJr+aKSPRwZgKd2z11x0EgLvb1PURmUrn9QNRXFqje0Ldq454PfAVyaJYyrDvvIKSFP4NnBog==",
			"version": "0.4.1",
			"resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.1.tgz",
			"integrity": "sha512-5v7TDE9plVhvxQeWLXDTvFvJBdH6pEsdnl2g/dAptmuFEPedQ4Erq5rsDsX+mvAM610IhNaO2W5V1dOOnDKxkQ==",
			"dev": true,
			"requires": {
				"ajv": "^6.12.4",


@@ 1805,6 2348,45 @@
				}
			}
		},
		"@lukeed/csprng": {
			"version": "1.0.0",
			"resolved": "https://registry.npmjs.org/@lukeed/csprng/-/csprng-1.0.0.tgz",
			"integrity": "sha512-ruuGHsnabmObBdeMg3vKdGRmh06Oog3eFpf/Tk6X0kDSJDpJTDCj2dqdp1+0VjzIUgHlFF9GBm7uFqfYhhdX9g=="
		},
		"@lukeed/uuid": {
			"version": "2.0.0",
			"resolved": "https://registry.npmjs.org/@lukeed/uuid/-/uuid-2.0.0.tgz",
			"integrity": "sha512-dUz8OmYvlY5A9wXaroHIMSPASpSYRLCqbPvxGSyHguhtTQIy24lC+EGxQlwv71AhRCO55WOtgwhzQLpw27JaJQ==",
			"requires": {
				"@lukeed/csprng": "^1.0.0"
			}
		},
		"@nodelib/fs.scandir": {
			"version": "2.1.4",
			"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz",
			"integrity": "sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA==",
			"dev": true,
			"requires": {
				"@nodelib/fs.stat": "2.0.4",
				"run-parallel": "^1.1.9"
			}
		},
		"@nodelib/fs.stat": {
			"version": "2.0.4",
			"resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz",
			"integrity": "sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q==",
			"dev": true
		},
		"@nodelib/fs.walk": {
			"version": "1.2.6",
			"resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz",
			"integrity": "sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow==",
			"dev": true,
			"requires": {
				"@nodelib/fs.scandir": "2.1.4",
				"fastq": "^1.6.0"
			}
		},
		"@rollup/pluginutils": {
			"version": "4.1.0",
			"resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.1.0.tgz",


@@ 1815,43 2397,151 @@
				"picomatch": "^2.2.2"
			}
		},
		"@sveltejs/adapter-node": {
			"version": "1.0.0-next.12",
			"resolved": "https://registry.npmjs.org/@sveltejs/adapter-node/-/adapter-node-1.0.0-next.12.tgz",
			"integrity": "sha512-DGP3dT5ijsTV0zmLDmZP8wI4RjZlifGGzA0y4HLoWNEKhZJLDjFDJnNcA+O5S9QBxQOVaYUlAY2z19r+skBVjA==",
			"dev": true
		},
		"@sveltejs/adapter-static": {
			"version": "1.0.0-next.0",
			"resolved": "https://registry.npmjs.org/@sveltejs/adapter-static/-/adapter-static-1.0.0-next.0.tgz",
			"integrity": "sha512-5QYrPSjfqI/Jd2av/WuwhZjRZHaWu8tGmBHM6dh5W7cd4s0PG3eW0p4eASZESHmtCFWGG00PYMRjUUFPPtEcOg==",
			"dev": true
		"@sveltejs/adapter-vercel": {
			"version": "1.0.0-next.19",
			"resolved": "https://registry.npmjs.org/@sveltejs/adapter-vercel/-/adapter-vercel-1.0.0-next.19.tgz",
			"integrity": "sha512-A2fTQDTTARahncaW5qP5sOyyw3xrCFj4rORw9dh819AvpajzO5PLwmQiAm2Fj2D8hrG7cnU0c30g89RsPsQ+OA==",
			"dev": true,
			"requires": {
				"esbuild": "^0.11.18"
			}
		},
		"@sveltejs/kit": {
			"version": "1.0.0-next.77",
			"resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-1.0.0-next.77.tgz",
			"integrity": "sha512-3qxJAa+P8hjKtQt0+VlVkv0ktdxJ3Ouf8DTcttv5wejf9EysDWcnrGEePuJWsU0pVSS4WGHdmPEgHGsaUB18BA==",
			"version": "1.0.0-next.109",
			"resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-1.0.0-next.109.tgz",
			"integrity": "sha512-72iHsgcZTj9WU2VMq/qzMdFidTrSlJ1+KE0Iiw43Gee8TkKi5tMOyeu/f8lWa4HzdHLFZ2CJdvmcL7w3F4SWjg==",
			"dev": true,
			"requires": {
				"@sveltejs/vite-plugin-svelte": "1.0.0-next.5",
				"@sveltejs/vite-plugin-svelte": "^1.0.0-next.10",
				"cheap-watch": "^1.0.3",
				"sade": "^1.7.4"
				"sade": "^1.7.4",
				"vite": "^2.3.1"
			}
		},
		"@sveltejs/vite-plugin-svelte": {
			"version": "1.0.0-next.5",
			"resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-1.0.0-next.5.tgz",
			"integrity": "sha512-RVjafsqziWwnQm8VEy2y0qNaugNDvRd8tTaCt9rjgQkqaS/BDiyDCluXxA28PRC+ddZjvwUeq9k+0EfbLVObfg==",
			"version": "1.0.0-next.10",
			"resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-1.0.0-next.10.tgz",
			"integrity": "sha512-ImvxbhPePm2hWNTKBSA3LHAYGwiEjHjvvgfPLXm4R87sfZ+BMXql9jBmDpzUC/URBLT4BB3Jxos/i523qkJBHg==",
			"dev": true,
			"requires": {
				"@rollup/pluginutils": "^4.1.0",
				"chalk": "^4.1.0",
				"chalk": "^4.1.1",
				"debug": "^4.3.2",
				"hash-sum": "^2.0.0",
				"require-relative": "^0.8.7",
				"slash": "^3.0.0",
				"slash": "^4.0.0",
				"source-map": "^0.7.3",
				"svelte-hmr": "^0.13.3"
				"svelte-hmr": "^0.14.2"
			}
		},
		"@types/json-schema": {
			"version": "7.0.7",
			"resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz",
			"integrity": "sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==",
			"dev": true
		},
		"@types/node": {
			"version": "15.6.1",
			"resolved": "https://registry.npmjs.org/@types/node/-/node-15.6.1.tgz",
			"integrity": "sha512-7EIraBEyRHEe7CH+Fm1XvgqU6uwZN8Q7jppJGcqjROMT29qhAuuOxYB1uEY5UMYQKEmA5D+5tBnhdaPXSsLONA==",
			"dev": true
		},
		"@types/pug": {
			"version": "2.0.4",
			"resolved": "https://registry.npmjs.org/@types/pug/-/pug-2.0.4.tgz",
			"integrity": "sha1-h3L80EGOPNLMFxVV1zAHQVBR9LI=",
			"dev": true
		},
		"@types/sass": {
			"version": "1.16.0",
			"resolved": "https://registry.npmjs.org/@types/sass/-/sass-1.16.0.tgz",
			"integrity": "sha512-2XZovu4NwcqmtZtsBR5XYLw18T8cBCnU2USFHTnYLLHz9fkhnoEMoDsqShJIOFsFhn5aJHjweiUUdTrDGujegA==",
			"dev": true,
			"requires": {
				"@types/node": "*"
			}
		},
		"@typescript-eslint/eslint-plugin": {
			"version": "4.25.0",
			"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.25.0.tgz",
			"integrity": "sha512-Qfs3dWkTMKkKwt78xp2O/KZQB8MPS1UQ5D3YW2s6LQWBE1074BE+Rym+b1pXZIX3M3fSvPUDaCvZLKV2ylVYYQ==",
			"dev": true,
			"requires": {
				"@typescript-eslint/experimental-utils": "4.25.0",
				"@typescript-eslint/scope-manager": "4.25.0",
				"debug": "^4.1.1",
				"functional-red-black-tree": "^1.0.1",
				"lodash": "^4.17.15",
				"regexpp": "^3.0.0",
				"semver": "^7.3.2",
				"tsutils": "^3.17.1"
			}
		},
		"@typescript-eslint/experimental-utils": {
			"version": "4.25.0",
			"resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.25.0.tgz",
			"integrity": "sha512-f0doRE76vq7NEEU0tw+ajv6CrmPelw5wLoaghEHkA2dNLFb3T/zJQqGPQ0OYt5XlZaS13MtnN+GTPCuUVg338w==",
			"dev": true,
			"requires": {
				"@types/json-schema": "^7.0.3",
				"@typescript-eslint/scope-manager": "4.25.0",
				"@typescript-eslint/types": "4.25.0",
				"@typescript-eslint/typescript-estree": "4.25.0",
				"eslint-scope": "^5.0.0",
				"eslint-utils": "^2.0.0"
			}
		},
		"@typescript-eslint/parser": {
			"version": "4.25.0",
			"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.25.0.tgz",
			"integrity": "sha512-OZFa1SKyEJpAhDx8FcbWyX+vLwh7OEtzoo2iQaeWwxucyfbi0mT4DijbOSsTgPKzGHr6GrF2V5p/CEpUH/VBxg==",
			"dev": true,
			"requires": {
				"@typescript-eslint/scope-manager": "4.25.0",
				"@typescript-eslint/types": "4.25.0",
				"@typescript-eslint/typescript-estree": "4.25.0",
				"debug": "^4.1.1"
			}
		},
		"@typescript-eslint/scope-manager": {
			"version": "4.25.0",
			"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.25.0.tgz",
			"integrity": "sha512-2NElKxMb/0rya+NJG1U71BuNnp1TBd1JgzYsldsdA83h/20Tvnf/HrwhiSlNmuq6Vqa0EzidsvkTArwoq+tH6w==",
			"dev": true,
			"requires": {
				"@typescript-eslint/types": "4.25.0",
				"@typescript-eslint/visitor-keys": "4.25.0"
			}
		},
		"@typescript-eslint/types": {
			"version": "4.25.0",
			"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.25.0.tgz",
			"integrity": "sha512-+CNINNvl00OkW6wEsi32wU5MhHti2J25TJsJJqgQmJu3B3dYDBcmOxcE5w9cgoM13TrdE/5ND2HoEnBohasxRQ==",
			"dev": true
		},
		"@typescript-eslint/typescript-estree": {
			"version": "4.25.0",
			"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.25.0.tgz",
			"integrity": "sha512-1B8U07TGNAFMxZbSpF6jqiDs1cVGO0izVkf18Q/SPcUAc9LhHxzvSowXDTvkHMWUVuPpagupaW63gB6ahTXVlg==",
			"dev": true,
			"requires": {
				"@typescript-eslint/types": "4.25.0",
				"@typescript-eslint/visitor-keys": "4.25.0",
				"debug": "^4.1.1",
				"globby": "^11.0.1",
				"is-glob": "^4.0.1",
				"semver": "^7.3.2",
				"tsutils": "^3.17.1"
			}
		},
		"@typescript-eslint/visitor-keys": {
			"version": "4.25.0",
			"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.25.0.tgz",
			"integrity": "sha512-AmkqV9dDJVKP/TcZrbf6s6i1zYXt5Hl8qOLrRDTFfRNae4+LB8A4N3i+FLZPW85zIxRy39BgeWOfMS3HoH5ngg==",
			"dev": true,
			"requires": {
				"@typescript-eslint/types": "4.25.0",
				"eslint-visitor-keys": "^2.0.0"
			}
		},
		"acorn": {


@@ 1909,6 2599,12 @@
				"sprintf-js": "~1.0.2"
			}
		},
		"array-union": {
			"version": "2.1.0",
			"resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
			"integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
			"dev": true
		},
		"astral-regex": {
			"version": "2.0.0",
			"resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz",


@@ 1931,14 2627,13 @@
				"concat-map": "0.0.1"
			}
		},
		"call-bind": {
			"version": "1.0.2",
			"resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
			"integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
		"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": {
				"function-bind": "^1.1.1",
				"get-intrinsic": "^1.0.2"
				"fill-range": "^7.0.1"
			}
		},
		"callsites": {


@@ 1948,9 2643,9 @@
			"dev": true
		},
		"chalk": {
			"version": "4.1.0",
			"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz",
			"integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==",
			"version": "4.1.1",
			"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz",
			"integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==",
			"dev": true,
			"requires": {
				"ansi-styles": "^4.1.0",


@@ 1990,6 2685,11 @@
			"integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
			"dev": true
		},
		"cookie": {
			"version": "0.4.1",
			"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz",
			"integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA=="
		},
		"cross-spawn": {
			"version": "7.0.3",
			"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",


@@ 2016,6 2716,21 @@
			"integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=",
			"dev": true
		},
		"detect-indent": {
			"version": "6.0.0",
			"resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.0.0.tgz",
			"integrity": "sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA==",
			"dev": true
		},
		"dir-glob": {
			"version": "3.0.1",
			"resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
			"integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
			"dev": true,
			"requires": {
				"path-type": "^4.0.0"
			}
		},
		"doctrine": {
			"version": "3.0.0",
			"resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",


@@ 2041,37 2756,39 @@
			}
		},
		"esbuild": {
			"version": "0.9.7",
			"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.9.7.tgz",
			"integrity": "sha512-VtUf6aQ89VTmMLKrWHYG50uByMF4JQlVysb8dmg6cOgW8JnFCipmz7p+HNBl+RR3LLCuBxFGVauAe2wfnF9bLg==",
			"version": "0.11.23",
			"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.11.23.tgz",
			"integrity": "sha512-iaiZZ9vUF5wJV8ob1tl+5aJTrwDczlvGP0JoMmnpC2B0ppiMCu8n8gmy5ZTGl5bcG081XBVn+U+jP+mPFm5T5Q==",
			"dev": true
		},
		"escape-string-regexp": {
			"version": "1.0.5",
			"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
			"integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
			"version": "4.0.0",
			"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
			"integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
			"dev": true
		},
		"eslint": {
			"version": "7.24.0",
			"resolved": "https://registry.npmjs.org/eslint/-/eslint-7.24.0.tgz",
			"integrity": "sha512-k9gaHeHiFmGCDQ2rEfvULlSLruz6tgfA8DEn+rY9/oYPFFTlz55mM/Q/Rij1b2Y42jwZiK3lXvNTw6w6TXzcKQ==",
			"version": "7.27.0",
			"resolved": "https://registry.npmjs.org/eslint/-/eslint-7.27.0.tgz",
			"integrity": "sha512-JZuR6La2ZF0UD384lcbnd0Cgg6QJjiCwhMD6eU4h/VGPcVGwawNNzKU41tgokGXnfjOOyI6QIffthhJTPzzuRA==",
			"dev": true,
			"requires": {
				"@babel/code-frame": "7.12.11",
				"@eslint/eslintrc": "^0.4.0",
				"@eslint/eslintrc": "^0.4.1",
				"ajv": "^6.10.0",
				"chalk": "^4.0.0",
				"cross-spawn": "^7.0.2",
				"debug": "^4.0.1",
				"doctrine": "^3.0.0",
				"enquirer": "^2.3.5",
				"escape-string-regexp": "^4.0.0",
				"eslint-scope": "^5.1.1",
				"eslint-utils": "^2.1.0",
				"eslint-visitor-keys": "^2.0.0",
				"espree": "^7.3.1",
				"esquery": "^1.4.0",
				"esutils": "^2.0.2",
				"fast-deep-equal": "^3.1.3",
				"file-entry-cache": "^6.0.1",
				"functional-red-black-tree": "^1.0.1",
				"glob-parent": "^5.0.0",


@@ 2083,7 2800,7 @@
				"js-yaml": "^3.13.1",
				"json-stable-stringify-without-jsonify": "^1.0.1",
				"levn": "^0.4.1",
				"lodash": "^4.17.21",
				"lodash.merge": "^4.6.2",
				"minimatch": "^3.0.4",
				"natural-compare": "^1.4.0",
				"optionator": "^0.9.1",


@@ 2092,22 2809,22 @@
				"semver": "^7.2.1",
				"strip-ansi": "^6.0.0",
				"strip-json-comments": "^3.1.0",
				"table": "^6.0.4",
				"table": "^6.0.9",
				"text-table": "^0.2.0",
				"v8-compile-cache": "^2.0.3"
			}
		},
		"eslint-config-prettier": {
			"version": "8.2.0",
			"resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.2.0.tgz",
			"integrity": "sha512-dWV9EVeSo2qodOPi1iBYU/x6F6diHv8uujxbxr77xExs3zTAlNXvVZKiyLsQGNz7yPV2K49JY5WjPzNIuDc2Bw==",
			"version": "8.3.0",
			"resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.3.0.tgz",
			"integrity": "sha512-BgZuLUSeKzvlL/VUjx/Yb787VQ26RU3gGjA3iiFvdsp/2bMfVIWUVP7tjxtjS0e+HP409cPlPvNkQloz8C91ew==",
			"dev": true,
			"requires": {}
		},
		"eslint-plugin-svelte3": {
			"version": "3.1.2",
			"resolved": "https://registry.npmjs.org/eslint-plugin-svelte3/-/eslint-plugin-svelte3-3.1.2.tgz",
			"integrity": "sha512-+aGgYFC/yjhGXmBevzwICFVif8tu++C9/lRg8cE6TTS45Hw8qZ6t5wItSXVNPqnxJ212ik+bad1F0Y9A3Swo0Q==",
			"version": "3.2.0",
			"resolved": "https://registry.npmjs.org/eslint-plugin-svelte3/-/eslint-plugin-svelte3-3.2.0.tgz",
			"integrity": "sha512-qdWB1QN21dEozsJFdR8XlEhMnsS6aKHjsXWuNmchYwxoet5I6QdCr1Xcq62++IzRBMCNCeH4waXqSOAdqrZzgA==",
			"dev": true,
			"requires": {}
		},


@@ 2139,9 2856,9 @@
			}
		},
		"eslint-visitor-keys": {
			"version": "2.0.0",
			"resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz",
			"integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==",
			"version": "2.1.0",
			"resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz",
			"integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==",
			"dev": true
		},
		"espree": {


@@ 2227,6 2944,20 @@
			"integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
			"dev": true
		},
		"fast-glob": {
			"version": "3.2.5",
			"resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz",
			"integrity": "sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==",
			"dev": true,
			"requires": {
				"@nodelib/fs.stat": "^2.0.2",
				"@nodelib/fs.walk": "^1.2.3",
				"glob-parent": "^5.1.0",
				"merge2": "^1.3.0",
				"micromatch": "^4.0.2",
				"picomatch": "^2.2.1"
			}
		},
		"fast-json-stable-stringify": {
			"version": "2.1.0",
			"resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",


@@ 2239,6 2970,15 @@
			"integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
			"dev": true
		},
		"fastq": {
			"version": "1.11.0",
			"resolved": "https://registry.npmjs.org/fastq/-/fastq-1.11.0.tgz",
			"integrity": "sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g==",
			"dev": true,
			"requires": {
				"reusify": "^1.0.4"
			}
		},
		"file-entry-cache": {
			"version": "6.0.1",
			"resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",


@@ 2248,6 2988,15 @@
				"flat-cache": "^3.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"
			}
		},
		"flat-cache": {
			"version": "3.0.4",
			"resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz",


@@ 2289,21 3038,10 @@
			"integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=",
			"dev": true
		},
		"get-intrinsic": {
			"version": "1.1.1",
			"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz",
			"integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==",
			"dev": true,
			"requires": {
				"function-bind": "^1.1.1",
				"has": "^1.0.3",
				"has-symbols": "^1.0.1"
			}
		},
		"glob": {
			"version": "7.1.6",
			"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
			"integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
			"version": "7.1.7",
			"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz",
			"integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==",
			"dev": true,
			"requires": {
				"fs.realpath": "^1.0.0",


@@ 2332,6 3070,34 @@
				"type-fest": "^0.20.2"
			}
		},
		"globby": {
			"version": "11.0.3",
			"resolved": "https://registry.npmjs.org/globby/-/globby-11.0.3.tgz",
			"integrity": "sha512-ffdmosjA807y7+lA1NM0jELARVmYul/715xiILEjo3hBLPTcirgQNnXECn5g3mtR8TOLCVbkfua1Hpen25/Xcg==",
			"dev": true,
			"requires": {
				"array-union": "^2.1.0",
				"dir-glob": "^3.0.1",
				"fast-glob": "^3.1.1",
				"ignore": "^5.1.4",
				"merge2": "^1.3.0",
				"slash": "^3.0.0"
			},
			"dependencies": {
				"ignore": {
					"version": "5.1.8",
					"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz",
					"integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==",
					"dev": true
				},
				"slash": {
					"version": "3.0.0",
					"resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
					"integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
					"dev": true
				}
			}
		},
		"has": {
			"version": "1.0.3",
			"resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",


@@ 2347,12 3113,6 @@
			"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
			"dev": true
		},
		"has-symbols": {
			"version": "1.0.2",
			"resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz",
			"integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==",
			"dev": true
		},
		"hash-sum": {
			"version": "2.0.0",
			"resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-2.0.0.tgz",


@@ 2397,19 3157,10 @@
			"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
			"dev": true
		},
		"is-boolean-object": {
			"version": "1.1.0",
			"resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.0.tgz",
			"integrity": "sha512-a7Uprx8UtD+HWdyYwnD1+ExtTgqQtD2k/1yJgtXP6wnMm8byhkoTZRl+95LLThpzNZJ5aEvi46cdH+ayMFRwmA==",
			"dev": true,
			"requires": {
				"call-bind": "^1.0.0"
			}
		},
		"is-core-module": {
			"version": "2.2.0",
			"resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz",
			"integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==",
			"version": "2.4.0",
			"resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.4.0.tgz",
			"integrity": "sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A==",
			"dev": true,
			"requires": {
				"has": "^1.0.3"


@@ 2436,16 3187,10 @@
				"is-extglob": "^2.1.1"
			}
		},
		"is-number-object": {
			"version": "1.0.4",
			"resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.4.tgz",
			"integrity": "sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw==",
			"dev": true
		},
		"is-string": {
			"version": "1.0.5",
			"resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz",
			"integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==",
		"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
		},
		"isexe": {


@@ 2504,10 3249,10 @@
			"integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=",
			"dev": true
		},
		"lodash.flatten": {
			"version": "4.4.0",
			"resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz",
			"integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=",
		"lodash.merge": {
			"version": "4.6.2",
			"resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
			"integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
			"dev": true
		},
		"lodash.truncate": {


@@ 2525,6 3270,28 @@
				"yallist": "^4.0.0"
			}
		},
		"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.4",
			"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz",
			"integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==",
			"dev": true,
			"requires": {
				"braces": "^3.0.1",
				"picomatch": "^2.2.3"
			}
		},
		"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.0.4",
			"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",


@@ 2547,9 3314,9 @@
			"dev": true
		},
		"nanoid": {
			"version": "3.1.22",
			"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.22.tgz",
			"integrity": "sha512-/2ZUaJX2ANuLtTvqTlgqBQNJoQO398KyJgZloL0PZkC0dpysjncRUPsFe3DUPzz/y3h+u7C46np8RMuvF3jsSQ==",
			"version": "3.1.23",
			"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.23.tgz",
			"integrity": "sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw==",
			"dev": true
		},
		"natural-compare": {


@@ 2603,34 3370,32 @@
			"dev": true
		},
		"path-parse": {
			"version": "1.0.6",
			"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
			"integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
			"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
		},
		"path-type": {
			"version": "4.0.0",
			"resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
			"integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
			"dev": true
		},
		"picomatch": {
			"version": "2.2.3",
			"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.3.tgz",
			"integrity": "sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==",
			"version": "2.3.0",
			"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz",
			"integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==",
			"dev": true
		},
		"postcss": {
			"version": "8.2.10",
			"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.2.10.tgz",
			"integrity": "sha512-b/h7CPV7QEdrqIxtAf2j31U5ef05uBDuvoXv6L51Q4rcS1jdlXAVKJv+atCFdUXYl9dyTHGyoMzIepwowRJjFw==",
			"version": "8.3.0",
			"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.0.tgz",
			"integrity": "sha512-+ogXpdAjWGa+fdYY5BQ96V/6tAo+TdSSIMP5huJBIygdWwKtVoB5JWZ7yUd4xZ8r+8Kvvx4nyg/PQ071H4UtcQ==",
			"dev": true,
			"requires": {
				"colorette": "^1.2.2",
				"nanoid": "^3.1.22",
				"source-map": "^0.6.1"
			},
			"dependencies": {
				"source-map": {
					"version": "0.6.1",
					"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
					"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
					"dev": true
				}
				"nanoid": "^3.1.23",
				"source-map-js": "^0.6.2"
			}
		},
		"prelude-ls": {


@@ 2646,9 3411,9 @@
			"dev": true
		},
		"prettier-plugin-svelte": {
			"version": "2.2.0",
			"resolved": "https://registry.npmjs.org/prettier-plugin-svelte/-/prettier-plugin-svelte-2.2.0.tgz",
			"integrity": "sha512-Xdmqgr71tAuMqqzNCK52/v94g/Yv7V7lz+nmbO9NEA+9ol15VV3uUHOfydMNOo3SWvFaVlBcp947ebEaMWqVfQ==",
			"version": "2.3.0",
			"resolved": "https://registry.npmjs.org/prettier-plugin-svelte/-/prettier-plugin-svelte-2.3.0.tgz",
			"integrity": "sha512-HTzXvSq7lWFuLsSaxYOUkGkVNCl3RrSjDCOgQjkBX5FQGmWjL8o3IFACSGhjPMMfWKADpapAr0zdbBWkND9mqw==",
			"dev": true,
			"requires": {}
		},


@@ 2664,6 3429,12 @@
			"integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
			"dev": true
		},
		"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
		},
		"regexpp": {
			"version": "3.1.0",
			"resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz",


@@ 2698,6 3469,12 @@
			"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": "3.0.2",
			"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",


@@ 2708,14 3485,23 @@
			}
		},
		"rollup": {
			"version": "2.45.2",
			"resolved": "https://registry.npmjs.org/rollup/-/rollup-2.45.2.tgz",
			"integrity": "sha512-kRRU7wXzFHUzBIv0GfoFFIN3m9oteY4uAsKllIpQDId5cfnkWF2J130l+27dzDju0E6MScKiV0ZM5Bw8m4blYQ==",
			"version": "2.50.1",
			"resolved": "https://registry.npmjs.org/rollup/-/rollup-2.50.1.tgz",
			"integrity": "sha512-3MQhSdGpms4xjYrtR3WNHMT+VrWWM4oqUxUC770MmLo1FWFR2pr/OL81HSPC/ifmiu0uMFk0qPGLmjkSMRIESw==",
			"dev": true,
			"requires": {
				"fsevents": "~2.3.1"
			}
		},
		"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.7.4",
			"resolved": "https://registry.npmjs.org/sade/-/sade-1.7.4.tgz",


@@ 2750,9 3536,9 @@
			"dev": true
		},
		"slash": {
			"version": "3.0.0",
			"resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
			"integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
			"version": "4.0.0",
			"resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz",
			"integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==",
			"dev": true
		},
		"slice-ansi": {


@@ 2772,6 3558,12 @@
			"integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==",
			"dev": true
		},
		"source-map-js": {
			"version": "0.6.2",
			"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-0.6.2.tgz",
			"integrity": "sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug==",
			"dev": true
		},
		"sprintf-js": {
			"version": "1.0.3",
			"resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",


@@ 2798,6 3590,15 @@
				"ansi-regex": "^5.0.0"
			}
		},
		"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"
			}
		},
		"strip-json-comments": {
			"version": "3.1.1",
			"resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",


@@ 2814,39 3615,48 @@
			}
		},
		"svelte": {
			"version": "3.37.0",
			"resolved": "https://registry.npmjs.org/svelte/-/svelte-3.37.0.tgz",
			"integrity": "sha512-TRF30F4W4+d+Jr2KzUUL1j8Mrpns/WM/WacxYlo5MMb2E5Qy2Pk1Guj6GylxsW9OnKQl1tnF8q3hG/hQ3h6VUA==",
			"version": "3.38.2",
			"resolved": "https://registry.npmjs.org/svelte/-/svelte-3.38.2.tgz",
			"integrity": "sha512-q5Dq0/QHh4BLJyEVWGe7Cej5NWs040LWjMbicBGZ+3qpFWJ1YObRmUDZKbbovddLC9WW7THTj3kYbTOFmU9fbg==",
			"dev": true
		},
		"svelte-hmr": {
			"version": "0.13.3",
			"resolved": "https://registry.npmjs.org/svelte-hmr/-/svelte-hmr-0.13.3.tgz",
			"integrity": "sha512-gagW62pLQ2lULmvNA3pIZu9pBCYOaGu3rQikUOv6Nokz5VxUgT9/mQLfMxj9phDEKHCg/lgr3i6PkqZDbO9P2Q==",
			"version": "0.14.4",
			"resolved": "https://registry.npmjs.org/svelte-hmr/-/svelte-hmr-0.14.4.tgz",
			"integrity": "sha512-kItFF7vqzStckSigoFmMnxJpTOdB9TWnQAW6Js+yAB4277tLbJIIE5KBlGHNmJNpA7MguqidsPB27Uw5UzQPCA==",
			"dev": true,
			"requires": {}
		},
		"svelte-preprocess": {
			"version": "4.7.3",
			"resolved": "https://registry.npmjs.org/svelte-preprocess/-/svelte-preprocess-4.7.3.tgz",
			"integrity": "sha512-Zx1/xLeGOIBlZMGPRCaXtlMe4ZA0faato5Dc3CosEqwu75MIEPuOstdkH6cy+RYTUYynoxzNaDxkPX4DbrPwRA==",
			"dev": true,
			"requires": {
				"@types/pug": "^2.0.4",
				"@types/sass": "^1.16.0",
				"detect-indent": "^6.0.0",
				"strip-indent": "^3.0.0"
			}
		},
		"table": {
			"version": "6.1.0",
			"resolved": "https://registry.npmjs.org/table/-/table-6.1.0.tgz",
			"integrity": "sha512-T4G5KMmqIk6X87gLKWyU5exPpTjLjY5KyrFWaIjv3SvgaIUGXV7UEzGEnZJdTA38/yUS6f9PlKezQ0bYXG3iIQ==",
			"version": "6.7.1",
			"resolved": "https://registry.npmjs.org/table/-/table-6.7.1.tgz",
			"integrity": "sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg==",
			"dev": true,
			"requires": {
				"ajv": "^8.0.1",
				"is-boolean-object": "^1.1.0",
				"is-number-object": "^1.0.4",
				"is-string": "^1.0.5",
				"lodash.clonedeep": "^4.5.0",
				"lodash.flatten": "^4.4.0",
				"lodash.truncate": "^4.4.2",
				"slice-ansi": "^4.0.0",
				"string-width": "^4.2.0"
				"string-width": "^4.2.0",
				"strip-ansi": "^6.0.0"
			},
			"dependencies": {
				"ajv": {
					"version": "8.1.0",
					"resolved": "https://registry.npmjs.org/ajv/-/ajv-8.1.0.tgz",
					"integrity": "sha512-B/Sk2Ix7A36fs/ZkuGLIR86EdjbgR6fsAcbx9lOP/QBSXujDNbVmIS/U4Itz5k8fPFDeVZl/zQ/gJW4Jrq6XjQ==",
					"version": "8.5.0",
					"resolved": "https://registry.npmjs.org/ajv/-/ajv-8.5.0.tgz",
					"integrity": "sha512-Y2l399Tt1AguU3BPRP9Fn4eN+Or+StUGWCUpbnFyXSo8NZ9S4uj+AG2pjs5apK+ZMOwYOz1+a+VKvKH7CudXgQ==",
					"dev": true,
					"requires": {
						"fast-deep-equal": "^3.1.1",


@@ 2869,6 3679,38 @@
			"integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
			"dev": true
		},
		"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.2.0",
			"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz",
			"integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==",
			"dev": true
		},
		"tsutils": {
			"version": "3.21.0",
			"resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz",
			"integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==",
			"dev": true,
			"requires": {
				"tslib": "^1.8.1"
			},
			"dependencies": {
				"tslib": {
					"version": "1.14.1",
					"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
					"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
					"dev": true
				}
			}
		},
		"type-check": {
			"version": "0.4.0",
			"resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",


@@ 2884,6 3726,12 @@
			"integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
			"dev": true
		},
		"typescript": {
			"version": "4.2.4",
			"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.2.4.tgz",
			"integrity": "sha512-V+evlYHZnQkaz8TRBuxTA92yZBPotr5H+WhQ7bD3hZUndx5tGOa1fuCgeSjxAzM1RiN5IzvadIXTVefuuwZCRg==",
			"dev": true
		},
		"uri-js": {
			"version": "4.4.1",
			"resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",


@@ 2900,14 3748,14 @@
			"dev": true
		},
		"vite": {
			"version": "2.1.5",
			"resolved": "https://registry.npmjs.org/vite/-/vite-2.1.5.tgz",
			"integrity": "sha512-tYU5iaYeUgQYvK/CNNz3tiJ8vYqPWfCE9IQ7K0iuzYovWw7lzty7KRYGWwV3CQPh0NKxWjOczAqiJsCL0Xb+Og==",
			"version": "2.3.4",
			"resolved": "https://registry.npmjs.org/vite/-/vite-2.3.4.tgz",
			"integrity": "sha512-7orxrF65+Q5n/sMCnO91S8OS0gkPJ7g+y3bLlc7CPCXVswK8to1T8YycCk9SZh+AcIc0TuN6YajWTBFS5atMNA==",
			"dev": true,
			"requires": {
				"esbuild": "^0.9.3",
				"esbuild": "^0.11.23",
				"fsevents": "~2.3.1",
				"postcss": "^8.2.1",
				"postcss": "^8.2.10",
				"resolve": "^1.19.0",
				"rollup": "^2.38.5"
			}

M package.json => package.json +17 -10
@@ 1,24 1,31 @@
{
	"name": "nyrst-dot-tools",
	"name": "nyrstdottools",
	"version": "0.0.1",
	"scripts": {
		"dev": "svelte-kit dev",
		"build": "svelte-kit build",
		"start": "svelte-kit start",
		"lint": "prettier --check . && eslint --ignore-path .gitignore .",
		"format": "prettier --write ."
		"preview": "svelte-kit preview",
		"lint": "prettier --check --plugin-search-dir=. . && eslint --ignore-path .gitignore .",
		"format": "prettier --write --plugin-search-dir=. ."
	},
	"devDependencies": {
		"@sveltejs/adapter-node": "next",
		"@sveltejs/adapter-static": "^1.0.0-next.0",
		"@sveltejs/adapter-vercel": "^1.0.0-next.19",
		"@sveltejs/kit": "next",
		"@typescript-eslint/eslint-plugin": "^4.19.0",
		"@typescript-eslint/parser": "^4.19.0",
		"eslint": "^7.22.0",
		"eslint-config-prettier": "^8.1.0",
		"eslint-plugin-svelte3": "^3.1.0",
		"eslint-plugin-svelte3": "^3.2.0",
		"prettier": "~2.2.1",
		"prettier-plugin-svelte": "^2.2.0",
		"svelte": "^3.29.0",
		"vite": "^2.1.0"
		"svelte": "^3.34.0",
		"svelte-preprocess": "^4.0.0",
		"tslib": "^2.0.0",
		"typescript": "^4.0.0"
	},
	"type": "module"
	"type": "module",
	"dependencies": {
		"@lukeed/uuid": "^2.0.0",
		"cookie": "^0.4.1"
	}
}

R src/global.d.js => src/global.d.ts +0 -2
@@ 1,3 1,1 @@
/// <reference types="@sveltejs/kit" />
/// <reference types="svelte" />
/// <reference types="vite/client" />

A src/hooks.ts => src/hooks.ts +23 -0
@@ 0,0 1,23 @@
import cookie from 'cookie';
import { v4 as uuid } from '@lukeed/uuid';
import type { Handle } from '@sveltejs/kit';

export const handle: Handle = async ({ request, render }) => {
	const cookies = cookie.parse(request.headers.cookie || '');
	request.locals.userid = cookies.userid || uuid();

	// TODO https://github.com/sveltejs/kit/issues/1046
	if (request.query.has('_method')) {
		request.method = request.query.get('_method').toUpperCase();
	}

	const response = await render(request);

	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-cookie'] = `userid=${request.locals.userid}; Path=/; HttpOnly`;
	}

	return response;
};

A src/lib/form.ts => src/lib/form.ts +60 -0
@@ 0,0 1,60 @@
// this action (https://svelte.dev/tutorial/actions) allows us to
// progressively enhance a <form> that already works without JS
export function enhance(
	form: HTMLFormElement,
	{
		pending,
		error,
		result
	}: {
		pending?: (data: FormData, form: HTMLFormElement) => void;
		error?: (res: Response, error: Error, form: HTMLFormElement) => void;
		result: (res: Response, form: HTMLFormElement) => void;
	}
) {
	let current_token: {};

	async function handle_submit(e: Event) {
		const token = (current_token = {});

		e.preventDefault();

		const body = new FormData(form);

		if (pending) pending(body, form);

		try {
			const res = await fetch(form.action, {
				method: form.method,
				headers: {
					accept: 'application/json'
				},
				body
			});

			if (token !== current_token) return;

			if (res.ok) {
				result(res, form);
			} else if (error) {
				error(res, null, form);
			} else {
				console.error(await res.text());
			}
		} catch (e) {
			if (error) {
				error(null, e, form);
			} else {
				throw e;
			}
		}
	}

	form.addEventListener('submit', handle_submit);

	return {
		destroy() {
			form.removeEventListener('submit', handle_submit);
		}
	};
}

A src/lib/types.d.ts => src/lib/types.d.ts +7 -0
@@ 0,0 1,7 @@
/**
 * Can be made globally available by placing this
 * inside `global.d.ts` and removing `export` keyword
 */
export interface Locals {
	userid: string;
}

R src/routes/$layout.svelte => src/routes/__layout.svelte +0 -0
M src/routes/brrr/index.svelte => src/routes/brrr/index.svelte +4 -1
@@ 21,7 21,10 @@
	</li>
</ul>

<p>The website for <code>brrr</code> is still available at <a href="https://brrr.nyrst.tools/">brrr.nyrst.tools</a></p>
<p>
	The website for <code>brrr</code> is still available at
	<a href="https://brrr.nyrst.tools/">brrr.nyrst.tools</a>
</p>

<style>
</style>

D svelte.config.cjs => svelte.config.cjs +0 -20
@@ 1,20 0,0 @@
const static = require('@sveltejs/adapter-static');
const pkg = require('./package.json');

/** @type {import('@sveltejs/kit').Config} */
module.exports = {
	kit: {
		adapter: {
			adapt: static
		},

		// hydrate the <div id="svelte"> element in src/app.html
		target: '#svelte',

		vite: {
			ssr: {
				noExternal: Object.keys(pkg.dependencies || {})
			}
		}
	}
};

A svelte.config.js => svelte.config.js +17 -0
@@ 0,0 1,17 @@
import preprocess from 'svelte-preprocess';
import vercel from '@sveltejs/adapter-vercel';

/** @type {import('@sveltejs/kit').Config} */
const config = {
	// Consult https://github.com/sveltejs/svelte-preprocess
	// for more information about preprocessors
	preprocess: preprocess(),

	kit: {
		adapter: vercel(),
		// hydrate the <div id="svelte"> element in src/app.html
		target: '#svelte'
	}
};

export default config;

A tsconfig.json => tsconfig.json +30 -0
@@ 0,0 1,30 @@
{
	"compilerOptions": {
		"moduleResolution": "node",
		"module": "es2020",
		"lib": ["es2020"],
		"target": "es2019",
		/**
			svelte-preprocess cannot figure out whether you have a value or a type, so tell TypeScript
			to enforce using \`import type\` instead of \`import\` for Types.
			*/
		"importsNotUsedAsValues": "error",
		"isolatedModules": true,
		"resolveJsonModule": true,
		/**
			To have warnings/errors of the Svelte compiler at the correct position,
			enable source maps by default.
			*/
		"sourceMap": true,
		"esModuleInterop": true,
		"skipLibCheck": true,
		"forceConsistentCasingInFileNames": true,
		"baseUrl": ".",
		"allowJs": true,
		"checkJs": true,
		"paths": {
			"$lib/*": ["src/lib/*"]
		}
	},
	"include": ["src/**/*.d.ts", "src/**/*.js", "src/**/*.ts", "src/**/*.svelte"]
}