├── .gitignore
├── README.md
├── cypress.json
├── cypress
├── fixtures
│ └── example.json
├── integration
│ └── spec.js
├── plugins
│ └── index.js
└── support
│ ├── commands.js
│ └── index.js
├── package-lock.json
├── package.json
├── postcss.config.js
├── rollup.config.js
├── src
├── client.js
├── components
│ ├── Charts
│ │ ├── BarChart.svelte
│ │ ├── DoughnutChart.svelte
│ │ ├── LineChart.svelte
│ │ └── PieChart.svelte
│ ├── Footer.svelte
│ ├── List.svelte
│ ├── Navbar.svelte
│ ├── NavbarIcons.svelte
│ ├── Searchbar.svelte
│ ├── Sidebar.svelte
│ ├── constant.js
│ └── stores.js
├── routes
│ ├── _error.svelte
│ ├── _layout.svelte
│ ├── about
│ │ └── index.svelte
│ ├── blog
│ │ ├── [slug].json.js
│ │ ├── [slug].svelte
│ │ ├── _posts.js
│ │ ├── index.json.js
│ │ └── index.svelte
│ ├── buttons
│ │ └── index.svelte
│ ├── index.svelte
│ ├── tables
│ │ └── index.svelte
│ └── typography
│ │ └── index.svelte
├── server.js
├── service-worker.js
└── template.html
├── static
├── favicon.png
├── global.css
├── great-success.png
├── index.css
├── logo-192.png
├── logo-512.png
├── manifest.json
└── tailwind.css
└── tailwind.config.js
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | /node_modules/
3 | /src/node_modules/@sapper/
4 | yarn-error.log
5 | /cypress/screenshots/
6 | /__sapper__/
7 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # sapper-template
2 |
3 | The default [Sapper](https://github.com/sveltejs/sapper) template, available for Rollup and webpack.
4 |
5 |
6 | ## Getting started
7 |
8 |
9 | ### Using `degit`
10 |
11 | [`degit`](https://github.com/Rich-Harris/degit) is a scaffolding tool that lets you create a directory from a branch in a repository. Use either the `rollup` or `webpack` branch in `sapper-template`:
12 |
13 | ```bash
14 | # for Rollup
15 | npx degit "sveltejs/sapper-template#rollup" my-app
16 | # for webpack
17 | npx degit "sveltejs/sapper-template#webpack" my-app
18 | ```
19 |
20 |
21 | ### Using GitHub templates
22 |
23 | Alternatively, you can use GitHub's template feature with the [sapper-template-rollup](https://github.com/sveltejs/sapper-template-rollup) or [sapper-template-webpack](https://github.com/sveltejs/sapper-template-webpack) repositories.
24 |
25 |
26 | ### Running the project
27 |
28 | However you get the code, you can install dependencies and run the project in development mode with:
29 |
30 | ```bash
31 | cd my-app
32 | npm install # or yarn
33 | npm run dev
34 | ```
35 |
36 | Open up [localhost:3000](http://localhost:3000) and start clicking around.
37 |
38 | Consult [sapper.svelte.dev](https://sapper.svelte.dev) for help getting started.
39 |
40 |
41 | ## Structure
42 |
43 | Sapper expects to find two directories in the root of your project — `src` and `static`.
44 |
45 |
46 | ### src
47 |
48 | 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.
49 |
50 |
51 | #### src/routes
52 |
53 | This is the heart of your Sapper app. There are two kinds of routes — *pages*, and *server routes*.
54 |
55 | **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.)
56 |
57 | **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.
58 |
59 | There are three simple rules for naming the files that define your routes:
60 |
61 | * 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
62 | * 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`.
63 | * 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
64 |
65 |
66 | ### static
67 |
68 | The [static](static) directory contains any static assets that should be available. These are served using [sirv](https://github.com/lukeed/sirv).
69 |
70 | In your [service-worker.js](src/service-worker.js) file, you can import these as `files` from the generated manifest...
71 |
72 | ```js
73 | import { files } from '@sapper/service-worker';
74 | ```
75 |
76 | ...so that you can cache them (though you can choose not to, for example if you don't want to cache very large files).
77 |
78 |
79 | ## Bundler config
80 |
81 | 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.
82 |
83 |
84 | ## Production mode and deployment
85 |
86 | 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.
87 |
88 | You can deploy your application to any environment that supports Node 8 or above. As an example, to deploy to [Now](https://zeit.co/now), run these commands:
89 |
90 | ```bash
91 | npm install -g now
92 | now
93 | ```
94 |
95 |
96 | ## Using external components
97 |
98 | 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.
99 |
100 | 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:
101 |
102 | ```bash
103 | npm install -D @sveltejs/svelte-virtual-list
104 | ```
105 |
106 |
107 | ## Bugs and feedback
108 |
109 | 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).
110 |
--------------------------------------------------------------------------------
/cypress.json:
--------------------------------------------------------------------------------
1 | {
2 | "baseUrl": "http://localhost:3000",
3 | "video": false
4 | }
--------------------------------------------------------------------------------
/cypress/fixtures/example.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Using fixtures to represent data",
3 | "email": "hello@cypress.io",
4 | "body": "Fixtures are a great way to mock data for responses to routes"
5 | }
--------------------------------------------------------------------------------
/cypress/integration/spec.js:
--------------------------------------------------------------------------------
1 | describe('Sapper template app', () => {
2 | beforeEach(() => {
3 | cy.visit('/')
4 | });
5 |
6 | it('has the correct
', () => {
7 | cy.contains('h1', 'Great success!')
8 | });
9 |
10 | it('navigates to /about', () => {
11 | cy.get('nav a').contains('about').click();
12 | cy.url().should('include', '/about');
13 | });
14 |
15 | it('navigates to /blog', () => {
16 | cy.get('nav a').contains('blog').click();
17 | cy.url().should('include', '/blog');
18 | });
19 | });
--------------------------------------------------------------------------------
/cypress/plugins/index.js:
--------------------------------------------------------------------------------
1 | // ***********************************************************
2 | // This example plugins/index.js can be used to load plugins
3 | //
4 | // You can change the location of this file or turn off loading
5 | // the plugins file with the 'pluginsFile' configuration option.
6 | //
7 | // You can read more here:
8 | // https://on.cypress.io/plugins-guide
9 | // ***********************************************************
10 |
11 | // This function is called when a project is opened or re-opened (e.g. due to
12 | // the project's config changing)
13 |
14 | module.exports = (on, config) => {
15 | // `on` is used to hook into various events Cypress emits
16 | // `config` is the resolved Cypress config
17 | }
18 |
--------------------------------------------------------------------------------
/cypress/support/commands.js:
--------------------------------------------------------------------------------
1 | // ***********************************************
2 | // This example commands.js shows you how to
3 | // create various custom commands and overwrite
4 | // existing commands.
5 | //
6 | // For more comprehensive examples of custom
7 | // commands please read more here:
8 | // https://on.cypress.io/custom-commands
9 | // ***********************************************
10 | //
11 | //
12 | // -- This is a parent command --
13 | // Cypress.Commands.add("login", (email, password) => { ... })
14 | //
15 | //
16 | // -- This is a child command --
17 | // Cypress.Commands.add("drag", { prevSubject: 'element'}, (subject, options) => { ... })
18 | //
19 | //
20 | // -- This is a dual command --
21 | // Cypress.Commands.add("dismiss", { prevSubject: 'optional'}, (subject, options) => { ... })
22 | //
23 | //
24 | // -- This is will overwrite an existing command --
25 | // Cypress.Commands.overwrite("visit", (originalFn, url, options) => { ... })
26 |
--------------------------------------------------------------------------------
/cypress/support/index.js:
--------------------------------------------------------------------------------
1 | // ***********************************************************
2 | // This example support/index.js is processed and
3 | // loaded automatically before your test files.
4 | //
5 | // This is a great place to put global configuration and
6 | // behavior that modifies Cypress.
7 | //
8 | // You can change the location of this file or turn off
9 | // automatically serving support files with the
10 | // 'supportFile' configuration option.
11 | //
12 | // You can read more here:
13 | // https://on.cypress.io/configuration
14 | // ***********************************************************
15 |
16 | // Import commands.js using ES2015 syntax:
17 | import './commands'
18 |
19 | // Alternatively you can use CommonJS syntax:
20 | // require('./commands')
21 |
--------------------------------------------------------------------------------
/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "TODO",
3 | "version": "0.0.1",
4 | "lockfileVersion": 1,
5 | "requires": true,
6 | "dependencies": {
7 | "@babel/code-frame": {
8 | "version": "7.8.3",
9 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz",
10 | "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==",
11 | "dev": true,
12 | "requires": {
13 | "@babel/highlight": "^7.8.3"
14 | }
15 | },
16 | "@babel/compat-data": {
17 | "version": "7.8.1",
18 | "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.8.1.tgz",
19 | "integrity": "sha512-Z+6ZOXvyOWYxJ50BwxzdhRnRsGST8Y3jaZgxYig575lTjVSs3KtJnmESwZegg6e2Dn0td1eDhoWlp1wI4BTCPw==",
20 | "dev": true,
21 | "requires": {
22 | "browserslist": "^4.8.2",
23 | "invariant": "^2.2.4",
24 | "semver": "^5.5.0"
25 | }
26 | },
27 | "@babel/core": {
28 | "version": "7.8.3",
29 | "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.8.3.tgz",
30 | "integrity": "sha512-4XFkf8AwyrEG7Ziu3L2L0Cv+WyY47Tcsp70JFmpftbAA1K7YL/sgE9jh9HyNj08Y/U50ItUchpN0w6HxAoX1rA==",
31 | "dev": true,
32 | "requires": {
33 | "@babel/code-frame": "^7.8.3",
34 | "@babel/generator": "^7.8.3",
35 | "@babel/helpers": "^7.8.3",
36 | "@babel/parser": "^7.8.3",
37 | "@babel/template": "^7.8.3",
38 | "@babel/traverse": "^7.8.3",
39 | "@babel/types": "^7.8.3",
40 | "convert-source-map": "^1.7.0",
41 | "debug": "^4.1.0",
42 | "gensync": "^1.0.0-beta.1",
43 | "json5": "^2.1.0",
44 | "lodash": "^4.17.13",
45 | "resolve": "^1.3.2",
46 | "semver": "^5.4.1",
47 | "source-map": "^0.5.0"
48 | },
49 | "dependencies": {
50 | "debug": {
51 | "version": "4.1.1",
52 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
53 | "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
54 | "dev": true,
55 | "requires": {
56 | "ms": "^2.1.1"
57 | }
58 | },
59 | "ms": {
60 | "version": "2.1.2",
61 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
62 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
63 | "dev": true
64 | }
65 | }
66 | },
67 | "@babel/generator": {
68 | "version": "7.8.3",
69 | "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.3.tgz",
70 | "integrity": "sha512-WjoPk8hRpDRqqzRpvaR8/gDUPkrnOOeuT2m8cNICJtZH6mwaCo3v0OKMI7Y6SM1pBtyijnLtAL0HDi41pf41ug==",
71 | "dev": true,
72 | "requires": {
73 | "@babel/types": "^7.8.3",
74 | "jsesc": "^2.5.1",
75 | "lodash": "^4.17.13",
76 | "source-map": "^0.5.0"
77 | }
78 | },
79 | "@babel/helper-annotate-as-pure": {
80 | "version": "7.8.3",
81 | "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz",
82 | "integrity": "sha512-6o+mJrZBxOoEX77Ezv9zwW7WV8DdluouRKNY/IR5u/YTMuKHgugHOzYWlYvYLpLA9nPsQCAAASpCIbjI9Mv+Uw==",
83 | "dev": true,
84 | "requires": {
85 | "@babel/types": "^7.8.3"
86 | }
87 | },
88 | "@babel/helper-builder-binary-assignment-operator-visitor": {
89 | "version": "7.8.3",
90 | "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.8.3.tgz",
91 | "integrity": "sha512-5eFOm2SyFPK4Rh3XMMRDjN7lBH0orh3ss0g3rTYZnBQ+r6YPj7lgDyCvPphynHvUrobJmeMignBr6Acw9mAPlw==",
92 | "dev": true,
93 | "requires": {
94 | "@babel/helper-explode-assignable-expression": "^7.8.3",
95 | "@babel/types": "^7.8.3"
96 | }
97 | },
98 | "@babel/helper-call-delegate": {
99 | "version": "7.8.3",
100 | "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.8.3.tgz",
101 | "integrity": "sha512-6Q05px0Eb+N4/GTyKPPvnkig7Lylw+QzihMpws9iiZQv7ZImf84ZsZpQH7QoWN4n4tm81SnSzPgHw2qtO0Zf3A==",
102 | "dev": true,
103 | "requires": {
104 | "@babel/helper-hoist-variables": "^7.8.3",
105 | "@babel/traverse": "^7.8.3",
106 | "@babel/types": "^7.8.3"
107 | }
108 | },
109 | "@babel/helper-compilation-targets": {
110 | "version": "7.8.3",
111 | "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.8.3.tgz",
112 | "integrity": "sha512-JLylPCsFjhLN+6uBSSh3iYdxKdeO9MNmoY96PE/99d8kyBFaXLORtAVhqN6iHa+wtPeqxKLghDOZry0+Aiw9Tw==",
113 | "dev": true,
114 | "requires": {
115 | "@babel/compat-data": "^7.8.1",
116 | "browserslist": "^4.8.2",
117 | "invariant": "^2.2.4",
118 | "levenary": "^1.1.0",
119 | "semver": "^5.5.0"
120 | }
121 | },
122 | "@babel/helper-create-regexp-features-plugin": {
123 | "version": "7.8.3",
124 | "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.3.tgz",
125 | "integrity": "sha512-Gcsm1OHCUr9o9TcJln57xhWHtdXbA2pgQ58S0Lxlks0WMGNXuki4+GLfX0p+L2ZkINUGZvfkz8rzoqJQSthI+Q==",
126 | "dev": true,
127 | "requires": {
128 | "@babel/helper-regex": "^7.8.3",
129 | "regexpu-core": "^4.6.0"
130 | }
131 | },
132 | "@babel/helper-define-map": {
133 | "version": "7.8.3",
134 | "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.8.3.tgz",
135 | "integrity": "sha512-PoeBYtxoZGtct3md6xZOCWPcKuMuk3IHhgxsRRNtnNShebf4C8YonTSblsK4tvDbm+eJAw2HAPOfCr+Q/YRG/g==",
136 | "dev": true,
137 | "requires": {
138 | "@babel/helper-function-name": "^7.8.3",
139 | "@babel/types": "^7.8.3",
140 | "lodash": "^4.17.13"
141 | }
142 | },
143 | "@babel/helper-explode-assignable-expression": {
144 | "version": "7.8.3",
145 | "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.8.3.tgz",
146 | "integrity": "sha512-N+8eW86/Kj147bO9G2uclsg5pwfs/fqqY5rwgIL7eTBklgXjcOJ3btzS5iM6AitJcftnY7pm2lGsrJVYLGjzIw==",
147 | "dev": true,
148 | "requires": {
149 | "@babel/traverse": "^7.8.3",
150 | "@babel/types": "^7.8.3"
151 | }
152 | },
153 | "@babel/helper-function-name": {
154 | "version": "7.8.3",
155 | "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz",
156 | "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==",
157 | "dev": true,
158 | "requires": {
159 | "@babel/helper-get-function-arity": "^7.8.3",
160 | "@babel/template": "^7.8.3",
161 | "@babel/types": "^7.8.3"
162 | }
163 | },
164 | "@babel/helper-get-function-arity": {
165 | "version": "7.8.3",
166 | "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz",
167 | "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==",
168 | "dev": true,
169 | "requires": {
170 | "@babel/types": "^7.8.3"
171 | }
172 | },
173 | "@babel/helper-hoist-variables": {
174 | "version": "7.8.3",
175 | "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.8.3.tgz",
176 | "integrity": "sha512-ky1JLOjcDUtSc+xkt0xhYff7Z6ILTAHKmZLHPxAhOP0Nd77O+3nCsd6uSVYur6nJnCI029CrNbYlc0LoPfAPQg==",
177 | "dev": true,
178 | "requires": {
179 | "@babel/types": "^7.8.3"
180 | }
181 | },
182 | "@babel/helper-member-expression-to-functions": {
183 | "version": "7.8.3",
184 | "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.3.tgz",
185 | "integrity": "sha512-fO4Egq88utkQFjbPrSHGmGLFqmrshs11d46WI+WZDESt7Wu7wN2G2Iu+NMMZJFDOVRHAMIkB5SNh30NtwCA7RA==",
186 | "dev": true,
187 | "requires": {
188 | "@babel/types": "^7.8.3"
189 | }
190 | },
191 | "@babel/helper-module-imports": {
192 | "version": "7.8.3",
193 | "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz",
194 | "integrity": "sha512-R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg==",
195 | "dev": true,
196 | "requires": {
197 | "@babel/types": "^7.8.3"
198 | }
199 | },
200 | "@babel/helper-module-transforms": {
201 | "version": "7.8.3",
202 | "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.8.3.tgz",
203 | "integrity": "sha512-C7NG6B7vfBa/pwCOshpMbOYUmrYQDfCpVL/JCRu0ek8B5p8kue1+BCXpg2vOYs7w5ACB9GTOBYQ5U6NwrMg+3Q==",
204 | "dev": true,
205 | "requires": {
206 | "@babel/helper-module-imports": "^7.8.3",
207 | "@babel/helper-simple-access": "^7.8.3",
208 | "@babel/helper-split-export-declaration": "^7.8.3",
209 | "@babel/template": "^7.8.3",
210 | "@babel/types": "^7.8.3",
211 | "lodash": "^4.17.13"
212 | }
213 | },
214 | "@babel/helper-optimise-call-expression": {
215 | "version": "7.8.3",
216 | "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.3.tgz",
217 | "integrity": "sha512-Kag20n86cbO2AvHca6EJsvqAd82gc6VMGule4HwebwMlwkpXuVqrNRj6CkCV2sKxgi9MyAUnZVnZ6lJ1/vKhHQ==",
218 | "dev": true,
219 | "requires": {
220 | "@babel/types": "^7.8.3"
221 | }
222 | },
223 | "@babel/helper-plugin-utils": {
224 | "version": "7.8.3",
225 | "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz",
226 | "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==",
227 | "dev": true
228 | },
229 | "@babel/helper-regex": {
230 | "version": "7.8.3",
231 | "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.8.3.tgz",
232 | "integrity": "sha512-BWt0QtYv/cg/NecOAZMdcn/waj/5P26DR4mVLXfFtDokSR6fyuG0Pj+e2FqtSME+MqED1khnSMulkmGl8qWiUQ==",
233 | "dev": true,
234 | "requires": {
235 | "lodash": "^4.17.13"
236 | }
237 | },
238 | "@babel/helper-remap-async-to-generator": {
239 | "version": "7.8.3",
240 | "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.8.3.tgz",
241 | "integrity": "sha512-kgwDmw4fCg7AVgS4DukQR/roGp+jP+XluJE5hsRZwxCYGg+Rv9wSGErDWhlI90FODdYfd4xG4AQRiMDjjN0GzA==",
242 | "dev": true,
243 | "requires": {
244 | "@babel/helper-annotate-as-pure": "^7.8.3",
245 | "@babel/helper-wrap-function": "^7.8.3",
246 | "@babel/template": "^7.8.3",
247 | "@babel/traverse": "^7.8.3",
248 | "@babel/types": "^7.8.3"
249 | }
250 | },
251 | "@babel/helper-replace-supers": {
252 | "version": "7.8.3",
253 | "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.8.3.tgz",
254 | "integrity": "sha512-xOUssL6ho41U81etpLoT2RTdvdus4VfHamCuAm4AHxGr+0it5fnwoVdwUJ7GFEqCsQYzJUhcbsN9wB9apcYKFA==",
255 | "dev": true,
256 | "requires": {
257 | "@babel/helper-member-expression-to-functions": "^7.8.3",
258 | "@babel/helper-optimise-call-expression": "^7.8.3",
259 | "@babel/traverse": "^7.8.3",
260 | "@babel/types": "^7.8.3"
261 | }
262 | },
263 | "@babel/helper-simple-access": {
264 | "version": "7.8.3",
265 | "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.8.3.tgz",
266 | "integrity": "sha512-VNGUDjx5cCWg4vvCTR8qQ7YJYZ+HBjxOgXEl7ounz+4Sn7+LMD3CFrCTEU6/qXKbA2nKg21CwhhBzO0RpRbdCw==",
267 | "dev": true,
268 | "requires": {
269 | "@babel/template": "^7.8.3",
270 | "@babel/types": "^7.8.3"
271 | }
272 | },
273 | "@babel/helper-split-export-declaration": {
274 | "version": "7.8.3",
275 | "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz",
276 | "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==",
277 | "dev": true,
278 | "requires": {
279 | "@babel/types": "^7.8.3"
280 | }
281 | },
282 | "@babel/helper-wrap-function": {
283 | "version": "7.8.3",
284 | "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.8.3.tgz",
285 | "integrity": "sha512-LACJrbUET9cQDzb6kG7EeD7+7doC3JNvUgTEQOx2qaO1fKlzE/Bf05qs9w1oXQMmXlPO65lC3Tq9S6gZpTErEQ==",
286 | "dev": true,
287 | "requires": {
288 | "@babel/helper-function-name": "^7.8.3",
289 | "@babel/template": "^7.8.3",
290 | "@babel/traverse": "^7.8.3",
291 | "@babel/types": "^7.8.3"
292 | }
293 | },
294 | "@babel/helpers": {
295 | "version": "7.8.3",
296 | "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.8.3.tgz",
297 | "integrity": "sha512-LmU3q9Pah/XyZU89QvBgGt+BCsTPoQa+73RxAQh8fb8qkDyIfeQnmgs+hvzhTCKTzqOyk7JTkS3MS1S8Mq5yrQ==",
298 | "dev": true,
299 | "requires": {
300 | "@babel/template": "^7.8.3",
301 | "@babel/traverse": "^7.8.3",
302 | "@babel/types": "^7.8.3"
303 | }
304 | },
305 | "@babel/highlight": {
306 | "version": "7.8.3",
307 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz",
308 | "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==",
309 | "dev": true,
310 | "requires": {
311 | "chalk": "^2.0.0",
312 | "esutils": "^2.0.2",
313 | "js-tokens": "^4.0.0"
314 | }
315 | },
316 | "@babel/parser": {
317 | "version": "7.8.3",
318 | "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.3.tgz",
319 | "integrity": "sha512-/V72F4Yp/qmHaTALizEm9Gf2eQHV3QyTL3K0cNfijwnMnb1L+LDlAubb/ZnSdGAVzVSWakujHYs1I26x66sMeQ==",
320 | "dev": true
321 | },
322 | "@babel/plugin-proposal-async-generator-functions": {
323 | "version": "7.8.3",
324 | "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.8.3.tgz",
325 | "integrity": "sha512-NZ9zLv848JsV3hs8ryEh7Uaz/0KsmPLqv0+PdkDJL1cJy0K4kOCFa8zc1E3mp+RHPQcpdfb/6GovEsW4VDrOMw==",
326 | "dev": true,
327 | "requires": {
328 | "@babel/helper-plugin-utils": "^7.8.3",
329 | "@babel/helper-remap-async-to-generator": "^7.8.3",
330 | "@babel/plugin-syntax-async-generators": "^7.8.0"
331 | }
332 | },
333 | "@babel/plugin-proposal-dynamic-import": {
334 | "version": "7.8.3",
335 | "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.8.3.tgz",
336 | "integrity": "sha512-NyaBbyLFXFLT9FP+zk0kYlUlA8XtCUbehs67F0nnEg7KICgMc2mNkIeu9TYhKzyXMkrapZFwAhXLdnt4IYHy1w==",
337 | "dev": true,
338 | "requires": {
339 | "@babel/helper-plugin-utils": "^7.8.3",
340 | "@babel/plugin-syntax-dynamic-import": "^7.8.0"
341 | }
342 | },
343 | "@babel/plugin-proposal-json-strings": {
344 | "version": "7.8.3",
345 | "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.8.3.tgz",
346 | "integrity": "sha512-KGhQNZ3TVCQG/MjRbAUwuH+14y9q0tpxs1nWWs3pbSleRdDro9SAMMDyye8HhY1gqZ7/NqIc8SKhya0wRDgP1Q==",
347 | "dev": true,
348 | "requires": {
349 | "@babel/helper-plugin-utils": "^7.8.3",
350 | "@babel/plugin-syntax-json-strings": "^7.8.0"
351 | }
352 | },
353 | "@babel/plugin-proposal-nullish-coalescing-operator": {
354 | "version": "7.8.3",
355 | "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.8.3.tgz",
356 | "integrity": "sha512-TS9MlfzXpXKt6YYomudb/KU7nQI6/xnapG6in1uZxoxDghuSMZsPb6D2fyUwNYSAp4l1iR7QtFOjkqcRYcUsfw==",
357 | "dev": true,
358 | "requires": {
359 | "@babel/helper-plugin-utils": "^7.8.3",
360 | "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0"
361 | }
362 | },
363 | "@babel/plugin-proposal-object-rest-spread": {
364 | "version": "7.8.3",
365 | "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.8.3.tgz",
366 | "integrity": "sha512-8qvuPwU/xxUCt78HocNlv0mXXo0wdh9VT1R04WU8HGOfaOob26pF+9P5/lYjN/q7DHOX1bvX60hnhOvuQUJdbA==",
367 | "dev": true,
368 | "requires": {
369 | "@babel/helper-plugin-utils": "^7.8.3",
370 | "@babel/plugin-syntax-object-rest-spread": "^7.8.0"
371 | }
372 | },
373 | "@babel/plugin-proposal-optional-catch-binding": {
374 | "version": "7.8.3",
375 | "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.8.3.tgz",
376 | "integrity": "sha512-0gkX7J7E+AtAw9fcwlVQj8peP61qhdg/89D5swOkjYbkboA2CVckn3kiyum1DE0wskGb7KJJxBdyEBApDLLVdw==",
377 | "dev": true,
378 | "requires": {
379 | "@babel/helper-plugin-utils": "^7.8.3",
380 | "@babel/plugin-syntax-optional-catch-binding": "^7.8.0"
381 | }
382 | },
383 | "@babel/plugin-proposal-optional-chaining": {
384 | "version": "7.8.3",
385 | "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.8.3.tgz",
386 | "integrity": "sha512-QIoIR9abkVn+seDE3OjA08jWcs3eZ9+wJCKSRgo3WdEU2csFYgdScb+8qHB3+WXsGJD55u+5hWCISI7ejXS+kg==",
387 | "dev": true,
388 | "requires": {
389 | "@babel/helper-plugin-utils": "^7.8.3",
390 | "@babel/plugin-syntax-optional-chaining": "^7.8.0"
391 | }
392 | },
393 | "@babel/plugin-proposal-unicode-property-regex": {
394 | "version": "7.8.3",
395 | "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.3.tgz",
396 | "integrity": "sha512-1/1/rEZv2XGweRwwSkLpY+s60za9OZ1hJs4YDqFHCw0kYWYwL5IFljVY1MYBL+weT1l9pokDO2uhSTLVxzoHkQ==",
397 | "dev": true,
398 | "requires": {
399 | "@babel/helper-create-regexp-features-plugin": "^7.8.3",
400 | "@babel/helper-plugin-utils": "^7.8.3"
401 | }
402 | },
403 | "@babel/plugin-syntax-async-generators": {
404 | "version": "7.8.4",
405 | "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz",
406 | "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==",
407 | "dev": true,
408 | "requires": {
409 | "@babel/helper-plugin-utils": "^7.8.0"
410 | }
411 | },
412 | "@babel/plugin-syntax-dynamic-import": {
413 | "version": "7.8.3",
414 | "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz",
415 | "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==",
416 | "dev": true,
417 | "requires": {
418 | "@babel/helper-plugin-utils": "^7.8.0"
419 | }
420 | },
421 | "@babel/plugin-syntax-json-strings": {
422 | "version": "7.8.3",
423 | "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz",
424 | "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==",
425 | "dev": true,
426 | "requires": {
427 | "@babel/helper-plugin-utils": "^7.8.0"
428 | }
429 | },
430 | "@babel/plugin-syntax-nullish-coalescing-operator": {
431 | "version": "7.8.3",
432 | "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz",
433 | "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==",
434 | "dev": true,
435 | "requires": {
436 | "@babel/helper-plugin-utils": "^7.8.0"
437 | }
438 | },
439 | "@babel/plugin-syntax-object-rest-spread": {
440 | "version": "7.8.3",
441 | "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz",
442 | "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==",
443 | "dev": true,
444 | "requires": {
445 | "@babel/helper-plugin-utils": "^7.8.0"
446 | }
447 | },
448 | "@babel/plugin-syntax-optional-catch-binding": {
449 | "version": "7.8.3",
450 | "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz",
451 | "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==",
452 | "dev": true,
453 | "requires": {
454 | "@babel/helper-plugin-utils": "^7.8.0"
455 | }
456 | },
457 | "@babel/plugin-syntax-optional-chaining": {
458 | "version": "7.8.3",
459 | "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz",
460 | "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==",
461 | "dev": true,
462 | "requires": {
463 | "@babel/helper-plugin-utils": "^7.8.0"
464 | }
465 | },
466 | "@babel/plugin-syntax-top-level-await": {
467 | "version": "7.8.3",
468 | "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.8.3.tgz",
469 | "integrity": "sha512-kwj1j9lL/6Wd0hROD3b/OZZ7MSrZLqqn9RAZ5+cYYsflQ9HZBIKCUkr3+uL1MEJ1NePiUbf98jjiMQSv0NMR9g==",
470 | "dev": true,
471 | "requires": {
472 | "@babel/helper-plugin-utils": "^7.8.3"
473 | }
474 | },
475 | "@babel/plugin-transform-arrow-functions": {
476 | "version": "7.8.3",
477 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.8.3.tgz",
478 | "integrity": "sha512-0MRF+KC8EqH4dbuITCWwPSzsyO3HIWWlm30v8BbbpOrS1B++isGxPnnuq/IZvOX5J2D/p7DQalQm+/2PnlKGxg==",
479 | "dev": true,
480 | "requires": {
481 | "@babel/helper-plugin-utils": "^7.8.3"
482 | }
483 | },
484 | "@babel/plugin-transform-async-to-generator": {
485 | "version": "7.8.3",
486 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.8.3.tgz",
487 | "integrity": "sha512-imt9tFLD9ogt56Dd5CI/6XgpukMwd/fLGSrix2httihVe7LOGVPhyhMh1BU5kDM7iHD08i8uUtmV2sWaBFlHVQ==",
488 | "dev": true,
489 | "requires": {
490 | "@babel/helper-module-imports": "^7.8.3",
491 | "@babel/helper-plugin-utils": "^7.8.3",
492 | "@babel/helper-remap-async-to-generator": "^7.8.3"
493 | }
494 | },
495 | "@babel/plugin-transform-block-scoped-functions": {
496 | "version": "7.8.3",
497 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.8.3.tgz",
498 | "integrity": "sha512-vo4F2OewqjbB1+yaJ7k2EJFHlTP3jR634Z9Cj9itpqNjuLXvhlVxgnjsHsdRgASR8xYDrx6onw4vW5H6We0Jmg==",
499 | "dev": true,
500 | "requires": {
501 | "@babel/helper-plugin-utils": "^7.8.3"
502 | }
503 | },
504 | "@babel/plugin-transform-block-scoping": {
505 | "version": "7.8.3",
506 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.8.3.tgz",
507 | "integrity": "sha512-pGnYfm7RNRgYRi7bids5bHluENHqJhrV4bCZRwc5GamaWIIs07N4rZECcmJL6ZClwjDz1GbdMZFtPs27hTB06w==",
508 | "dev": true,
509 | "requires": {
510 | "@babel/helper-plugin-utils": "^7.8.3",
511 | "lodash": "^4.17.13"
512 | }
513 | },
514 | "@babel/plugin-transform-classes": {
515 | "version": "7.8.3",
516 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.8.3.tgz",
517 | "integrity": "sha512-SjT0cwFJ+7Rbr1vQsvphAHwUHvSUPmMjMU/0P59G8U2HLFqSa082JO7zkbDNWs9kH/IUqpHI6xWNesGf8haF1w==",
518 | "dev": true,
519 | "requires": {
520 | "@babel/helper-annotate-as-pure": "^7.8.3",
521 | "@babel/helper-define-map": "^7.8.3",
522 | "@babel/helper-function-name": "^7.8.3",
523 | "@babel/helper-optimise-call-expression": "^7.8.3",
524 | "@babel/helper-plugin-utils": "^7.8.3",
525 | "@babel/helper-replace-supers": "^7.8.3",
526 | "@babel/helper-split-export-declaration": "^7.8.3",
527 | "globals": "^11.1.0"
528 | }
529 | },
530 | "@babel/plugin-transform-computed-properties": {
531 | "version": "7.8.3",
532 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.8.3.tgz",
533 | "integrity": "sha512-O5hiIpSyOGdrQZRQ2ccwtTVkgUDBBiCuK//4RJ6UfePllUTCENOzKxfh6ulckXKc0DixTFLCfb2HVkNA7aDpzA==",
534 | "dev": true,
535 | "requires": {
536 | "@babel/helper-plugin-utils": "^7.8.3"
537 | }
538 | },
539 | "@babel/plugin-transform-destructuring": {
540 | "version": "7.8.3",
541 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.8.3.tgz",
542 | "integrity": "sha512-H4X646nCkiEcHZUZaRkhE2XVsoz0J/1x3VVujnn96pSoGCtKPA99ZZA+va+gK+92Zycd6OBKCD8tDb/731bhgQ==",
543 | "dev": true,
544 | "requires": {
545 | "@babel/helper-plugin-utils": "^7.8.3"
546 | }
547 | },
548 | "@babel/plugin-transform-dotall-regex": {
549 | "version": "7.8.3",
550 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.8.3.tgz",
551 | "integrity": "sha512-kLs1j9Nn4MQoBYdRXH6AeaXMbEJFaFu/v1nQkvib6QzTj8MZI5OQzqmD83/2jEM1z0DLilra5aWO5YpyC0ALIw==",
552 | "dev": true,
553 | "requires": {
554 | "@babel/helper-create-regexp-features-plugin": "^7.8.3",
555 | "@babel/helper-plugin-utils": "^7.8.3"
556 | }
557 | },
558 | "@babel/plugin-transform-duplicate-keys": {
559 | "version": "7.8.3",
560 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.8.3.tgz",
561 | "integrity": "sha512-s8dHiBUbcbSgipS4SMFuWGqCvyge5V2ZeAWzR6INTVC3Ltjig/Vw1G2Gztv0vU/hRG9X8IvKvYdoksnUfgXOEQ==",
562 | "dev": true,
563 | "requires": {
564 | "@babel/helper-plugin-utils": "^7.8.3"
565 | }
566 | },
567 | "@babel/plugin-transform-exponentiation-operator": {
568 | "version": "7.8.3",
569 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.8.3.tgz",
570 | "integrity": "sha512-zwIpuIymb3ACcInbksHaNcR12S++0MDLKkiqXHl3AzpgdKlFNhog+z/K0+TGW+b0w5pgTq4H6IwV/WhxbGYSjQ==",
571 | "dev": true,
572 | "requires": {
573 | "@babel/helper-builder-binary-assignment-operator-visitor": "^7.8.3",
574 | "@babel/helper-plugin-utils": "^7.8.3"
575 | }
576 | },
577 | "@babel/plugin-transform-for-of": {
578 | "version": "7.8.3",
579 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.8.3.tgz",
580 | "integrity": "sha512-ZjXznLNTxhpf4Q5q3x1NsngzGA38t9naWH8Gt+0qYZEJAcvPI9waSStSh56u19Ofjr7QmD0wUsQ8hw8s/p1VnA==",
581 | "dev": true,
582 | "requires": {
583 | "@babel/helper-plugin-utils": "^7.8.3"
584 | }
585 | },
586 | "@babel/plugin-transform-function-name": {
587 | "version": "7.8.3",
588 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.8.3.tgz",
589 | "integrity": "sha512-rO/OnDS78Eifbjn5Py9v8y0aR+aSYhDhqAwVfsTl0ERuMZyr05L1aFSCJnbv2mmsLkit/4ReeQ9N2BgLnOcPCQ==",
590 | "dev": true,
591 | "requires": {
592 | "@babel/helper-function-name": "^7.8.3",
593 | "@babel/helper-plugin-utils": "^7.8.3"
594 | }
595 | },
596 | "@babel/plugin-transform-literals": {
597 | "version": "7.8.3",
598 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.8.3.tgz",
599 | "integrity": "sha512-3Tqf8JJ/qB7TeldGl+TT55+uQei9JfYaregDcEAyBZ7akutriFrt6C/wLYIer6OYhleVQvH/ntEhjE/xMmy10A==",
600 | "dev": true,
601 | "requires": {
602 | "@babel/helper-plugin-utils": "^7.8.3"
603 | }
604 | },
605 | "@babel/plugin-transform-member-expression-literals": {
606 | "version": "7.8.3",
607 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.8.3.tgz",
608 | "integrity": "sha512-3Wk2EXhnw+rP+IDkK6BdtPKsUE5IeZ6QOGrPYvw52NwBStw9V1ZVzxgK6fSKSxqUvH9eQPR3tm3cOq79HlsKYA==",
609 | "dev": true,
610 | "requires": {
611 | "@babel/helper-plugin-utils": "^7.8.3"
612 | }
613 | },
614 | "@babel/plugin-transform-modules-amd": {
615 | "version": "7.8.3",
616 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.8.3.tgz",
617 | "integrity": "sha512-MadJiU3rLKclzT5kBH4yxdry96odTUwuqrZM+GllFI/VhxfPz+k9MshJM+MwhfkCdxxclSbSBbUGciBngR+kEQ==",
618 | "dev": true,
619 | "requires": {
620 | "@babel/helper-module-transforms": "^7.8.3",
621 | "@babel/helper-plugin-utils": "^7.8.3",
622 | "babel-plugin-dynamic-import-node": "^2.3.0"
623 | }
624 | },
625 | "@babel/plugin-transform-modules-commonjs": {
626 | "version": "7.8.3",
627 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.8.3.tgz",
628 | "integrity": "sha512-JpdMEfA15HZ/1gNuB9XEDlZM1h/gF/YOH7zaZzQu2xCFRfwc01NXBMHHSTT6hRjlXJJs5x/bfODM3LiCk94Sxg==",
629 | "dev": true,
630 | "requires": {
631 | "@babel/helper-module-transforms": "^7.8.3",
632 | "@babel/helper-plugin-utils": "^7.8.3",
633 | "@babel/helper-simple-access": "^7.8.3",
634 | "babel-plugin-dynamic-import-node": "^2.3.0"
635 | }
636 | },
637 | "@babel/plugin-transform-modules-systemjs": {
638 | "version": "7.8.3",
639 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.8.3.tgz",
640 | "integrity": "sha512-8cESMCJjmArMYqa9AO5YuMEkE4ds28tMpZcGZB/jl3n0ZzlsxOAi3mC+SKypTfT8gjMupCnd3YiXCkMjj2jfOg==",
641 | "dev": true,
642 | "requires": {
643 | "@babel/helper-hoist-variables": "^7.8.3",
644 | "@babel/helper-module-transforms": "^7.8.3",
645 | "@babel/helper-plugin-utils": "^7.8.3",
646 | "babel-plugin-dynamic-import-node": "^2.3.0"
647 | }
648 | },
649 | "@babel/plugin-transform-modules-umd": {
650 | "version": "7.8.3",
651 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.8.3.tgz",
652 | "integrity": "sha512-evhTyWhbwbI3/U6dZAnx/ePoV7H6OUG+OjiJFHmhr9FPn0VShjwC2kdxqIuQ/+1P50TMrneGzMeyMTFOjKSnAw==",
653 | "dev": true,
654 | "requires": {
655 | "@babel/helper-module-transforms": "^7.8.3",
656 | "@babel/helper-plugin-utils": "^7.8.3"
657 | }
658 | },
659 | "@babel/plugin-transform-named-capturing-groups-regex": {
660 | "version": "7.8.3",
661 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.8.3.tgz",
662 | "integrity": "sha512-f+tF/8UVPU86TrCb06JoPWIdDpTNSGGcAtaD9mLP0aYGA0OS0j7j7DHJR0GTFrUZPUU6loZhbsVZgTh0N+Qdnw==",
663 | "dev": true,
664 | "requires": {
665 | "@babel/helper-create-regexp-features-plugin": "^7.8.3"
666 | }
667 | },
668 | "@babel/plugin-transform-new-target": {
669 | "version": "7.8.3",
670 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.8.3.tgz",
671 | "integrity": "sha512-QuSGysibQpyxexRyui2vca+Cmbljo8bcRckgzYV4kRIsHpVeyeC3JDO63pY+xFZ6bWOBn7pfKZTqV4o/ix9sFw==",
672 | "dev": true,
673 | "requires": {
674 | "@babel/helper-plugin-utils": "^7.8.3"
675 | }
676 | },
677 | "@babel/plugin-transform-object-super": {
678 | "version": "7.8.3",
679 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.8.3.tgz",
680 | "integrity": "sha512-57FXk+gItG/GejofIyLIgBKTas4+pEU47IXKDBWFTxdPd7F80H8zybyAY7UoblVfBhBGs2EKM+bJUu2+iUYPDQ==",
681 | "dev": true,
682 | "requires": {
683 | "@babel/helper-plugin-utils": "^7.8.3",
684 | "@babel/helper-replace-supers": "^7.8.3"
685 | }
686 | },
687 | "@babel/plugin-transform-parameters": {
688 | "version": "7.8.3",
689 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.8.3.tgz",
690 | "integrity": "sha512-/pqngtGb54JwMBZ6S/D3XYylQDFtGjWrnoCF4gXZOUpFV/ujbxnoNGNvDGu6doFWRPBveE72qTx/RRU44j5I/Q==",
691 | "dev": true,
692 | "requires": {
693 | "@babel/helper-call-delegate": "^7.8.3",
694 | "@babel/helper-get-function-arity": "^7.8.3",
695 | "@babel/helper-plugin-utils": "^7.8.3"
696 | }
697 | },
698 | "@babel/plugin-transform-property-literals": {
699 | "version": "7.8.3",
700 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.8.3.tgz",
701 | "integrity": "sha512-uGiiXAZMqEoQhRWMK17VospMZh5sXWg+dlh2soffpkAl96KAm+WZuJfa6lcELotSRmooLqg0MWdH6UUq85nmmg==",
702 | "dev": true,
703 | "requires": {
704 | "@babel/helper-plugin-utils": "^7.8.3"
705 | }
706 | },
707 | "@babel/plugin-transform-regenerator": {
708 | "version": "7.8.3",
709 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.8.3.tgz",
710 | "integrity": "sha512-qt/kcur/FxrQrzFR432FGZznkVAjiyFtCOANjkAKwCbt465L6ZCiUQh2oMYGU3Wo8LRFJxNDFwWn106S5wVUNA==",
711 | "dev": true,
712 | "requires": {
713 | "regenerator-transform": "^0.14.0"
714 | }
715 | },
716 | "@babel/plugin-transform-reserved-words": {
717 | "version": "7.8.3",
718 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.8.3.tgz",
719 | "integrity": "sha512-mwMxcycN3omKFDjDQUl+8zyMsBfjRFr0Zn/64I41pmjv4NJuqcYlEtezwYtw9TFd9WR1vN5kiM+O0gMZzO6L0A==",
720 | "dev": true,
721 | "requires": {
722 | "@babel/helper-plugin-utils": "^7.8.3"
723 | }
724 | },
725 | "@babel/plugin-transform-runtime": {
726 | "version": "7.8.3",
727 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.8.3.tgz",
728 | "integrity": "sha512-/vqUt5Yh+cgPZXXjmaG9NT8aVfThKk7G4OqkVhrXqwsC5soMn/qTCxs36rZ2QFhpfTJcjw4SNDIZ4RUb8OL4jQ==",
729 | "dev": true,
730 | "requires": {
731 | "@babel/helper-module-imports": "^7.8.3",
732 | "@babel/helper-plugin-utils": "^7.8.3",
733 | "resolve": "^1.8.1",
734 | "semver": "^5.5.1"
735 | }
736 | },
737 | "@babel/plugin-transform-shorthand-properties": {
738 | "version": "7.8.3",
739 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.8.3.tgz",
740 | "integrity": "sha512-I9DI6Odg0JJwxCHzbzW08ggMdCezoWcuQRz3ptdudgwaHxTjxw5HgdFJmZIkIMlRymL6YiZcped4TTCB0JcC8w==",
741 | "dev": true,
742 | "requires": {
743 | "@babel/helper-plugin-utils": "^7.8.3"
744 | }
745 | },
746 | "@babel/plugin-transform-spread": {
747 | "version": "7.8.3",
748 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.8.3.tgz",
749 | "integrity": "sha512-CkuTU9mbmAoFOI1tklFWYYbzX5qCIZVXPVy0jpXgGwkplCndQAa58s2jr66fTeQnA64bDox0HL4U56CFYoyC7g==",
750 | "dev": true,
751 | "requires": {
752 | "@babel/helper-plugin-utils": "^7.8.3"
753 | }
754 | },
755 | "@babel/plugin-transform-sticky-regex": {
756 | "version": "7.8.3",
757 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.8.3.tgz",
758 | "integrity": "sha512-9Spq0vGCD5Bb4Z/ZXXSK5wbbLFMG085qd2vhL1JYu1WcQ5bXqZBAYRzU1d+p79GcHs2szYv5pVQCX13QgldaWw==",
759 | "dev": true,
760 | "requires": {
761 | "@babel/helper-plugin-utils": "^7.8.3",
762 | "@babel/helper-regex": "^7.8.3"
763 | }
764 | },
765 | "@babel/plugin-transform-template-literals": {
766 | "version": "7.8.3",
767 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.8.3.tgz",
768 | "integrity": "sha512-820QBtykIQOLFT8NZOcTRJ1UNuztIELe4p9DCgvj4NK+PwluSJ49we7s9FB1HIGNIYT7wFUJ0ar2QpCDj0escQ==",
769 | "dev": true,
770 | "requires": {
771 | "@babel/helper-annotate-as-pure": "^7.8.3",
772 | "@babel/helper-plugin-utils": "^7.8.3"
773 | }
774 | },
775 | "@babel/plugin-transform-typeof-symbol": {
776 | "version": "7.8.3",
777 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.8.3.tgz",
778 | "integrity": "sha512-3TrkKd4LPqm4jHs6nPtSDI/SV9Cm5PRJkHLUgTcqRQQTMAZ44ZaAdDZJtvWFSaRcvT0a1rTmJ5ZA5tDKjleF3g==",
779 | "dev": true,
780 | "requires": {
781 | "@babel/helper-plugin-utils": "^7.8.3"
782 | }
783 | },
784 | "@babel/plugin-transform-unicode-regex": {
785 | "version": "7.8.3",
786 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.8.3.tgz",
787 | "integrity": "sha512-+ufgJjYdmWfSQ+6NS9VGUR2ns8cjJjYbrbi11mZBTaWm+Fui/ncTLFF28Ei1okavY+xkojGr1eJxNsWYeA5aZw==",
788 | "dev": true,
789 | "requires": {
790 | "@babel/helper-create-regexp-features-plugin": "^7.8.3",
791 | "@babel/helper-plugin-utils": "^7.8.3"
792 | }
793 | },
794 | "@babel/preset-env": {
795 | "version": "7.8.3",
796 | "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.8.3.tgz",
797 | "integrity": "sha512-Rs4RPL2KjSLSE2mWAx5/iCH+GC1ikKdxPrhnRS6PfFVaiZeom22VFKN4X8ZthyN61kAaR05tfXTbCvatl9WIQg==",
798 | "dev": true,
799 | "requires": {
800 | "@babel/compat-data": "^7.8.0",
801 | "@babel/helper-compilation-targets": "^7.8.3",
802 | "@babel/helper-module-imports": "^7.8.3",
803 | "@babel/helper-plugin-utils": "^7.8.3",
804 | "@babel/plugin-proposal-async-generator-functions": "^7.8.3",
805 | "@babel/plugin-proposal-dynamic-import": "^7.8.3",
806 | "@babel/plugin-proposal-json-strings": "^7.8.3",
807 | "@babel/plugin-proposal-nullish-coalescing-operator": "^7.8.3",
808 | "@babel/plugin-proposal-object-rest-spread": "^7.8.3",
809 | "@babel/plugin-proposal-optional-catch-binding": "^7.8.3",
810 | "@babel/plugin-proposal-optional-chaining": "^7.8.3",
811 | "@babel/plugin-proposal-unicode-property-regex": "^7.8.3",
812 | "@babel/plugin-syntax-async-generators": "^7.8.0",
813 | "@babel/plugin-syntax-dynamic-import": "^7.8.0",
814 | "@babel/plugin-syntax-json-strings": "^7.8.0",
815 | "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0",
816 | "@babel/plugin-syntax-object-rest-spread": "^7.8.0",
817 | "@babel/plugin-syntax-optional-catch-binding": "^7.8.0",
818 | "@babel/plugin-syntax-optional-chaining": "^7.8.0",
819 | "@babel/plugin-syntax-top-level-await": "^7.8.3",
820 | "@babel/plugin-transform-arrow-functions": "^7.8.3",
821 | "@babel/plugin-transform-async-to-generator": "^7.8.3",
822 | "@babel/plugin-transform-block-scoped-functions": "^7.8.3",
823 | "@babel/plugin-transform-block-scoping": "^7.8.3",
824 | "@babel/plugin-transform-classes": "^7.8.3",
825 | "@babel/plugin-transform-computed-properties": "^7.8.3",
826 | "@babel/plugin-transform-destructuring": "^7.8.3",
827 | "@babel/plugin-transform-dotall-regex": "^7.8.3",
828 | "@babel/plugin-transform-duplicate-keys": "^7.8.3",
829 | "@babel/plugin-transform-exponentiation-operator": "^7.8.3",
830 | "@babel/plugin-transform-for-of": "^7.8.3",
831 | "@babel/plugin-transform-function-name": "^7.8.3",
832 | "@babel/plugin-transform-literals": "^7.8.3",
833 | "@babel/plugin-transform-member-expression-literals": "^7.8.3",
834 | "@babel/plugin-transform-modules-amd": "^7.8.3",
835 | "@babel/plugin-transform-modules-commonjs": "^7.8.3",
836 | "@babel/plugin-transform-modules-systemjs": "^7.8.3",
837 | "@babel/plugin-transform-modules-umd": "^7.8.3",
838 | "@babel/plugin-transform-named-capturing-groups-regex": "^7.8.3",
839 | "@babel/plugin-transform-new-target": "^7.8.3",
840 | "@babel/plugin-transform-object-super": "^7.8.3",
841 | "@babel/plugin-transform-parameters": "^7.8.3",
842 | "@babel/plugin-transform-property-literals": "^7.8.3",
843 | "@babel/plugin-transform-regenerator": "^7.8.3",
844 | "@babel/plugin-transform-reserved-words": "^7.8.3",
845 | "@babel/plugin-transform-shorthand-properties": "^7.8.3",
846 | "@babel/plugin-transform-spread": "^7.8.3",
847 | "@babel/plugin-transform-sticky-regex": "^7.8.3",
848 | "@babel/plugin-transform-template-literals": "^7.8.3",
849 | "@babel/plugin-transform-typeof-symbol": "^7.8.3",
850 | "@babel/plugin-transform-unicode-regex": "^7.8.3",
851 | "@babel/types": "^7.8.3",
852 | "browserslist": "^4.8.2",
853 | "core-js-compat": "^3.6.2",
854 | "invariant": "^2.2.2",
855 | "levenary": "^1.1.0",
856 | "semver": "^5.5.0"
857 | }
858 | },
859 | "@babel/runtime": {
860 | "version": "7.8.3",
861 | "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.8.3.tgz",
862 | "integrity": "sha512-fVHx1rzEmwB130VTkLnxR+HmxcTjGzH12LYQcFFoBwakMd3aOMD4OsRN7tGG/UOYE2ektgFrS8uACAoRk1CY0w==",
863 | "dev": true,
864 | "requires": {
865 | "regenerator-runtime": "^0.13.2"
866 | }
867 | },
868 | "@babel/template": {
869 | "version": "7.8.3",
870 | "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz",
871 | "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==",
872 | "dev": true,
873 | "requires": {
874 | "@babel/code-frame": "^7.8.3",
875 | "@babel/parser": "^7.8.3",
876 | "@babel/types": "^7.8.3"
877 | }
878 | },
879 | "@babel/traverse": {
880 | "version": "7.8.3",
881 | "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.3.tgz",
882 | "integrity": "sha512-we+a2lti+eEImHmEXp7bM9cTxGzxPmBiVJlLVD+FuuQMeeO7RaDbutbgeheDkw+Xe3mCfJHnGOWLswT74m2IPg==",
883 | "dev": true,
884 | "requires": {
885 | "@babel/code-frame": "^7.8.3",
886 | "@babel/generator": "^7.8.3",
887 | "@babel/helper-function-name": "^7.8.3",
888 | "@babel/helper-split-export-declaration": "^7.8.3",
889 | "@babel/parser": "^7.8.3",
890 | "@babel/types": "^7.8.3",
891 | "debug": "^4.1.0",
892 | "globals": "^11.1.0",
893 | "lodash": "^4.17.13"
894 | },
895 | "dependencies": {
896 | "debug": {
897 | "version": "4.1.1",
898 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
899 | "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
900 | "dev": true,
901 | "requires": {
902 | "ms": "^2.1.1"
903 | }
904 | },
905 | "ms": {
906 | "version": "2.1.2",
907 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
908 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
909 | "dev": true
910 | }
911 | }
912 | },
913 | "@babel/types": {
914 | "version": "7.8.3",
915 | "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz",
916 | "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==",
917 | "dev": true,
918 | "requires": {
919 | "esutils": "^2.0.2",
920 | "lodash": "^4.17.13",
921 | "to-fast-properties": "^2.0.0"
922 | }
923 | },
924 | "@polka/url": {
925 | "version": "1.0.0-next.11",
926 | "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.11.tgz",
927 | "integrity": "sha512-3NsZsJIA/22P3QUyrEDNA2D133H4j224twJrdipXN38dpnIOzAbUDtOwkcJ5pXmn75w7LSQDjA4tO9dm1XlqlA=="
928 | },
929 | "@rollup/plugin-commonjs": {
930 | "version": "11.0.1",
931 | "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-11.0.1.tgz",
932 | "integrity": "sha512-SaVUoaLDg3KnIXC5IBNIspr1APTYDzk05VaYcI6qz+0XX3ZlSCwAkfAhNSOxfd5GAdcm/63Noi4TowOY9MpcDg==",
933 | "dev": true,
934 | "requires": {
935 | "@rollup/pluginutils": "^3.0.0",
936 | "estree-walker": "^0.6.1",
937 | "is-reference": "^1.1.2",
938 | "magic-string": "^0.25.2",
939 | "resolve": "^1.11.0"
940 | }
941 | },
942 | "@rollup/plugin-node-resolve": {
943 | "version": "6.1.0",
944 | "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-6.1.0.tgz",
945 | "integrity": "sha512-Cv7PDIvxdE40SWilY5WgZpqfIUEaDxFxs89zCAHjqyRwlTSuql4M5hjIuc5QYJkOH0/vyiyNXKD72O+LhRipGA==",
946 | "dev": true,
947 | "requires": {
948 | "@rollup/pluginutils": "^3.0.0",
949 | "@types/resolve": "0.0.8",
950 | "builtin-modules": "^3.1.0",
951 | "is-module": "^1.0.0",
952 | "resolve": "^1.11.1"
953 | }
954 | },
955 | "@rollup/plugin-replace": {
956 | "version": "2.3.0",
957 | "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.3.0.tgz",
958 | "integrity": "sha512-rzWAMqXAHC1w3eKpK6LxRqiF4f3qVFaa1sGii6Bp3rluKcwHNOpPt+hWRCmAH6SDEPtbPiLFf0pfNQyHs6Btlg==",
959 | "dev": true,
960 | "requires": {
961 | "magic-string": "^0.25.2",
962 | "rollup-pluginutils": "^2.6.0"
963 | }
964 | },
965 | "@rollup/pluginutils": {
966 | "version": "3.0.4",
967 | "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.0.4.tgz",
968 | "integrity": "sha512-buc0oeq2zqQu2mpMyvZgAaQvitikYjT/4JYhA4EXwxX8/g0ZGHoGiX+0AwmfhrNqH4oJv67gn80sTZFQ/jL1bw==",
969 | "dev": true,
970 | "requires": {
971 | "estree-walker": "^0.6.1"
972 | }
973 | },
974 | "@types/estree": {
975 | "version": "0.0.39",
976 | "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz",
977 | "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==",
978 | "dev": true
979 | },
980 | "@types/node": {
981 | "version": "13.1.6",
982 | "resolved": "https://registry.npmjs.org/@types/node/-/node-13.1.6.tgz",
983 | "integrity": "sha512-Jg1F+bmxcpENHP23sVKkNuU3uaxPnsBMW0cLjleiikFKomJQbsn0Cqk2yDvQArqzZN6ABfBkZ0To7pQ8sLdWDg==",
984 | "dev": true
985 | },
986 | "@types/resolve": {
987 | "version": "0.0.8",
988 | "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.8.tgz",
989 | "integrity": "sha512-auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ==",
990 | "dev": true,
991 | "requires": {
992 | "@types/node": "*"
993 | }
994 | },
995 | "accepts": {
996 | "version": "1.3.7",
997 | "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
998 | "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==",
999 | "requires": {
1000 | "mime-types": "~2.1.24",
1001 | "negotiator": "0.6.2"
1002 | }
1003 | },
1004 | "acorn": {
1005 | "version": "7.1.0",
1006 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.0.tgz",
1007 | "integrity": "sha512-kL5CuoXA/dgxlBbVrflsflzQ3PAas7RYZB52NOm/6839iVYJgKMJ3cQJD+t2i5+qFa8h3MDpEOJiS64E8JLnSQ==",
1008 | "dev": true
1009 | },
1010 | "ansi-styles": {
1011 | "version": "3.2.1",
1012 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
1013 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
1014 | "dev": true,
1015 | "requires": {
1016 | "color-convert": "^1.9.0"
1017 | }
1018 | },
1019 | "babel-plugin-dynamic-import-node": {
1020 | "version": "2.3.0",
1021 | "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz",
1022 | "integrity": "sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ==",
1023 | "dev": true,
1024 | "requires": {
1025 | "object.assign": "^4.1.0"
1026 | }
1027 | },
1028 | "balanced-match": {
1029 | "version": "1.0.0",
1030 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
1031 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
1032 | "dev": true
1033 | },
1034 | "brace-expansion": {
1035 | "version": "1.1.11",
1036 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
1037 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
1038 | "dev": true,
1039 | "requires": {
1040 | "balanced-match": "^1.0.0",
1041 | "concat-map": "0.0.1"
1042 | }
1043 | },
1044 | "browserslist": {
1045 | "version": "4.8.3",
1046 | "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.8.3.tgz",
1047 | "integrity": "sha512-iU43cMMknxG1ClEZ2MDKeonKE1CCrFVkQK2AqO2YWFmvIrx4JWrvQ4w4hQez6EpVI8rHTtqh/ruHHDHSOKxvUg==",
1048 | "dev": true,
1049 | "requires": {
1050 | "caniuse-lite": "^1.0.30001017",
1051 | "electron-to-chromium": "^1.3.322",
1052 | "node-releases": "^1.1.44"
1053 | }
1054 | },
1055 | "buffer-from": {
1056 | "version": "1.1.1",
1057 | "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
1058 | "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==",
1059 | "dev": true
1060 | },
1061 | "builtin-modules": {
1062 | "version": "3.1.0",
1063 | "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.1.0.tgz",
1064 | "integrity": "sha512-k0KL0aWZuBt2lrxrcASWDfwOLMnodeQjodT/1SxEQAXsHANgo6ZC/VEaSEHCXt7aSTZ4/4H5LKa+tBXmW7Vtvw==",
1065 | "dev": true
1066 | },
1067 | "bytes": {
1068 | "version": "3.0.0",
1069 | "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
1070 | "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg="
1071 | },
1072 | "camel-case": {
1073 | "version": "3.0.0",
1074 | "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz",
1075 | "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=",
1076 | "dev": true,
1077 | "requires": {
1078 | "no-case": "^2.2.0",
1079 | "upper-case": "^1.1.1"
1080 | }
1081 | },
1082 | "caniuse-lite": {
1083 | "version": "1.0.30001021",
1084 | "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001021.tgz",
1085 | "integrity": "sha512-wuMhT7/hwkgd8gldgp2jcrUjOU9RXJ4XxGumQeOsUr91l3WwmM68Cpa/ymCnWEDqakwFXhuDQbaKNHXBPgeE9g==",
1086 | "dev": true
1087 | },
1088 | "chalk": {
1089 | "version": "2.4.2",
1090 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
1091 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
1092 | "dev": true,
1093 | "requires": {
1094 | "ansi-styles": "^3.2.1",
1095 | "escape-string-regexp": "^1.0.5",
1096 | "supports-color": "^5.3.0"
1097 | }
1098 | },
1099 | "clean-css": {
1100 | "version": "4.2.1",
1101 | "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.1.tgz",
1102 | "integrity": "sha512-4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g==",
1103 | "dev": true,
1104 | "requires": {
1105 | "source-map": "~0.6.0"
1106 | },
1107 | "dependencies": {
1108 | "source-map": {
1109 | "version": "0.6.1",
1110 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
1111 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
1112 | "dev": true
1113 | }
1114 | }
1115 | },
1116 | "color-convert": {
1117 | "version": "1.9.3",
1118 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
1119 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
1120 | "dev": true,
1121 | "requires": {
1122 | "color-name": "1.1.3"
1123 | }
1124 | },
1125 | "color-name": {
1126 | "version": "1.1.3",
1127 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
1128 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
1129 | "dev": true
1130 | },
1131 | "commander": {
1132 | "version": "2.20.3",
1133 | "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
1134 | "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
1135 | "dev": true
1136 | },
1137 | "compressible": {
1138 | "version": "2.0.18",
1139 | "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz",
1140 | "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==",
1141 | "requires": {
1142 | "mime-db": ">= 1.43.0 < 2"
1143 | }
1144 | },
1145 | "compression": {
1146 | "version": "1.7.4",
1147 | "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz",
1148 | "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==",
1149 | "requires": {
1150 | "accepts": "~1.3.5",
1151 | "bytes": "3.0.0",
1152 | "compressible": "~2.0.16",
1153 | "debug": "2.6.9",
1154 | "on-headers": "~1.0.2",
1155 | "safe-buffer": "5.1.2",
1156 | "vary": "~1.1.2"
1157 | }
1158 | },
1159 | "concat-map": {
1160 | "version": "0.0.1",
1161 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
1162 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
1163 | "dev": true
1164 | },
1165 | "convert-source-map": {
1166 | "version": "1.7.0",
1167 | "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz",
1168 | "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==",
1169 | "dev": true,
1170 | "requires": {
1171 | "safe-buffer": "~5.1.1"
1172 | }
1173 | },
1174 | "core-js-compat": {
1175 | "version": "3.6.4",
1176 | "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.4.tgz",
1177 | "integrity": "sha512-zAa3IZPvsJ0slViBQ2z+vgyyTuhd3MFn1rBQjZSKVEgB0UMYhUkCj9jJUVPgGTGqWvsBVmfnruXgTcNyTlEiSA==",
1178 | "dev": true,
1179 | "requires": {
1180 | "browserslist": "^4.8.3",
1181 | "semver": "7.0.0"
1182 | },
1183 | "dependencies": {
1184 | "semver": {
1185 | "version": "7.0.0",
1186 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz",
1187 | "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==",
1188 | "dev": true
1189 | }
1190 | }
1191 | },
1192 | "cross-spawn": {
1193 | "version": "6.0.5",
1194 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
1195 | "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
1196 | "dev": true,
1197 | "requires": {
1198 | "nice-try": "^1.0.4",
1199 | "path-key": "^2.0.1",
1200 | "semver": "^5.5.0",
1201 | "shebang-command": "^1.2.0",
1202 | "which": "^1.2.9"
1203 | }
1204 | },
1205 | "debug": {
1206 | "version": "2.6.9",
1207 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
1208 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
1209 | "requires": {
1210 | "ms": "2.0.0"
1211 | }
1212 | },
1213 | "define-properties": {
1214 | "version": "1.1.3",
1215 | "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
1216 | "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
1217 | "dev": true,
1218 | "requires": {
1219 | "object-keys": "^1.0.12"
1220 | }
1221 | },
1222 | "electron-to-chromium": {
1223 | "version": "1.3.334",
1224 | "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.334.tgz",
1225 | "integrity": "sha512-RcjJhpsVaX0X6ntu/WSBlW9HE9pnCgXS9B8mTUObl1aDxaiOa0Lu+NMveIS5IDC+VELzhM32rFJDCC+AApVwcA==",
1226 | "dev": true
1227 | },
1228 | "error-ex": {
1229 | "version": "1.3.2",
1230 | "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
1231 | "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
1232 | "dev": true,
1233 | "requires": {
1234 | "is-arrayish": "^0.2.1"
1235 | }
1236 | },
1237 | "es-abstract": {
1238 | "version": "1.17.1",
1239 | "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.1.tgz",
1240 | "integrity": "sha512-WmWNHWmm/LDwK8jaeZic/g6sU1ZckM+vvOyCV1qFRhJJ6hzve6DRgthNQB7Lra1ocrw68HexLKYgtdxIPcb3Fg==",
1241 | "dev": true,
1242 | "requires": {
1243 | "es-to-primitive": "^1.2.1",
1244 | "function-bind": "^1.1.1",
1245 | "has": "^1.0.3",
1246 | "has-symbols": "^1.0.1",
1247 | "is-callable": "^1.1.5",
1248 | "is-regex": "^1.0.5",
1249 | "object-inspect": "^1.7.0",
1250 | "object-keys": "^1.1.1",
1251 | "object.assign": "^4.1.0",
1252 | "string.prototype.trimleft": "^2.1.1",
1253 | "string.prototype.trimright": "^2.1.1"
1254 | }
1255 | },
1256 | "es-to-primitive": {
1257 | "version": "1.2.1",
1258 | "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
1259 | "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
1260 | "dev": true,
1261 | "requires": {
1262 | "is-callable": "^1.1.4",
1263 | "is-date-object": "^1.0.1",
1264 | "is-symbol": "^1.0.2"
1265 | }
1266 | },
1267 | "escape-string-regexp": {
1268 | "version": "1.0.5",
1269 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
1270 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
1271 | "dev": true
1272 | },
1273 | "estree-walker": {
1274 | "version": "0.6.1",
1275 | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz",
1276 | "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==",
1277 | "dev": true
1278 | },
1279 | "esutils": {
1280 | "version": "2.0.3",
1281 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
1282 | "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
1283 | "dev": true
1284 | },
1285 | "function-bind": {
1286 | "version": "1.1.1",
1287 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
1288 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
1289 | "dev": true
1290 | },
1291 | "gensync": {
1292 | "version": "1.0.0-beta.1",
1293 | "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz",
1294 | "integrity": "sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg==",
1295 | "dev": true
1296 | },
1297 | "globals": {
1298 | "version": "11.12.0",
1299 | "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
1300 | "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
1301 | "dev": true
1302 | },
1303 | "graceful-fs": {
1304 | "version": "4.2.3",
1305 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
1306 | "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==",
1307 | "dev": true
1308 | },
1309 | "has": {
1310 | "version": "1.0.3",
1311 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
1312 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
1313 | "dev": true,
1314 | "requires": {
1315 | "function-bind": "^1.1.1"
1316 | }
1317 | },
1318 | "has-flag": {
1319 | "version": "3.0.0",
1320 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
1321 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
1322 | "dev": true
1323 | },
1324 | "has-symbols": {
1325 | "version": "1.0.1",
1326 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
1327 | "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==",
1328 | "dev": true
1329 | },
1330 | "he": {
1331 | "version": "1.2.0",
1332 | "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
1333 | "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
1334 | "dev": true
1335 | },
1336 | "hosted-git-info": {
1337 | "version": "2.8.5",
1338 | "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.5.tgz",
1339 | "integrity": "sha512-kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg==",
1340 | "dev": true
1341 | },
1342 | "html-minifier": {
1343 | "version": "4.0.0",
1344 | "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-4.0.0.tgz",
1345 | "integrity": "sha512-aoGxanpFPLg7MkIl/DDFYtb0iWz7jMFGqFhvEDZga6/4QTjneiD8I/NXL1x5aaoCp7FSIT6h/OhykDdPsbtMig==",
1346 | "dev": true,
1347 | "requires": {
1348 | "camel-case": "^3.0.0",
1349 | "clean-css": "^4.2.1",
1350 | "commander": "^2.19.0",
1351 | "he": "^1.2.0",
1352 | "param-case": "^2.1.1",
1353 | "relateurl": "^0.2.7",
1354 | "uglify-js": "^3.5.1"
1355 | }
1356 | },
1357 | "http-link-header": {
1358 | "version": "1.0.2",
1359 | "resolved": "https://registry.npmjs.org/http-link-header/-/http-link-header-1.0.2.tgz",
1360 | "integrity": "sha512-z6YOZ8ZEnejkcCWlGZzYXNa6i+ZaTfiTg3WhlV/YvnNya3W/RbX1bMVUMTuCrg/DrtTCQxaFCkXCz4FtLpcebg==",
1361 | "dev": true
1362 | },
1363 | "invariant": {
1364 | "version": "2.2.4",
1365 | "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz",
1366 | "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==",
1367 | "dev": true,
1368 | "requires": {
1369 | "loose-envify": "^1.0.0"
1370 | }
1371 | },
1372 | "is-arrayish": {
1373 | "version": "0.2.1",
1374 | "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
1375 | "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
1376 | "dev": true
1377 | },
1378 | "is-callable": {
1379 | "version": "1.1.5",
1380 | "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz",
1381 | "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==",
1382 | "dev": true
1383 | },
1384 | "is-date-object": {
1385 | "version": "1.0.2",
1386 | "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz",
1387 | "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==",
1388 | "dev": true
1389 | },
1390 | "is-module": {
1391 | "version": "1.0.0",
1392 | "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz",
1393 | "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=",
1394 | "dev": true
1395 | },
1396 | "is-reference": {
1397 | "version": "1.1.4",
1398 | "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.1.4.tgz",
1399 | "integrity": "sha512-uJA/CDPO3Tao3GTrxYn6AwkM4nUPJiGGYu5+cB8qbC7WGFlrKZbiRo7SFKxUAEpFUfiHofWCXBUNhvYJMh+6zw==",
1400 | "dev": true,
1401 | "requires": {
1402 | "@types/estree": "0.0.39"
1403 | }
1404 | },
1405 | "is-regex": {
1406 | "version": "1.0.5",
1407 | "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz",
1408 | "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==",
1409 | "dev": true,
1410 | "requires": {
1411 | "has": "^1.0.3"
1412 | }
1413 | },
1414 | "is-symbol": {
1415 | "version": "1.0.3",
1416 | "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz",
1417 | "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==",
1418 | "dev": true,
1419 | "requires": {
1420 | "has-symbols": "^1.0.1"
1421 | }
1422 | },
1423 | "isexe": {
1424 | "version": "2.0.0",
1425 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
1426 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
1427 | "dev": true
1428 | },
1429 | "jest-worker": {
1430 | "version": "24.9.0",
1431 | "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz",
1432 | "integrity": "sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==",
1433 | "dev": true,
1434 | "requires": {
1435 | "merge-stream": "^2.0.0",
1436 | "supports-color": "^6.1.0"
1437 | },
1438 | "dependencies": {
1439 | "supports-color": {
1440 | "version": "6.1.0",
1441 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
1442 | "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
1443 | "dev": true,
1444 | "requires": {
1445 | "has-flag": "^3.0.0"
1446 | }
1447 | }
1448 | }
1449 | },
1450 | "js-tokens": {
1451 | "version": "4.0.0",
1452 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
1453 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
1454 | "dev": true
1455 | },
1456 | "jsesc": {
1457 | "version": "2.5.2",
1458 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
1459 | "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
1460 | "dev": true
1461 | },
1462 | "json-parse-better-errors": {
1463 | "version": "1.0.2",
1464 | "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
1465 | "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==",
1466 | "dev": true
1467 | },
1468 | "json5": {
1469 | "version": "2.1.1",
1470 | "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.1.tgz",
1471 | "integrity": "sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ==",
1472 | "dev": true,
1473 | "requires": {
1474 | "minimist": "^1.2.0"
1475 | }
1476 | },
1477 | "leven": {
1478 | "version": "3.1.0",
1479 | "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz",
1480 | "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==",
1481 | "dev": true
1482 | },
1483 | "levenary": {
1484 | "version": "1.1.0",
1485 | "resolved": "https://registry.npmjs.org/levenary/-/levenary-1.1.0.tgz",
1486 | "integrity": "sha512-VHcwhO0UTpUW7rLPN2/OiWJdgA1e9BqEDALhrgCe/F+uUJnep6CoUsTzMeP8Rh0NGr9uKquXxqe7lwLZo509nQ==",
1487 | "dev": true,
1488 | "requires": {
1489 | "leven": "^3.1.0"
1490 | }
1491 | },
1492 | "load-json-file": {
1493 | "version": "4.0.0",
1494 | "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz",
1495 | "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=",
1496 | "dev": true,
1497 | "requires": {
1498 | "graceful-fs": "^4.1.2",
1499 | "parse-json": "^4.0.0",
1500 | "pify": "^3.0.0",
1501 | "strip-bom": "^3.0.0"
1502 | }
1503 | },
1504 | "lodash": {
1505 | "version": "4.17.15",
1506 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
1507 | "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==",
1508 | "dev": true
1509 | },
1510 | "loose-envify": {
1511 | "version": "1.4.0",
1512 | "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
1513 | "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
1514 | "dev": true,
1515 | "requires": {
1516 | "js-tokens": "^3.0.0 || ^4.0.0"
1517 | }
1518 | },
1519 | "lower-case": {
1520 | "version": "1.1.4",
1521 | "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz",
1522 | "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=",
1523 | "dev": true
1524 | },
1525 | "magic-string": {
1526 | "version": "0.25.6",
1527 | "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.6.tgz",
1528 | "integrity": "sha512-3a5LOMSGoCTH5rbqobC2HuDNRtE2glHZ8J7pK+QZYppyWA36yuNpsX994rIY2nCuyP7CZYy7lQq/X2jygiZ89g==",
1529 | "dev": true,
1530 | "requires": {
1531 | "sourcemap-codec": "^1.4.4"
1532 | }
1533 | },
1534 | "memorystream": {
1535 | "version": "0.3.1",
1536 | "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz",
1537 | "integrity": "sha1-htcJCzDORV1j+64S3aUaR93K+bI=",
1538 | "dev": true
1539 | },
1540 | "merge-stream": {
1541 | "version": "2.0.0",
1542 | "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
1543 | "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
1544 | "dev": true
1545 | },
1546 | "mime": {
1547 | "version": "2.4.4",
1548 | "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz",
1549 | "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA=="
1550 | },
1551 | "mime-db": {
1552 | "version": "1.43.0",
1553 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz",
1554 | "integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ=="
1555 | },
1556 | "mime-types": {
1557 | "version": "2.1.26",
1558 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz",
1559 | "integrity": "sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==",
1560 | "requires": {
1561 | "mime-db": "1.43.0"
1562 | }
1563 | },
1564 | "minimatch": {
1565 | "version": "3.0.4",
1566 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
1567 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
1568 | "dev": true,
1569 | "requires": {
1570 | "brace-expansion": "^1.1.7"
1571 | }
1572 | },
1573 | "minimist": {
1574 | "version": "1.2.0",
1575 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
1576 | "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
1577 | "dev": true
1578 | },
1579 | "ms": {
1580 | "version": "2.0.0",
1581 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
1582 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
1583 | },
1584 | "negotiator": {
1585 | "version": "0.6.2",
1586 | "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
1587 | "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw=="
1588 | },
1589 | "nice-try": {
1590 | "version": "1.0.5",
1591 | "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
1592 | "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
1593 | "dev": true
1594 | },
1595 | "no-case": {
1596 | "version": "2.3.2",
1597 | "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz",
1598 | "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==",
1599 | "dev": true,
1600 | "requires": {
1601 | "lower-case": "^1.1.1"
1602 | }
1603 | },
1604 | "node-releases": {
1605 | "version": "1.1.45",
1606 | "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.45.tgz",
1607 | "integrity": "sha512-cXvGSfhITKI8qsV116u2FTzH5EWZJfgG7d4cpqwF8I8+1tWpD6AsvvGRKq2onR0DNj1jfqsjkXZsm14JMS7Cyg==",
1608 | "dev": true,
1609 | "requires": {
1610 | "semver": "^6.3.0"
1611 | },
1612 | "dependencies": {
1613 | "semver": {
1614 | "version": "6.3.0",
1615 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
1616 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
1617 | "dev": true
1618 | }
1619 | }
1620 | },
1621 | "normalize-package-data": {
1622 | "version": "2.5.0",
1623 | "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
1624 | "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
1625 | "dev": true,
1626 | "requires": {
1627 | "hosted-git-info": "^2.1.4",
1628 | "resolve": "^1.10.0",
1629 | "semver": "2 || 3 || 4 || 5",
1630 | "validate-npm-package-license": "^3.0.1"
1631 | }
1632 | },
1633 | "npm-run-all": {
1634 | "version": "4.1.5",
1635 | "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz",
1636 | "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==",
1637 | "dev": true,
1638 | "requires": {
1639 | "ansi-styles": "^3.2.1",
1640 | "chalk": "^2.4.1",
1641 | "cross-spawn": "^6.0.5",
1642 | "memorystream": "^0.3.1",
1643 | "minimatch": "^3.0.4",
1644 | "pidtree": "^0.3.0",
1645 | "read-pkg": "^3.0.0",
1646 | "shell-quote": "^1.6.1",
1647 | "string.prototype.padend": "^3.0.0"
1648 | }
1649 | },
1650 | "object-inspect": {
1651 | "version": "1.7.0",
1652 | "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz",
1653 | "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==",
1654 | "dev": true
1655 | },
1656 | "object-keys": {
1657 | "version": "1.1.1",
1658 | "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
1659 | "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
1660 | "dev": true
1661 | },
1662 | "object.assign": {
1663 | "version": "4.1.0",
1664 | "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz",
1665 | "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==",
1666 | "dev": true,
1667 | "requires": {
1668 | "define-properties": "^1.1.2",
1669 | "function-bind": "^1.1.1",
1670 | "has-symbols": "^1.0.0",
1671 | "object-keys": "^1.0.11"
1672 | }
1673 | },
1674 | "on-headers": {
1675 | "version": "1.0.2",
1676 | "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz",
1677 | "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA=="
1678 | },
1679 | "param-case": {
1680 | "version": "2.1.1",
1681 | "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz",
1682 | "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=",
1683 | "dev": true,
1684 | "requires": {
1685 | "no-case": "^2.2.0"
1686 | }
1687 | },
1688 | "parse-json": {
1689 | "version": "4.0.0",
1690 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
1691 | "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
1692 | "dev": true,
1693 | "requires": {
1694 | "error-ex": "^1.3.1",
1695 | "json-parse-better-errors": "^1.0.1"
1696 | }
1697 | },
1698 | "path-key": {
1699 | "version": "2.0.1",
1700 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
1701 | "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
1702 | "dev": true
1703 | },
1704 | "path-parse": {
1705 | "version": "1.0.6",
1706 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
1707 | "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
1708 | "dev": true
1709 | },
1710 | "path-type": {
1711 | "version": "3.0.0",
1712 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz",
1713 | "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==",
1714 | "dev": true,
1715 | "requires": {
1716 | "pify": "^3.0.0"
1717 | }
1718 | },
1719 | "pidtree": {
1720 | "version": "0.3.0",
1721 | "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.0.tgz",
1722 | "integrity": "sha512-9CT4NFlDcosssyg8KVFltgokyKZIFjoBxw8CTGy+5F38Y1eQWrt8tRayiUOXE+zVKQnYu5BR8JjCtvK3BcnBhg==",
1723 | "dev": true
1724 | },
1725 | "pify": {
1726 | "version": "3.0.0",
1727 | "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
1728 | "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
1729 | "dev": true
1730 | },
1731 | "polka": {
1732 | "version": "1.0.0-next.11",
1733 | "resolved": "https://registry.npmjs.org/polka/-/polka-1.0.0-next.11.tgz",
1734 | "integrity": "sha512-M/HBkS6ILksrDq7uvktCTev81OzuLwNtpxMyYdUhxLKQlMWdsu789XMotQU+p8JY8CM8vx8ML0HudyWjRus/lg==",
1735 | "requires": {
1736 | "@polka/url": "^1.0.0-next.11",
1737 | "trouter": "^3.1.0"
1738 | }
1739 | },
1740 | "private": {
1741 | "version": "0.1.8",
1742 | "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz",
1743 | "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==",
1744 | "dev": true
1745 | },
1746 | "read-pkg": {
1747 | "version": "3.0.0",
1748 | "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz",
1749 | "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=",
1750 | "dev": true,
1751 | "requires": {
1752 | "load-json-file": "^4.0.0",
1753 | "normalize-package-data": "^2.3.2",
1754 | "path-type": "^3.0.0"
1755 | }
1756 | },
1757 | "regenerate": {
1758 | "version": "1.4.0",
1759 | "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz",
1760 | "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==",
1761 | "dev": true
1762 | },
1763 | "regenerate-unicode-properties": {
1764 | "version": "8.1.0",
1765 | "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz",
1766 | "integrity": "sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA==",
1767 | "dev": true,
1768 | "requires": {
1769 | "regenerate": "^1.4.0"
1770 | }
1771 | },
1772 | "regenerator-runtime": {
1773 | "version": "0.13.3",
1774 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz",
1775 | "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==",
1776 | "dev": true
1777 | },
1778 | "regenerator-transform": {
1779 | "version": "0.14.1",
1780 | "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.1.tgz",
1781 | "integrity": "sha512-flVuee02C3FKRISbxhXl9mGzdbWUVHubl1SMaknjxkFB1/iqpJhArQUvRxOOPEc/9tAiX0BaQ28FJH10E4isSQ==",
1782 | "dev": true,
1783 | "requires": {
1784 | "private": "^0.1.6"
1785 | }
1786 | },
1787 | "regexparam": {
1788 | "version": "1.3.0",
1789 | "resolved": "https://registry.npmjs.org/regexparam/-/regexparam-1.3.0.tgz",
1790 | "integrity": "sha512-6IQpFBv6e5vz1QAqI+V4k8P2e/3gRrqfCJ9FI+O1FLQTO+Uz6RXZEZOPmTJ6hlGj7gkERzY5BRCv09whKP96/g=="
1791 | },
1792 | "regexpu-core": {
1793 | "version": "4.6.0",
1794 | "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.6.0.tgz",
1795 | "integrity": "sha512-YlVaefl8P5BnFYOITTNzDvan1ulLOiXJzCNZxduTIosN17b87h3bvG9yHMoHaRuo88H4mQ06Aodj5VtYGGGiTg==",
1796 | "dev": true,
1797 | "requires": {
1798 | "regenerate": "^1.4.0",
1799 | "regenerate-unicode-properties": "^8.1.0",
1800 | "regjsgen": "^0.5.0",
1801 | "regjsparser": "^0.6.0",
1802 | "unicode-match-property-ecmascript": "^1.0.4",
1803 | "unicode-match-property-value-ecmascript": "^1.1.0"
1804 | }
1805 | },
1806 | "regjsgen": {
1807 | "version": "0.5.1",
1808 | "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.1.tgz",
1809 | "integrity": "sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg==",
1810 | "dev": true
1811 | },
1812 | "regjsparser": {
1813 | "version": "0.6.2",
1814 | "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.2.tgz",
1815 | "integrity": "sha512-E9ghzUtoLwDekPT0DYCp+c4h+bvuUpe6rRHCTYn6eGoqj1LgKXxT6I0Il4WbjhQkOghzi/V+y03bPKvbllL93Q==",
1816 | "dev": true,
1817 | "requires": {
1818 | "jsesc": "~0.5.0"
1819 | },
1820 | "dependencies": {
1821 | "jsesc": {
1822 | "version": "0.5.0",
1823 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
1824 | "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=",
1825 | "dev": true
1826 | }
1827 | }
1828 | },
1829 | "relateurl": {
1830 | "version": "0.2.7",
1831 | "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz",
1832 | "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=",
1833 | "dev": true
1834 | },
1835 | "require-relative": {
1836 | "version": "0.8.7",
1837 | "resolved": "https://registry.npmjs.org/require-relative/-/require-relative-0.8.7.tgz",
1838 | "integrity": "sha1-eZlTn8ngR6N5KPoZb44VY9q9Nt4=",
1839 | "dev": true
1840 | },
1841 | "resolve": {
1842 | "version": "1.14.2",
1843 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.14.2.tgz",
1844 | "integrity": "sha512-EjlOBLBO1kxsUxsKjLt7TAECyKW6fOh1VRkykQkKGzcBbjjPIxBqGh0jf7GJ3k/f5mxMqW3htMD3WdTUVtW8HQ==",
1845 | "dev": true,
1846 | "requires": {
1847 | "path-parse": "^1.0.6"
1848 | }
1849 | },
1850 | "rollup": {
1851 | "version": "1.29.0",
1852 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-1.29.0.tgz",
1853 | "integrity": "sha512-V63Iz0dSdI5qPPN5HmCN6OBRzBFhMqNWcvwgq863JtSCTU6Vdvqq6S2fYle/dSCyoPrBkIP3EIr1RVs3HTRqqg==",
1854 | "dev": true,
1855 | "requires": {
1856 | "@types/estree": "*",
1857 | "@types/node": "*",
1858 | "acorn": "^7.1.0"
1859 | }
1860 | },
1861 | "rollup-plugin-babel": {
1862 | "version": "4.3.3",
1863 | "resolved": "https://registry.npmjs.org/rollup-plugin-babel/-/rollup-plugin-babel-4.3.3.tgz",
1864 | "integrity": "sha512-tKzWOCmIJD/6aKNz0H1GMM+lW1q9KyFubbWzGiOG540zxPPifnEAHTZwjo0g991Y+DyOZcLqBgqOdqazYE5fkw==",
1865 | "dev": true,
1866 | "requires": {
1867 | "@babel/helper-module-imports": "^7.0.0",
1868 | "rollup-pluginutils": "^2.8.1"
1869 | }
1870 | },
1871 | "rollup-plugin-svelte": {
1872 | "version": "5.1.1",
1873 | "resolved": "https://registry.npmjs.org/rollup-plugin-svelte/-/rollup-plugin-svelte-5.1.1.tgz",
1874 | "integrity": "sha512-wP3CnKHjR4fZUgNm5Iey7eItnxwnH/nAw568WJ8dpMSchBxxZ/DmKSx8e6h8k/B6SwG1wfGvWehadFJHcuFFSw==",
1875 | "dev": true,
1876 | "requires": {
1877 | "require-relative": "^0.8.7",
1878 | "rollup-pluginutils": "^2.3.3",
1879 | "sourcemap-codec": "^1.4.4"
1880 | }
1881 | },
1882 | "rollup-plugin-terser": {
1883 | "version": "4.0.4",
1884 | "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-4.0.4.tgz",
1885 | "integrity": "sha512-wPANT5XKVJJ8RDUN0+wIr7UPd0lIXBo4UdJ59VmlPCtlFsE20AM+14pe+tk7YunCsWEiuzkDBY3QIkSCjtrPXg==",
1886 | "dev": true,
1887 | "requires": {
1888 | "@babel/code-frame": "^7.0.0",
1889 | "jest-worker": "^24.0.0",
1890 | "serialize-javascript": "^1.6.1",
1891 | "terser": "^3.14.1"
1892 | }
1893 | },
1894 | "rollup-pluginutils": {
1895 | "version": "2.8.2",
1896 | "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz",
1897 | "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==",
1898 | "dev": true,
1899 | "requires": {
1900 | "estree-walker": "^0.6.1"
1901 | }
1902 | },
1903 | "safe-buffer": {
1904 | "version": "5.1.2",
1905 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
1906 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
1907 | },
1908 | "sapper": {
1909 | "version": "0.27.9",
1910 | "resolved": "https://registry.npmjs.org/sapper/-/sapper-0.27.9.tgz",
1911 | "integrity": "sha512-v3b3UgGeVhFUOpA5IZgdThdr4nZ6aMH6IxDsg1Yu2UWHWEV9vW/Zehch9M/xqJNp/x9n9X+S9syJg1s5QOOmFA==",
1912 | "dev": true,
1913 | "requires": {
1914 | "html-minifier": "^4.0.0",
1915 | "http-link-header": "^1.0.2",
1916 | "shimport": "^1.0.1",
1917 | "sourcemap-codec": "^1.4.6",
1918 | "string-hash": "^1.1.3"
1919 | }
1920 | },
1921 | "semver": {
1922 | "version": "5.7.1",
1923 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
1924 | "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
1925 | "dev": true
1926 | },
1927 | "serialize-javascript": {
1928 | "version": "1.9.1",
1929 | "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.9.1.tgz",
1930 | "integrity": "sha512-0Vb/54WJ6k5v8sSWN09S0ora+Hnr+cX40r9F170nT+mSkaxltoE/7R3OrIdBSUv1OoiobH1QoWQbCnAO+e8J1A==",
1931 | "dev": true
1932 | },
1933 | "shebang-command": {
1934 | "version": "1.2.0",
1935 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
1936 | "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
1937 | "dev": true,
1938 | "requires": {
1939 | "shebang-regex": "^1.0.0"
1940 | }
1941 | },
1942 | "shebang-regex": {
1943 | "version": "1.0.0",
1944 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
1945 | "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
1946 | "dev": true
1947 | },
1948 | "shell-quote": {
1949 | "version": "1.7.2",
1950 | "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz",
1951 | "integrity": "sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==",
1952 | "dev": true
1953 | },
1954 | "shimport": {
1955 | "version": "1.0.1",
1956 | "resolved": "https://registry.npmjs.org/shimport/-/shimport-1.0.1.tgz",
1957 | "integrity": "sha512-Imf4gH+8WQmT1GvxS/x79qpmfnE6m50hyN1ucatX+7oMCgmaF8obZWCPIzSUe6+P+YmXM46lkP2pxiV2/lt9Og==",
1958 | "dev": true
1959 | },
1960 | "sirv": {
1961 | "version": "0.4.2",
1962 | "resolved": "https://registry.npmjs.org/sirv/-/sirv-0.4.2.tgz",
1963 | "integrity": "sha512-dQbZnsMaIiTQPZmbGmktz+c74zt/hyrJEB4tdp2Jj0RNv9J6B/OWR5RyrZEvIn9fyh9Zlg2OlE2XzKz6wMKGAw==",
1964 | "requires": {
1965 | "@polka/url": "^0.5.0",
1966 | "mime": "^2.3.1"
1967 | },
1968 | "dependencies": {
1969 | "@polka/url": {
1970 | "version": "0.5.0",
1971 | "resolved": "https://registry.npmjs.org/@polka/url/-/url-0.5.0.tgz",
1972 | "integrity": "sha512-oZLYFEAzUKyi3SKnXvj32ZCEGH6RDnao7COuCVhDydMS9NrCSVXhM79VaKyP5+Zc33m0QXEd2DN3UkU7OsHcfw=="
1973 | }
1974 | }
1975 | },
1976 | "source-map": {
1977 | "version": "0.5.7",
1978 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
1979 | "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
1980 | "dev": true
1981 | },
1982 | "source-map-support": {
1983 | "version": "0.5.16",
1984 | "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz",
1985 | "integrity": "sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==",
1986 | "dev": true,
1987 | "requires": {
1988 | "buffer-from": "^1.0.0",
1989 | "source-map": "^0.6.0"
1990 | },
1991 | "dependencies": {
1992 | "source-map": {
1993 | "version": "0.6.1",
1994 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
1995 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
1996 | "dev": true
1997 | }
1998 | }
1999 | },
2000 | "sourcemap-codec": {
2001 | "version": "1.4.7",
2002 | "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.7.tgz",
2003 | "integrity": "sha512-RuN23NzhAOuUtaivhcrjXx1OPXsFeH9m5sI373/U7+tGLKihjUyboZAzOadytMjnqHp1f45RGk1IzDKCpDpSYA==",
2004 | "dev": true
2005 | },
2006 | "spdx-correct": {
2007 | "version": "3.1.0",
2008 | "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz",
2009 | "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==",
2010 | "dev": true,
2011 | "requires": {
2012 | "spdx-expression-parse": "^3.0.0",
2013 | "spdx-license-ids": "^3.0.0"
2014 | }
2015 | },
2016 | "spdx-exceptions": {
2017 | "version": "2.2.0",
2018 | "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz",
2019 | "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==",
2020 | "dev": true
2021 | },
2022 | "spdx-expression-parse": {
2023 | "version": "3.0.0",
2024 | "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz",
2025 | "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==",
2026 | "dev": true,
2027 | "requires": {
2028 | "spdx-exceptions": "^2.1.0",
2029 | "spdx-license-ids": "^3.0.0"
2030 | }
2031 | },
2032 | "spdx-license-ids": {
2033 | "version": "3.0.5",
2034 | "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz",
2035 | "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==",
2036 | "dev": true
2037 | },
2038 | "string-hash": {
2039 | "version": "1.1.3",
2040 | "resolved": "https://registry.npmjs.org/string-hash/-/string-hash-1.1.3.tgz",
2041 | "integrity": "sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs=",
2042 | "dev": true
2043 | },
2044 | "string.prototype.padend": {
2045 | "version": "3.1.0",
2046 | "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.0.tgz",
2047 | "integrity": "sha512-3aIv8Ffdp8EZj8iLwREGpQaUZiPyrWrpzMBHvkiSW/bK/EGve9np07Vwy7IJ5waydpGXzQZu/F8Oze2/IWkBaA==",
2048 | "dev": true,
2049 | "requires": {
2050 | "define-properties": "^1.1.3",
2051 | "es-abstract": "^1.17.0-next.1"
2052 | }
2053 | },
2054 | "string.prototype.trimleft": {
2055 | "version": "2.1.1",
2056 | "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz",
2057 | "integrity": "sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag==",
2058 | "dev": true,
2059 | "requires": {
2060 | "define-properties": "^1.1.3",
2061 | "function-bind": "^1.1.1"
2062 | }
2063 | },
2064 | "string.prototype.trimright": {
2065 | "version": "2.1.1",
2066 | "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz",
2067 | "integrity": "sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g==",
2068 | "dev": true,
2069 | "requires": {
2070 | "define-properties": "^1.1.3",
2071 | "function-bind": "^1.1.1"
2072 | }
2073 | },
2074 | "strip-bom": {
2075 | "version": "3.0.0",
2076 | "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
2077 | "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
2078 | "dev": true
2079 | },
2080 | "supports-color": {
2081 | "version": "5.5.0",
2082 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
2083 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
2084 | "dev": true,
2085 | "requires": {
2086 | "has-flag": "^3.0.0"
2087 | }
2088 | },
2089 | "svelte": {
2090 | "version": "3.17.1",
2091 | "resolved": "https://registry.npmjs.org/svelte/-/svelte-3.17.1.tgz",
2092 | "integrity": "sha512-IjX6agpbu01VHBaL/12oFem+ufPRyZNLkg4ay7lJl7IbUB/er90kdIsWCNZX44XaniSEhG/0Hja4GsrtufTwCw==",
2093 | "dev": true
2094 | },
2095 | "terser": {
2096 | "version": "3.17.0",
2097 | "resolved": "https://registry.npmjs.org/terser/-/terser-3.17.0.tgz",
2098 | "integrity": "sha512-/FQzzPJmCpjAH9Xvk2paiWrFq+5M6aVOf+2KRbwhByISDX/EujxsK+BAvrhb6H+2rtrLCHK9N01wO014vrIwVQ==",
2099 | "dev": true,
2100 | "requires": {
2101 | "commander": "^2.19.0",
2102 | "source-map": "~0.6.1",
2103 | "source-map-support": "~0.5.10"
2104 | },
2105 | "dependencies": {
2106 | "source-map": {
2107 | "version": "0.6.1",
2108 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
2109 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
2110 | "dev": true
2111 | }
2112 | }
2113 | },
2114 | "to-fast-properties": {
2115 | "version": "2.0.0",
2116 | "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
2117 | "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
2118 | "dev": true
2119 | },
2120 | "trouter": {
2121 | "version": "3.1.0",
2122 | "resolved": "https://registry.npmjs.org/trouter/-/trouter-3.1.0.tgz",
2123 | "integrity": "sha512-3Swwu638QQWOefHLss9cdyLi5/9BKYmXZEXpH0KOFfB9YZwUAwHbDAcoYxaHfqAeFvbi/LqAK7rGkhCr1v1BJA==",
2124 | "requires": {
2125 | "regexparam": "^1.3.0"
2126 | }
2127 | },
2128 | "uglify-js": {
2129 | "version": "3.7.5",
2130 | "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.7.5.tgz",
2131 | "integrity": "sha512-GFZ3EXRptKGvb/C1Sq6nO1iI7AGcjyqmIyOw0DrD0675e+NNbGO72xmMM2iEBdFbxaTLo70NbjM/Wy54uZIlsg==",
2132 | "dev": true,
2133 | "requires": {
2134 | "commander": "~2.20.3",
2135 | "source-map": "~0.6.1"
2136 | },
2137 | "dependencies": {
2138 | "source-map": {
2139 | "version": "0.6.1",
2140 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
2141 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
2142 | "dev": true
2143 | }
2144 | }
2145 | },
2146 | "unicode-canonical-property-names-ecmascript": {
2147 | "version": "1.0.4",
2148 | "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz",
2149 | "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==",
2150 | "dev": true
2151 | },
2152 | "unicode-match-property-ecmascript": {
2153 | "version": "1.0.4",
2154 | "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz",
2155 | "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==",
2156 | "dev": true,
2157 | "requires": {
2158 | "unicode-canonical-property-names-ecmascript": "^1.0.4",
2159 | "unicode-property-aliases-ecmascript": "^1.0.4"
2160 | }
2161 | },
2162 | "unicode-match-property-value-ecmascript": {
2163 | "version": "1.1.0",
2164 | "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz",
2165 | "integrity": "sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g==",
2166 | "dev": true
2167 | },
2168 | "unicode-property-aliases-ecmascript": {
2169 | "version": "1.0.5",
2170 | "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz",
2171 | "integrity": "sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw==",
2172 | "dev": true
2173 | },
2174 | "upper-case": {
2175 | "version": "1.1.3",
2176 | "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz",
2177 | "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=",
2178 | "dev": true
2179 | },
2180 | "validate-npm-package-license": {
2181 | "version": "3.0.4",
2182 | "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
2183 | "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
2184 | "dev": true,
2185 | "requires": {
2186 | "spdx-correct": "^3.0.0",
2187 | "spdx-expression-parse": "^3.0.0"
2188 | }
2189 | },
2190 | "vary": {
2191 | "version": "1.1.2",
2192 | "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
2193 | "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
2194 | },
2195 | "which": {
2196 | "version": "1.3.1",
2197 | "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
2198 | "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
2199 | "dev": true,
2200 | "requires": {
2201 | "isexe": "^2.0.0"
2202 | }
2203 | }
2204 | }
2205 | }
2206 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "TODO",
3 | "description": "TODO",
4 | "version": "0.0.1",
5 | "scripts": {
6 | "build:tailwind": "NODE_ENV=production postcss static/tailwind.css -o static/index.css",
7 | "build": "npm run build:tailwind && sapper build --legacy",
8 | "cy:open": "cypress open",
9 | "cy:run": "cypress run",
10 | "dev": "sapper dev",
11 | "export": "sapper export --legacy",
12 | "start": "node __sapper__/build",
13 | "test": "run-p --race dev cy:run",
14 | "watch:tailwind": "postcss static/tailwind.css -o static/index.css -w"
15 | },
16 | "dependencies": {
17 | "@fullhuman/postcss-purgecss": "^1.3.0",
18 | "chart.js": "^2.9.3",
19 | "compression": "^1.7.1",
20 | "polka": "next",
21 | "sirv": "^0.4.0",
22 | "svelte-table": "^0.1.6"
23 | },
24 | "devDependencies": {
25 | "@babel/core": "^7.0.0",
26 | "@babel/plugin-syntax-dynamic-import": "^7.0.0",
27 | "@babel/plugin-transform-runtime": "^7.0.0",
28 | "@babel/preset-env": "^7.0.0",
29 | "@babel/runtime": "^7.0.0",
30 | "@rollup/plugin-commonjs": "^11.0.0",
31 | "@rollup/plugin-node-resolve": "^6.0.0",
32 | "@rollup/plugin-replace": "^2.2.0",
33 | "npm-run-all": "^4.1.5",
34 | "postcss-cli": "^7.1.0",
35 | "rollup": "^1.20.0",
36 | "rollup-plugin-babel": "^4.0.2",
37 | "rollup-plugin-svelte": "^5.0.1",
38 | "rollup-plugin-terser": "^4.0.4",
39 | "sapper": "^0.27.0",
40 | "svelte": "^3.0.0",
41 | "tailwindcss": "^1.1.4"
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/postcss.config.js:
--------------------------------------------------------------------------------
1 | // only needed if you want to purge
2 | const purgecss = require('@fullhuman/postcss-purgecss')({
3 | content: ['./src/**/*.svelte', './src/**/*.html'],
4 | defaultExtractor: content => content.match(/[A-Za-z0-9-_:/]+/g) || [],
5 | });
6 |
7 | module.exports = {
8 | plugins: [
9 | require('tailwindcss'),
10 | // only needed if you want to purge
11 | ...(process.env.NODE_ENV === 'production' ? [purgecss] : []),
12 | ],
13 | };
14 |
--------------------------------------------------------------------------------
/rollup.config.js:
--------------------------------------------------------------------------------
1 | import resolve from '@rollup/plugin-node-resolve';
2 | import replace from '@rollup/plugin-replace';
3 | import commonjs from '@rollup/plugin-commonjs';
4 | import svelte from 'rollup-plugin-svelte';
5 | import babel from 'rollup-plugin-babel';
6 | import { terser } from 'rollup-plugin-terser';
7 | import config from 'sapper/config/rollup.js';
8 | import pkg from './package.json';
9 |
10 | const mode = process.env.NODE_ENV;
11 | const dev = mode === 'development';
12 | const legacy = !!process.env.SAPPER_LEGACY_BUILD;
13 |
14 | const onwarn = (warning, onwarn) => (warning.code === 'CIRCULAR_DEPENDENCY' && /[/\\]@sapper[/\\]/.test(warning.message)) || onwarn(warning);
15 | const dedupe = importee => importee === 'svelte' || importee.startsWith('svelte/');
16 |
17 | export default {
18 | client: {
19 | input: config.client.input(),
20 | output: config.client.output(),
21 | plugins: [
22 | replace({
23 | 'process.browser': true,
24 | 'process.env.NODE_ENV': JSON.stringify(mode)
25 | }),
26 | svelte({
27 | dev,
28 | hydratable: true,
29 | emitCss: true
30 | }),
31 | resolve({
32 | browser: true,
33 | dedupe
34 | }),
35 | commonjs(),
36 |
37 | legacy && babel({
38 | extensions: ['.js', '.mjs', '.html', '.svelte'],
39 | runtimeHelpers: true,
40 | exclude: ['node_modules/@babel/**'],
41 | presets: [
42 | ['@babel/preset-env', {
43 | targets: '> 0.25%, not dead'
44 | }]
45 | ],
46 | plugins: [
47 | '@babel/plugin-syntax-dynamic-import',
48 | ['@babel/plugin-transform-runtime', {
49 | useESModules: true
50 | }]
51 | ]
52 | }),
53 |
54 | !dev && terser({
55 | module: true
56 | })
57 | ],
58 |
59 | onwarn,
60 | },
61 |
62 | server: {
63 | input: config.server.input(),
64 | output: config.server.output(),
65 | plugins: [
66 | replace({
67 | 'process.browser': false,
68 | 'process.env.NODE_ENV': JSON.stringify(mode)
69 | }),
70 | svelte({
71 | generate: 'ssr',
72 | dev
73 | }),
74 | resolve({
75 | dedupe
76 | }),
77 | commonjs()
78 | ],
79 | external: Object.keys(pkg.dependencies).concat(
80 | require('module').builtinModules || Object.keys(process.binding('natives'))
81 | ),
82 |
83 | onwarn,
84 | },
85 |
86 | serviceworker: {
87 | input: config.serviceworker.input(),
88 | output: config.serviceworker.output(),
89 | plugins: [
90 | resolve(),
91 | replace({
92 | 'process.browser': true,
93 | 'process.env.NODE_ENV': JSON.stringify(mode)
94 | }),
95 | commonjs(),
96 | !dev && terser()
97 | ],
98 |
99 | onwarn,
100 | }
101 | };
102 |
--------------------------------------------------------------------------------
/src/client.js:
--------------------------------------------------------------------------------
1 | import * as sapper from '@sapper/app';
2 |
3 | sapper.start({
4 | target: document.querySelector('#sapper')
5 | });
--------------------------------------------------------------------------------
/src/components/Charts/BarChart.svelte:
--------------------------------------------------------------------------------
1 |
62 |
63 |
106 |
107 |
108 |
Bar Chart
109 |
{description}
110 |
111 |
112 |
--------------------------------------------------------------------------------
/src/components/Charts/DoughnutChart.svelte:
--------------------------------------------------------------------------------
1 |
38 |
39 |
82 |
83 |
84 |
Doughnut Chart
85 |
{description}
86 |
87 |
88 |
--------------------------------------------------------------------------------
/src/components/Charts/LineChart.svelte:
--------------------------------------------------------------------------------
1 |
54 |
55 |
99 |
100 |
101 |
Line Chart
102 |
{description}
103 |
104 |
105 |
--------------------------------------------------------------------------------
/src/components/Charts/PieChart.svelte:
--------------------------------------------------------------------------------
1 |
65 |
66 |
111 |
112 |
113 |
Pie Chart
114 |
{description}
115 |
116 |
117 |
--------------------------------------------------------------------------------
/src/components/Footer.svelte:
--------------------------------------------------------------------------------
1 |
4 |
5 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/src/components/List.svelte:
--------------------------------------------------------------------------------
1 |
8 |
9 |
25 |
26 |
51 |
--------------------------------------------------------------------------------
/src/components/Navbar.svelte:
--------------------------------------------------------------------------------
1 |
22 |
23 |
43 |
44 |
45 |
46 |
50 | {#if width <= 1279}
51 |
54 | {/if}
55 | {#if width >= 648}
56 |
{title}
57 | {/if}
58 |
59 |
60 |
61 |
--------------------------------------------------------------------------------
/src/components/NavbarIcons.svelte:
--------------------------------------------------------------------------------
1 |
5 |
6 |
28 |
29 |
30 |
31 | email
32 |
33 |
34 | notifications
35 |
36 |
37 | check_circle
38 |
39 |
40 | apps
41 |
42 |
43 | more_vert
44 |
45 |
46 |
--------------------------------------------------------------------------------
/src/components/Searchbar.svelte:
--------------------------------------------------------------------------------
1 |
17 |
18 |
56 |
57 |
60 |
65 | {myIcon}
66 |
67 | (isFocused = true)}
74 | on:blur={blurHandler} />
75 |
76 |
--------------------------------------------------------------------------------
/src/components/Sidebar.svelte:
--------------------------------------------------------------------------------
1 |
31 |
32 |
58 |
59 | {#if isVisible}
60 |
61 |
62 |
66 |
67 |
73 |
74 |
75 |
{userName}
76 |
{userEmail}
77 |
78 |
79 |
80 |
81 |
82 |
83 | {/if}
84 |
--------------------------------------------------------------------------------
/src/components/constant.js:
--------------------------------------------------------------------------------
1 | const colors = {
2 | primary: 'rgb(57,187,176)',
3 | primaryGray: 'rgb(243, 243, 243)',
4 | secondaryGray: 'rgb(233, 233, 233)',
5 | };
6 | export default colors;
7 |
--------------------------------------------------------------------------------
/src/components/stores.js:
--------------------------------------------------------------------------------
1 | import { writable } from 'svelte/store';
2 | export const isSidebarVisible = writable(true);
3 |
--------------------------------------------------------------------------------
/src/routes/_error.svelte:
--------------------------------------------------------------------------------
1 |
7 |
8 |
29 |
30 |
31 | {status}
32 |
33 |
34 | {status}
35 |
36 | {error.message}
37 |
38 | {#if dev && error.stack}
39 | {error.stack}
40 | {/if}
41 |
--------------------------------------------------------------------------------
/src/routes/_layout.svelte:
--------------------------------------------------------------------------------
1 |
9 |
10 |
59 |
60 |
28 |
30 | %sapper.html%
31 |
32 |
35 | %sapper.scripts%
36 |
37 |
38 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
--------------------------------------------------------------------------------
/src/routes/about/index.svelte:
--------------------------------------------------------------------------------
1 |
2 | About
3 |
4 |
5 |
About this site
6 |
7 |
This is the 'about' page. There's not much here.
8 |
--------------------------------------------------------------------------------
/src/routes/blog/[slug].json.js:
--------------------------------------------------------------------------------
1 | import posts from './_posts.js';
2 |
3 | const lookup = new Map();
4 | posts.forEach(post => {
5 | lookup.set(post.slug, JSON.stringify(post));
6 | });
7 |
8 | export function get(req, res, next) {
9 | // the `slug` parameter is available because
10 | // this file is called [slug].json.js
11 | const { slug } = req.params;
12 |
13 | if (lookup.has(slug)) {
14 | res.writeHead(200, {
15 | 'Content-Type': 'application/json'
16 | });
17 |
18 | res.end(lookup.get(slug));
19 | } else {
20 | res.writeHead(404, {
21 | 'Content-Type': 'application/json'
22 | });
23 |
24 | res.end(JSON.stringify({
25 | message: `Not found`
26 | }));
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/src/routes/blog/[slug].svelte:
--------------------------------------------------------------------------------
1 |
15 |
16 |
19 |
20 |
55 |
56 |
57 | {post.title}
58 |
59 |
60 |
{post.title}
61 |
62 |
63 | {@html post.html}
64 |
65 |
--------------------------------------------------------------------------------
/src/routes/blog/_posts.js:
--------------------------------------------------------------------------------
1 | // Ordinarily, you'd generate this data from markdown files in your
2 | // repo, or fetch them from a database of some kind. But in order to
3 | // avoid unnecessary dependencies in the starter template, and in the
4 | // service of obviousness, we're just going to leave it here.
5 |
6 | // This file is called `_posts.js` rather than `posts.js`, because
7 | // we don't want to create an `/blog/posts` route — the leading
8 | // underscore tells Sapper not to do that.
9 |
10 | const posts = [
11 | {
12 | title: 'What is Sapper?',
13 | slug: 'what-is-sapper',
14 | html: `
15 |
First, you have to know what Svelte is. Svelte is a UI framework with a bold new idea: rather than providing a library that you write code with (like React or Vue, for example), it's a compiler that turns your components into highly optimized vanilla JavaScript. If you haven't already read the introductory blog post , you should!
16 |
17 |
Sapper is a Next.js-style framework (more on that here ) built around Svelte. It makes it embarrassingly easy to create extremely high performance web apps. Out of the box, you get:
18 |
19 |
20 | Code-splitting, dynamic imports and hot module replacement, powered by webpack
21 | Server-side rendering (SSR) with client-side hydration
22 | Service worker for offline support, and all the PWA bells and whistles
23 | The nicest development experience you've ever had, or your money back
24 |
25 |
26 |
It's implemented as Express middleware. Everything is set up and waiting for you to get started, but you keep complete control over the server, service worker, webpack config and everything else, so it's as flexible as you need it to be.
27 | `
28 | },
29 |
30 | {
31 | title: 'How to use Sapper',
32 | slug: 'how-to-use-sapper',
33 | html: `
34 |
Step one
35 |
Create a new project, using degit :
36 |
37 |
npx degit "sveltejs/sapper-template#rollup" my-app
38 | cd my-app
39 | npm install # or yarn!
40 | npm run dev
41 |
42 |
43 |
Step two
44 |
Go to localhost:3000 . Open my-app
in your editor. Edit the files in the src/routes
directory or add new ones.
45 |
46 |
Step three
47 |
...
48 |
49 |
Step four
50 |
Resist overdone joke formats.
51 | `
52 | },
53 |
54 | {
55 | title: 'Why the name?',
56 | slug: 'why-the-name',
57 | html: `
58 |
In war, the soldiers who build bridges, repair roads, clear minefields and conduct demolitions — all under combat conditions — are known as sappers .
59 |
60 |
For web developers, the stakes are generally lower than those for combat engineers. But we face our own hostile environment: underpowered devices, poor network connections, and the complexity inherent in front-end engineering. Sapper, which is short for S velte app maker , is your courageous and dutiful ally.
61 | `
62 | },
63 |
64 | {
65 | title: 'How is Sapper different from Next.js?',
66 | slug: 'how-is-sapper-different-from-next',
67 | html: `
68 |
Next.js is a React framework from Zeit , and is the inspiration for Sapper. There are a few notable differences, however:
69 |
70 |
71 | It's powered by Svelte instead of React, so it's faster and your apps are smaller
72 | Instead of route masking, we encode route parameters in filenames. For example, the page you're looking at right now is src/routes/blog/[slug].html
73 | As well as pages (Svelte components, which render on server or client), you can create server routes in your routes
directory. These are just .js
files that export functions corresponding to HTTP methods, and receive Express request
and response
objects as arguments. This makes it very easy to, for example, add a JSON API such as the one powering this very page
74 | Links are just <a>
elements, rather than framework-specific <Link>
components. That means, for example, that this link right here , despite being inside a blob of HTML, works with the router as you'd expect.
75 |
76 | `
77 | },
78 |
79 | {
80 | title: 'How can I get involved?',
81 | slug: 'how-can-i-get-involved',
82 | html: `
83 |
We're so glad you asked! Come on over to the Svelte and Sapper repos, and join us in the Discord chatroom . Everyone is welcome, especially you!
84 | `
85 | }
86 | ];
87 |
88 | posts.forEach(post => {
89 | post.html = post.html.replace(/^\t{3}/gm, '');
90 | });
91 |
92 | export default posts;
93 |
--------------------------------------------------------------------------------
/src/routes/blog/index.json.js:
--------------------------------------------------------------------------------
1 | import posts from './_posts.js';
2 |
3 | const contents = JSON.stringify(posts.map(post => {
4 | return {
5 | title: post.title,
6 | slug: post.slug
7 | };
8 | }));
9 |
10 | export function get(req, res) {
11 | res.writeHead(200, {
12 | 'Content-Type': 'application/json'
13 | });
14 |
15 | res.end(contents);
16 | }
--------------------------------------------------------------------------------
/src/routes/blog/index.svelte:
--------------------------------------------------------------------------------
1 |
8 |
9 |
12 |
13 |
19 |
20 |
21 | Blog
22 |
23 |
24 |
Recent posts
25 |
26 |
27 | {#each posts as post}
28 |
32 | {post.title}
33 | {/each}
34 |
--------------------------------------------------------------------------------
/src/routes/buttons/index.svelte:
--------------------------------------------------------------------------------
1 |
18 |
19 |
131 |
132 |
133 | Buttons
134 |
135 |
136 |
137 |
BUTTONS
138 |
139 | There are two directives that can make a group of buttons behave like a set
140 | of checkboxes, radio buttons, or a hybrfont-size:id where radio buttons can
141 | be unchecked.
142 |
143 |
144 |
145 |
146 |
Toggle States
147 |
148 | Single Toggle
149 |
150 |
151 |
{value}
152 |
153 |
154 |
155 | Checkbox
156 | Checkbox-like buttons set with variable states
157 |
158 |
159 | (leftState = !leftState)}>
163 | Left
164 |
165 | (midState = !midState)}>
169 | Middle
170 |
171 | (rightState = !rightState)}>
175 | Right
176 |
177 |
178 |
179 |
180 |
{'{'}
181 |
{`"left"` + ': ' + `${leftState} ,`}
182 |
{`"middle"'` + ': ' + `${midState} ,`}
183 |
{`"right"` + ': ' + `${rightState}`}
184 |
{'}'}
185 |
186 |
187 |
188 |
189 |
190 | Radio
191 |
192 | Radio buttons with checked/unchecked states. Group can be created in two
193 | ways: using btnRadioGroup directive or using the same ngModel binding with
194 | several buttons (works only for template driven forms). Check the demo
195 | below for more info
196 |
197 |
198 |
199 | (radioStatus = 'Left')}>
203 | Left
204 |
205 | (radioStatus = 'Middle')}>
209 | Middle
210 |
211 | (radioStatus = 'Right')}>
215 | Right
216 |
217 |
218 |
219 | (radioStatus = 'Left')}>
223 | Left
224 |
225 | (radioStatus = 'Middle')}>
229 | Middle
230 |
231 | (radioStatus = 'Right')}>
235 | Right
236 |
237 |
238 |
239 |
240 |
{`"${radioStatus}"`}
241 |
242 |
243 |
244 |
245 | Custom template styling
246 |
247 | Use modifier class .btn-group--custom in order to get a template spefici
248 | styling on all button elements.
249 |
250 |
251 |
252 | (leftState = !leftState)}>
256 | Left
257 |
258 | (midState = !midState)}>
261 | Middle
262 |
263 | (rightState = !rightState)}>
267 | Right
268 |
269 |
270 |
271 | (radioStatus = 'Left')}>
275 | Left
276 |
277 | (radioStatus = 'Middle')}>
281 | Middle
282 |
283 | (radioStatus = 'Right')}>
287 | Right
288 |
289 |
290 |
291 |
--------------------------------------------------------------------------------
/src/routes/index.svelte:
--------------------------------------------------------------------------------
1 |
7 |
8 |
57 |
58 |
59 | Dashboard
60 |
61 |
62 |
63 |
DASHBOARD
64 |
Welcome to the unique Material Design admin web app experience!
65 |
66 |
67 |
68 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
--------------------------------------------------------------------------------
/src/routes/tables/index.svelte:
--------------------------------------------------------------------------------
1 |
117 |
118 |
142 |
143 |
144 | Data Table
145 |
146 |
147 |
148 |
DATA TABLE
149 |
150 |
151 |
152 |
153 |
--------------------------------------------------------------------------------
/src/routes/typography/index.svelte:
--------------------------------------------------------------------------------
1 |
5 |
6 |
101 |
102 |
103 | Typography
104 |
105 |
106 |
107 |
TYPOGRAPHY
108 |
109 |
110 |
111 |
Body Copy
112 |
{bodyData}
113 |
114 |
115 |
116 |
117 | Headings
118 |
119 | All HTML headings,
120 | {''}
121 | through
122 | {''}
123 | , are available.
124 |
125 |
126 | .h1
127 | through
128 | .h6
129 | classes are also available, for when you want to match the font styling of
130 | a heading but cannot use the associated HTML element.
131 |
132 |
133 |
h1. Svelte heading
134 |
h2. Svelte heading
135 |
h3. Svelte heading
136 |
h4. Svelte heading
137 |
h5. Svelte heading
138 |
h6. Svelte heading
139 |
140 |
141 |
142 |
143 | Lists
144 |
145 | All lists
146 | {' —
147 | ,
148 | {''}
149 | and
150 | {'—'}
151 | have their margin-top removed and a
152 | {'margin-bottom: 1rem'}
153 | . Nested lists have no margin-bottom.
154 |
155 |
156 |
Custom styled
157 |
158 | Use below given custom list style classes style the bullets.
159 |
160 |
161 |
162 | Lorem ipsum dolor sit amet
163 | Consectetur adipiscing elit
164 | Integer molestie lorem at massa
165 | Facilisis in pretium nisl aliquet
166 | Nulla volutpat aliquam velit
167 | Faucibus porta lacus fringilla vel
168 | Aenean sit amet erat nunc
169 | Eget porttitor lorem
170 |
171 |
172 | Lorem ipsum dolor sit amet
173 | Consectetur adipiscing elit
174 | Integer molestie lorem at massa
175 | Facilisis in pretium nisl aliquet
176 | Nulla volutpat aliquam velit
177 | Faucibus porta lacus fringilla vel
178 | Aenean sit amet erat nunc
179 | Eget porttitor lorem
180 |
181 |
182 | Lorem ipsum dolor sit amet
183 | Consectetur adipiscing elit
184 | Integer molestie lorem at massa
185 | Facilisis in pretium nisl aliquet
186 | Nulla volutpat aliquam velit
187 | Faucibus porta lacus fringilla vel
188 | Aenean sit amet erat nunc
189 | Eget porttitor lorem
190 |
191 |
192 |
193 |
194 |
Unstyled
195 |
196 | Remove the default
197 | {'list-style'}
198 | and left margin on list items (immediate children only). This only applies
199 | to immediate children list items, meaning you will need to add the class for
200 | any nested lists as well.
201 |
202 |
203 | Lorem ipsum dolor sit amet
204 | Consectetur adipiscing elit
205 | Integer molestie lorem at massa
206 | Facilisis in pretium nisl aliquet
207 |
208 | Nulla volutpat aliquam velit
209 |
210 | Phasellus iaculis neque
211 | Purus sodales ultricies
212 | Vestibulum laoreet porttitor sem
213 | Ac tristique libero volutpat at
214 |
215 |
216 | Faucibus porta lacus fringilla vel
217 | Aenean sit amet erat nunc
218 | Eget porttitor lorem
219 |
220 |
221 |
--------------------------------------------------------------------------------
/src/server.js:
--------------------------------------------------------------------------------
1 | import sirv from 'sirv';
2 | import polka from 'polka';
3 | import compression from 'compression';
4 | import * as sapper from '@sapper/server';
5 |
6 | const { PORT, NODE_ENV } = process.env;
7 | const dev = NODE_ENV === 'development';
8 |
9 | polka() // You can also use Express
10 | .use(
11 | compression({ threshold: 0 }),
12 | sirv('static', { dev }),
13 | sapper.middleware()
14 | )
15 | .listen(PORT, err => {
16 | if (err) console.log('error', err);
17 | });
18 |
--------------------------------------------------------------------------------
/src/service-worker.js:
--------------------------------------------------------------------------------
1 | import { timestamp, files, shell, routes } from '@sapper/service-worker';
2 |
3 | const ASSETS = `cache${timestamp}`;
4 |
5 | // `shell` is an array of all the files generated by the bundler,
6 | // `files` is an array of everything in the `static` directory
7 | const to_cache = shell.concat(files);
8 | const cached = new Set(to_cache);
9 |
10 | self.addEventListener('install', event => {
11 | event.waitUntil(
12 | caches
13 | .open(ASSETS)
14 | .then(cache => cache.addAll(to_cache))
15 | .then(() => {
16 | self.skipWaiting();
17 | })
18 | );
19 | });
20 |
21 | self.addEventListener('activate', event => {
22 | event.waitUntil(
23 | caches.keys().then(async keys => {
24 | // delete old caches
25 | for (const key of keys) {
26 | if (key !== ASSETS) await caches.delete(key);
27 | }
28 |
29 | self.clients.claim();
30 | })
31 | );
32 | });
33 |
34 | self.addEventListener('fetch', event => {
35 | if (event.request.method !== 'GET' || event.request.headers.has('range')) return;
36 |
37 | const url = new URL(event.request.url);
38 |
39 | // don't try to handle e.g. data: URIs
40 | if (!url.protocol.startsWith('http')) return;
41 |
42 | // ignore dev server requests
43 | if (url.hostname === self.location.hostname && url.port !== self.location.port) return;
44 |
45 | // always serve static files and bundler-generated assets from cache
46 | if (url.host === self.location.host && cached.has(url.pathname)) {
47 | event.respondWith(caches.match(event.request));
48 | return;
49 | }
50 |
51 | // for pages, you might want to serve a shell `service-worker-index.html` file,
52 | // which Sapper has generated for you. It's not right for every
53 | // app, but if it's right for yours then uncomment this section
54 | /*
55 | if (url.origin === self.origin && routes.find(route => route.pattern.test(url.pathname))) {
56 | event.respondWith(caches.match('/service-worker-index.html'));
57 | return;
58 | }
59 | */
60 |
61 | if (event.request.cache === 'only-if-cached') return;
62 |
63 | // for everything else, try the network first, falling back to
64 | // cache if the user is offline. (If the pages never change, you
65 | // might prefer a cache-first approach to a network-first one.)
66 | event.respondWith(
67 | caches
68 | .open(`offline${timestamp}`)
69 | .then(async cache => {
70 | try {
71 | const response = await fetch(event.request);
72 | cache.put(event.request, response.clone());
73 | return response;
74 | } catch(err) {
75 | const response = await cache.match(event.request);
76 | if (response) return response;
77 |
78 | throw err;
79 | }
80 | })
81 | );
82 | });
83 |
--------------------------------------------------------------------------------
/src/template.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 | %sapper.base%
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
20 | %sapper.styles%
21 |
22 |
24 | %sapper.head%
25 |
26 |
27 |