From 73185636cddf7763f3489b5659d35bafddd01291 Mon Sep 17 00:00:00 2001 From: Adam Veldhousen Date: Sat, 10 Apr 2021 03:32:16 -0500 Subject: [PATCH] client --- .gitignore | 10 + client/README.md | 157 ++ client/package-lock.json | 2197 +++++++++++++++++ client/package.json | 33 + client/rollup.config.js | 127 + client/scripts/setupTypeScript.js | 304 +++ client/src/ambient.d.ts | 39 + client/src/client.js | 5 + client/src/components/Nav.svelte | 60 + client/src/node_modules/images/successkid.jpg | Bin 0 -> 78652 bytes client/src/routes/_error.svelte | 40 + client/src/routes/_layout.svelte | 22 + client/src/routes/about.svelte | 7 + client/src/routes/blog/[slug].json.js | 28 + client/src/routes/blog/[slug].svelte | 64 + client/src/routes/blog/_posts.js | 92 + client/src/routes/blog/index.json.js | 16 + client/src/routes/blog/index.svelte | 34 + client/src/routes/index.svelte | 50 + client/src/server.js | 17 + client/src/service-worker.js | 86 + client/src/template.html | 34 + client/static/favicon.png | Bin 0 -> 3127 bytes client/static/global.css | 36 + client/static/logo-192.png | Bin 0 -> 4760 bytes client/static/logo-512.png | Bin 0 -> 13928 bytes client/static/manifest.json | 22 + 27 files changed, 3480 insertions(+) create mode 100644 client/README.md create mode 100644 client/package-lock.json create mode 100644 client/package.json create mode 100644 client/rollup.config.js create mode 100644 client/scripts/setupTypeScript.js create mode 100644 client/src/ambient.d.ts create mode 100644 client/src/client.js create mode 100644 client/src/components/Nav.svelte create mode 100644 client/src/node_modules/images/successkid.jpg create mode 100644 client/src/routes/_error.svelte create mode 100644 client/src/routes/_layout.svelte create mode 100644 client/src/routes/about.svelte create mode 100644 client/src/routes/blog/[slug].json.js create mode 100644 client/src/routes/blog/[slug].svelte create mode 100644 client/src/routes/blog/_posts.js create mode 100644 client/src/routes/blog/index.json.js create mode 100644 client/src/routes/blog/index.svelte create mode 100644 client/src/routes/index.svelte create mode 100644 client/src/server.js create mode 100644 client/src/service-worker.js create mode 100644 client/src/template.html create mode 100644 client/static/favicon.png create mode 100644 client/static/global.css create mode 100644 client/static/logo-192.png create mode 100644 client/static/logo-512.png create mode 100644 client/static/manifest.json diff --git a/.gitignore b/.gitignore index e33ee33..12abae7 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,13 @@ db/.data # api api/.bin + +# client +client/node_modules/ +client/src/node_modules/@sapper/ +client/yarn-error.log +client/__sapper__/ + + +# misc +.DS_Store diff --git a/client/README.md b/client/README.md new file mode 100644 index 0000000..8dc7474 --- /dev/null +++ b/client/README.md @@ -0,0 +1,157 @@ +# sapper-template + +The default template for setting up a [Sapper](https://github.com/sveltejs/sapper) project. Can use either Rollup or webpack as bundler. + + +## Getting started + + +### Using `degit` + +To create a new Sapper project based on Rollup locally, run + +```bash +npx degit "sveltejs/sapper-template#rollup" my-app +``` + +For a webpack-based project, instead run + +```bash +npx degit "sveltejs/sapper-template#webpack" my-app +``` + +[`degit`](https://github.com/Rich-Harris/degit) is a scaffolding tool that lets you create a directory from a branch in a repository. + +Replace `my-app` with the path where you wish to create the project. + + +### Using GitHub templates + +Alternatively, you can create the new project as a GitHub repository using GitHub's template feature. + +Go to either [sapper-template-rollup](https://github.com/sveltejs/sapper-template-rollup) or [sapper-template-webpack](https://github.com/sveltejs/sapper-template-webpack) and click on "Use this template" to create a new project repository initialized by the template. + + +### Running the project + +Once you have created the project, install dependencies and run the project in development mode: + +```bash +cd my-app +npm install # or yarn +npm run dev +``` + +This will start the development server on [localhost:3000](http://localhost:3000). Open it and click around. + +You now have a fully functional Sapper project! To get started developing, consult [sapper.svelte.dev](https://sapper.svelte.dev). + +### Using TypeScript + +By default, the template uses plain JavaScript. If you wish to use TypeScript instead, you need some changes to the project: + + * Add `typescript` as well as typings as dependences in `package.json` + * Configure the bundler to use [`svelte-preprocess`](https://github.com/sveltejs/svelte-preprocess) and transpile the TypeScript code. + * Add a `tsconfig.json` file + * Update the project code to TypeScript + +The template comes with a script that will perform these changes for you by running + +```bash +node scripts/setupTypeScript.js +``` + +`@sapper` dependencies are resolved through `src/node_modules/@sapper`, which is created during the build. You therefore need to run or build the project once to avoid warnings about missing dependencies. + +The script does not support webpack at the moment. + +## Directory structure + +Sapper expects to find two directories in the root of your project — `src` and `static`. + + +### src + +The [src](src) directory contains the entry points for your app — `client.js`, `server.js` and (optionally) a `service-worker.js` — along with a `template.html` file and a `routes` directory. + + +#### src/routes + +This is the heart of your Sapper app. There are two kinds of routes — *pages*, and *server routes*. + +**Pages** are Svelte components written in `.svelte` files. When a user first visits the application, they will be served a server-rendered version of the route in question, plus some JavaScript that 'hydrates' the page and initialises a client-side router. From that point forward, navigating to other pages is handled entirely on the client for a fast, app-like feel. (Sapper will preload and cache the code for these subsequent pages, so that navigation is instantaneous.) + +**Server routes** are modules written in `.js` files, that export functions corresponding to HTTP methods. Each function receives Express `request` and `response` objects as arguments, plus a `next` function. This is useful for creating a JSON API, for example. + +There are three simple rules for naming the files that define your routes: + +* A file called `src/routes/about.svelte` corresponds to the `/about` route. A file called `src/routes/blog/[slug].svelte` corresponds to the `/blog/:slug` route, in which case `params.slug` is available to the route +* The file `src/routes/index.svelte` (or `src/routes/index.js`) corresponds to the root of your app. `src/routes/about/index.svelte` is treated the same as `src/routes/about.svelte`. +* Files and directories with a leading underscore do *not* create routes. This allows you to colocate helper modules and components with the routes that depend on them — for example you could have a file called `src/routes/_helpers/datetime.js` and it would *not* create a `/_helpers/datetime` route. + + +#### src/node_modules/images + +Images added to `src/node_modules/images` can be imported into your code using `import 'images/'`. They will be given a dynamically generated filename containing a hash, allowing for efficient caching and serving the images on a CDN. + +See [`index.svelte`](src/routes/index.svelte) for an example. + + +#### src/node_modules/@sapper + +This directory is managed by Sapper and generated when building. It contains all the code you import from `@sapper` modules. + + +### static + +The [static](static) directory contains static assets that should be served publicly. Files in this directory will be available directly under the root URL, e.g. an `image.jpg` will be available as `/image.jpg`. + +The default [service-worker.js](src/service-worker.js) will preload and cache these files, by retrieving a list of `files` from the generated manifest: + +```js +import { files } from '@sapper/service-worker'; +``` + +If you have static files you do not want to cache, you should exclude them from this list after importing it (and before passing it to `cache.addAll`). + +Static files are served using [sirv](https://github.com/lukeed/sirv). + + +## Bundler configuration + +Sapper uses Rollup or webpack to provide code-splitting and dynamic imports, as well as compiling your Svelte components. With webpack, it also provides hot module reloading. As long as you don't do anything daft, you can edit the configuration files to add whatever plugins you'd like. + + +## Production mode and deployment + +To start a production version of your app, run `npm run build && npm start`. This will disable live reloading, and activate the appropriate bundler plugins. + +You can deploy your application to any environment that supports Node 10 or above. As an example, to deploy to [Vercel Now](https://vercel.com) when using `sapper export`, run these commands: + +```bash +npm install -g vercel +vercel +``` + +If your app can't be exported to a static site, you can use the [vercel-sapper](https://github.com/thgh/vercel-sapper) builder. You can find instructions on how to do so in its [README](https://github.com/thgh/vercel-sapper#basic-usage). + + +## Using external components + +When using Svelte components installed from npm, such as [@sveltejs/svelte-virtual-list](https://github.com/sveltejs/svelte-virtual-list), Svelte needs the original component source (rather than any precompiled JavaScript that ships with the component). This allows the component to be rendered server-side, and also keeps your client-side app smaller. + +Because of that, it's essential that the bundler doesn't treat the package as an *external dependency*. You can either modify the `external` option under `server` in [rollup.config.js](rollup.config.js) or the `externals` option in [webpack.config.js](webpack.config.js), or simply install the package to `devDependencies` rather than `dependencies`, which will cause it to get bundled (and therefore compiled) with your app: + +```bash +npm install -D @sveltejs/svelte-virtual-list +``` + +## Troubleshooting + +Using Windows and WSL2? + +If your project lives outside the WSL root directory, [this limitation](https://github.com/microsoft/WSL/issues/4169) is known to cause live-reloading to fail. See [this issue](https://github.com/sveltejs/sapper/issues/1150) for details. + +## Bugs and feedback + +Sapper is in early development, and may have the odd rough edge here and there. Please be vocal over on the [Sapper issue tracker](https://github.com/sveltejs/sapper/issues). diff --git a/client/package-lock.json b/client/package-lock.json new file mode 100644 index 0000000..74acac2 --- /dev/null +++ b/client/package-lock.json @@ -0,0 +1,2197 @@ +{ + "name": "TODO", + "version": "0.0.1", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@babel/code-frame": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", + "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", + "dev": true, + "requires": { + "@babel/highlight": "^7.12.13" + } + }, + "@babel/compat-data": { + "version": "7.13.15", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.13.15.tgz", + "integrity": "sha512-ltnibHKR1VnrU4ymHyQ/CXtNXI6yZC0oJThyW78Hft8XndANwi+9H+UIklBDraIjFEJzw8wmcM427oDd9KS5wA==", + "dev": true + }, + "@babel/core": { + "version": "7.13.15", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.13.15.tgz", + "integrity": "sha512-6GXmNYeNjS2Uz+uls5jalOemgIhnTMeaXo+yBUA72kC2uX/8VW6XyhVIo2L8/q0goKQA3EVKx0KOQpVKSeWadQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/generator": "^7.13.9", + "@babel/helper-compilation-targets": "^7.13.13", + "@babel/helper-module-transforms": "^7.13.14", + "@babel/helpers": "^7.13.10", + "@babel/parser": "^7.13.15", + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.13.15", + "@babel/types": "^7.13.14", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.1.2", + "semver": "^6.3.0", + "source-map": "^0.5.0" + }, + "dependencies": { + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "@babel/generator": { + "version": "7.13.9", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.13.9.tgz", + "integrity": "sha512-mHOOmY0Axl/JCTkxTU6Lf5sWOg/v8nUa+Xkt4zMTftX0wqmb6Sh7J8gvcehBw7q0AhrhAR+FDacKjCZ2X8K+Sw==", + "dev": true, + "requires": { + "@babel/types": "^7.13.0", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.13.tgz", + "integrity": "sha512-7YXfX5wQ5aYM/BOlbSccHDbuXXFPxeoUmfWtz8le2yTkTZc+BxsiEnENFoi2SlmA8ewDkG2LgIMIVzzn2h8kfw==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.12.13.tgz", + "integrity": "sha512-CZOv9tGphhDRlVjVkAgm8Nhklm9RzSmWpX2my+t7Ua/KT616pEzXsQCjinzvkRvHWJ9itO4f296efroX23XCMA==", + "dev": true, + "requires": { + "@babel/helper-explode-assignable-expression": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.13.13", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.13.tgz", + "integrity": "sha512-q1kcdHNZehBwD9jYPh3WyXcsFERi39X4I59I3NadciWtNDyZ6x+GboOxncFK0kXlKIv6BJm5acncehXWUjWQMQ==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.13.12", + "@babel/helper-validator-option": "^7.12.17", + "browserslist": "^4.14.5", + "semver": "^6.3.0" + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.13.11", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.13.11.tgz", + "integrity": "sha512-ays0I7XYq9xbjCSvT+EvysLgfc3tOkwCULHjrnscGT3A9qD4sk3wXnJ3of0MAWsWGjdinFvajHU2smYuqXKMrw==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-member-expression-to-functions": "^7.13.0", + "@babel/helper-optimise-call-expression": "^7.12.13", + "@babel/helper-replace-supers": "^7.13.0", + "@babel/helper-split-export-declaration": "^7.12.13" + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.12.17", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.17.tgz", + "integrity": "sha512-p2VGmBu9oefLZ2nQpgnEnG0ZlRPvL8gAGvPUMQwUdaE8k49rOMuZpOwdQoy5qJf6K8jL3bcAMhVUlHAjIgJHUg==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.12.13", + "regexpu-core": "^4.7.1" + } + }, + "@babel/helper-define-polyfill-provider": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.0.tgz", + "integrity": "sha512-JT8tHuFjKBo8NnaUbblz7mIu1nnvUDiHVjXXkulZULyidvo/7P6TY7+YqpV37IfF+KUFxmlK04elKtGKXaiVgw==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.13.0", + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/traverse": "^7.13.0", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + }, + "dependencies": { + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "@babel/helper-explode-assignable-expression": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.13.0.tgz", + "integrity": "sha512-qS0peLTDP8kOisG1blKbaoBg/o9OSa1qoumMjTK5pM+KDTtpxpsiubnCGP34vK8BXGcb2M9eigwgvoJryrzwWA==", + "dev": true, + "requires": { + "@babel/types": "^7.13.0" + } + }, + "@babel/helper-function-name": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz", + "integrity": "sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.12.13", + "@babel/template": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", + "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.13.0.tgz", + "integrity": "sha512-0kBzvXiIKfsCA0y6cFEIJf4OdzfpRuNk4+YTeHZpGGc666SATFKTz6sRncwFnQk7/ugJ4dSrCj6iJuvW4Qwr2g==", + "dev": true, + "requires": { + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.0" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.12.tgz", + "integrity": "sha512-48ql1CLL59aKbU94Y88Xgb2VFy7a95ykGRbJJaaVv+LX5U8wFpLfiGXJJGUozsmA1oEh/o5Bp60Voq7ACyA/Sw==", + "dev": true, + "requires": { + "@babel/types": "^7.13.12" + } + }, + "@babel/helper-module-imports": { + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.13.12.tgz", + "integrity": "sha512-4cVvR2/1B693IuOvSI20xqqa/+bl7lqAMR59R4iu39R9aOX8/JoYY1sFaNvUMyMBGnHdwvJgUrzNLoUZxXypxA==", + "dev": true, + "requires": { + "@babel/types": "^7.13.12" + } + }, + "@babel/helper-module-transforms": { + "version": "7.13.14", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.13.14.tgz", + "integrity": "sha512-QuU/OJ0iAOSIatyVZmfqB0lbkVP0kDRiKj34xy+QNsnVZi/PA6BoSoreeqnxxa9EHFAIL0R9XOaAR/G9WlIy5g==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.13.12", + "@babel/helper-replace-supers": "^7.13.12", + "@babel/helper-simple-access": "^7.13.12", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/helper-validator-identifier": "^7.12.11", + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.13.13", + "@babel/types": "^7.13.14" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz", + "integrity": "sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz", + "integrity": "sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ==", + "dev": true + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.13.0.tgz", + "integrity": "sha512-pUQpFBE9JvC9lrQbpX0TmeNIy5s7GnZjna2lhhcHC7DzgBs6fWn722Y5cfwgrtrqc7NAJwMvOa0mKhq6XaE4jg==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.12.13", + "@babel/helper-wrap-function": "^7.13.0", + "@babel/types": "^7.13.0" + } + }, + "@babel/helper-replace-supers": { + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.13.12.tgz", + "integrity": "sha512-Gz1eiX+4yDO8mT+heB94aLVNCL+rbuT2xy4YfyNqu8F+OI6vMvJK891qGBTqL9Uc8wxEvRW92Id6G7sDen3fFw==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.13.12", + "@babel/helper-optimise-call-expression": "^7.12.13", + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.12" + } + }, + "@babel/helper-simple-access": { + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.13.12.tgz", + "integrity": "sha512-7FEjbrx5SL9cWvXioDbnlYTppcZGuCY6ow3/D5vMggb2Ywgu4dMrpTJX0JdQAIcRRUElOIxF3yEooa9gUb9ZbA==", + "dev": true, + "requires": { + "@babel/types": "^7.13.12" + } + }, + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz", + "integrity": "sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA==", + "dev": true, + "requires": { + "@babel/types": "^7.12.1" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", + "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@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==", + "dev": true + }, + "@babel/helper-validator-option": { + "version": "7.12.17", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz", + "integrity": "sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw==", + "dev": true + }, + "@babel/helper-wrap-function": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.13.0.tgz", + "integrity": "sha512-1UX9F7K3BS42fI6qd2A4BjKzgGjToscyZTdp1DjknHLCIvpgne6918io+aL5LXFcER/8QWiwpoY902pVEqgTXA==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.12.13", + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.0" + } + }, + "@babel/helpers": { + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.13.10.tgz", + "integrity": "sha512-4VO883+MWPDUVRF3PhiLBUFHoX/bsLTGFpFK/HqvvfBZz2D57u9XzPVNFVBTc0PW/CWR9BXTOKt8NF4DInUHcQ==", + "dev": true, + "requires": { + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.0" + } + }, + "@babel/highlight": { + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.13.10.tgz", + "integrity": "sha512-5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.13.15", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.15.tgz", + "integrity": "sha512-b9COtcAlVEQljy/9fbcMHpG+UIW9ReF+gpaxDHTlZd0c6/UU9ng8zdySAW9sRTzpvcdCHn6bUcbuYUgGzLAWVQ==", + "dev": true + }, + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.13.12.tgz", + "integrity": "sha512-d0u3zWKcoZf379fOeJdr1a5WPDny4aOFZ6hlfKivgK0LY7ZxNfoaHL2fWwdGtHyVvra38FC+HVYkO+byfSA8AQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1", + "@babel/plugin-proposal-optional-chaining": "^7.13.12" + } + }, + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.13.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.13.15.tgz", + "integrity": "sha512-VapibkWzFeoa6ubXy/NgV5U2U4MVnUlvnx6wo1XhlsaTrLYWE0UFpDQsVrmn22q5CzeloqJ8gEMHSKxuee6ZdA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-remap-async-to-generator": "^7.13.0", + "@babel/plugin-syntax-async-generators": "^7.8.4" + } + }, + "@babel/plugin-proposal-class-properties": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.13.0.tgz", + "integrity": "sha512-KnTDjFNC1g+45ka0myZNvSBFLhNCLN+GeGYLDEA8Oq7MZ6yMgfLoIRh86GRT0FjtJhZw8JyUskP9uvj5pHM9Zg==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0" + } + }, + "@babel/plugin-proposal-dynamic-import": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.13.8.tgz", + "integrity": "sha512-ONWKj0H6+wIRCkZi9zSbZtE/r73uOhMVHh256ys0UzfM7I3d4n+spZNWjOnJv2gzopumP2Wxi186vI8N0Y2JyQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + } + }, + "@babel/plugin-proposal-export-namespace-from": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.13.tgz", + "integrity": "sha512-INAgtFo4OnLN3Y/j0VwAgw3HDXcDtX+C/erMvWzuV9v71r7urb6iyMXu7eM9IgLr1ElLlOkaHjJ0SbCmdOQ3Iw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + } + }, + "@babel/plugin-proposal-json-strings": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.13.8.tgz", + "integrity": "sha512-w4zOPKUFPX1mgvTmL/fcEqy34hrQ1CRcGxdphBc6snDnnqJ47EZDIyop6IwXzAC8G916hsIuXB2ZMBCExC5k7Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-json-strings": "^7.8.3" + } + }, + "@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.13.8.tgz", + "integrity": "sha512-aul6znYB4N4HGweImqKn59Su9RS8lbUIqxtXTOcAGtNIDczoEFv+l1EhmX8rUBp3G1jMjKJm8m0jXVp63ZpS4A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + } + }, + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.13.8.tgz", + "integrity": "sha512-iePlDPBn//UhxExyS9KyeYU7RM9WScAG+D3Hhno0PLJebAEpDZMocbDe64eqynhNAnwz/vZoL/q/QB2T1OH39A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + } + }, + "@babel/plugin-proposal-numeric-separator": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.13.tgz", + "integrity": "sha512-O1jFia9R8BUCl3ZGB7eitaAPu62TXJRHn7rh+ojNERCFyqRwJMTmhz+tJ+k0CwI6CLjX/ee4qW74FSqlq9I35w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.13.8.tgz", + "integrity": "sha512-DhB2EuB1Ih7S3/IRX5AFVgZ16k3EzfRbq97CxAVI1KSYcW+lexV8VZb7G7L8zuPVSdQMRn0kiBpf/Yzu9ZKH0g==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.13.8", + "@babel/helper-compilation-targets": "^7.13.8", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.13.0" + } + }, + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.13.8.tgz", + "integrity": "sha512-0wS/4DUF1CuTmGo+NiaHfHcVSeSLj5S3e6RivPTg/2k3wOv3jO35tZ6/ZWsQhQMvdgI7CwphjQa/ccarLymHVA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + } + }, + "@babel/plugin-proposal-optional-chaining": { + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.13.12.tgz", + "integrity": "sha512-fcEdKOkIB7Tf4IxrgEVeFC4zeJSTr78no9wTdBuZZbqF64kzllU0ybo2zrzm7gUQfxGhBgq4E39oRs8Zx/RMYQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + } + }, + "@babel/plugin-proposal-private-methods": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.13.0.tgz", + "integrity": "sha512-MXyyKQd9inhx1kDYPkFRVOBXQ20ES8Pto3T7UZ92xj2mY0EVD8oAVzeyYuVfy/mxAdTSIayOvg+aVzcHV2bn6Q==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0" + } + }, + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.13.tgz", + "integrity": "sha512-XyJmZidNfofEkqFV5VC/bLabGmO5QzenPO/YOfGuEbgU+2sSwMmio3YLb4WtBgcmmdwZHyVyv8on77IUjQ5Gvg==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz", + "integrity": "sha512-A81F9pDwyS7yM//KwbCSDqy3Uj4NMIurtplxphWxoYtNPov7cJsDkAFNNyVlIZ3jwGycVsurZ+LtOA8gZ376iQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.13.0.tgz", + "integrity": "sha512-96lgJagobeVmazXFaDrbmCLQxBysKu7U6Do3mLsx27gf5Dk85ezysrs2BZUpXD703U/Su1xTBDxxar2oa4jAGg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.13.0" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.13.0.tgz", + "integrity": "sha512-3j6E004Dx0K3eGmhxVJxwwI89CTJrce7lg3UrtFuDAVQ/2+SJ/h/aSFOeE6/n0WB1GsOffsJp6MnPQNQ8nmwhg==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-remap-async-to-generator": "^7.13.0" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.13.tgz", + "integrity": "sha512-zNyFqbc3kI/fVpqwfqkg6RvBgFpC4J18aKKMmv7KdQ/1GgREapSJAykLMVNwfRGO3BtHj3YQZl8kxCXPcVMVeg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.13.tgz", + "integrity": "sha512-Pxwe0iqWJX4fOOM2kEZeUuAxHMWb9nK+9oh5d11bsLoB0xMg+mkDpt0eYuDZB7ETrY9bbcVlKUGTOGWy7BHsMQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.13.0.tgz", + "integrity": "sha512-9BtHCPUARyVH1oXGcSJD3YpsqRLROJx5ZNP6tN5vnk17N0SVf9WCtf8Nuh1CFmgByKKAIMstitKduoCmsaDK5g==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.12.13", + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-optimise-call-expression": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-replace-supers": "^7.13.0", + "@babel/helper-split-export-declaration": "^7.12.13", + "globals": "^11.1.0" + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.13.0.tgz", + "integrity": "sha512-RRqTYTeZkZAz8WbieLTvKUEUxZlUTdmL5KGMyZj7FnMfLNKV4+r5549aORG/mgojRmFlQMJDUupwAMiF2Q7OUg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.13.0" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.13.0.tgz", + "integrity": "sha512-zym5em7tePoNT9s964c0/KU3JPPnuq7VhIxPRefJ4/s82cD+q1mgKfuGRDMCPL0HTyKz4dISuQlCusfgCJ86HA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.13.0" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.13.tgz", + "integrity": "sha512-foDrozE65ZFdUC2OfgeOCrEPTxdB3yjqxpXh8CH+ipd9CHd4s/iq81kcUpyH8ACGNEPdFqbtzfgzbT/ZGlbDeQ==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.13.tgz", + "integrity": "sha512-NfADJiiHdhLBW3pulJlJI2NB0t4cci4WTZ8FtdIuNc2+8pslXdPtRRAEWqUY+m9kNOk2eRYbTAOipAxlrOcwwQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.13.tgz", + "integrity": "sha512-fbUelkM1apvqez/yYx1/oICVnGo2KM5s63mhGylrmXUxK/IAXSIf87QIxVfZldWf4QsOafY6vV3bX8aMHSvNrA==", + "dev": true, + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.13.0.tgz", + "integrity": "sha512-IHKT00mwUVYE0zzbkDgNRP6SRzvfGCYsOxIRz8KsiaaHCcT9BWIkO+H9QRJseHBLOGBZkHUdHiqj6r0POsdytg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.13.0" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.13.tgz", + "integrity": "sha512-6K7gZycG0cmIwwF7uMK/ZqeCikCGVBdyP2J5SKNCXO5EOHcqi+z7Jwf8AmyDNcBgxET8DrEtCt/mPKPyAzXyqQ==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-literals": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.13.tgz", + "integrity": "sha512-FW+WPjSR7hiUxMcKqyNjP05tQ2kmBCdpEpZHY1ARm96tGQCCBvXKnpjILtDplUnJ/eHZ0lALLM+d2lMFSpYJrQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.13.tgz", + "integrity": "sha512-kxLkOsg8yir4YeEPHLuO2tXP9R/gTjpuTOjshqSpELUN3ZAg2jfDnKUvzzJxObun38sw3wm4Uu69sX/zA7iRvg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.13.0.tgz", + "integrity": "sha512-EKy/E2NHhY/6Vw5d1k3rgoobftcNUmp9fGjb9XZwQLtTctsRBOTRO7RHHxfIky1ogMN5BxN7p9uMA3SzPfotMQ==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.13.8.tgz", + "integrity": "sha512-9QiOx4MEGglfYZ4XOnU79OHr6vIWUakIj9b4mioN8eQIoEh+pf5p/zEB36JpDFWA12nNMiRf7bfoRvl9Rn79Bw==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-simple-access": "^7.12.13", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.13.8.tgz", + "integrity": "sha512-hwqctPYjhM6cWvVIlOIe27jCIBgHCsdH2xCJVAYQm7V5yTMoilbVMi9f6wKg0rpQAOn6ZG4AOyvCqFF/hUh6+A==", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.13.0", + "@babel/helper-module-transforms": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-validator-identifier": "^7.12.11", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.13.0.tgz", + "integrity": "sha512-D/ILzAh6uyvkWjKKyFE/W0FzWwasv6vPTSqPcjxFqn6QpX3u8DjRVliq4F2BamO2Wee/om06Vyy+vPkNrd4wxw==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.13.tgz", + "integrity": "sha512-Xsm8P2hr5hAxyYblrfACXpQKdQbx4m2df9/ZZSQ8MAhsadw06+jW7s9zsSw6he+mJZXRlVMyEnVktJo4zjk1WA==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.12.13" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.13.tgz", + "integrity": "sha512-/KY2hbLxrG5GTQ9zzZSc3xWiOy379pIETEhbtzwZcw9rvuaVV4Fqy7BYGYOWZnaoXIQYbbJ0ziXLa/sKcGCYEQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.13.tgz", + "integrity": "sha512-JzYIcj3XtYspZDV8j9ulnoMPZZnF/Cj0LUxPOjR89BdBVx+zYJI9MdMIlUZjbXDX+6YVeS6I3e8op+qQ3BYBoQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13", + "@babel/helper-replace-supers": "^7.12.13" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.13.0.tgz", + "integrity": "sha512-Jt8k/h/mIwE2JFEOb3lURoY5C85ETcYPnbuAJ96zRBzh1XHtQZfs62ChZ6EP22QlC8c7Xqr9q+e1SU5qttwwjw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.13.0" + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.13.tgz", + "integrity": "sha512-nqVigwVan+lR+g8Fj8Exl0UQX2kymtjcWfMOYM1vTYEKujeyv2SkMgazf2qNcK7l4SDiKyTA/nHCPqL4e2zo1A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.13.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.13.15.tgz", + "integrity": "sha512-Bk9cOLSz8DiurcMETZ8E2YtIVJbFCPGW28DJWUakmyVWtQSm6Wsf0p4B4BfEr/eL2Nkhe/CICiUiMOCi1TPhuQ==", + "dev": true, + "requires": { + "regenerator-transform": "^0.14.2" + } + }, + "@babel/plugin-transform-reserved-words": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.13.tgz", + "integrity": "sha512-xhUPzDXxZN1QfiOy/I5tyye+TRz6lA7z6xaT4CLOjPRMVg1ldRf0LHw0TDBpYL4vG78556WuHdyO9oi5UmzZBg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-runtime": { + "version": "7.13.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.13.15.tgz", + "integrity": "sha512-d+ezl76gx6Jal08XngJUkXM4lFXK/5Ikl9Mh4HKDxSfGJXmZ9xG64XT2oivBzfxb/eQ62VfvoMkaCZUKJMVrBA==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.13.12", + "@babel/helper-plugin-utils": "^7.13.0", + "babel-plugin-polyfill-corejs2": "^0.2.0", + "babel-plugin-polyfill-corejs3": "^0.2.0", + "babel-plugin-polyfill-regenerator": "^0.2.0", + "semver": "^6.3.0" + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.13.tgz", + "integrity": "sha512-xpL49pqPnLtf0tVluuqvzWIgLEhuPpZzvs2yabUHSKRNlN7ScYU7aMlmavOeyXJZKgZKQRBlh8rHbKiJDraTSw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.13.0.tgz", + "integrity": "sha512-V6vkiXijjzYeFmQTr3dBxPtZYLPcUfY34DebOU27jIl2M/Y8Egm52Hw82CSjjPqd54GTlJs5x+CR7HeNr24ckg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.13.tgz", + "integrity": "sha512-Jc3JSaaWT8+fr7GRvQP02fKDsYk4K/lYwWq38r/UGfaxo89ajud321NH28KRQ7xy1Ybc0VUE5Pz8psjNNDUglg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.13.0.tgz", + "integrity": "sha512-d67umW6nlfmr1iehCcBv69eSUSySk1EsIS8aTDX4Xo9qajAh6mYtcl4kJrBkGXuxZPEgVr7RVfAvNW6YQkd4Mw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.13.0" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.13.tgz", + "integrity": "sha512-eKv/LmUJpMnu4npgfvs3LiHhJua5fo/CysENxa45YCQXZwKnGCQKAg87bvoqSW1fFT+HA32l03Qxsm8ouTY3ZQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-unicode-escapes": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.13.tgz", + "integrity": "sha512-0bHEkdwJ/sN/ikBHfSmOXPypN/beiGqjo+o4/5K+vxEFNPRPdImhviPakMKG4x96l85emoa0Z6cDflsdBusZbw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.13.tgz", + "integrity": "sha512-mDRzSNY7/zopwisPZ5kM9XKCfhchqIYwAKRERtEnhYscZB79VRekuRSoYbN0+KVe3y8+q1h6A4svXtP7N+UoCA==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/preset-env": { + "version": "7.13.15", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.13.15.tgz", + "integrity": "sha512-D4JAPMXcxk69PKe81jRJ21/fP/uYdcTZ3hJDF5QX2HSI9bBxxYw/dumdR6dGumhjxlprHPE4XWoPaqzZUVy2MA==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.13.15", + "@babel/helper-compilation-targets": "^7.13.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-validator-option": "^7.12.17", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.13.12", + "@babel/plugin-proposal-async-generator-functions": "^7.13.15", + "@babel/plugin-proposal-class-properties": "^7.13.0", + "@babel/plugin-proposal-dynamic-import": "^7.13.8", + "@babel/plugin-proposal-export-namespace-from": "^7.12.13", + "@babel/plugin-proposal-json-strings": "^7.13.8", + "@babel/plugin-proposal-logical-assignment-operators": "^7.13.8", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.13.8", + "@babel/plugin-proposal-numeric-separator": "^7.12.13", + "@babel/plugin-proposal-object-rest-spread": "^7.13.8", + "@babel/plugin-proposal-optional-catch-binding": "^7.13.8", + "@babel/plugin-proposal-optional-chaining": "^7.13.12", + "@babel/plugin-proposal-private-methods": "^7.13.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.12.13", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.12.13", + "@babel/plugin-transform-arrow-functions": "^7.13.0", + "@babel/plugin-transform-async-to-generator": "^7.13.0", + "@babel/plugin-transform-block-scoped-functions": "^7.12.13", + "@babel/plugin-transform-block-scoping": "^7.12.13", + "@babel/plugin-transform-classes": "^7.13.0", + "@babel/plugin-transform-computed-properties": "^7.13.0", + "@babel/plugin-transform-destructuring": "^7.13.0", + "@babel/plugin-transform-dotall-regex": "^7.12.13", + "@babel/plugin-transform-duplicate-keys": "^7.12.13", + "@babel/plugin-transform-exponentiation-operator": "^7.12.13", + "@babel/plugin-transform-for-of": "^7.13.0", + "@babel/plugin-transform-function-name": "^7.12.13", + "@babel/plugin-transform-literals": "^7.12.13", + "@babel/plugin-transform-member-expression-literals": "^7.12.13", + "@babel/plugin-transform-modules-amd": "^7.13.0", + "@babel/plugin-transform-modules-commonjs": "^7.13.8", + "@babel/plugin-transform-modules-systemjs": "^7.13.8", + "@babel/plugin-transform-modules-umd": "^7.13.0", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.12.13", + "@babel/plugin-transform-new-target": "^7.12.13", + "@babel/plugin-transform-object-super": "^7.12.13", + "@babel/plugin-transform-parameters": "^7.13.0", + "@babel/plugin-transform-property-literals": "^7.12.13", + "@babel/plugin-transform-regenerator": "^7.13.15", + "@babel/plugin-transform-reserved-words": "^7.12.13", + "@babel/plugin-transform-shorthand-properties": "^7.12.13", + "@babel/plugin-transform-spread": "^7.13.0", + "@babel/plugin-transform-sticky-regex": "^7.12.13", + "@babel/plugin-transform-template-literals": "^7.13.0", + "@babel/plugin-transform-typeof-symbol": "^7.12.13", + "@babel/plugin-transform-unicode-escapes": "^7.12.13", + "@babel/plugin-transform-unicode-regex": "^7.12.13", + "@babel/preset-modules": "^0.1.4", + "@babel/types": "^7.13.14", + "babel-plugin-polyfill-corejs2": "^0.2.0", + "babel-plugin-polyfill-corejs3": "^0.2.0", + "babel-plugin-polyfill-regenerator": "^0.2.0", + "core-js-compat": "^3.9.0", + "semver": "^6.3.0" + } + }, + "@babel/preset-modules": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.4.tgz", + "integrity": "sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + } + }, + "@babel/runtime": { + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.10.tgz", + "integrity": "sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "@babel/template": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", + "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/parser": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "@babel/traverse": { + "version": "7.13.15", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.15.tgz", + "integrity": "sha512-/mpZMNvj6bce59Qzl09fHEs8Bt8NnpEDQYleHUPZQ3wXUMvXi+HJPLars68oAbmp839fGoOkv2pSL2z9ajCIaQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/generator": "^7.13.9", + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/parser": "^7.13.15", + "@babel/types": "^7.13.14", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "dependencies": { + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "@babel/types": { + "version": "7.13.14", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.14.tgz", + "integrity": "sha512-A2aa3QTkWoyqsZZFl56MLUsfmh7O0gN41IPvXAE/++8ojpbz12SszD7JEGYVdn4f9Kt4amIei07swF1h4AqmmQ==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + }, + "@polka/url": { + "version": "1.0.0-next.12", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.12.tgz", + "integrity": "sha512-6RglhutqrGFMO1MNUXp95RBuYIuc8wTnMAV5MUhLmjTOy78ncwOw7RgeQ/HeymkKXRhZd0s2DNrM1rL7unk3MQ==" + }, + "@rollup/plugin-babel": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.0.tgz", + "integrity": "sha512-9uIC8HZOnVLrLHxayq/PTzw+uS25E14KPUBh5ktF+18Mjo5yK0ToMMx6epY0uEgkjwJw0aBW4x2horYXh8juWw==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.10.4", + "@rollup/pluginutils": "^3.1.0" + } + }, + "@rollup/plugin-commonjs": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-14.0.0.tgz", + "integrity": "sha512-+PSmD9ePwTAeU106i9FRdc+Zb3XUWyW26mo5Atr2mk82hor8+nPwkztEjFo8/B1fJKfaQDg9aM2bzQkjhi7zOw==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^3.0.8", + "commondir": "^1.0.1", + "estree-walker": "^1.0.1", + "glob": "^7.1.2", + "is-reference": "^1.1.2", + "magic-string": "^0.25.2", + "resolve": "^1.11.0" + } + }, + "@rollup/plugin-node-resolve": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-8.4.0.tgz", + "integrity": "sha512-LFqKdRLn0ShtQyf6SBYO69bGE1upV6wUhBX0vFOUnLAyzx5cwp8svA0eHUnu8+YU57XOkrMtfG63QOpQx25pHQ==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^3.1.0", + "@types/resolve": "1.17.1", + "builtin-modules": "^3.1.0", + "deep-freeze": "^0.0.1", + "deepmerge": "^4.2.2", + "is-module": "^1.0.0", + "resolve": "^1.17.0" + } + }, + "@rollup/plugin-replace": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz", + "integrity": "sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^3.1.0", + "magic-string": "^0.25.7" + } + }, + "@rollup/plugin-url": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-url/-/plugin-url-5.0.1.tgz", + "integrity": "sha512-/dO8Ic+vR9VtMkHjmFBWzISjX0iDwrB3vLg8sy4A7hxu2Uk0J09kAXbtku7gJb1fqVcJUIByFG5d/4sgNh1DvA==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^3.0.4", + "make-dir": "^3.0.0", + "mime": "^2.4.4" + } + }, + "@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "dev": true, + "requires": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + } + }, + "@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", + "dev": true + }, + "@types/node": { + "version": "14.14.37", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.37.tgz", + "integrity": "sha512-XYmBiy+ohOR4Lh5jE379fV2IU+6Jn4g5qASinhitfyO71b/sCo6MKsMLF5tc7Zf2CE8hViVQyYSobJNke8OvUw==", + "dev": true + }, + "@types/resolve": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", + "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "requires": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + } + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "dev": true, + "requires": { + "object.assign": "^4.1.0" + } + }, + "babel-plugin-polyfill-corejs2": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.0.tgz", + "integrity": "sha512-9bNwiR0dS881c5SHnzCmmGlMkJLl0OUZvxrxHo9w/iNoRuqaPjqlvBf4HrovXtQs/au5yKkpcdgfT1cC5PAZwg==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.13.11", + "@babel/helper-define-polyfill-provider": "^0.2.0", + "semver": "^6.1.1" + } + }, + "babel-plugin-polyfill-corejs3": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.0.tgz", + "integrity": "sha512-zZyi7p3BCUyzNxLx8KV61zTINkkV65zVkDAFNZmrTCRVhjo1jAS+YLvDJ9Jgd/w2tsAviCwFHReYfxO3Iql8Yg==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.2.0", + "core-js-compat": "^3.9.1" + } + }, + "babel-plugin-polyfill-regenerator": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.0.tgz", + "integrity": "sha512-J7vKbCuD2Xi/eEHxquHN14bXAW9CXtecwuLrOIDJtcZzTaPzV1VdEfoUf9AzcRBMolKUQKM9/GVojeh0hFiqMg==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.2.0" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "browserslist": { + "version": "4.16.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.3.tgz", + "integrity": "sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001181", + "colorette": "^1.2.1", + "electron-to-chromium": "^1.3.649", + "escalade": "^3.1.1", + "node-releases": "^1.1.70" + } + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "dev": true + }, + "builtin-modules": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.2.0.tgz", + "integrity": "sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==", + "dev": true + }, + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "camel-case": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", + "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", + "dev": true, + "requires": { + "no-case": "^2.2.0", + "upper-case": "^1.1.1" + } + }, + "caniuse-lite": { + "version": "1.0.30001208", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001208.tgz", + "integrity": "sha512-OE5UE4+nBOro8Dyvv0lfx+SRtfVIOM9uhKqFmJeUbGriqhhStgp1A0OyBpgy3OUF8AhYCT+PVwPC1gMl2ZcQMA==", + "dev": true + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "clean-css": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz", + "integrity": "sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA==", + "dev": true, + "requires": { + "source-map": "~0.6.0" + }, + "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 + } + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "colorette": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz", + "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==", + "dev": true + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, + "compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "requires": { + "mime-db": ">= 1.43.0 < 2" + } + }, + "compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "requires": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "convert-source-map": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "core-js-compat": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.10.1.tgz", + "integrity": "sha512-ZHQTdTPkqvw2CeHiZC970NNJcnwzT6YIueDMASKt+p3WbZsLXOcoD392SkcWhkC0wBBHhlfhqGKKsNCQUozYtg==", + "dev": true, + "requires": { + "browserslist": "^4.16.3", + "semver": "7.0.0" + }, + "dependencies": { + "semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "dev": true + } + } + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "deep-freeze": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/deep-freeze/-/deep-freeze-0.0.1.tgz", + "integrity": "sha1-OgsABd4YZygZ39OM0x+RF5yJPoQ=", + "dev": true + }, + "deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "dev": true + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "requires": { + "object-keys": "^1.0.12" + } + }, + "electron-to-chromium": { + "version": "1.3.712", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.712.tgz", + "integrity": "sha512-3kRVibBeCM4vsgoHHGKHmPocLqtFAGTrebXxxtgKs87hNUzXrX2NuS3jnBys7IozCnw7viQlozxKkmty2KNfrw==", + "dev": true + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "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 + }, + "estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "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==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "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 + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true + }, + "html-minifier": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-4.0.0.tgz", + "integrity": "sha512-aoGxanpFPLg7MkIl/DDFYtb0iWz7jMFGqFhvEDZga6/4QTjneiD8I/NXL1x5aaoCp7FSIT6h/OhykDdPsbtMig==", + "dev": true, + "requires": { + "camel-case": "^3.0.0", + "clean-css": "^4.2.1", + "commander": "^2.19.0", + "he": "^1.2.0", + "param-case": "^2.1.1", + "relateurl": "^0.2.7", + "uglify-js": "^3.5.1" + } + }, + "http-link-header": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/http-link-header/-/http-link-header-1.0.3.tgz", + "integrity": "sha512-nARK1wSKoBBrtcoESlHBx36c1Ln/gnbNQi1eB6MeTUefJIT3NvUOsV15bClga0k38f0q/kN5xxrGSDS3EFnm9w==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "is-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==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=", + "dev": true + }, + "is-reference": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", + "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", + "dev": true, + "requires": { + "@types/estree": "*" + } + }, + "jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "dev": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "json5": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", + "dev": true + }, + "lower-case": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", + "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=", + "dev": true + }, + "magic-string": { + "version": "0.25.7", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", + "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", + "dev": true, + "requires": { + "sourcemap-codec": "^1.4.4" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "mime": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz", + "integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==" + }, + "mime-db": { + "version": "1.47.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.47.0.tgz", + "integrity": "sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw==" + }, + "mime-types": { + "version": "2.1.30", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.30.tgz", + "integrity": "sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg==", + "requires": { + "mime-db": "1.47.0" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" + }, + "no-case": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", + "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", + "dev": true, + "requires": { + "lower-case": "^1.1.1" + } + }, + "node-releases": { + "version": "1.1.71", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.71.tgz", + "integrity": "sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg==", + "dev": true + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + } + }, + "on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==" + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "param-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", + "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", + "dev": true, + "requires": { + "no-case": "^2.2.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "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==", + "dev": true + }, + "picomatch": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "dev": true + }, + "polka": { + "version": "1.0.0-next.14", + "resolved": "https://registry.npmjs.org/polka/-/polka-1.0.0-next.14.tgz", + "integrity": "sha512-nRxh6lifEred8F973wMJ3YA7z8EBAf+lWFLbhIh4MnYJXmZododD8FDGj+R81xnuNNG8b4PDqNXvrB5ShKcStA==", + "requires": { + "@polka/url": "^1.0.0-next.12", + "trouter": "^3.1.0" + } + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "regenerate-unicode-properties": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", + "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", + "dev": true, + "requires": { + "regenerate": "^1.4.0" + } + }, + "regenerator-runtime": { + "version": "0.13.7", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", + "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==", + "dev": true + }, + "regenerator-transform": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", + "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", + "dev": true, + "requires": { + "@babel/runtime": "^7.8.4" + } + }, + "regexparam": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/regexparam/-/regexparam-1.3.0.tgz", + "integrity": "sha512-6IQpFBv6e5vz1QAqI+V4k8P2e/3gRrqfCJ9FI+O1FLQTO+Uz6RXZEZOPmTJ6hlGj7gkERzY5BRCv09whKP96/g==" + }, + "regexpu-core": { + "version": "4.7.1", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.1.tgz", + "integrity": "sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ==", + "dev": true, + "requires": { + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^8.2.0", + "regjsgen": "^0.5.1", + "regjsparser": "^0.6.4", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.2.0" + } + }, + "regjsgen": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", + "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==", + "dev": true + }, + "regjsparser": { + "version": "0.6.9", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.9.tgz", + "integrity": "sha512-ZqbNRz1SNjLAiYuwY0zoXW8Ne675IX5q+YHioAGbCw4X96Mjl2+dcX9B2ciaeyYjViDAfvIjFpQjJgLttTEERQ==", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + } + } + }, + "relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=", + "dev": true + }, + "require-relative": { + "version": "0.8.7", + "resolved": "https://registry.npmjs.org/require-relative/-/require-relative-0.8.7.tgz", + "integrity": "sha1-eZlTn8ngR6N5KPoZb44VY9q9Nt4=", + "dev": true + }, + "resolve": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "dev": true, + "requires": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + } + }, + "rollup": { + "version": "2.45.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.45.1.tgz", + "integrity": "sha512-vPD+JoDj3CY8k6m1bLcAFttXMe78P4CMxoau0iLVS60+S9kLsv2379xaGy4NgYWu+h2WTlucpoLPAoUoixFBag==", + "dev": true, + "requires": { + "fsevents": "~2.3.1" + } + }, + "rollup-plugin-svelte": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-svelte/-/rollup-plugin-svelte-7.1.0.tgz", + "integrity": "sha512-vopCUq3G+25sKjwF5VilIbiY6KCuMNHP1PFvx2Vr3REBNMDllKHFZN2B9jwwC+MqNc3UPKkjXnceLPEjTjXGXg==", + "dev": true, + "requires": { + "require-relative": "^0.8.7", + "rollup-pluginutils": "^2.8.2" + } + }, + "rollup-plugin-terser": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", + "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "jest-worker": "^26.2.1", + "serialize-javascript": "^4.0.0", + "terser": "^5.0.0" + } + }, + "rollup-pluginutils": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", + "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", + "dev": true, + "requires": { + "estree-walker": "^0.6.1" + }, + "dependencies": { + "estree-walker": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", + "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", + "dev": true + } + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "sapper": { + "version": "0.28.10", + "resolved": "https://registry.npmjs.org/sapper/-/sapper-0.28.10.tgz", + "integrity": "sha512-Z6OpuDOHxiRHKd7JCjHaDe8uOM2fFZxpTLsj/0Ib4sM034xstEvNNUtdY7Pg/a85kP3cFCnkNiM1v7W37vzDGg==", + "dev": true, + "requires": { + "html-minifier": "^4.0.0", + "http-link-header": "^1.0.2", + "shimport": "^2.0.4", + "source-map": "^0.6.1", + "sourcemap-codec": "^1.4.6", + "string-hash": "^1.1.3" + }, + "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 + } + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, + "shimport": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/shimport/-/shimport-2.0.5.tgz", + "integrity": "sha512-H2FeQyImK4CFhGG1wVhHEB1hASWz+WQK6t2gMP5lk+b0PW30XSrsryDONDBwF1n6hBKsmbr0REfTinaNdEkcPQ==", + "dev": true + }, + "sirv": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-1.0.11.tgz", + "integrity": "sha512-SR36i3/LSWja7AJNRBz4fF/Xjpn7lQFI30tZ434dIy+bitLYSP+ZEenHg36i23V2SGEz+kqjksg0uOGZ5LPiqg==", + "requires": { + "@polka/url": "^1.0.0-next.9", + "mime": "^2.3.1", + "totalist": "^1.0.0" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + }, + "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 + } + } + }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "dev": true + }, + "string-hash": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/string-hash/-/string-hash-1.1.3.tgz", + "integrity": "sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "svelte": { + "version": "3.37.0", + "resolved": "https://registry.npmjs.org/svelte/-/svelte-3.37.0.tgz", + "integrity": "sha512-TRF30F4W4+d+Jr2KzUUL1j8Mrpns/WM/WacxYlo5MMb2E5Qy2Pk1Guj6GylxsW9OnKQl1tnF8q3hG/hQ3h6VUA==", + "dev": true + }, + "terser": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.6.1.tgz", + "integrity": "sha512-yv9YLFQQ+3ZqgWCUk+pvNJwgUTdlIxUk1WTN+RnaFJe2L7ipG2csPT0ra2XRm7Cs8cxN7QXmK1rFzEwYEQkzXw==", + "dev": true, + "requires": { + "commander": "^2.20.0", + "source-map": "~0.7.2", + "source-map-support": "~0.5.19" + }, + "dependencies": { + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true + } + } + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + }, + "totalist": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/totalist/-/totalist-1.1.0.tgz", + "integrity": "sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g==" + }, + "trouter": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/trouter/-/trouter-3.2.0.tgz", + "integrity": "sha512-rLLXbhTObLy2MBVjLC+jTnoIKw99n0GuJs9ov10J870vDw5qhTurPzsDrudNtBf5w/CZ9ctZy2p2IMmhGcel2w==", + "requires": { + "regexparam": "^1.3.0" + } + }, + "uglify-js": { + "version": "3.13.3", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.13.3.tgz", + "integrity": "sha512-otIc7O9LyxpUcQoXzj2hL4LPWKklO6LJWoJUzNa8A17Xgi4fOeDC8FBDOLHnC/Slo1CQgsZMcM6as0M76BZaig==", + "dev": true + }, + "unicode-canonical-property-names-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", + "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", + "dev": true + }, + "unicode-match-property-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", + "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", + "dev": true, + "requires": { + "unicode-canonical-property-names-ecmascript": "^1.0.4", + "unicode-property-aliases-ecmascript": "^1.0.4" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz", + "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==", + "dev": true + }, + "unicode-property-aliases-ecmascript": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz", + "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==", + "dev": true + }, + "upper-case": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", + "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=", + "dev": true + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + } + } +} diff --git a/client/package.json b/client/package.json new file mode 100644 index 0000000..63869b2 --- /dev/null +++ b/client/package.json @@ -0,0 +1,33 @@ +{ + "name": "TODO", + "description": "TODO", + "version": "0.0.1", + "scripts": { + "dev": "sapper dev", + "build": "sapper build --legacy", + "export": "sapper export --legacy", + "start": "node __sapper__/build" + }, + "dependencies": { + "compression": "^1.7.1", + "polka": "next", + "sirv": "^1.0.0" + }, + "devDependencies": { + "sapper": "^0.28.0", + "svelte": "^3.17.3", + "@babel/core": "^7.0.0", + "@babel/plugin-syntax-dynamic-import": "^7.0.0", + "@babel/plugin-transform-runtime": "^7.0.0", + "@babel/preset-env": "^7.0.0", + "@babel/runtime": "^7.0.0", + "@rollup/plugin-babel": "^5.0.0", + "@rollup/plugin-commonjs": "^14.0.0", + "@rollup/plugin-node-resolve": "^8.0.0", + "@rollup/plugin-replace": "^2.4.0", + "@rollup/plugin-url": "^5.0.0", + "rollup": "^2.3.4", + "rollup-plugin-svelte": "^7.0.0", + "rollup-plugin-terser": "^7.0.0" + } +} diff --git a/client/rollup.config.js b/client/rollup.config.js new file mode 100644 index 0000000..c0a9787 --- /dev/null +++ b/client/rollup.config.js @@ -0,0 +1,127 @@ +import path from 'path'; +import resolve from '@rollup/plugin-node-resolve'; +import replace from '@rollup/plugin-replace'; +import commonjs from '@rollup/plugin-commonjs'; +import url from '@rollup/plugin-url'; +import svelte from 'rollup-plugin-svelte'; +import babel from '@rollup/plugin-babel'; +import { terser } from 'rollup-plugin-terser'; +import config from 'sapper/config/rollup.js'; +import pkg from './package.json'; + +const mode = process.env.NODE_ENV; +const dev = mode === 'development'; +const legacy = !!process.env.SAPPER_LEGACY_BUILD; + +const onwarn = (warning, onwarn) => + (warning.code === 'MISSING_EXPORT' && /'preload'/.test(warning.message)) || + (warning.code === 'CIRCULAR_DEPENDENCY' && /[/\\]@sapper[/\\]/.test(warning.message)) || + onwarn(warning); + +export default { + client: { + input: config.client.input(), + output: config.client.output(), + plugins: [ + replace({ + preventAssignment: true, + values:{ + 'process.browser': true, + 'process.env.NODE_ENV': JSON.stringify(mode) + }, + }), + svelte({ + compilerOptions: { + dev, + hydratable: true + } + }), + url({ + sourceDir: path.resolve(__dirname, 'src/node_modules/images'), + publicPath: '/client/' + }), + resolve({ + browser: true, + dedupe: ['svelte'] + }), + commonjs(), + + legacy && babel({ + extensions: ['.js', '.mjs', '.html', '.svelte'], + babelHelpers: 'runtime', + exclude: ['node_modules/@babel/**'], + presets: [ + ['@babel/preset-env', { + targets: '> 0.25%, not dead' + }] + ], + plugins: [ + '@babel/plugin-syntax-dynamic-import', + ['@babel/plugin-transform-runtime', { + useESModules: true + }] + ] + }), + + !dev && terser({ + module: true + }) + ], + + preserveEntrySignatures: false, + onwarn, + }, + + server: { + input: config.server.input(), + output: config.server.output(), + plugins: [ + replace({ + preventAssignment: true, + values:{ + 'process.browser': false, + 'process.env.NODE_ENV': JSON.stringify(mode) + }, + }), + svelte({ + compilerOptions: { + dev, + generate: 'ssr', + hydratable: true + }, + emitCss: false + }), + url({ + sourceDir: path.resolve(__dirname, 'src/node_modules/images'), + publicPath: '/client/', + emitFiles: false // already emitted by client build + }), + resolve({ + dedupe: ['svelte'] + }), + commonjs() + ], + external: Object.keys(pkg.dependencies).concat(require('module').builtinModules), + preserveEntrySignatures: 'strict', + onwarn, + }, + + serviceworker: { + input: config.serviceworker.input(), + output: config.serviceworker.output(), + plugins: [ + resolve(), + replace({ + preventAssignment: true, + values:{ + 'process.browser': true, + 'process.env.NODE_ENV': JSON.stringify(mode) + }, + }), + commonjs(), + !dev && terser() + ], + preserveEntrySignatures: false, + onwarn, + } +}; diff --git a/client/scripts/setupTypeScript.js b/client/scripts/setupTypeScript.js new file mode 100644 index 0000000..fb5cbdf --- /dev/null +++ b/client/scripts/setupTypeScript.js @@ -0,0 +1,304 @@ +/** + * Run this script to convert the project to TypeScript. This is only guaranteed to work + * on the unmodified default template; if you have done code changes you are likely need + * to touch up the generated project manually. + */ + +// @ts-check +const fs = require('fs'); +const path = require('path'); +const { argv } = require('process'); + +const projectRoot = argv[2] || path.join(__dirname, '..'); + +const isRollup = fs.existsSync(path.join(projectRoot, "rollup.config.js")); + +function warn(message) { + console.warn('Warning: ' + message); +} + +function replaceInFile(fileName, replacements) { + if (fs.existsSync(fileName)) { + let contents = fs.readFileSync(fileName, 'utf8'); + let hadUpdates = false; + + replacements.forEach(([from, to]) => { + const newContents = contents.replace(from, to); + + const isAlreadyApplied = typeof to !== 'string' || contents.includes(to); + + if (newContents !== contents) { + contents = newContents; + hadUpdates = true; + } else if (!isAlreadyApplied) { + warn(`Wanted to update "${from}" in ${fileName}, but did not find it.`); + } + }); + + if (hadUpdates) { + fs.writeFileSync(fileName, contents); + } else { + console.log(`${fileName} had already been updated.`); + } + } else { + warn(`Wanted to update ${fileName} but the file did not exist.`); + } +} + +function createFile(fileName, contents) { + if (fs.existsSync(fileName)) { + warn(`Wanted to create ${fileName}, but it already existed. Leaving existing file.`); + } else { + fs.writeFileSync(fileName, contents); + } +} + +function addDepsToPackageJson() { + const pkgJSONPath = path.join(projectRoot, 'package.json'); + const packageJSON = JSON.parse(fs.readFileSync(pkgJSONPath, 'utf8')); + packageJSON.devDependencies = Object.assign(packageJSON.devDependencies, { + ...(isRollup ? { '@rollup/plugin-typescript': '^6.0.0' } : { 'ts-loader': '^8.0.4' }), + '@tsconfig/svelte': '^1.0.10', + '@types/compression': '^1.7.0', + '@types/node': '^14.11.1', + '@types/polka': '^0.5.1', + 'svelte-check': '^1.0.46', + 'svelte-preprocess': '^4.3.0', + tslib: '^2.0.1', + typescript: '^4.0.3' + }); + + // Add script for checking + packageJSON.scripts = Object.assign(packageJSON.scripts, { + validate: 'svelte-check --ignore src/node_modules/@sapper' + }); + + // Write the package JSON + fs.writeFileSync(pkgJSONPath, JSON.stringify(packageJSON, null, ' ')); +} + +function changeJsExtensionToTs(dir) { + const elements = fs.readdirSync(dir, { withFileTypes: true }); + + for (let i = 0; i < elements.length; i++) { + if (elements[i].isDirectory()) { + changeJsExtensionToTs(path.join(dir, elements[i].name)); + } else if (elements[i].name.match(/^[^_]((?!json).)*js$/)) { + fs.renameSync(path.join(dir, elements[i].name), path.join(dir, elements[i].name).replace('.js', '.ts')); + } + } +} + +function updateSingleSvelteFile({ view, vars, contextModule }) { + replaceInFile(path.join(projectRoot, 'src', `${view}.svelte`), [ + [/(?:/gm, (m, attrs) => ``], + ...(vars ? vars.map(({ name, type }) => [`export let ${name};`, `export let ${name}: ${type};`]) : []), + ...(contextModule ? contextModule.map(({ js, ts }) => [js, ts]) : []) + ]); +} + +// Switch the *.svelte file to use TS +function updateSvelteFiles() { + [ + { + view: 'components/Nav', + vars: [{ name: 'segment', type: 'string' }] + }, + { + view: 'routes/_layout', + vars: [{ name: 'segment', type: 'string' }] + }, + { + view: 'routes/_error', + vars: [ + { name: 'status', type: 'number' }, + { name: 'error', type: 'Error' } + ] + }, + { + view: 'routes/blog/index', + vars: [{ name: 'posts', type: '{ slug: string; title: string, html: any }[]' }], + contextModule: [ + { + js: '.then(r => r.json())', + ts: '.then((r: { json: () => any; }) => r.json())' + }, + { + js: '.then(posts => {', + ts: '.then((posts: { slug: string; title: string, html: any }[]) => {' + } + ] + }, + { + view: 'routes/blog/[slug]', + vars: [{ name: 'post', type: '{ slug: string; title: string, html: any }' }] + } + ].forEach(updateSingleSvelteFile); +} + +function updateRollupConfig() { + // Edit rollup config + replaceInFile(path.join(projectRoot, 'rollup.config.js'), [ + // Edit imports + [ + /'rollup-plugin-terser';\n(?!import sveltePreprocess)/, + `'rollup-plugin-terser'; +import sveltePreprocess from 'svelte-preprocess'; +import typescript from '@rollup/plugin-typescript'; +` + ], + // Edit inputs + [ + /(?`, `self.addEventListener('activate', (event: ExtendableEvent) =>`], + [`self.addEventListener('install', event =>`, `self.addEventListener('install', (event: ExtendableEvent) =>`], + [`addEventListener('fetch', event =>`, `addEventListener('fetch', (event: FetchEvent) =>`], + ]); +} + +function createTsConfig() { + const tsconfig = `{ + "extends": "@tsconfig/svelte/tsconfig.json", + "compilerOptions": { + "lib": ["DOM", "ES2017", "WebWorker"] + }, + "include": ["src/**/*", "src/node_modules/**/*"], + "exclude": ["node_modules/*", "__sapper__/*", "static/*"] + }`; + + createFile(path.join(projectRoot, 'tsconfig.json'), tsconfig); +} + +// Adds the extension recommendation +function configureVsCode() { + const dir = path.join(projectRoot, '.vscode'); + + if (!fs.existsSync(dir)) { + fs.mkdirSync(dir); + } + + createFile(path.join(projectRoot, '.vscode', 'extensions.json'), `{"recommendations": ["svelte.svelte-vscode"]}`); +} + +function deleteThisScript() { + fs.unlinkSync(path.join(__filename)); + + // Check for Mac's DS_store file, and if it's the only one left remove it + const remainingFiles = fs.readdirSync(path.join(__dirname)); + if (remainingFiles.length === 1 && remainingFiles[0] === '.DS_store') { + fs.unlinkSync(path.join(__dirname, '.DS_store')); + } + + // Check if the scripts folder is empty + if (fs.readdirSync(path.join(__dirname)).length === 0) { + // Remove the scripts folder + fs.rmdirSync(path.join(__dirname)); + } +} + +console.log(`Adding TypeScript with ${isRollup ? "Rollup" : "webpack" }...`); + +addDepsToPackageJson(); + +changeJsExtensionToTs(path.join(projectRoot, 'src')); + +updateSvelteFiles(); + +if (isRollup) { + updateRollupConfig(); +} else { + updateWebpackConfig(); +} + +updateServiceWorker(); + +createTsConfig(); + +configureVsCode(); + +// Delete this script, but not during testing +if (!argv[2]) { + deleteThisScript(); +} + +console.log('Converted to TypeScript.'); + +if (fs.existsSync(path.join(projectRoot, 'node_modules'))) { + console.log(` +Next: +1. run 'npm install' again to install TypeScript dependencies +2. run 'npm run build' for the @sapper imports in your project to work +`); +} diff --git a/client/src/ambient.d.ts b/client/src/ambient.d.ts new file mode 100644 index 0000000..a26164d --- /dev/null +++ b/client/src/ambient.d.ts @@ -0,0 +1,39 @@ +/** + * These declarations tell TypeScript that we allow import of images, e.g. + * ``` + + + + ``` + */ +declare module "*.gif" { + const value: string; + export default value; +} + +declare module "*.jpg" { + const value: string; + export default value; +} + +declare module "*.jpeg" { + const value: string; + export default value; +} + +declare module "*.png" { + const value: string; + export default value; +} + +declare module "*.svg" { + const value: string; + export default value; +} + +declare module "*.webp" { + const value: string; + export default value; +} diff --git a/client/src/client.js b/client/src/client.js new file mode 100644 index 0000000..cec9172 --- /dev/null +++ b/client/src/client.js @@ -0,0 +1,5 @@ +import * as sapper from '@sapper/app'; + +sapper.start({ + target: document.querySelector('#sapper') +}); \ No newline at end of file diff --git a/client/src/components/Nav.svelte b/client/src/components/Nav.svelte new file mode 100644 index 0000000..49a94ed --- /dev/null +++ b/client/src/components/Nav.svelte @@ -0,0 +1,60 @@ + + + + + diff --git a/client/src/node_modules/images/successkid.jpg b/client/src/node_modules/images/successkid.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5ad19cc9d99e73f69d5aac6da52c2510c137dad4 GIT binary patch literal 78652 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 Ipj9*f+05sZI{*Lx literal 0 HcmV?d00001 diff --git a/client/src/routes/_error.svelte b/client/src/routes/_error.svelte new file mode 100644 index 0000000..320e587 --- /dev/null +++ b/client/src/routes/_error.svelte @@ -0,0 +1,40 @@ + + + + + + {status} + + +

{status}

+ +

{error.message}

+ +{#if dev && error.stack} +
{error.stack}
+{/if} diff --git a/client/src/routes/_layout.svelte b/client/src/routes/_layout.svelte new file mode 100644 index 0000000..8432299 --- /dev/null +++ b/client/src/routes/_layout.svelte @@ -0,0 +1,22 @@ + + + + +