├── .gitignore
├── sample-app
├── cypress.json
├── config
│ ├── default.js
│ └── prod.js
├── static
│ ├── favicon.png
│ ├── logo-192.png
│ ├── logo-512.png
│ ├── great-success.png
│ └── manifest.json
├── src
│ ├── client.js
│ ├── routes
│ │ ├── about.svelte
│ │ ├── configuration.svelte
│ │ ├── api
│ │ │ ├── logout.js
│ │ │ ├── secret-data.js
│ │ │ └── authenticate.js
│ │ ├── preprocess.svelte
│ │ ├── blog
│ │ │ ├── index.json.js
│ │ │ ├── [slug].json.js
│ │ │ ├── index.svelte
│ │ │ ├── [slug].svelte
│ │ │ └── _posts.js
│ │ ├── _layout.svelte
│ │ ├── _error.svelte
│ │ ├── authentication.svelte
│ │ ├── index.svelte
│ │ ├── secret-page.svelte
│ │ └── validation.svelte
│ ├── node_modules
│ │ └── validator
│ │ │ ├── validators.js
│ │ │ └── validate.js
│ ├── scss
│ │ └── global.scss
│ ├── server.js
│ ├── template.html
│ ├── components
│ │ └── Nav.svelte
│ └── service-worker.js
├── .gitignore
├── cypress
│ ├── fixtures
│ │ └── example.json
│ ├── integration
│ │ └── spec.js
│ ├── plugins
│ │ └── index.js
│ └── support
│ │ ├── index.js
│ │ └── commands.js
├── appveyor.yml
├── package.json
├── rollup.config.js
├── README.md
└── package-lock.json
├── static
├── images
│ ├── bad-validation.png
│ ├── deviantart-errors.png
│ ├── logo.svg
│ ├── svelte-preprocess.svg
│ ├── rollup-plugin-replace.svg
│ └── async-script-loader.svg
├── fonts
│ ├── raleway-v14-latin-600.woff
│ ├── catamaran-v6-latin-500.woff
│ ├── catamaran-v6-latin-500.woff2
│ ├── catamaran-v6-latin-900.woff
│ ├── catamaran-v6-latin-900.woff2
│ ├── raleway-v14-latin-600.woff2
│ ├── catamaran-v6-latin-regular.woff
│ ├── lobster-v22-latin-regular.woff
│ ├── lobster-v22-latin-regular.woff2
│ ├── raleway-v14-latin-regular.woff
│ ├── raleway-v14-latin-regular.woff2
│ ├── ubuntu-mono-v9-latin-700.woff
│ ├── ubuntu-mono-v9-latin-700.woff2
│ ├── catamaran-v6-latin-regular.woff2
│ ├── ubuntu-mono-v9-latin-regular.woff
│ ├── ubuntu-mono-v9-latin-700italic.woff
│ ├── ubuntu-mono-v9-latin-700italic.woff2
│ └── ubuntu-mono-v9-latin-regular.woff2
└── css
│ └── fonts.css
├── package.json
└── index.html
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
--------------------------------------------------------------------------------
/sample-app/cypress.json:
--------------------------------------------------------------------------------
1 | {
2 | "baseUrl": "http://localhost:3000",
3 | "video": false
4 | }
--------------------------------------------------------------------------------
/sample-app/config/default.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 |
3 | module.exports = {
4 | VEG_TYPE: 'Peas'
5 | }
--------------------------------------------------------------------------------
/sample-app/config/prod.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 |
3 | module.exports = {
4 | VEG_TYPE: 'Squash'
5 | }
--------------------------------------------------------------------------------
/sample-app/static/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/antony/svelte-meetup-talk-oct-2019/HEAD/sample-app/static/favicon.png
--------------------------------------------------------------------------------
/sample-app/static/logo-192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/antony/svelte-meetup-talk-oct-2019/HEAD/sample-app/static/logo-192.png
--------------------------------------------------------------------------------
/sample-app/static/logo-512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/antony/svelte-meetup-talk-oct-2019/HEAD/sample-app/static/logo-512.png
--------------------------------------------------------------------------------
/static/images/bad-validation.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/antony/svelte-meetup-talk-oct-2019/HEAD/static/images/bad-validation.png
--------------------------------------------------------------------------------
/sample-app/src/client.js:
--------------------------------------------------------------------------------
1 | import * as sapper from '@sapper/app';
2 |
3 | sapper.start({
4 | target: document.querySelector('#sapper')
5 | });
--------------------------------------------------------------------------------
/sample-app/static/great-success.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/antony/svelte-meetup-talk-oct-2019/HEAD/sample-app/static/great-success.png
--------------------------------------------------------------------------------
/static/images/deviantart-errors.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/antony/svelte-meetup-talk-oct-2019/HEAD/static/images/deviantart-errors.png
--------------------------------------------------------------------------------
/static/fonts/raleway-v14-latin-600.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/antony/svelte-meetup-talk-oct-2019/HEAD/static/fonts/raleway-v14-latin-600.woff
--------------------------------------------------------------------------------
/static/fonts/catamaran-v6-latin-500.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/antony/svelte-meetup-talk-oct-2019/HEAD/static/fonts/catamaran-v6-latin-500.woff
--------------------------------------------------------------------------------
/static/fonts/catamaran-v6-latin-500.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/antony/svelte-meetup-talk-oct-2019/HEAD/static/fonts/catamaran-v6-latin-500.woff2
--------------------------------------------------------------------------------
/static/fonts/catamaran-v6-latin-900.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/antony/svelte-meetup-talk-oct-2019/HEAD/static/fonts/catamaran-v6-latin-900.woff
--------------------------------------------------------------------------------
/static/fonts/catamaran-v6-latin-900.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/antony/svelte-meetup-talk-oct-2019/HEAD/static/fonts/catamaran-v6-latin-900.woff2
--------------------------------------------------------------------------------
/static/fonts/raleway-v14-latin-600.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/antony/svelte-meetup-talk-oct-2019/HEAD/static/fonts/raleway-v14-latin-600.woff2
--------------------------------------------------------------------------------
/static/fonts/catamaran-v6-latin-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/antony/svelte-meetup-talk-oct-2019/HEAD/static/fonts/catamaran-v6-latin-regular.woff
--------------------------------------------------------------------------------
/static/fonts/lobster-v22-latin-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/antony/svelte-meetup-talk-oct-2019/HEAD/static/fonts/lobster-v22-latin-regular.woff
--------------------------------------------------------------------------------
/static/fonts/lobster-v22-latin-regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/antony/svelte-meetup-talk-oct-2019/HEAD/static/fonts/lobster-v22-latin-regular.woff2
--------------------------------------------------------------------------------
/static/fonts/raleway-v14-latin-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/antony/svelte-meetup-talk-oct-2019/HEAD/static/fonts/raleway-v14-latin-regular.woff
--------------------------------------------------------------------------------
/static/fonts/raleway-v14-latin-regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/antony/svelte-meetup-talk-oct-2019/HEAD/static/fonts/raleway-v14-latin-regular.woff2
--------------------------------------------------------------------------------
/static/fonts/ubuntu-mono-v9-latin-700.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/antony/svelte-meetup-talk-oct-2019/HEAD/static/fonts/ubuntu-mono-v9-latin-700.woff
--------------------------------------------------------------------------------
/static/fonts/ubuntu-mono-v9-latin-700.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/antony/svelte-meetup-talk-oct-2019/HEAD/static/fonts/ubuntu-mono-v9-latin-700.woff2
--------------------------------------------------------------------------------
/static/fonts/catamaran-v6-latin-regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/antony/svelte-meetup-talk-oct-2019/HEAD/static/fonts/catamaran-v6-latin-regular.woff2
--------------------------------------------------------------------------------
/static/fonts/ubuntu-mono-v9-latin-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/antony/svelte-meetup-talk-oct-2019/HEAD/static/fonts/ubuntu-mono-v9-latin-regular.woff
--------------------------------------------------------------------------------
/static/fonts/ubuntu-mono-v9-latin-700italic.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/antony/svelte-meetup-talk-oct-2019/HEAD/static/fonts/ubuntu-mono-v9-latin-700italic.woff
--------------------------------------------------------------------------------
/static/fonts/ubuntu-mono-v9-latin-700italic.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/antony/svelte-meetup-talk-oct-2019/HEAD/static/fonts/ubuntu-mono-v9-latin-700italic.woff2
--------------------------------------------------------------------------------
/static/fonts/ubuntu-mono-v9-latin-regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/antony/svelte-meetup-talk-oct-2019/HEAD/static/fonts/ubuntu-mono-v9-latin-regular.woff2
--------------------------------------------------------------------------------
/sample-app/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | /node_modules/
3 | /src/node_modules/@sapper/
4 | !/src/node_modules
5 | yarn-error.log
6 | /cypress/screenshots/
7 | /__sapper__/
8 |
--------------------------------------------------------------------------------
/sample-app/src/routes/about.svelte:
--------------------------------------------------------------------------------
1 |
2 | About
3 |
4 |
5 |
About this site
6 |
7 | This is the 'about' page. There's not much here.
--------------------------------------------------------------------------------
/sample-app/src/routes/configuration.svelte:
--------------------------------------------------------------------------------
1 |
2 | Configuration
3 |
4 |
5 | Configuration
6 |
7 | This is a configured value: {process.env.VEG_TYPE}
--------------------------------------------------------------------------------
/sample-app/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 | }
--------------------------------------------------------------------------------
/sample-app/src/routes/api/logout.js:
--------------------------------------------------------------------------------
1 | export async function get(req, res, next) {
2 | const jwt = req.cookies['token']
3 | res.setHeader('Set-Cookie', `token=${jwt}; HttpOnly; Path=/; Max-Age=0`)
4 | res.end()
5 | }
--------------------------------------------------------------------------------
/sample-app/src/routes/api/secret-data.js:
--------------------------------------------------------------------------------
1 | export async function get(req, res, next) {
2 | const jwt = req.cookies['token']
3 | if (!jwt) { return res.status(403).end() }
4 | res.end(JSON.stringify({ secret: 'fish' }))
5 | }
--------------------------------------------------------------------------------
/sample-app/src/routes/preprocess.svelte:
--------------------------------------------------------------------------------
1 |
2 | About
3 |
4 |
5 | SCSS Preprocessing
6 |
7 | This page uses SCSS for its styling
8 |
9 |
--------------------------------------------------------------------------------
/sample-app/appveyor.yml:
--------------------------------------------------------------------------------
1 | version: "{build}"
2 |
3 | shallow_clone: true
4 |
5 | init:
6 | - git config --global core.autocrlf false
7 |
8 | build: off
9 |
10 | environment:
11 | matrix:
12 | # node.js
13 | - nodejs_version: stable
14 |
15 | install:
16 | - ps: Install-Product node $env:nodejs_version
17 | - npm install cypress
18 | - npm install
19 |
--------------------------------------------------------------------------------
/sample-app/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 | }
--------------------------------------------------------------------------------
/sample-app/src/routes/api/authenticate.js:
--------------------------------------------------------------------------------
1 | const jwt = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkFudG9ueSBKb25lcyIsImlhdCI6MTUxNjIzOTAyMn0.lRDwwE5SA3Pe6F0DWS7hKJBPxr5UESxkf3VTqPsemaE'
2 |
3 | export async function get(req, res, next) {
4 | const inAnHour = new Date()
5 | inAnHour.setHours(inAnHour.getHours() + 1)
6 | res.setHeader('Set-Cookie', `token=${jwt}; HttpOnly; Path=/`)
7 | res.end()
8 | }
--------------------------------------------------------------------------------
/sample-app/static/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "background_color": "#ffffff",
3 | "theme_color": "#333333",
4 | "name": "TODO",
5 | "short_name": "TODO",
6 | "display": "minimal-ui",
7 | "start_url": "/",
8 | "icons": [
9 | {
10 | "src": "logo-192.png",
11 | "sizes": "192x192",
12 | "type": "image/png"
13 | },
14 | {
15 | "src": "logo-512.png",
16 | "sizes": "512x512",
17 | "type": "image/png"
18 | }
19 | ]
20 | }
21 |
--------------------------------------------------------------------------------
/sample-app/src/routes/_layout.svelte:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
10 |
11 |
21 |
22 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/sample-app/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 | });
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "svelte-presentation",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "remark-latest.min.js",
6 | "scripts": {
7 | "dev": "http-server .",
8 | "postinstall": "cp node_modules/mermaid/dist/mermaid.min.js ./static/scripts/ && cp node_modules/@beyonk/svelte-codehighlight/dist/code-highlight.min.js ./static/scripts/"
9 | },
10 | "author": "",
11 | "license": "MIT",
12 | "devDependencies": {
13 | "@beyonk/svelte-codehighlight": "0.0.5",
14 | "http-server": "^0.11.1",
15 | "mermaid": "^8.3.1"
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/sample-app/src/node_modules/validator/validators.js:
--------------------------------------------------------------------------------
1 | import isEmpty from 'just-is-empty'
2 |
3 | function emailValidator () {
4 | return function email (value) {
5 | return (value && !!value.match(/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/)) || 'Please enter a valid email'
6 | }
7 | }
8 |
9 | function requiredValidator () {
10 | return function required (value) {
11 | return (value === 0 || !isEmpty(value)) || 'This field is required'
12 | }
13 | }
14 |
15 | export { emailValidator, requiredValidator }
--------------------------------------------------------------------------------
/sample-app/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 |
--------------------------------------------------------------------------------
/sample-app/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 |
--------------------------------------------------------------------------------
/sample-app/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 |
--------------------------------------------------------------------------------
/sample-app/src/scss/global.scss:
--------------------------------------------------------------------------------
1 | body {
2 | margin: 0;
3 | font-family: Roboto, -apple-system, BlinkMacSystemFont, Segoe UI, Oxygen, Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif;
4 | font-size: 14px;
5 | line-height: 1.5;
6 | color: #333;
7 | }
8 |
9 | h1, h2, h3, h4, h5, h6 {
10 | margin: 0 0 0.5em 0;
11 | font-weight: 400;
12 | line-height: 1.2;
13 | }
14 |
15 | h1 {
16 | font-size: 2em;
17 | }
18 |
19 | a {
20 | color: inherit;
21 | }
22 |
23 | code {
24 | font-family: menlo, inconsolata, monospace;
25 | font-size: calc(1em - 2px);
26 | color: #555;
27 | background-color: #f0f0f0;
28 | padding: 0.2em 0.4em;
29 | border-radius: 2px;
30 | }
31 |
32 | @media (min-width: 400px) {
33 | body {
34 | font-size: 16px;
35 | }
36 | }
--------------------------------------------------------------------------------
/sample-app/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 |
--------------------------------------------------------------------------------
/sample-app/src/routes/authentication.svelte:
--------------------------------------------------------------------------------
1 |
2 | Authenticate
3 |
4 |
5 | Authentication
6 |
7 | {#if $session.authenticated}
8 |
9 | Log-out
10 |
11 | {:else}
12 |
13 | Log-in
14 |
15 | {/if}
16 |
17 |
--------------------------------------------------------------------------------
/sample-app/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 | import cookieParser from 'cookie-parser'
6 | import jwt from 'jsonwebtoken';
7 |
8 | const { PORT, NODE_ENV } = process.env;
9 | const dev = NODE_ENV === 'development';
10 |
11 | polka() // You can also use Express
12 | .use(
13 | compression({ threshold: 0 }),
14 | sirv('static', { dev }),
15 | cookieParser(),
16 | sapper.middleware({
17 | session: req => {
18 | const token = req.cookies['token']
19 | const profile = token ? jwt.decode(token) : false
20 | return { authenticated: !!profile, name: profile.name }
21 | }
22 | })
23 | )
24 | .listen(PORT, err => {
25 | if (err) console.log('error', err);
26 | });
27 |
--------------------------------------------------------------------------------
/sample-app/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 |
--------------------------------------------------------------------------------
/sample-app/src/routes/index.svelte:
--------------------------------------------------------------------------------
1 |
34 |
35 |
36 | Sapper project template
37 |
38 |
39 | Great success!
40 |
41 |
42 |
43 | HIGH FIVE!
44 |
45 |
46 | Try editing this file (src/routes/index.svelte) to test live reloading.
47 |
--------------------------------------------------------------------------------
/sample-app/src/routes/secret-page.svelte:
--------------------------------------------------------------------------------
1 |
2 | Secret Page
3 |
4 |
5 | Secret Page
6 |
7 | This page is secret. We know your name is {$session.name}!
8 |
9 | Lets get some secret data from the API:
10 |
11 | {#if secretData}
12 | {secretData}
13 | {/if}
14 |
15 |
22 |
23 |
--------------------------------------------------------------------------------
/sample-app/src/node_modules/validator/validate.js:
--------------------------------------------------------------------------------
1 | import { writable } from 'svelte/store'
2 |
3 | export default function (...validators) {
4 | const { subscribe, set } = writable({ dirty: false, valid: false, message: null })
5 |
6 | function action (node) {
7 | function validate (dirty = true) {
8 | if (!validators || validators.length === 0) {
9 | set({ dirty, valid: true })
10 | return
11 | }
12 |
13 | const failing = validators.find(v => v(node.value) !== true)
14 |
15 | set({
16 | dirty,
17 | valid: !failing,
18 | message: failing && failing(node.value)
19 | })
20 | }
21 |
22 | node.addEventListener('input', validate)
23 |
24 | validate(false)
25 |
26 | return {
27 | destroy: () => {
28 | node.removeEventListener('input', validate)
29 | }
30 | }
31 | }
32 |
33 | return [ { subscribe }, action ]
34 | }
--------------------------------------------------------------------------------
/sample-app/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 |
--------------------------------------------------------------------------------
/sample-app/src/template.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | %sapper.base%
9 |
10 |
11 |
12 |
13 |
16 | %sapper.styles%
17 |
18 |
20 | %sapper.head%
21 |
22 |
23 |
25 | %sapper.html%
26 |
27 |
30 | %sapper.scripts%
31 |
32 |
33 |
--------------------------------------------------------------------------------
/sample-app/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "TODO",
3 | "description": "TODO",
4 | "version": "0.0.1",
5 | "scripts": {
6 | "dev": "sapper dev",
7 | "build": "sapper build --legacy",
8 | "export": "sapper export --legacy",
9 | "start": "node __sapper__/build",
10 | "cy:run": "cypress run",
11 | "cy:open": "cypress open",
12 | "test": "run-p --race dev cy:run"
13 | },
14 | "dependencies": {
15 | "compression": "^1.7.1",
16 | "polka": "next",
17 | "sirv": "^0.4.0"
18 | },
19 | "devDependencies": {
20 | "@babel/core": "^7.0.0",
21 | "@babel/plugin-syntax-dynamic-import": "^7.0.0",
22 | "@babel/plugin-transform-runtime": "^7.0.0",
23 | "@babel/preset-env": "^7.0.0",
24 | "@babel/runtime": "^7.0.0",
25 | "@beyonk/async-script-loader": "^1.0.3",
26 | "config": "^3.2.2",
27 | "cookie-parser": "^1.4.4",
28 | "jsonwebtoken": "^8.5.1",
29 | "just-is-empty": "^2.0.1",
30 | "npm-run-all": "^4.1.5",
31 | "rollup": "^1.12.0",
32 | "rollup-plugin-babel": "^4.0.2",
33 | "rollup-plugin-commonjs": "^10.0.0",
34 | "rollup-plugin-node-resolve": "^5.2.0",
35 | "rollup-plugin-replace": "^2.0.0",
36 | "rollup-plugin-svelte": "^5.0.1",
37 | "rollup-plugin-terser": "^4.0.4",
38 | "sapper": "^0.27.0",
39 | "sass": "^1.22.12",
40 | "svelte": "^3.0.0",
41 | "svelte-preprocess": "^3.1.2"
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/sample-app/src/routes/validation.svelte:
--------------------------------------------------------------------------------
1 |
2 | Validation
3 |
4 |
5 | Validation
6 |
7 |
8 |
16 |
17 | {#if $emailValidity.dirty && !$emailValidity.valid}
18 |
19 | INVALID - {$emailValidity.message}
20 |
21 | {/if}
22 |
23 | alert(`Your email is ${email}!`)}>Ok, I'm ready!
24 |
25 |
26 |
34 |
35 |
62 |
63 |
--------------------------------------------------------------------------------
/sample-app/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 |
--------------------------------------------------------------------------------
/sample-app/src/components/Nav.svelte:
--------------------------------------------------------------------------------
1 |
50 |
51 |
52 |
65 |
66 |
67 |
--------------------------------------------------------------------------------
/static/images/logo.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
8 | Beyonk-octothorpe
9 |
10 |
11 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/sample-app/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 |
--------------------------------------------------------------------------------
/static/images/svelte-preprocess.svg:
--------------------------------------------------------------------------------
1 |
13 |
14 |
15 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 | npm install svelte-preprocess
39 |
40 |
41 |
42 | 2 dependencies
43 |
44 |
45 |
46 | MIT license
47 |
48 |
49 |
50 | version 3.1.2
51 |
52 |
53 |
54 | updated 34 years ago
55 |
56 |
57 |
58 |
59 |
--------------------------------------------------------------------------------
/static/images/rollup-plugin-replace.svg:
--------------------------------------------------------------------------------
1 |
13 |
14 |
15 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 | npm install rollup-plugin-replace
39 |
40 |
41 |
42 | 2 dependencies
43 |
44 |
45 |
46 | MIT license
47 |
48 |
49 |
50 | version 2.2.0
51 |
52 |
53 |
54 | updated 34 years ago
55 |
56 |
57 |
58 |
59 |
--------------------------------------------------------------------------------
/static/images/async-script-loader.svg:
--------------------------------------------------------------------------------
1 |
13 |
14 |
15 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 | npm install @beyonk/async-script-loader
39 |
40 |
41 |
42 | 0 dependencies
43 |
44 |
45 |
46 | MIT license
47 |
48 |
49 |
50 | version 1.0.3
51 |
52 |
53 |
54 | updated 34 years ago
55 |
56 |
57 |
58 |
59 |
--------------------------------------------------------------------------------
/sample-app/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 sveltePreprocess from 'svelte-preprocess'
9 | import conf from 'config';
10 | import pkg from './package.json';
11 |
12 | const mode = process.env.NODE_ENV;
13 | const dev = mode === 'development';
14 | const legacy = !!process.env.SAPPER_LEGACY_BUILD;
15 |
16 | const onwarn = (warning, onwarn) => (warning.code === 'CIRCULAR_DEPENDENCY' && /[/\\]@sapper[/\\]/.test(warning.message)) || onwarn(warning);
17 | const dedupe = importee => importee === 'svelte' || importee.startsWith('svelte/');
18 |
19 | const appConfig = Object.keys(conf).reduce((acc, n) => {
20 | acc[`process.env.${n}`] = JSON.stringify(conf[n])
21 | return acc
22 | }, {})
23 |
24 | const preprocess = sveltePreprocess({
25 | transformers: {
26 | scss: {
27 | includePaths: [
28 | 'node_modules',
29 | 'src'
30 | ]
31 | }
32 | }
33 | })
34 |
35 | export default {
36 | client: {
37 | input: config.client.input(),
38 | output: config.client.output(),
39 | plugins: [
40 | replace({
41 | 'process.browser': true,
42 | 'process.env.NODE_ENV': JSON.stringify(mode),
43 | ...appConfig
44 | }),
45 | svelte({
46 | dev,
47 | hydratable: true,
48 | emitCss: true,
49 | preprocess
50 | }),
51 | resolve({
52 | browser: true,
53 | dedupe
54 | }),
55 | commonjs(),
56 |
57 | legacy && babel({
58 | extensions: ['.js', '.mjs', '.html', '.svelte'],
59 | runtimeHelpers: true,
60 | exclude: ['node_modules/@babel/**'],
61 | presets: [
62 | ['@babel/preset-env', {
63 | targets: '> 0.25%, not dead'
64 | }]
65 | ],
66 | plugins: [
67 | '@babel/plugin-syntax-dynamic-import',
68 | ['@babel/plugin-transform-runtime', {
69 | useESModules: true
70 | }]
71 | ]
72 | }),
73 |
74 | !dev && terser({
75 | module: true
76 | })
77 | ],
78 |
79 | onwarn,
80 | },
81 |
82 | server: {
83 | input: config.server.input(),
84 | output: config.server.output(),
85 | plugins: [
86 | replace({
87 | 'process.browser': false,
88 | 'process.env.NODE_ENV': JSON.stringify(mode),
89 | ...appConfig
90 | }),
91 | svelte({
92 | generate: 'ssr',
93 | dev,
94 | preprocess
95 | }),
96 | resolve({
97 | dedupe
98 | }),
99 | commonjs()
100 | ],
101 | external: Object.keys(pkg.dependencies).concat(
102 | require('module').builtinModules || Object.keys(process.binding('natives'))
103 | ),
104 |
105 | onwarn,
106 | },
107 |
108 | serviceworker: {
109 | input: config.serviceworker.input(),
110 | output: config.serviceworker.output(),
111 | plugins: [
112 | resolve(),
113 | replace({
114 | 'process.browser': true,
115 | 'process.env.NODE_ENV': JSON.stringify(mode)
116 | }),
117 | commonjs(),
118 | !dev && terser()
119 | ],
120 |
121 | onwarn,
122 | }
123 | };
124 |
--------------------------------------------------------------------------------
/static/css/fonts.css:
--------------------------------------------------------------------------------
1 | /* catamaran-regular - latin */
2 | @font-face {
3 | font-family: 'Catamaran';
4 | font-style: normal;
5 | font-weight: 400;
6 | src: local('Catamaran Regular'), local('Catamaran-Regular'),
7 | url('../fonts/catamaran-v6-latin-regular.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
8 | url('../fonts/catamaran-v6-latin-regular.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
9 | }
10 | /* catamaran-500 - latin */
11 | @font-face {
12 | font-family: 'Catamaran';
13 | font-style: normal;
14 | font-weight: 500;
15 | src: local('Catamaran Medium'), local('Catamaran-Medium'),
16 | url('../fonts/catamaran-v6-latin-500.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
17 | url('../fonts/catamaran-v6-latin-500.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
18 | }
19 | /* catamaran-900 - latin */
20 | @font-face {
21 | font-family: 'Catamaran';
22 | font-style: normal;
23 | font-weight: 900;
24 | src: local('Catamaran Black'), local('Catamaran-Black'),
25 | url('../fonts/catamaran-v6-latin-900.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
26 | url('../fonts/catamaran-v6-latin-900.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
27 | }
28 |
29 | /* lobster-regular - latin */
30 | @font-face {
31 | font-family: 'Lobster';
32 | font-style: normal;
33 | font-weight: 400;
34 | src: local('Lobster Regular'), local('Lobster-Regular'),
35 | url('../fonts/lobster-v22-latin-regular.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
36 | url('../fonts/lobster-v22-latin-regular.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
37 | }
38 |
39 | /* ubuntu-mono-regular - latin */
40 | @font-face {
41 | font-family: 'Ubuntu Mono';
42 | font-style: normal;
43 | font-weight: 400;
44 | src: local('Ubuntu Mono'), local('UbuntuMono-Regular'),
45 | url('../fonts/ubuntu-mono-v9-latin-regular.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
46 | url('../fonts/ubuntu-mono-v9-latin-regular.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
47 | }
48 | /* ubuntu-mono-700 - latin */
49 | @font-face {
50 | font-family: 'Ubuntu Mono';
51 | font-style: normal;
52 | font-weight: 700;
53 | src: local('Ubuntu Mono Bold'), local('UbuntuMono-Bold'),
54 | url('../fonts/ubuntu-mono-v9-latin-700.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
55 | url('../fonts/ubuntu-mono-v9-latin-700.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
56 | }
57 | /* ubuntu-mono-700italic - latin */
58 | @font-face {
59 | font-family: 'Ubuntu Mono';
60 | font-style: italic;
61 | font-weight: 700;
62 | src: local('Ubuntu Mono Bold Italic'), local('UbuntuMono-BoldItalic'),
63 | url('../fonts/ubuntu-mono-v9-latin-700italic.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
64 | url('../fonts/ubuntu-mono-v9-latin-700italic.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
65 | }
66 |
67 | /* raleway-regular - latin */
68 | @font-face {
69 | font-family: 'Raleway';
70 | font-style: normal;
71 | font-weight: 400;
72 | src: local('Raleway'), local('Raleway-Regular'),
73 | url('../fonts/raleway-v14-latin-regular.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
74 | url('../fonts/raleway-v14-latin-regular.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
75 | }
76 | /* raleway-600 - latin */
77 | @font-face {
78 | font-family: 'Raleway';
79 | font-style: normal;
80 | font-weight: 600;
81 | src: local('Raleway SemiBold'), local('Raleway-SemiBold'),
82 | url('../fonts/raleway-v14-latin-600.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
83 | url('../fonts/raleway-v14-latin-600.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
84 | }
--------------------------------------------------------------------------------
/sample-app/README.md:
--------------------------------------------------------------------------------
1 | # sapper-template
2 |
3 | The default [Sapper](https://github.com/sveltejs/sapper) template, with branches for Rollup and webpack. To clone it and get started:
4 |
5 | ```bash
6 | # for Rollup
7 | npx degit "sveltejs/sapper-template#rollup" my-app
8 | # for webpack
9 | npx degit "sveltejs/sapper-template#webpack" my-app
10 | cd my-app
11 | npm install # or yarn!
12 | npm run dev
13 | ```
14 |
15 | Open up [localhost:3000](http://localhost:3000) and start clicking around.
16 |
17 | Consult [sapper.svelte.dev](https://sapper.svelte.dev) for help getting started.
18 |
19 |
20 | ## Structure
21 |
22 | Sapper expects to find two directories in the root of your project — `src` and `static`.
23 |
24 |
25 | ### src
26 |
27 | 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.
28 |
29 |
30 | #### src/routes
31 |
32 | This is the heart of your Sapper app. There are two kinds of routes — *pages*, and *server routes*.
33 |
34 | **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.)
35 |
36 | **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.
37 |
38 | There are three simple rules for naming the files that define your routes:
39 |
40 | * 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
41 | * 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`.
42 | * 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
43 |
44 |
45 | ### static
46 |
47 | The [static](static) directory contains any static assets that should be available. These are served using [sirv](https://github.com/lukeed/sirv).
48 |
49 | In your [service-worker.js](src/service-worker.js) file, you can import these as `files` from the generated manifest...
50 |
51 | ```js
52 | import { files } from '@sapper/service-worker';
53 | ```
54 |
55 | ...so that you can cache them (though you can choose not to, for example if you don't want to cache very large files).
56 |
57 |
58 | ## Bundler config
59 |
60 | 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.
61 |
62 |
63 | ## Production mode and deployment
64 |
65 | 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.
66 |
67 | 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:
68 |
69 | ```bash
70 | npm install -g now
71 | now
72 | ```
73 |
74 |
75 | ## Using external components
76 |
77 | 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.
78 |
79 | 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:
80 |
81 | ```bash
82 | npm install -D @sveltejs/svelte-virtual-list
83 | ```
84 |
85 |
86 | ## Bugs and feedback
87 |
88 | 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).
89 |
--------------------------------------------------------------------------------
/sample-app/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 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Svelte Most Wanted
5 |
6 |
203 |
204 |
205 |
1086 |
1087 |
1088 |
1089 |
1090 |
1096 |
1097 |
--------------------------------------------------------------------------------
/sample-app/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.5.5",
9 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz",
10 | "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==",
11 | "dev": true,
12 | "requires": {
13 | "@babel/highlight": "^7.0.0"
14 | }
15 | },
16 | "@babel/core": {
17 | "version": "7.6.0",
18 | "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.6.0.tgz",
19 | "integrity": "sha512-FuRhDRtsd6IptKpHXAa+4WPZYY2ZzgowkbLBecEDDSje1X/apG7jQM33or3NdOmjXBKWGOg4JmSiRfUfuTtHXw==",
20 | "dev": true,
21 | "requires": {
22 | "@babel/code-frame": "^7.5.5",
23 | "@babel/generator": "^7.6.0",
24 | "@babel/helpers": "^7.6.0",
25 | "@babel/parser": "^7.6.0",
26 | "@babel/template": "^7.6.0",
27 | "@babel/traverse": "^7.6.0",
28 | "@babel/types": "^7.6.0",
29 | "convert-source-map": "^1.1.0",
30 | "debug": "^4.1.0",
31 | "json5": "^2.1.0",
32 | "lodash": "^4.17.13",
33 | "resolve": "^1.3.2",
34 | "semver": "^5.4.1",
35 | "source-map": "^0.5.0"
36 | },
37 | "dependencies": {
38 | "debug": {
39 | "version": "4.1.1",
40 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
41 | "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
42 | "dev": true,
43 | "requires": {
44 | "ms": "^2.1.1"
45 | }
46 | },
47 | "ms": {
48 | "version": "2.1.2",
49 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
50 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
51 | "dev": true
52 | }
53 | }
54 | },
55 | "@babel/generator": {
56 | "version": "7.6.0",
57 | "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.6.0.tgz",
58 | "integrity": "sha512-Ms8Mo7YBdMMn1BYuNtKuP/z0TgEIhbcyB8HVR6PPNYp4P61lMsABiS4A3VG1qznjXVCf3r+fVHhm4efTYVsySA==",
59 | "dev": true,
60 | "requires": {
61 | "@babel/types": "^7.6.0",
62 | "jsesc": "^2.5.1",
63 | "lodash": "^4.17.13",
64 | "source-map": "^0.5.0",
65 | "trim-right": "^1.0.1"
66 | }
67 | },
68 | "@babel/helper-annotate-as-pure": {
69 | "version": "7.0.0",
70 | "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz",
71 | "integrity": "sha512-3UYcJUj9kvSLbLbUIfQTqzcy5VX7GRZ/CCDrnOaZorFFM01aXp1+GJwuFGV4NDDoAS+mOUyHcO6UD/RfqOks3Q==",
72 | "dev": true,
73 | "requires": {
74 | "@babel/types": "^7.0.0"
75 | }
76 | },
77 | "@babel/helper-builder-binary-assignment-operator-visitor": {
78 | "version": "7.1.0",
79 | "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz",
80 | "integrity": "sha512-qNSR4jrmJ8M1VMM9tibvyRAHXQs2PmaksQF7c1CGJNipfe3D8p+wgNwgso/P2A2r2mdgBWAXljNWR0QRZAMW8w==",
81 | "dev": true,
82 | "requires": {
83 | "@babel/helper-explode-assignable-expression": "^7.1.0",
84 | "@babel/types": "^7.0.0"
85 | }
86 | },
87 | "@babel/helper-call-delegate": {
88 | "version": "7.4.4",
89 | "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.4.4.tgz",
90 | "integrity": "sha512-l79boDFJ8S1c5hvQvG+rc+wHw6IuH7YldmRKsYtpbawsxURu/paVy57FZMomGK22/JckepaikOkY0MoAmdyOlQ==",
91 | "dev": true,
92 | "requires": {
93 | "@babel/helper-hoist-variables": "^7.4.4",
94 | "@babel/traverse": "^7.4.4",
95 | "@babel/types": "^7.4.4"
96 | }
97 | },
98 | "@babel/helper-define-map": {
99 | "version": "7.5.5",
100 | "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.5.5.tgz",
101 | "integrity": "sha512-fTfxx7i0B5NJqvUOBBGREnrqbTxRh7zinBANpZXAVDlsZxYdclDp467G1sQ8VZYMnAURY3RpBUAgOYT9GfzHBg==",
102 | "dev": true,
103 | "requires": {
104 | "@babel/helper-function-name": "^7.1.0",
105 | "@babel/types": "^7.5.5",
106 | "lodash": "^4.17.13"
107 | }
108 | },
109 | "@babel/helper-explode-assignable-expression": {
110 | "version": "7.1.0",
111 | "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.1.0.tgz",
112 | "integrity": "sha512-NRQpfHrJ1msCHtKjbzs9YcMmJZOg6mQMmGRB+hbamEdG5PNpaSm95275VD92DvJKuyl0s2sFiDmMZ+EnnvufqA==",
113 | "dev": true,
114 | "requires": {
115 | "@babel/traverse": "^7.1.0",
116 | "@babel/types": "^7.0.0"
117 | }
118 | },
119 | "@babel/helper-function-name": {
120 | "version": "7.1.0",
121 | "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz",
122 | "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==",
123 | "dev": true,
124 | "requires": {
125 | "@babel/helper-get-function-arity": "^7.0.0",
126 | "@babel/template": "^7.1.0",
127 | "@babel/types": "^7.0.0"
128 | }
129 | },
130 | "@babel/helper-get-function-arity": {
131 | "version": "7.0.0",
132 | "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz",
133 | "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==",
134 | "dev": true,
135 | "requires": {
136 | "@babel/types": "^7.0.0"
137 | }
138 | },
139 | "@babel/helper-hoist-variables": {
140 | "version": "7.4.4",
141 | "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.4.4.tgz",
142 | "integrity": "sha512-VYk2/H/BnYbZDDg39hr3t2kKyifAm1W6zHRfhx8jGjIHpQEBv9dry7oQ2f3+J703TLu69nYdxsovl0XYfcnK4w==",
143 | "dev": true,
144 | "requires": {
145 | "@babel/types": "^7.4.4"
146 | }
147 | },
148 | "@babel/helper-member-expression-to-functions": {
149 | "version": "7.5.5",
150 | "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.5.5.tgz",
151 | "integrity": "sha512-5qZ3D1uMclSNqYcXqiHoA0meVdv+xUEex9em2fqMnrk/scphGlGgg66zjMrPJESPwrFJ6sbfFQYUSa0Mz7FabA==",
152 | "dev": true,
153 | "requires": {
154 | "@babel/types": "^7.5.5"
155 | }
156 | },
157 | "@babel/helper-module-imports": {
158 | "version": "7.0.0",
159 | "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz",
160 | "integrity": "sha512-aP/hlLq01DWNEiDg4Jn23i+CXxW/owM4WpDLFUbpjxe4NS3BhLVZQ5i7E0ZrxuQ/vwekIeciyamgB1UIYxxM6A==",
161 | "dev": true,
162 | "requires": {
163 | "@babel/types": "^7.0.0"
164 | }
165 | },
166 | "@babel/helper-module-transforms": {
167 | "version": "7.5.5",
168 | "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.5.5.tgz",
169 | "integrity": "sha512-jBeCvETKuJqeiaCdyaheF40aXnnU1+wkSiUs/IQg3tB85up1LyL8x77ClY8qJpuRJUcXQo+ZtdNESmZl4j56Pw==",
170 | "dev": true,
171 | "requires": {
172 | "@babel/helper-module-imports": "^7.0.0",
173 | "@babel/helper-simple-access": "^7.1.0",
174 | "@babel/helper-split-export-declaration": "^7.4.4",
175 | "@babel/template": "^7.4.4",
176 | "@babel/types": "^7.5.5",
177 | "lodash": "^4.17.13"
178 | }
179 | },
180 | "@babel/helper-optimise-call-expression": {
181 | "version": "7.0.0",
182 | "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0.tgz",
183 | "integrity": "sha512-u8nd9NQePYNQV8iPWu/pLLYBqZBa4ZaY1YWRFMuxrid94wKI1QNt67NEZ7GAe5Kc/0LLScbim05xZFWkAdrj9g==",
184 | "dev": true,
185 | "requires": {
186 | "@babel/types": "^7.0.0"
187 | }
188 | },
189 | "@babel/helper-plugin-utils": {
190 | "version": "7.0.0",
191 | "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz",
192 | "integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==",
193 | "dev": true
194 | },
195 | "@babel/helper-regex": {
196 | "version": "7.5.5",
197 | "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.5.5.tgz",
198 | "integrity": "sha512-CkCYQLkfkiugbRDO8eZn6lRuR8kzZoGXCg3149iTk5se7g6qykSpy3+hELSwquhu+TgHn8nkLiBwHvNX8Hofcw==",
199 | "dev": true,
200 | "requires": {
201 | "lodash": "^4.17.13"
202 | }
203 | },
204 | "@babel/helper-remap-async-to-generator": {
205 | "version": "7.1.0",
206 | "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.1.0.tgz",
207 | "integrity": "sha512-3fOK0L+Fdlg8S5al8u/hWE6vhufGSn0bN09xm2LXMy//REAF8kDCrYoOBKYmA8m5Nom+sV9LyLCwrFynA8/slg==",
208 | "dev": true,
209 | "requires": {
210 | "@babel/helper-annotate-as-pure": "^7.0.0",
211 | "@babel/helper-wrap-function": "^7.1.0",
212 | "@babel/template": "^7.1.0",
213 | "@babel/traverse": "^7.1.0",
214 | "@babel/types": "^7.0.0"
215 | }
216 | },
217 | "@babel/helper-replace-supers": {
218 | "version": "7.5.5",
219 | "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.5.5.tgz",
220 | "integrity": "sha512-XvRFWrNnlsow2u7jXDuH4jDDctkxbS7gXssrP4q2nUD606ukXHRvydj346wmNg+zAgpFx4MWf4+usfC93bElJg==",
221 | "dev": true,
222 | "requires": {
223 | "@babel/helper-member-expression-to-functions": "^7.5.5",
224 | "@babel/helper-optimise-call-expression": "^7.0.0",
225 | "@babel/traverse": "^7.5.5",
226 | "@babel/types": "^7.5.5"
227 | }
228 | },
229 | "@babel/helper-simple-access": {
230 | "version": "7.1.0",
231 | "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz",
232 | "integrity": "sha512-Vk+78hNjRbsiu49zAPALxTb+JUQCz1aolpd8osOF16BGnLtseD21nbHgLPGUwrXEurZgiCOUmvs3ExTu4F5x6w==",
233 | "dev": true,
234 | "requires": {
235 | "@babel/template": "^7.1.0",
236 | "@babel/types": "^7.0.0"
237 | }
238 | },
239 | "@babel/helper-split-export-declaration": {
240 | "version": "7.4.4",
241 | "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz",
242 | "integrity": "sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q==",
243 | "dev": true,
244 | "requires": {
245 | "@babel/types": "^7.4.4"
246 | }
247 | },
248 | "@babel/helper-wrap-function": {
249 | "version": "7.2.0",
250 | "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.2.0.tgz",
251 | "integrity": "sha512-o9fP1BZLLSrYlxYEYyl2aS+Flun5gtjTIG8iln+XuEzQTs0PLagAGSXUcqruJwD5fM48jzIEggCKpIfWTcR7pQ==",
252 | "dev": true,
253 | "requires": {
254 | "@babel/helper-function-name": "^7.1.0",
255 | "@babel/template": "^7.1.0",
256 | "@babel/traverse": "^7.1.0",
257 | "@babel/types": "^7.2.0"
258 | }
259 | },
260 | "@babel/helpers": {
261 | "version": "7.6.0",
262 | "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.6.0.tgz",
263 | "integrity": "sha512-W9kao7OBleOjfXtFGgArGRX6eCP0UEcA2ZWEWNkJdRZnHhW4eEbeswbG3EwaRsnQUAEGWYgMq1HsIXuNNNy2eQ==",
264 | "dev": true,
265 | "requires": {
266 | "@babel/template": "^7.6.0",
267 | "@babel/traverse": "^7.6.0",
268 | "@babel/types": "^7.6.0"
269 | }
270 | },
271 | "@babel/highlight": {
272 | "version": "7.5.0",
273 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz",
274 | "integrity": "sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ==",
275 | "dev": true,
276 | "requires": {
277 | "chalk": "^2.0.0",
278 | "esutils": "^2.0.2",
279 | "js-tokens": "^4.0.0"
280 | }
281 | },
282 | "@babel/parser": {
283 | "version": "7.6.0",
284 | "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.6.0.tgz",
285 | "integrity": "sha512-+o2q111WEx4srBs7L9eJmcwi655eD8sXniLqMB93TBK9GrNzGrxDWSjiqz2hLU0Ha8MTXFIP0yd9fNdP+m43ZQ==",
286 | "dev": true
287 | },
288 | "@babel/plugin-proposal-async-generator-functions": {
289 | "version": "7.2.0",
290 | "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.2.0.tgz",
291 | "integrity": "sha512-+Dfo/SCQqrwx48ptLVGLdE39YtWRuKc/Y9I5Fy0P1DDBB9lsAHpjcEJQt+4IifuSOSTLBKJObJqMvaO1pIE8LQ==",
292 | "dev": true,
293 | "requires": {
294 | "@babel/helper-plugin-utils": "^7.0.0",
295 | "@babel/helper-remap-async-to-generator": "^7.1.0",
296 | "@babel/plugin-syntax-async-generators": "^7.2.0"
297 | }
298 | },
299 | "@babel/plugin-proposal-dynamic-import": {
300 | "version": "7.5.0",
301 | "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.5.0.tgz",
302 | "integrity": "sha512-x/iMjggsKTFHYC6g11PL7Qy58IK8H5zqfm9e6hu4z1iH2IRyAp9u9dL80zA6R76yFovETFLKz2VJIC2iIPBuFw==",
303 | "dev": true,
304 | "requires": {
305 | "@babel/helper-plugin-utils": "^7.0.0",
306 | "@babel/plugin-syntax-dynamic-import": "^7.2.0"
307 | }
308 | },
309 | "@babel/plugin-proposal-json-strings": {
310 | "version": "7.2.0",
311 | "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.2.0.tgz",
312 | "integrity": "sha512-MAFV1CA/YVmYwZG0fBQyXhmj0BHCB5egZHCKWIFVv/XCxAeVGIHfos3SwDck4LvCllENIAg7xMKOG5kH0dzyUg==",
313 | "dev": true,
314 | "requires": {
315 | "@babel/helper-plugin-utils": "^7.0.0",
316 | "@babel/plugin-syntax-json-strings": "^7.2.0"
317 | }
318 | },
319 | "@babel/plugin-proposal-object-rest-spread": {
320 | "version": "7.5.5",
321 | "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.5.5.tgz",
322 | "integrity": "sha512-F2DxJJSQ7f64FyTVl5cw/9MWn6naXGdk3Q3UhDbFEEHv+EilCPoeRD3Zh/Utx1CJz4uyKlQ4uH+bJPbEhMV7Zw==",
323 | "dev": true,
324 | "requires": {
325 | "@babel/helper-plugin-utils": "^7.0.0",
326 | "@babel/plugin-syntax-object-rest-spread": "^7.2.0"
327 | }
328 | },
329 | "@babel/plugin-proposal-optional-catch-binding": {
330 | "version": "7.2.0",
331 | "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.2.0.tgz",
332 | "integrity": "sha512-mgYj3jCcxug6KUcX4OBoOJz3CMrwRfQELPQ5560F70YQUBZB7uac9fqaWamKR1iWUzGiK2t0ygzjTScZnVz75g==",
333 | "dev": true,
334 | "requires": {
335 | "@babel/helper-plugin-utils": "^7.0.0",
336 | "@babel/plugin-syntax-optional-catch-binding": "^7.2.0"
337 | }
338 | },
339 | "@babel/plugin-proposal-unicode-property-regex": {
340 | "version": "7.4.4",
341 | "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.4.4.tgz",
342 | "integrity": "sha512-j1NwnOqMG9mFUOH58JTFsA/+ZYzQLUZ/drqWUqxCYLGeu2JFZL8YrNC9hBxKmWtAuOCHPcRpgv7fhap09Fb4kA==",
343 | "dev": true,
344 | "requires": {
345 | "@babel/helper-plugin-utils": "^7.0.0",
346 | "@babel/helper-regex": "^7.4.4",
347 | "regexpu-core": "^4.5.4"
348 | }
349 | },
350 | "@babel/plugin-syntax-async-generators": {
351 | "version": "7.2.0",
352 | "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.2.0.tgz",
353 | "integrity": "sha512-1ZrIRBv2t0GSlcwVoQ6VgSLpLgiN/FVQUzt9znxo7v2Ov4jJrs8RY8tv0wvDmFN3qIdMKWrmMMW6yZ0G19MfGg==",
354 | "dev": true,
355 | "requires": {
356 | "@babel/helper-plugin-utils": "^7.0.0"
357 | }
358 | },
359 | "@babel/plugin-syntax-dynamic-import": {
360 | "version": "7.2.0",
361 | "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.2.0.tgz",
362 | "integrity": "sha512-mVxuJ0YroI/h/tbFTPGZR8cv6ai+STMKNBq0f8hFxsxWjl94qqhsb+wXbpNMDPU3cfR1TIsVFzU3nXyZMqyK4w==",
363 | "dev": true,
364 | "requires": {
365 | "@babel/helper-plugin-utils": "^7.0.0"
366 | }
367 | },
368 | "@babel/plugin-syntax-json-strings": {
369 | "version": "7.2.0",
370 | "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.2.0.tgz",
371 | "integrity": "sha512-5UGYnMSLRE1dqqZwug+1LISpA403HzlSfsg6P9VXU6TBjcSHeNlw4DxDx7LgpF+iKZoOG/+uzqoRHTdcUpiZNg==",
372 | "dev": true,
373 | "requires": {
374 | "@babel/helper-plugin-utils": "^7.0.0"
375 | }
376 | },
377 | "@babel/plugin-syntax-object-rest-spread": {
378 | "version": "7.2.0",
379 | "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz",
380 | "integrity": "sha512-t0JKGgqk2We+9may3t0xDdmneaXmyxq0xieYcKHxIsrJO64n1OiMWNUtc5gQK1PA0NpdCRrtZp4z+IUaKugrSA==",
381 | "dev": true,
382 | "requires": {
383 | "@babel/helper-plugin-utils": "^7.0.0"
384 | }
385 | },
386 | "@babel/plugin-syntax-optional-catch-binding": {
387 | "version": "7.2.0",
388 | "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.2.0.tgz",
389 | "integrity": "sha512-bDe4xKNhb0LI7IvZHiA13kff0KEfaGX/Hv4lMA9+7TEc63hMNvfKo6ZFpXhKuEp+II/q35Gc4NoMeDZyaUbj9w==",
390 | "dev": true,
391 | "requires": {
392 | "@babel/helper-plugin-utils": "^7.0.0"
393 | }
394 | },
395 | "@babel/plugin-transform-arrow-functions": {
396 | "version": "7.2.0",
397 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.2.0.tgz",
398 | "integrity": "sha512-ER77Cax1+8/8jCB9fo4Ud161OZzWN5qawi4GusDuRLcDbDG+bIGYY20zb2dfAFdTRGzrfq2xZPvF0R64EHnimg==",
399 | "dev": true,
400 | "requires": {
401 | "@babel/helper-plugin-utils": "^7.0.0"
402 | }
403 | },
404 | "@babel/plugin-transform-async-to-generator": {
405 | "version": "7.5.0",
406 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.5.0.tgz",
407 | "integrity": "sha512-mqvkzwIGkq0bEF1zLRRiTdjfomZJDV33AH3oQzHVGkI2VzEmXLpKKOBvEVaFZBJdN0XTyH38s9j/Kiqr68dggg==",
408 | "dev": true,
409 | "requires": {
410 | "@babel/helper-module-imports": "^7.0.0",
411 | "@babel/helper-plugin-utils": "^7.0.0",
412 | "@babel/helper-remap-async-to-generator": "^7.1.0"
413 | }
414 | },
415 | "@babel/plugin-transform-block-scoped-functions": {
416 | "version": "7.2.0",
417 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.2.0.tgz",
418 | "integrity": "sha512-ntQPR6q1/NKuphly49+QiQiTN0O63uOwjdD6dhIjSWBI5xlrbUFh720TIpzBhpnrLfv2tNH/BXvLIab1+BAI0w==",
419 | "dev": true,
420 | "requires": {
421 | "@babel/helper-plugin-utils": "^7.0.0"
422 | }
423 | },
424 | "@babel/plugin-transform-block-scoping": {
425 | "version": "7.6.0",
426 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.6.0.tgz",
427 | "integrity": "sha512-tIt4E23+kw6TgL/edACZwP1OUKrjOTyMrFMLoT5IOFrfMRabCgekjqFd5o6PaAMildBu46oFkekIdMuGkkPEpA==",
428 | "dev": true,
429 | "requires": {
430 | "@babel/helper-plugin-utils": "^7.0.0",
431 | "lodash": "^4.17.13"
432 | }
433 | },
434 | "@babel/plugin-transform-classes": {
435 | "version": "7.5.5",
436 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.5.5.tgz",
437 | "integrity": "sha512-U2htCNK/6e9K7jGyJ++1p5XRU+LJjrwtoiVn9SzRlDT2KubcZ11OOwy3s24TjHxPgxNwonCYP7U2K51uVYCMDg==",
438 | "dev": true,
439 | "requires": {
440 | "@babel/helper-annotate-as-pure": "^7.0.0",
441 | "@babel/helper-define-map": "^7.5.5",
442 | "@babel/helper-function-name": "^7.1.0",
443 | "@babel/helper-optimise-call-expression": "^7.0.0",
444 | "@babel/helper-plugin-utils": "^7.0.0",
445 | "@babel/helper-replace-supers": "^7.5.5",
446 | "@babel/helper-split-export-declaration": "^7.4.4",
447 | "globals": "^11.1.0"
448 | }
449 | },
450 | "@babel/plugin-transform-computed-properties": {
451 | "version": "7.2.0",
452 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.2.0.tgz",
453 | "integrity": "sha512-kP/drqTxY6Xt3NNpKiMomfgkNn4o7+vKxK2DDKcBG9sHj51vHqMBGy8wbDS/J4lMxnqs153/T3+DmCEAkC5cpA==",
454 | "dev": true,
455 | "requires": {
456 | "@babel/helper-plugin-utils": "^7.0.0"
457 | }
458 | },
459 | "@babel/plugin-transform-destructuring": {
460 | "version": "7.6.0",
461 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.6.0.tgz",
462 | "integrity": "sha512-2bGIS5P1v4+sWTCnKNDZDxbGvEqi0ijeqM/YqHtVGrvG2y0ySgnEEhXErvE9dA0bnIzY9bIzdFK0jFA46ASIIQ==",
463 | "dev": true,
464 | "requires": {
465 | "@babel/helper-plugin-utils": "^7.0.0"
466 | }
467 | },
468 | "@babel/plugin-transform-dotall-regex": {
469 | "version": "7.4.4",
470 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.4.4.tgz",
471 | "integrity": "sha512-P05YEhRc2h53lZDjRPk/OektxCVevFzZs2Gfjd545Wde3k+yFDbXORgl2e0xpbq8mLcKJ7Idss4fAg0zORN/zg==",
472 | "dev": true,
473 | "requires": {
474 | "@babel/helper-plugin-utils": "^7.0.0",
475 | "@babel/helper-regex": "^7.4.4",
476 | "regexpu-core": "^4.5.4"
477 | }
478 | },
479 | "@babel/plugin-transform-duplicate-keys": {
480 | "version": "7.5.0",
481 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.5.0.tgz",
482 | "integrity": "sha512-igcziksHizyQPlX9gfSjHkE2wmoCH3evvD2qR5w29/Dk0SMKE/eOI7f1HhBdNhR/zxJDqrgpoDTq5YSLH/XMsQ==",
483 | "dev": true,
484 | "requires": {
485 | "@babel/helper-plugin-utils": "^7.0.0"
486 | }
487 | },
488 | "@babel/plugin-transform-exponentiation-operator": {
489 | "version": "7.2.0",
490 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.2.0.tgz",
491 | "integrity": "sha512-umh4hR6N7mu4Elq9GG8TOu9M0bakvlsREEC+ialrQN6ABS4oDQ69qJv1VtR3uxlKMCQMCvzk7vr17RHKcjx68A==",
492 | "dev": true,
493 | "requires": {
494 | "@babel/helper-builder-binary-assignment-operator-visitor": "^7.1.0",
495 | "@babel/helper-plugin-utils": "^7.0.0"
496 | }
497 | },
498 | "@babel/plugin-transform-for-of": {
499 | "version": "7.4.4",
500 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.4.4.tgz",
501 | "integrity": "sha512-9T/5Dlr14Z9TIEXLXkt8T1DU7F24cbhwhMNUziN3hB1AXoZcdzPcTiKGRn/6iOymDqtTKWnr/BtRKN9JwbKtdQ==",
502 | "dev": true,
503 | "requires": {
504 | "@babel/helper-plugin-utils": "^7.0.0"
505 | }
506 | },
507 | "@babel/plugin-transform-function-name": {
508 | "version": "7.4.4",
509 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.4.4.tgz",
510 | "integrity": "sha512-iU9pv7U+2jC9ANQkKeNF6DrPy4GBa4NWQtl6dHB4Pb3izX2JOEvDTFarlNsBj/63ZEzNNIAMs3Qw4fNCcSOXJA==",
511 | "dev": true,
512 | "requires": {
513 | "@babel/helper-function-name": "^7.1.0",
514 | "@babel/helper-plugin-utils": "^7.0.0"
515 | }
516 | },
517 | "@babel/plugin-transform-literals": {
518 | "version": "7.2.0",
519 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.2.0.tgz",
520 | "integrity": "sha512-2ThDhm4lI4oV7fVQ6pNNK+sx+c/GM5/SaML0w/r4ZB7sAneD/piDJtwdKlNckXeyGK7wlwg2E2w33C/Hh+VFCg==",
521 | "dev": true,
522 | "requires": {
523 | "@babel/helper-plugin-utils": "^7.0.0"
524 | }
525 | },
526 | "@babel/plugin-transform-member-expression-literals": {
527 | "version": "7.2.0",
528 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.2.0.tgz",
529 | "integrity": "sha512-HiU3zKkSU6scTidmnFJ0bMX8hz5ixC93b4MHMiYebmk2lUVNGOboPsqQvx5LzooihijUoLR/v7Nc1rbBtnc7FA==",
530 | "dev": true,
531 | "requires": {
532 | "@babel/helper-plugin-utils": "^7.0.0"
533 | }
534 | },
535 | "@babel/plugin-transform-modules-amd": {
536 | "version": "7.5.0",
537 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.5.0.tgz",
538 | "integrity": "sha512-n20UsQMKnWrltocZZm24cRURxQnWIvsABPJlw/fvoy9c6AgHZzoelAIzajDHAQrDpuKFFPPcFGd7ChsYuIUMpg==",
539 | "dev": true,
540 | "requires": {
541 | "@babel/helper-module-transforms": "^7.1.0",
542 | "@babel/helper-plugin-utils": "^7.0.0",
543 | "babel-plugin-dynamic-import-node": "^2.3.0"
544 | }
545 | },
546 | "@babel/plugin-transform-modules-commonjs": {
547 | "version": "7.6.0",
548 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.6.0.tgz",
549 | "integrity": "sha512-Ma93Ix95PNSEngqomy5LSBMAQvYKVe3dy+JlVJSHEXZR5ASL9lQBedMiCyVtmTLraIDVRE3ZjTZvmXXD2Ozw3g==",
550 | "dev": true,
551 | "requires": {
552 | "@babel/helper-module-transforms": "^7.4.4",
553 | "@babel/helper-plugin-utils": "^7.0.0",
554 | "@babel/helper-simple-access": "^7.1.0",
555 | "babel-plugin-dynamic-import-node": "^2.3.0"
556 | }
557 | },
558 | "@babel/plugin-transform-modules-systemjs": {
559 | "version": "7.5.0",
560 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.5.0.tgz",
561 | "integrity": "sha512-Q2m56tyoQWmuNGxEtUyeEkm6qJYFqs4c+XyXH5RAuYxObRNz9Zgj/1g2GMnjYp2EUyEy7YTrxliGCXzecl/vJg==",
562 | "dev": true,
563 | "requires": {
564 | "@babel/helper-hoist-variables": "^7.4.4",
565 | "@babel/helper-plugin-utils": "^7.0.0",
566 | "babel-plugin-dynamic-import-node": "^2.3.0"
567 | }
568 | },
569 | "@babel/plugin-transform-modules-umd": {
570 | "version": "7.2.0",
571 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.2.0.tgz",
572 | "integrity": "sha512-BV3bw6MyUH1iIsGhXlOK6sXhmSarZjtJ/vMiD9dNmpY8QXFFQTj+6v92pcfy1iqa8DeAfJFwoxcrS/TUZda6sw==",
573 | "dev": true,
574 | "requires": {
575 | "@babel/helper-module-transforms": "^7.1.0",
576 | "@babel/helper-plugin-utils": "^7.0.0"
577 | }
578 | },
579 | "@babel/plugin-transform-named-capturing-groups-regex": {
580 | "version": "7.6.0",
581 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.6.0.tgz",
582 | "integrity": "sha512-jem7uytlmrRl3iCAuQyw8BpB4c4LWvSpvIeXKpMb+7j84lkx4m4mYr5ErAcmN5KM7B6BqrAvRGjBIbbzqCczew==",
583 | "dev": true,
584 | "requires": {
585 | "regexp-tree": "^0.1.13"
586 | }
587 | },
588 | "@babel/plugin-transform-new-target": {
589 | "version": "7.4.4",
590 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.4.4.tgz",
591 | "integrity": "sha512-r1z3T2DNGQwwe2vPGZMBNjioT2scgWzK9BCnDEh+46z8EEwXBq24uRzd65I7pjtugzPSj921aM15RpESgzsSuA==",
592 | "dev": true,
593 | "requires": {
594 | "@babel/helper-plugin-utils": "^7.0.0"
595 | }
596 | },
597 | "@babel/plugin-transform-object-super": {
598 | "version": "7.5.5",
599 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.5.5.tgz",
600 | "integrity": "sha512-un1zJQAhSosGFBduPgN/YFNvWVpRuHKU7IHBglLoLZsGmruJPOo6pbInneflUdmq7YvSVqhpPs5zdBvLnteltQ==",
601 | "dev": true,
602 | "requires": {
603 | "@babel/helper-plugin-utils": "^7.0.0",
604 | "@babel/helper-replace-supers": "^7.5.5"
605 | }
606 | },
607 | "@babel/plugin-transform-parameters": {
608 | "version": "7.4.4",
609 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.4.4.tgz",
610 | "integrity": "sha512-oMh5DUO1V63nZcu/ZVLQFqiihBGo4OpxJxR1otF50GMeCLiRx5nUdtokd+u9SuVJrvvuIh9OosRFPP4pIPnwmw==",
611 | "dev": true,
612 | "requires": {
613 | "@babel/helper-call-delegate": "^7.4.4",
614 | "@babel/helper-get-function-arity": "^7.0.0",
615 | "@babel/helper-plugin-utils": "^7.0.0"
616 | }
617 | },
618 | "@babel/plugin-transform-property-literals": {
619 | "version": "7.2.0",
620 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.2.0.tgz",
621 | "integrity": "sha512-9q7Dbk4RhgcLp8ebduOpCbtjh7C0itoLYHXd9ueASKAG/is5PQtMR5VJGka9NKqGhYEGn5ITahd4h9QeBMylWQ==",
622 | "dev": true,
623 | "requires": {
624 | "@babel/helper-plugin-utils": "^7.0.0"
625 | }
626 | },
627 | "@babel/plugin-transform-regenerator": {
628 | "version": "7.4.5",
629 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.4.5.tgz",
630 | "integrity": "sha512-gBKRh5qAaCWntnd09S8QC7r3auLCqq5DI6O0DlfoyDjslSBVqBibrMdsqO+Uhmx3+BlOmE/Kw1HFxmGbv0N9dA==",
631 | "dev": true,
632 | "requires": {
633 | "regenerator-transform": "^0.14.0"
634 | }
635 | },
636 | "@babel/plugin-transform-reserved-words": {
637 | "version": "7.2.0",
638 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.2.0.tgz",
639 | "integrity": "sha512-fz43fqW8E1tAB3DKF19/vxbpib1fuyCwSPE418ge5ZxILnBhWyhtPgz8eh1RCGGJlwvksHkyxMxh0eenFi+kFw==",
640 | "dev": true,
641 | "requires": {
642 | "@babel/helper-plugin-utils": "^7.0.0"
643 | }
644 | },
645 | "@babel/plugin-transform-runtime": {
646 | "version": "7.6.0",
647 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.6.0.tgz",
648 | "integrity": "sha512-Da8tMf7uClzwUm/pnJ1S93m/aRXmoYNDD7TkHua8xBDdaAs54uZpTWvEt6NGwmoVMb9mZbntfTqmG2oSzN/7Vg==",
649 | "dev": true,
650 | "requires": {
651 | "@babel/helper-module-imports": "^7.0.0",
652 | "@babel/helper-plugin-utils": "^7.0.0",
653 | "resolve": "^1.8.1",
654 | "semver": "^5.5.1"
655 | }
656 | },
657 | "@babel/plugin-transform-shorthand-properties": {
658 | "version": "7.2.0",
659 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.2.0.tgz",
660 | "integrity": "sha512-QP4eUM83ha9zmYtpbnyjTLAGKQritA5XW/iG9cjtuOI8s1RuL/3V6a3DeSHfKutJQ+ayUfeZJPcnCYEQzaPQqg==",
661 | "dev": true,
662 | "requires": {
663 | "@babel/helper-plugin-utils": "^7.0.0"
664 | }
665 | },
666 | "@babel/plugin-transform-spread": {
667 | "version": "7.2.2",
668 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.2.2.tgz",
669 | "integrity": "sha512-KWfky/58vubwtS0hLqEnrWJjsMGaOeSBn90Ezn5Jeg9Z8KKHmELbP1yGylMlm5N6TPKeY9A2+UaSYLdxahg01w==",
670 | "dev": true,
671 | "requires": {
672 | "@babel/helper-plugin-utils": "^7.0.0"
673 | }
674 | },
675 | "@babel/plugin-transform-sticky-regex": {
676 | "version": "7.2.0",
677 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.2.0.tgz",
678 | "integrity": "sha512-KKYCoGaRAf+ckH8gEL3JHUaFVyNHKe3ASNsZ+AlktgHevvxGigoIttrEJb8iKN03Q7Eazlv1s6cx2B2cQ3Jabw==",
679 | "dev": true,
680 | "requires": {
681 | "@babel/helper-plugin-utils": "^7.0.0",
682 | "@babel/helper-regex": "^7.0.0"
683 | }
684 | },
685 | "@babel/plugin-transform-template-literals": {
686 | "version": "7.4.4",
687 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.4.4.tgz",
688 | "integrity": "sha512-mQrEC4TWkhLN0z8ygIvEL9ZEToPhG5K7KDW3pzGqOfIGZ28Jb0POUkeWcoz8HnHvhFy6dwAT1j8OzqN8s804+g==",
689 | "dev": true,
690 | "requires": {
691 | "@babel/helper-annotate-as-pure": "^7.0.0",
692 | "@babel/helper-plugin-utils": "^7.0.0"
693 | }
694 | },
695 | "@babel/plugin-transform-typeof-symbol": {
696 | "version": "7.2.0",
697 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.2.0.tgz",
698 | "integrity": "sha512-2LNhETWYxiYysBtrBTqL8+La0jIoQQnIScUJc74OYvUGRmkskNY4EzLCnjHBzdmb38wqtTaixpo1NctEcvMDZw==",
699 | "dev": true,
700 | "requires": {
701 | "@babel/helper-plugin-utils": "^7.0.0"
702 | }
703 | },
704 | "@babel/plugin-transform-unicode-regex": {
705 | "version": "7.4.4",
706 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.4.4.tgz",
707 | "integrity": "sha512-il+/XdNw01i93+M9J9u4T7/e/Ue/vWfNZE4IRUQjplu2Mqb/AFTDimkw2tdEdSH50wuQXZAbXSql0UphQke+vA==",
708 | "dev": true,
709 | "requires": {
710 | "@babel/helper-plugin-utils": "^7.0.0",
711 | "@babel/helper-regex": "^7.4.4",
712 | "regexpu-core": "^4.5.4"
713 | }
714 | },
715 | "@babel/preset-env": {
716 | "version": "7.6.0",
717 | "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.6.0.tgz",
718 | "integrity": "sha512-1efzxFv/TcPsNXlRhMzRnkBFMeIqBBgzwmZwlFDw5Ubj0AGLeufxugirwZmkkX/ayi3owsSqoQ4fw8LkfK9SYg==",
719 | "dev": true,
720 | "requires": {
721 | "@babel/helper-module-imports": "^7.0.0",
722 | "@babel/helper-plugin-utils": "^7.0.0",
723 | "@babel/plugin-proposal-async-generator-functions": "^7.2.0",
724 | "@babel/plugin-proposal-dynamic-import": "^7.5.0",
725 | "@babel/plugin-proposal-json-strings": "^7.2.0",
726 | "@babel/plugin-proposal-object-rest-spread": "^7.5.5",
727 | "@babel/plugin-proposal-optional-catch-binding": "^7.2.0",
728 | "@babel/plugin-proposal-unicode-property-regex": "^7.4.4",
729 | "@babel/plugin-syntax-async-generators": "^7.2.0",
730 | "@babel/plugin-syntax-dynamic-import": "^7.2.0",
731 | "@babel/plugin-syntax-json-strings": "^7.2.0",
732 | "@babel/plugin-syntax-object-rest-spread": "^7.2.0",
733 | "@babel/plugin-syntax-optional-catch-binding": "^7.2.0",
734 | "@babel/plugin-transform-arrow-functions": "^7.2.0",
735 | "@babel/plugin-transform-async-to-generator": "^7.5.0",
736 | "@babel/plugin-transform-block-scoped-functions": "^7.2.0",
737 | "@babel/plugin-transform-block-scoping": "^7.6.0",
738 | "@babel/plugin-transform-classes": "^7.5.5",
739 | "@babel/plugin-transform-computed-properties": "^7.2.0",
740 | "@babel/plugin-transform-destructuring": "^7.6.0",
741 | "@babel/plugin-transform-dotall-regex": "^7.4.4",
742 | "@babel/plugin-transform-duplicate-keys": "^7.5.0",
743 | "@babel/plugin-transform-exponentiation-operator": "^7.2.0",
744 | "@babel/plugin-transform-for-of": "^7.4.4",
745 | "@babel/plugin-transform-function-name": "^7.4.4",
746 | "@babel/plugin-transform-literals": "^7.2.0",
747 | "@babel/plugin-transform-member-expression-literals": "^7.2.0",
748 | "@babel/plugin-transform-modules-amd": "^7.5.0",
749 | "@babel/plugin-transform-modules-commonjs": "^7.6.0",
750 | "@babel/plugin-transform-modules-systemjs": "^7.5.0",
751 | "@babel/plugin-transform-modules-umd": "^7.2.0",
752 | "@babel/plugin-transform-named-capturing-groups-regex": "^7.6.0",
753 | "@babel/plugin-transform-new-target": "^7.4.4",
754 | "@babel/plugin-transform-object-super": "^7.5.5",
755 | "@babel/plugin-transform-parameters": "^7.4.4",
756 | "@babel/plugin-transform-property-literals": "^7.2.0",
757 | "@babel/plugin-transform-regenerator": "^7.4.5",
758 | "@babel/plugin-transform-reserved-words": "^7.2.0",
759 | "@babel/plugin-transform-shorthand-properties": "^7.2.0",
760 | "@babel/plugin-transform-spread": "^7.2.0",
761 | "@babel/plugin-transform-sticky-regex": "^7.2.0",
762 | "@babel/plugin-transform-template-literals": "^7.4.4",
763 | "@babel/plugin-transform-typeof-symbol": "^7.2.0",
764 | "@babel/plugin-transform-unicode-regex": "^7.4.4",
765 | "@babel/types": "^7.6.0",
766 | "browserslist": "^4.6.0",
767 | "core-js-compat": "^3.1.1",
768 | "invariant": "^2.2.2",
769 | "js-levenshtein": "^1.1.3",
770 | "semver": "^5.5.0"
771 | }
772 | },
773 | "@babel/runtime": {
774 | "version": "7.6.0",
775 | "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.6.0.tgz",
776 | "integrity": "sha512-89eSBLJsxNxOERC0Op4vd+0Bqm6wRMqMbFtV3i0/fbaWw/mJ8Q3eBvgX0G4SyrOOLCtbu98HspF8o09MRT+KzQ==",
777 | "dev": true,
778 | "requires": {
779 | "regenerator-runtime": "^0.13.2"
780 | }
781 | },
782 | "@babel/template": {
783 | "version": "7.6.0",
784 | "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.6.0.tgz",
785 | "integrity": "sha512-5AEH2EXD8euCk446b7edmgFdub/qfH1SN6Nii3+fyXP807QRx9Q73A2N5hNwRRslC2H9sNzaFhsPubkS4L8oNQ==",
786 | "dev": true,
787 | "requires": {
788 | "@babel/code-frame": "^7.0.0",
789 | "@babel/parser": "^7.6.0",
790 | "@babel/types": "^7.6.0"
791 | }
792 | },
793 | "@babel/traverse": {
794 | "version": "7.6.0",
795 | "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.6.0.tgz",
796 | "integrity": "sha512-93t52SaOBgml/xY74lsmt7xOR4ufYvhb5c5qiM6lu4J/dWGMAfAh6eKw4PjLes6DI6nQgearoxnFJk60YchpvQ==",
797 | "dev": true,
798 | "requires": {
799 | "@babel/code-frame": "^7.5.5",
800 | "@babel/generator": "^7.6.0",
801 | "@babel/helper-function-name": "^7.1.0",
802 | "@babel/helper-split-export-declaration": "^7.4.4",
803 | "@babel/parser": "^7.6.0",
804 | "@babel/types": "^7.6.0",
805 | "debug": "^4.1.0",
806 | "globals": "^11.1.0",
807 | "lodash": "^4.17.13"
808 | },
809 | "dependencies": {
810 | "debug": {
811 | "version": "4.1.1",
812 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
813 | "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
814 | "dev": true,
815 | "requires": {
816 | "ms": "^2.1.1"
817 | }
818 | },
819 | "ms": {
820 | "version": "2.1.2",
821 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
822 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
823 | "dev": true
824 | }
825 | }
826 | },
827 | "@babel/types": {
828 | "version": "7.6.1",
829 | "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.6.1.tgz",
830 | "integrity": "sha512-X7gdiuaCmA0uRjCmRtYJNAVCc/q+5xSgsfKJHqMN4iNLILX39677fJE1O40arPMh0TTtS9ItH67yre6c7k6t0g==",
831 | "dev": true,
832 | "requires": {
833 | "esutils": "^2.0.2",
834 | "lodash": "^4.17.13",
835 | "to-fast-properties": "^2.0.0"
836 | }
837 | },
838 | "@beyonk/async-script-loader": {
839 | "version": "1.0.3",
840 | "resolved": "https://registry.npmjs.org/@beyonk/async-script-loader/-/async-script-loader-1.0.3.tgz",
841 | "integrity": "sha512-EX204cmtpjHRyyGsNzkIvOX74OdzP974ICvAT67/7EH0eSHoAKRTvqA9b6s1bKk6Phx1JR5ReSOAI4dbjj72uA==",
842 | "dev": true
843 | },
844 | "@polka/url": {
845 | "version": "1.0.0-next.3",
846 | "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.3.tgz",
847 | "integrity": "sha512-Uom7l6OeP6vcf85lMImelYu5WKVWjXyhkpi9WsRdRzlJFJFPVhjBtBCktgDUj7dk1N5FURUdegSZ5XOjxf8JZg=="
848 | },
849 | "@types/estree": {
850 | "version": "0.0.39",
851 | "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz",
852 | "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==",
853 | "dev": true
854 | },
855 | "@types/node": {
856 | "version": "12.7.5",
857 | "resolved": "https://registry.npmjs.org/@types/node/-/node-12.7.5.tgz",
858 | "integrity": "sha512-9fq4jZVhPNW8r+UYKnxF1e2HkDWOWKM5bC2/7c9wPV835I0aOrVbS/Hw/pWPk2uKrNXQqg9Z959Kz+IYDd5p3w==",
859 | "dev": true
860 | },
861 | "@types/resolve": {
862 | "version": "0.0.8",
863 | "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.8.tgz",
864 | "integrity": "sha512-auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ==",
865 | "dev": true,
866 | "requires": {
867 | "@types/node": "*"
868 | }
869 | },
870 | "accepts": {
871 | "version": "1.3.7",
872 | "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
873 | "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==",
874 | "requires": {
875 | "mime-types": "~2.1.24",
876 | "negotiator": "0.6.2"
877 | }
878 | },
879 | "acorn": {
880 | "version": "7.0.0",
881 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.0.0.tgz",
882 | "integrity": "sha512-PaF/MduxijYYt7unVGRuds1vBC9bFxbNf+VWqhOClfdgy7RlVkQqt610ig1/yxTgsDIfW1cWDel5EBbOy3jdtQ==",
883 | "dev": true
884 | },
885 | "ansi-styles": {
886 | "version": "3.2.1",
887 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
888 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
889 | "dev": true,
890 | "requires": {
891 | "color-convert": "^1.9.0"
892 | }
893 | },
894 | "anymatch": {
895 | "version": "3.1.0",
896 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.0.tgz",
897 | "integrity": "sha512-Ozz7l4ixzI7Oxj2+cw+p0tVUt27BpaJ+1+q1TCeANWxHpvyn2+Un+YamBdfKu0uh8xLodGhoa1v7595NhKDAuA==",
898 | "dev": true,
899 | "requires": {
900 | "normalize-path": "^3.0.0",
901 | "picomatch": "^2.0.4"
902 | }
903 | },
904 | "babel-plugin-dynamic-import-node": {
905 | "version": "2.3.0",
906 | "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz",
907 | "integrity": "sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ==",
908 | "dev": true,
909 | "requires": {
910 | "object.assign": "^4.1.0"
911 | }
912 | },
913 | "balanced-match": {
914 | "version": "1.0.0",
915 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
916 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
917 | "dev": true
918 | },
919 | "binary-extensions": {
920 | "version": "2.0.0",
921 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz",
922 | "integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==",
923 | "dev": true
924 | },
925 | "brace-expansion": {
926 | "version": "1.1.11",
927 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
928 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
929 | "dev": true,
930 | "requires": {
931 | "balanced-match": "^1.0.0",
932 | "concat-map": "0.0.1"
933 | }
934 | },
935 | "braces": {
936 | "version": "3.0.2",
937 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
938 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
939 | "dev": true,
940 | "requires": {
941 | "fill-range": "^7.0.1"
942 | }
943 | },
944 | "browserslist": {
945 | "version": "4.7.0",
946 | "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.7.0.tgz",
947 | "integrity": "sha512-9rGNDtnj+HaahxiVV38Gn8n8Lr8REKsel68v1sPFfIGEK6uSXTY3h9acgiT1dZVtOOUtifo/Dn8daDQ5dUgVsA==",
948 | "dev": true,
949 | "requires": {
950 | "caniuse-lite": "^1.0.30000989",
951 | "electron-to-chromium": "^1.3.247",
952 | "node-releases": "^1.1.29"
953 | }
954 | },
955 | "buffer-equal-constant-time": {
956 | "version": "1.0.1",
957 | "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz",
958 | "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=",
959 | "dev": true
960 | },
961 | "buffer-from": {
962 | "version": "1.1.1",
963 | "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
964 | "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==",
965 | "dev": true
966 | },
967 | "builtin-modules": {
968 | "version": "3.1.0",
969 | "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.1.0.tgz",
970 | "integrity": "sha512-k0KL0aWZuBt2lrxrcASWDfwOLMnodeQjodT/1SxEQAXsHANgo6ZC/VEaSEHCXt7aSTZ4/4H5LKa+tBXmW7Vtvw==",
971 | "dev": true
972 | },
973 | "bytes": {
974 | "version": "3.0.0",
975 | "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
976 | "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg="
977 | },
978 | "camel-case": {
979 | "version": "3.0.0",
980 | "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz",
981 | "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=",
982 | "dev": true,
983 | "requires": {
984 | "no-case": "^2.2.0",
985 | "upper-case": "^1.1.1"
986 | }
987 | },
988 | "caniuse-lite": {
989 | "version": "1.0.30000989",
990 | "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000989.tgz",
991 | "integrity": "sha512-vrMcvSuMz16YY6GSVZ0dWDTJP8jqk3iFQ/Aq5iqblPwxSVVZI+zxDyTX0VPqtQsDnfdrBDcsmhgTEOh5R8Lbpw==",
992 | "dev": true
993 | },
994 | "chalk": {
995 | "version": "2.4.2",
996 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
997 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
998 | "dev": true,
999 | "requires": {
1000 | "ansi-styles": "^3.2.1",
1001 | "escape-string-regexp": "^1.0.5",
1002 | "supports-color": "^5.3.0"
1003 | }
1004 | },
1005 | "chokidar": {
1006 | "version": "3.1.1",
1007 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.1.1.tgz",
1008 | "integrity": "sha512-df4o16uZmMHzVQwECZRHwfguOt5ixpuQVaZHjYMvYisgKhE+JXwcj/Tcr3+3bu/XeOJQ9ycYmzu7Mv8XrGxJDQ==",
1009 | "dev": true,
1010 | "requires": {
1011 | "anymatch": "^3.1.0",
1012 | "braces": "^3.0.2",
1013 | "fsevents": "^2.0.6",
1014 | "glob-parent": "^5.0.0",
1015 | "is-binary-path": "^2.1.0",
1016 | "is-glob": "^4.0.1",
1017 | "normalize-path": "^3.0.0",
1018 | "readdirp": "^3.1.1"
1019 | }
1020 | },
1021 | "clean-css": {
1022 | "version": "4.2.1",
1023 | "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.1.tgz",
1024 | "integrity": "sha512-4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g==",
1025 | "dev": true,
1026 | "requires": {
1027 | "source-map": "~0.6.0"
1028 | },
1029 | "dependencies": {
1030 | "source-map": {
1031 | "version": "0.6.1",
1032 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
1033 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
1034 | "dev": true
1035 | }
1036 | }
1037 | },
1038 | "color-convert": {
1039 | "version": "1.9.3",
1040 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
1041 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
1042 | "dev": true,
1043 | "requires": {
1044 | "color-name": "1.1.3"
1045 | }
1046 | },
1047 | "color-name": {
1048 | "version": "1.1.3",
1049 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
1050 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
1051 | "dev": true
1052 | },
1053 | "commander": {
1054 | "version": "2.20.0",
1055 | "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz",
1056 | "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==",
1057 | "dev": true
1058 | },
1059 | "compressible": {
1060 | "version": "2.0.17",
1061 | "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.17.tgz",
1062 | "integrity": "sha512-BGHeLCK1GV7j1bSmQQAi26X+GgWcTjLr/0tzSvMCl3LH1w1IJ4PFSPoV5316b30cneTziC+B1a+3OjoSUcQYmw==",
1063 | "requires": {
1064 | "mime-db": ">= 1.40.0 < 2"
1065 | }
1066 | },
1067 | "compression": {
1068 | "version": "1.7.4",
1069 | "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz",
1070 | "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==",
1071 | "requires": {
1072 | "accepts": "~1.3.5",
1073 | "bytes": "3.0.0",
1074 | "compressible": "~2.0.16",
1075 | "debug": "2.6.9",
1076 | "on-headers": "~1.0.2",
1077 | "safe-buffer": "5.1.2",
1078 | "vary": "~1.1.2"
1079 | }
1080 | },
1081 | "concat-map": {
1082 | "version": "0.0.1",
1083 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
1084 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
1085 | "dev": true
1086 | },
1087 | "config": {
1088 | "version": "3.2.2",
1089 | "resolved": "https://registry.npmjs.org/config/-/config-3.2.2.tgz",
1090 | "integrity": "sha512-rOsfIOAcG82AWouK4/vBS/OKz3UPl2T/kP0irExmXJJOoWg2CmdfPLdx56bCoMUMFNh+7soQkQWCUC8DyemiwQ==",
1091 | "dev": true,
1092 | "requires": {
1093 | "json5": "^1.0.1"
1094 | },
1095 | "dependencies": {
1096 | "json5": {
1097 | "version": "1.0.1",
1098 | "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
1099 | "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
1100 | "dev": true,
1101 | "requires": {
1102 | "minimist": "^1.2.0"
1103 | }
1104 | }
1105 | }
1106 | },
1107 | "convert-source-map": {
1108 | "version": "1.6.0",
1109 | "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz",
1110 | "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==",
1111 | "dev": true,
1112 | "requires": {
1113 | "safe-buffer": "~5.1.1"
1114 | }
1115 | },
1116 | "cookie": {
1117 | "version": "0.3.1",
1118 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz",
1119 | "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=",
1120 | "dev": true
1121 | },
1122 | "cookie-parser": {
1123 | "version": "1.4.4",
1124 | "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.4.tgz",
1125 | "integrity": "sha512-lo13tqF3JEtFO7FyA49CqbhaFkskRJ0u/UAiINgrIXeRCY41c88/zxtrECl8AKH3B0hj9q10+h3Kt8I7KlW4tw==",
1126 | "dev": true,
1127 | "requires": {
1128 | "cookie": "0.3.1",
1129 | "cookie-signature": "1.0.6"
1130 | }
1131 | },
1132 | "cookie-signature": {
1133 | "version": "1.0.6",
1134 | "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
1135 | "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=",
1136 | "dev": true
1137 | },
1138 | "core-js-compat": {
1139 | "version": "3.2.1",
1140 | "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.2.1.tgz",
1141 | "integrity": "sha512-MwPZle5CF9dEaMYdDeWm73ao/IflDH+FjeJCWEADcEgFSE9TLimFKwJsfmkwzI8eC0Aj0mgvMDjeQjrElkz4/A==",
1142 | "dev": true,
1143 | "requires": {
1144 | "browserslist": "^4.6.6",
1145 | "semver": "^6.3.0"
1146 | },
1147 | "dependencies": {
1148 | "semver": {
1149 | "version": "6.3.0",
1150 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
1151 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
1152 | "dev": true
1153 | }
1154 | }
1155 | },
1156 | "cross-spawn": {
1157 | "version": "6.0.5",
1158 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
1159 | "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
1160 | "dev": true,
1161 | "requires": {
1162 | "nice-try": "^1.0.4",
1163 | "path-key": "^2.0.1",
1164 | "semver": "^5.5.0",
1165 | "shebang-command": "^1.2.0",
1166 | "which": "^1.2.9"
1167 | }
1168 | },
1169 | "debug": {
1170 | "version": "2.6.9",
1171 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
1172 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
1173 | "requires": {
1174 | "ms": "2.0.0"
1175 | }
1176 | },
1177 | "define-properties": {
1178 | "version": "1.1.3",
1179 | "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
1180 | "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
1181 | "dev": true,
1182 | "requires": {
1183 | "object-keys": "^1.0.12"
1184 | }
1185 | },
1186 | "detect-indent": {
1187 | "version": "6.0.0",
1188 | "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.0.0.tgz",
1189 | "integrity": "sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA==",
1190 | "dev": true
1191 | },
1192 | "ecdsa-sig-formatter": {
1193 | "version": "1.0.11",
1194 | "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz",
1195 | "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==",
1196 | "dev": true,
1197 | "requires": {
1198 | "safe-buffer": "^5.0.1"
1199 | }
1200 | },
1201 | "electron-to-chromium": {
1202 | "version": "1.3.264",
1203 | "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.264.tgz",
1204 | "integrity": "sha512-z8E7WkrrquCuGYv+kKyybuZIbdms+4PeHp7Zm2uIgEhAigP0bOwqXILItwj0YO73o+QyHY/7XtEfP5DsHOWQgQ==",
1205 | "dev": true
1206 | },
1207 | "error-ex": {
1208 | "version": "1.3.2",
1209 | "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
1210 | "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
1211 | "dev": true,
1212 | "requires": {
1213 | "is-arrayish": "^0.2.1"
1214 | }
1215 | },
1216 | "es-abstract": {
1217 | "version": "1.14.2",
1218 | "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.14.2.tgz",
1219 | "integrity": "sha512-DgoQmbpFNOofkjJtKwr87Ma5EW4Dc8fWhD0R+ndq7Oc456ivUfGOOP6oAZTTKl5/CcNMP+EN+e3/iUzgE0veZg==",
1220 | "dev": true,
1221 | "requires": {
1222 | "es-to-primitive": "^1.2.0",
1223 | "function-bind": "^1.1.1",
1224 | "has": "^1.0.3",
1225 | "has-symbols": "^1.0.0",
1226 | "is-callable": "^1.1.4",
1227 | "is-regex": "^1.0.4",
1228 | "object-inspect": "^1.6.0",
1229 | "object-keys": "^1.1.1",
1230 | "string.prototype.trimleft": "^2.0.0",
1231 | "string.prototype.trimright": "^2.0.0"
1232 | }
1233 | },
1234 | "es-to-primitive": {
1235 | "version": "1.2.0",
1236 | "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz",
1237 | "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==",
1238 | "dev": true,
1239 | "requires": {
1240 | "is-callable": "^1.1.4",
1241 | "is-date-object": "^1.0.1",
1242 | "is-symbol": "^1.0.2"
1243 | }
1244 | },
1245 | "escape-string-regexp": {
1246 | "version": "1.0.5",
1247 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
1248 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
1249 | "dev": true
1250 | },
1251 | "estree-walker": {
1252 | "version": "0.6.1",
1253 | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz",
1254 | "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==",
1255 | "dev": true
1256 | },
1257 | "esutils": {
1258 | "version": "2.0.3",
1259 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
1260 | "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
1261 | "dev": true
1262 | },
1263 | "fill-range": {
1264 | "version": "7.0.1",
1265 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
1266 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
1267 | "dev": true,
1268 | "requires": {
1269 | "to-regex-range": "^5.0.1"
1270 | }
1271 | },
1272 | "fsevents": {
1273 | "version": "2.0.7",
1274 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.0.7.tgz",
1275 | "integrity": "sha512-a7YT0SV3RB+DjYcppwVDLtn13UQnmg0SWZS7ezZD0UjnLwXmy8Zm21GMVGLaFGimIqcvyMQaOJBrop8MyOp1kQ==",
1276 | "dev": true,
1277 | "optional": true
1278 | },
1279 | "function-bind": {
1280 | "version": "1.1.1",
1281 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
1282 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
1283 | "dev": true
1284 | },
1285 | "glob-parent": {
1286 | "version": "5.1.0",
1287 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.0.tgz",
1288 | "integrity": "sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==",
1289 | "dev": true,
1290 | "requires": {
1291 | "is-glob": "^4.0.1"
1292 | }
1293 | },
1294 | "globals": {
1295 | "version": "11.12.0",
1296 | "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
1297 | "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
1298 | "dev": true
1299 | },
1300 | "graceful-fs": {
1301 | "version": "4.2.2",
1302 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz",
1303 | "integrity": "sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q==",
1304 | "dev": true
1305 | },
1306 | "has": {
1307 | "version": "1.0.3",
1308 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
1309 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
1310 | "dev": true,
1311 | "requires": {
1312 | "function-bind": "^1.1.1"
1313 | }
1314 | },
1315 | "has-flag": {
1316 | "version": "3.0.0",
1317 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
1318 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
1319 | "dev": true
1320 | },
1321 | "has-symbols": {
1322 | "version": "1.0.0",
1323 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz",
1324 | "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=",
1325 | "dev": true
1326 | },
1327 | "he": {
1328 | "version": "1.2.0",
1329 | "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
1330 | "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
1331 | "dev": true
1332 | },
1333 | "hosted-git-info": {
1334 | "version": "2.8.4",
1335 | "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.4.tgz",
1336 | "integrity": "sha512-pzXIvANXEFrc5oFFXRMkbLPQ2rXRoDERwDLyrcUxGhaZhgP54BBSl9Oheh7Vv0T090cszWBxPjkQQ5Sq1PbBRQ==",
1337 | "dev": true
1338 | },
1339 | "html-minifier": {
1340 | "version": "4.0.0",
1341 | "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-4.0.0.tgz",
1342 | "integrity": "sha512-aoGxanpFPLg7MkIl/DDFYtb0iWz7jMFGqFhvEDZga6/4QTjneiD8I/NXL1x5aaoCp7FSIT6h/OhykDdPsbtMig==",
1343 | "dev": true,
1344 | "requires": {
1345 | "camel-case": "^3.0.0",
1346 | "clean-css": "^4.2.1",
1347 | "commander": "^2.19.0",
1348 | "he": "^1.2.0",
1349 | "param-case": "^2.1.1",
1350 | "relateurl": "^0.2.7",
1351 | "uglify-js": "^3.5.1"
1352 | }
1353 | },
1354 | "http-link-header": {
1355 | "version": "1.0.2",
1356 | "resolved": "https://registry.npmjs.org/http-link-header/-/http-link-header-1.0.2.tgz",
1357 | "integrity": "sha512-z6YOZ8ZEnejkcCWlGZzYXNa6i+ZaTfiTg3WhlV/YvnNya3W/RbX1bMVUMTuCrg/DrtTCQxaFCkXCz4FtLpcebg==",
1358 | "dev": true
1359 | },
1360 | "invariant": {
1361 | "version": "2.2.4",
1362 | "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz",
1363 | "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==",
1364 | "dev": true,
1365 | "requires": {
1366 | "loose-envify": "^1.0.0"
1367 | }
1368 | },
1369 | "is-arrayish": {
1370 | "version": "0.2.1",
1371 | "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
1372 | "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
1373 | "dev": true
1374 | },
1375 | "is-binary-path": {
1376 | "version": "2.1.0",
1377 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
1378 | "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
1379 | "dev": true,
1380 | "requires": {
1381 | "binary-extensions": "^2.0.0"
1382 | }
1383 | },
1384 | "is-callable": {
1385 | "version": "1.1.4",
1386 | "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz",
1387 | "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==",
1388 | "dev": true
1389 | },
1390 | "is-date-object": {
1391 | "version": "1.0.1",
1392 | "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz",
1393 | "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=",
1394 | "dev": true
1395 | },
1396 | "is-extglob": {
1397 | "version": "2.1.1",
1398 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
1399 | "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
1400 | "dev": true
1401 | },
1402 | "is-glob": {
1403 | "version": "4.0.1",
1404 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
1405 | "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
1406 | "dev": true,
1407 | "requires": {
1408 | "is-extglob": "^2.1.1"
1409 | }
1410 | },
1411 | "is-module": {
1412 | "version": "1.0.0",
1413 | "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz",
1414 | "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=",
1415 | "dev": true
1416 | },
1417 | "is-number": {
1418 | "version": "7.0.0",
1419 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
1420 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
1421 | "dev": true
1422 | },
1423 | "is-reference": {
1424 | "version": "1.1.3",
1425 | "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.1.3.tgz",
1426 | "integrity": "sha512-W1iHHv/oyBb2pPxkBxtaewxa1BC58Pn5J0hogyCdefwUIvb6R+TGbAcIa4qPNYLqLhb3EnOgUf2MQkkF76BcKw==",
1427 | "dev": true,
1428 | "requires": {
1429 | "@types/estree": "0.0.39"
1430 | }
1431 | },
1432 | "is-regex": {
1433 | "version": "1.0.4",
1434 | "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz",
1435 | "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=",
1436 | "dev": true,
1437 | "requires": {
1438 | "has": "^1.0.1"
1439 | }
1440 | },
1441 | "is-symbol": {
1442 | "version": "1.0.2",
1443 | "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz",
1444 | "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==",
1445 | "dev": true,
1446 | "requires": {
1447 | "has-symbols": "^1.0.0"
1448 | }
1449 | },
1450 | "isexe": {
1451 | "version": "2.0.0",
1452 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
1453 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
1454 | "dev": true
1455 | },
1456 | "jest-worker": {
1457 | "version": "24.9.0",
1458 | "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz",
1459 | "integrity": "sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==",
1460 | "dev": true,
1461 | "requires": {
1462 | "merge-stream": "^2.0.0",
1463 | "supports-color": "^6.1.0"
1464 | },
1465 | "dependencies": {
1466 | "supports-color": {
1467 | "version": "6.1.0",
1468 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
1469 | "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
1470 | "dev": true,
1471 | "requires": {
1472 | "has-flag": "^3.0.0"
1473 | }
1474 | }
1475 | }
1476 | },
1477 | "js-levenshtein": {
1478 | "version": "1.1.6",
1479 | "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz",
1480 | "integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==",
1481 | "dev": true
1482 | },
1483 | "js-tokens": {
1484 | "version": "4.0.0",
1485 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
1486 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
1487 | "dev": true
1488 | },
1489 | "jsesc": {
1490 | "version": "2.5.2",
1491 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
1492 | "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
1493 | "dev": true
1494 | },
1495 | "json-parse-better-errors": {
1496 | "version": "1.0.2",
1497 | "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
1498 | "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==",
1499 | "dev": true
1500 | },
1501 | "json5": {
1502 | "version": "2.1.0",
1503 | "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.0.tgz",
1504 | "integrity": "sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ==",
1505 | "dev": true,
1506 | "requires": {
1507 | "minimist": "^1.2.0"
1508 | }
1509 | },
1510 | "jsonwebtoken": {
1511 | "version": "8.5.1",
1512 | "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz",
1513 | "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==",
1514 | "dev": true,
1515 | "requires": {
1516 | "jws": "^3.2.2",
1517 | "lodash.includes": "^4.3.0",
1518 | "lodash.isboolean": "^3.0.3",
1519 | "lodash.isinteger": "^4.0.4",
1520 | "lodash.isnumber": "^3.0.3",
1521 | "lodash.isplainobject": "^4.0.6",
1522 | "lodash.isstring": "^4.0.1",
1523 | "lodash.once": "^4.0.0",
1524 | "ms": "^2.1.1",
1525 | "semver": "^5.6.0"
1526 | },
1527 | "dependencies": {
1528 | "ms": {
1529 | "version": "2.1.2",
1530 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
1531 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
1532 | "dev": true
1533 | }
1534 | }
1535 | },
1536 | "just-is-empty": {
1537 | "version": "2.0.1",
1538 | "resolved": "https://registry.npmjs.org/just-is-empty/-/just-is-empty-2.0.1.tgz",
1539 | "integrity": "sha512-c05XqAnVCLRrd5u8WnKrUKjVsjQHAF8mI1fVUWvnfrAMLFiu/8tWDG/TaKEnQMcQ3YlQPZqdAcsX1gv4G9/Gcw==",
1540 | "dev": true
1541 | },
1542 | "jwa": {
1543 | "version": "1.4.1",
1544 | "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz",
1545 | "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==",
1546 | "dev": true,
1547 | "requires": {
1548 | "buffer-equal-constant-time": "1.0.1",
1549 | "ecdsa-sig-formatter": "1.0.11",
1550 | "safe-buffer": "^5.0.1"
1551 | }
1552 | },
1553 | "jws": {
1554 | "version": "3.2.2",
1555 | "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz",
1556 | "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==",
1557 | "dev": true,
1558 | "requires": {
1559 | "jwa": "^1.4.1",
1560 | "safe-buffer": "^5.0.1"
1561 | }
1562 | },
1563 | "load-json-file": {
1564 | "version": "4.0.0",
1565 | "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz",
1566 | "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=",
1567 | "dev": true,
1568 | "requires": {
1569 | "graceful-fs": "^4.1.2",
1570 | "parse-json": "^4.0.0",
1571 | "pify": "^3.0.0",
1572 | "strip-bom": "^3.0.0"
1573 | }
1574 | },
1575 | "lodash": {
1576 | "version": "4.17.15",
1577 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
1578 | "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==",
1579 | "dev": true
1580 | },
1581 | "lodash.includes": {
1582 | "version": "4.3.0",
1583 | "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz",
1584 | "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=",
1585 | "dev": true
1586 | },
1587 | "lodash.isboolean": {
1588 | "version": "3.0.3",
1589 | "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz",
1590 | "integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=",
1591 | "dev": true
1592 | },
1593 | "lodash.isinteger": {
1594 | "version": "4.0.4",
1595 | "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz",
1596 | "integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=",
1597 | "dev": true
1598 | },
1599 | "lodash.isnumber": {
1600 | "version": "3.0.3",
1601 | "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz",
1602 | "integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=",
1603 | "dev": true
1604 | },
1605 | "lodash.isplainobject": {
1606 | "version": "4.0.6",
1607 | "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz",
1608 | "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=",
1609 | "dev": true
1610 | },
1611 | "lodash.isstring": {
1612 | "version": "4.0.1",
1613 | "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz",
1614 | "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=",
1615 | "dev": true
1616 | },
1617 | "lodash.once": {
1618 | "version": "4.1.1",
1619 | "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz",
1620 | "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=",
1621 | "dev": true
1622 | },
1623 | "loose-envify": {
1624 | "version": "1.4.0",
1625 | "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
1626 | "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
1627 | "dev": true,
1628 | "requires": {
1629 | "js-tokens": "^3.0.0 || ^4.0.0"
1630 | }
1631 | },
1632 | "lower-case": {
1633 | "version": "1.1.4",
1634 | "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz",
1635 | "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=",
1636 | "dev": true
1637 | },
1638 | "magic-string": {
1639 | "version": "0.25.3",
1640 | "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.3.tgz",
1641 | "integrity": "sha512-6QK0OpF/phMz0Q2AxILkX2mFhi7m+WMwTRg0LQKq/WBB0cDP4rYH3Wp4/d3OTXlrPLVJT/RFqj8tFeAR4nk8AA==",
1642 | "dev": true,
1643 | "requires": {
1644 | "sourcemap-codec": "^1.4.4"
1645 | }
1646 | },
1647 | "memorystream": {
1648 | "version": "0.3.1",
1649 | "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz",
1650 | "integrity": "sha1-htcJCzDORV1j+64S3aUaR93K+bI=",
1651 | "dev": true
1652 | },
1653 | "merge-stream": {
1654 | "version": "2.0.0",
1655 | "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
1656 | "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
1657 | "dev": true
1658 | },
1659 | "mime": {
1660 | "version": "2.4.4",
1661 | "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz",
1662 | "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA=="
1663 | },
1664 | "mime-db": {
1665 | "version": "1.40.0",
1666 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz",
1667 | "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA=="
1668 | },
1669 | "mime-types": {
1670 | "version": "2.1.24",
1671 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz",
1672 | "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==",
1673 | "requires": {
1674 | "mime-db": "1.40.0"
1675 | }
1676 | },
1677 | "minimatch": {
1678 | "version": "3.0.4",
1679 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
1680 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
1681 | "dev": true,
1682 | "requires": {
1683 | "brace-expansion": "^1.1.7"
1684 | }
1685 | },
1686 | "minimist": {
1687 | "version": "1.2.0",
1688 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
1689 | "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
1690 | "dev": true
1691 | },
1692 | "ms": {
1693 | "version": "2.0.0",
1694 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
1695 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
1696 | },
1697 | "negotiator": {
1698 | "version": "0.6.2",
1699 | "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
1700 | "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw=="
1701 | },
1702 | "nice-try": {
1703 | "version": "1.0.5",
1704 | "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
1705 | "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
1706 | "dev": true
1707 | },
1708 | "no-case": {
1709 | "version": "2.3.2",
1710 | "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz",
1711 | "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==",
1712 | "dev": true,
1713 | "requires": {
1714 | "lower-case": "^1.1.1"
1715 | }
1716 | },
1717 | "node-releases": {
1718 | "version": "1.1.32",
1719 | "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.32.tgz",
1720 | "integrity": "sha512-VhVknkitq8dqtWoluagsGPn3dxTvN9fwgR59fV3D7sLBHe0JfDramsMI8n8mY//ccq/Kkrf8ZRHRpsyVZ3qw1A==",
1721 | "dev": true,
1722 | "requires": {
1723 | "semver": "^5.3.0"
1724 | }
1725 | },
1726 | "normalize-package-data": {
1727 | "version": "2.5.0",
1728 | "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
1729 | "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
1730 | "dev": true,
1731 | "requires": {
1732 | "hosted-git-info": "^2.1.4",
1733 | "resolve": "^1.10.0",
1734 | "semver": "2 || 3 || 4 || 5",
1735 | "validate-npm-package-license": "^3.0.1"
1736 | }
1737 | },
1738 | "normalize-path": {
1739 | "version": "3.0.0",
1740 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
1741 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
1742 | "dev": true
1743 | },
1744 | "npm-run-all": {
1745 | "version": "4.1.5",
1746 | "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz",
1747 | "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==",
1748 | "dev": true,
1749 | "requires": {
1750 | "ansi-styles": "^3.2.1",
1751 | "chalk": "^2.4.1",
1752 | "cross-spawn": "^6.0.5",
1753 | "memorystream": "^0.3.1",
1754 | "minimatch": "^3.0.4",
1755 | "pidtree": "^0.3.0",
1756 | "read-pkg": "^3.0.0",
1757 | "shell-quote": "^1.6.1",
1758 | "string.prototype.padend": "^3.0.0"
1759 | }
1760 | },
1761 | "object-inspect": {
1762 | "version": "1.6.0",
1763 | "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.6.0.tgz",
1764 | "integrity": "sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ==",
1765 | "dev": true
1766 | },
1767 | "object-keys": {
1768 | "version": "1.1.1",
1769 | "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
1770 | "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
1771 | "dev": true
1772 | },
1773 | "object.assign": {
1774 | "version": "4.1.0",
1775 | "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz",
1776 | "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==",
1777 | "dev": true,
1778 | "requires": {
1779 | "define-properties": "^1.1.2",
1780 | "function-bind": "^1.1.1",
1781 | "has-symbols": "^1.0.0",
1782 | "object-keys": "^1.0.11"
1783 | }
1784 | },
1785 | "on-headers": {
1786 | "version": "1.0.2",
1787 | "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz",
1788 | "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA=="
1789 | },
1790 | "param-case": {
1791 | "version": "2.1.1",
1792 | "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz",
1793 | "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=",
1794 | "dev": true,
1795 | "requires": {
1796 | "no-case": "^2.2.0"
1797 | }
1798 | },
1799 | "parse-json": {
1800 | "version": "4.0.0",
1801 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
1802 | "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
1803 | "dev": true,
1804 | "requires": {
1805 | "error-ex": "^1.3.1",
1806 | "json-parse-better-errors": "^1.0.1"
1807 | }
1808 | },
1809 | "path-key": {
1810 | "version": "2.0.1",
1811 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
1812 | "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
1813 | "dev": true
1814 | },
1815 | "path-parse": {
1816 | "version": "1.0.6",
1817 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
1818 | "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
1819 | "dev": true
1820 | },
1821 | "path-type": {
1822 | "version": "3.0.0",
1823 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz",
1824 | "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==",
1825 | "dev": true,
1826 | "requires": {
1827 | "pify": "^3.0.0"
1828 | }
1829 | },
1830 | "picomatch": {
1831 | "version": "2.0.7",
1832 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.0.7.tgz",
1833 | "integrity": "sha512-oLHIdio3tZ0qH76NybpeneBhYVj0QFTfXEFTc/B3zKQspYfYYkWYgFsmzo+4kvId/bQRcNkVeguI3y+CD22BtA==",
1834 | "dev": true
1835 | },
1836 | "pidtree": {
1837 | "version": "0.3.0",
1838 | "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.0.tgz",
1839 | "integrity": "sha512-9CT4NFlDcosssyg8KVFltgokyKZIFjoBxw8CTGy+5F38Y1eQWrt8tRayiUOXE+zVKQnYu5BR8JjCtvK3BcnBhg==",
1840 | "dev": true
1841 | },
1842 | "pify": {
1843 | "version": "3.0.0",
1844 | "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
1845 | "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
1846 | "dev": true
1847 | },
1848 | "polka": {
1849 | "version": "1.0.0-next.6",
1850 | "resolved": "https://registry.npmjs.org/polka/-/polka-1.0.0-next.6.tgz",
1851 | "integrity": "sha512-e3vZm2cMmPPrgn+0J5DO0rrSTfsCHGyh+YS6jjrqYP8BHJkPq8nCVSDxHkaiEN4f0c2dtR6FB+snDmLE/sRz7A==",
1852 | "requires": {
1853 | "@polka/url": "^1.0.0-next.3",
1854 | "trouter": "^3.1.0"
1855 | }
1856 | },
1857 | "private": {
1858 | "version": "0.1.8",
1859 | "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz",
1860 | "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==",
1861 | "dev": true
1862 | },
1863 | "read-pkg": {
1864 | "version": "3.0.0",
1865 | "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz",
1866 | "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=",
1867 | "dev": true,
1868 | "requires": {
1869 | "load-json-file": "^4.0.0",
1870 | "normalize-package-data": "^2.3.2",
1871 | "path-type": "^3.0.0"
1872 | }
1873 | },
1874 | "readdirp": {
1875 | "version": "3.1.2",
1876 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.1.2.tgz",
1877 | "integrity": "sha512-8rhl0xs2cxfVsqzreYCvs8EwBfn/DhVdqtoLmw19uI3SC5avYX9teCurlErfpPXGmYtMHReGaP2RsLnFvz/lnw==",
1878 | "dev": true,
1879 | "requires": {
1880 | "picomatch": "^2.0.4"
1881 | }
1882 | },
1883 | "regenerate": {
1884 | "version": "1.4.0",
1885 | "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz",
1886 | "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==",
1887 | "dev": true
1888 | },
1889 | "regenerate-unicode-properties": {
1890 | "version": "8.1.0",
1891 | "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz",
1892 | "integrity": "sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA==",
1893 | "dev": true,
1894 | "requires": {
1895 | "regenerate": "^1.4.0"
1896 | }
1897 | },
1898 | "regenerator-runtime": {
1899 | "version": "0.13.3",
1900 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz",
1901 | "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==",
1902 | "dev": true
1903 | },
1904 | "regenerator-transform": {
1905 | "version": "0.14.1",
1906 | "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.1.tgz",
1907 | "integrity": "sha512-flVuee02C3FKRISbxhXl9mGzdbWUVHubl1SMaknjxkFB1/iqpJhArQUvRxOOPEc/9tAiX0BaQ28FJH10E4isSQ==",
1908 | "dev": true,
1909 | "requires": {
1910 | "private": "^0.1.6"
1911 | }
1912 | },
1913 | "regexp-tree": {
1914 | "version": "0.1.13",
1915 | "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.13.tgz",
1916 | "integrity": "sha512-hwdV/GQY5F8ReLZWO+W1SRoN5YfpOKY6852+tBFcma72DKBIcHjPRIlIvQN35bCOljuAfP2G2iB0FC/w236mUw==",
1917 | "dev": true
1918 | },
1919 | "regexparam": {
1920 | "version": "1.3.0",
1921 | "resolved": "https://registry.npmjs.org/regexparam/-/regexparam-1.3.0.tgz",
1922 | "integrity": "sha512-6IQpFBv6e5vz1QAqI+V4k8P2e/3gRrqfCJ9FI+O1FLQTO+Uz6RXZEZOPmTJ6hlGj7gkERzY5BRCv09whKP96/g=="
1923 | },
1924 | "regexpu-core": {
1925 | "version": "4.6.0",
1926 | "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.6.0.tgz",
1927 | "integrity": "sha512-YlVaefl8P5BnFYOITTNzDvan1ulLOiXJzCNZxduTIosN17b87h3bvG9yHMoHaRuo88H4mQ06Aodj5VtYGGGiTg==",
1928 | "dev": true,
1929 | "requires": {
1930 | "regenerate": "^1.4.0",
1931 | "regenerate-unicode-properties": "^8.1.0",
1932 | "regjsgen": "^0.5.0",
1933 | "regjsparser": "^0.6.0",
1934 | "unicode-match-property-ecmascript": "^1.0.4",
1935 | "unicode-match-property-value-ecmascript": "^1.1.0"
1936 | }
1937 | },
1938 | "regjsgen": {
1939 | "version": "0.5.0",
1940 | "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.0.tgz",
1941 | "integrity": "sha512-RnIrLhrXCX5ow/E5/Mh2O4e/oa1/jW0eaBKTSy3LaCj+M3Bqvm97GWDp2yUtzIs4LEn65zR2yiYGFqb2ApnzDA==",
1942 | "dev": true
1943 | },
1944 | "regjsparser": {
1945 | "version": "0.6.0",
1946 | "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.0.tgz",
1947 | "integrity": "sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ==",
1948 | "dev": true,
1949 | "requires": {
1950 | "jsesc": "~0.5.0"
1951 | },
1952 | "dependencies": {
1953 | "jsesc": {
1954 | "version": "0.5.0",
1955 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
1956 | "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=",
1957 | "dev": true
1958 | }
1959 | }
1960 | },
1961 | "relateurl": {
1962 | "version": "0.2.7",
1963 | "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz",
1964 | "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=",
1965 | "dev": true
1966 | },
1967 | "require-relative": {
1968 | "version": "0.8.7",
1969 | "resolved": "https://registry.npmjs.org/require-relative/-/require-relative-0.8.7.tgz",
1970 | "integrity": "sha1-eZlTn8ngR6N5KPoZb44VY9q9Nt4=",
1971 | "dev": true
1972 | },
1973 | "resolve": {
1974 | "version": "1.12.0",
1975 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.12.0.tgz",
1976 | "integrity": "sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w==",
1977 | "dev": true,
1978 | "requires": {
1979 | "path-parse": "^1.0.6"
1980 | }
1981 | },
1982 | "rollup": {
1983 | "version": "1.21.4",
1984 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-1.21.4.tgz",
1985 | "integrity": "sha512-Pl512XVCmVzgcBz5h/3Li4oTaoDcmpuFZ+kdhS/wLreALz//WuDAMfomD3QEYl84NkDu6Z6wV9twlcREb4qQsw==",
1986 | "dev": true,
1987 | "requires": {
1988 | "@types/estree": "0.0.39",
1989 | "@types/node": "^12.7.5",
1990 | "acorn": "^7.0.0"
1991 | }
1992 | },
1993 | "rollup-plugin-babel": {
1994 | "version": "4.3.3",
1995 | "resolved": "https://registry.npmjs.org/rollup-plugin-babel/-/rollup-plugin-babel-4.3.3.tgz",
1996 | "integrity": "sha512-tKzWOCmIJD/6aKNz0H1GMM+lW1q9KyFubbWzGiOG540zxPPifnEAHTZwjo0g991Y+DyOZcLqBgqOdqazYE5fkw==",
1997 | "dev": true,
1998 | "requires": {
1999 | "@babel/helper-module-imports": "^7.0.0",
2000 | "rollup-pluginutils": "^2.8.1"
2001 | }
2002 | },
2003 | "rollup-plugin-commonjs": {
2004 | "version": "10.1.0",
2005 | "resolved": "https://registry.npmjs.org/rollup-plugin-commonjs/-/rollup-plugin-commonjs-10.1.0.tgz",
2006 | "integrity": "sha512-jlXbjZSQg8EIeAAvepNwhJj++qJWNJw1Cl0YnOqKtP5Djx+fFGkp3WRh+W0ASCaFG5w1jhmzDxgu3SJuVxPF4Q==",
2007 | "dev": true,
2008 | "requires": {
2009 | "estree-walker": "^0.6.1",
2010 | "is-reference": "^1.1.2",
2011 | "magic-string": "^0.25.2",
2012 | "resolve": "^1.11.0",
2013 | "rollup-pluginutils": "^2.8.1"
2014 | }
2015 | },
2016 | "rollup-plugin-node-resolve": {
2017 | "version": "5.2.0",
2018 | "resolved": "https://registry.npmjs.org/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-5.2.0.tgz",
2019 | "integrity": "sha512-jUlyaDXts7TW2CqQ4GaO5VJ4PwwaV8VUGA7+km3n6k6xtOEacf61u0VXwN80phY/evMcaS+9eIeJ9MOyDxt5Zw==",
2020 | "dev": true,
2021 | "requires": {
2022 | "@types/resolve": "0.0.8",
2023 | "builtin-modules": "^3.1.0",
2024 | "is-module": "^1.0.0",
2025 | "resolve": "^1.11.1",
2026 | "rollup-pluginutils": "^2.8.1"
2027 | }
2028 | },
2029 | "rollup-plugin-replace": {
2030 | "version": "2.2.0",
2031 | "resolved": "https://registry.npmjs.org/rollup-plugin-replace/-/rollup-plugin-replace-2.2.0.tgz",
2032 | "integrity": "sha512-/5bxtUPkDHyBJAKketb4NfaeZjL5yLZdeUihSfbF2PQMz+rSTEb8ARKoOl3UBT4m7/X+QOXJo3sLTcq+yMMYTA==",
2033 | "dev": true,
2034 | "requires": {
2035 | "magic-string": "^0.25.2",
2036 | "rollup-pluginutils": "^2.6.0"
2037 | }
2038 | },
2039 | "rollup-plugin-svelte": {
2040 | "version": "5.1.0",
2041 | "resolved": "https://registry.npmjs.org/rollup-plugin-svelte/-/rollup-plugin-svelte-5.1.0.tgz",
2042 | "integrity": "sha512-4MRZG29dAWDpoxEs5uIHzDnYafQEOLaKIJAuDYUtFIzEm1F1IGSTlFyjd8/qk4wltlHdu6V7YfZY53+CKryhMg==",
2043 | "dev": true,
2044 | "requires": {
2045 | "require-relative": "^0.8.7",
2046 | "rollup-pluginutils": "^2.3.3",
2047 | "sourcemap-codec": "^1.4.4"
2048 | }
2049 | },
2050 | "rollup-plugin-terser": {
2051 | "version": "4.0.4",
2052 | "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-4.0.4.tgz",
2053 | "integrity": "sha512-wPANT5XKVJJ8RDUN0+wIr7UPd0lIXBo4UdJ59VmlPCtlFsE20AM+14pe+tk7YunCsWEiuzkDBY3QIkSCjtrPXg==",
2054 | "dev": true,
2055 | "requires": {
2056 | "@babel/code-frame": "^7.0.0",
2057 | "jest-worker": "^24.0.0",
2058 | "serialize-javascript": "^1.6.1",
2059 | "terser": "^3.14.1"
2060 | }
2061 | },
2062 | "rollup-pluginutils": {
2063 | "version": "2.8.2",
2064 | "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz",
2065 | "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==",
2066 | "dev": true,
2067 | "requires": {
2068 | "estree-walker": "^0.6.1"
2069 | }
2070 | },
2071 | "safe-buffer": {
2072 | "version": "5.1.2",
2073 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
2074 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
2075 | },
2076 | "sapper": {
2077 | "version": "0.27.8",
2078 | "resolved": "https://registry.npmjs.org/sapper/-/sapper-0.27.8.tgz",
2079 | "integrity": "sha512-78K+56yu9nGOEU0B0XjBvNchRuPEv4aHbAKK4D874S4aoapMAkHCT0bHtPK12S3P7JPxvvT8GzHaq/8NetMmbg==",
2080 | "dev": true,
2081 | "requires": {
2082 | "html-minifier": "^4.0.0",
2083 | "http-link-header": "^1.0.2",
2084 | "shimport": "^1.0.1",
2085 | "sourcemap-codec": "^1.4.6",
2086 | "string-hash": "^1.1.3"
2087 | }
2088 | },
2089 | "sass": {
2090 | "version": "1.22.12",
2091 | "resolved": "https://registry.npmjs.org/sass/-/sass-1.22.12.tgz",
2092 | "integrity": "sha512-u5Rxn+dKTPCW5/11kMNxtmqKsxCjcpnqj9CaJoru1NqeJ0DOa9rOM00e0HqmseTAatGkKoLY+jaNecMYevu1gg==",
2093 | "dev": true,
2094 | "requires": {
2095 | "chokidar": ">=2.0.0 <4.0.0"
2096 | }
2097 | },
2098 | "semver": {
2099 | "version": "5.7.1",
2100 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
2101 | "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
2102 | "dev": true
2103 | },
2104 | "serialize-javascript": {
2105 | "version": "1.9.1",
2106 | "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.9.1.tgz",
2107 | "integrity": "sha512-0Vb/54WJ6k5v8sSWN09S0ora+Hnr+cX40r9F170nT+mSkaxltoE/7R3OrIdBSUv1OoiobH1QoWQbCnAO+e8J1A==",
2108 | "dev": true
2109 | },
2110 | "shebang-command": {
2111 | "version": "1.2.0",
2112 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
2113 | "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
2114 | "dev": true,
2115 | "requires": {
2116 | "shebang-regex": "^1.0.0"
2117 | }
2118 | },
2119 | "shebang-regex": {
2120 | "version": "1.0.0",
2121 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
2122 | "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
2123 | "dev": true
2124 | },
2125 | "shell-quote": {
2126 | "version": "1.7.2",
2127 | "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz",
2128 | "integrity": "sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==",
2129 | "dev": true
2130 | },
2131 | "shimport": {
2132 | "version": "1.0.1",
2133 | "resolved": "https://registry.npmjs.org/shimport/-/shimport-1.0.1.tgz",
2134 | "integrity": "sha512-Imf4gH+8WQmT1GvxS/x79qpmfnE6m50hyN1ucatX+7oMCgmaF8obZWCPIzSUe6+P+YmXM46lkP2pxiV2/lt9Og==",
2135 | "dev": true
2136 | },
2137 | "sirv": {
2138 | "version": "0.4.2",
2139 | "resolved": "https://registry.npmjs.org/sirv/-/sirv-0.4.2.tgz",
2140 | "integrity": "sha512-dQbZnsMaIiTQPZmbGmktz+c74zt/hyrJEB4tdp2Jj0RNv9J6B/OWR5RyrZEvIn9fyh9Zlg2OlE2XzKz6wMKGAw==",
2141 | "requires": {
2142 | "@polka/url": "^0.5.0",
2143 | "mime": "^2.3.1"
2144 | },
2145 | "dependencies": {
2146 | "@polka/url": {
2147 | "version": "0.5.0",
2148 | "resolved": "https://registry.npmjs.org/@polka/url/-/url-0.5.0.tgz",
2149 | "integrity": "sha512-oZLYFEAzUKyi3SKnXvj32ZCEGH6RDnao7COuCVhDydMS9NrCSVXhM79VaKyP5+Zc33m0QXEd2DN3UkU7OsHcfw=="
2150 | }
2151 | }
2152 | },
2153 | "source-map": {
2154 | "version": "0.5.7",
2155 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
2156 | "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
2157 | "dev": true
2158 | },
2159 | "source-map-support": {
2160 | "version": "0.5.13",
2161 | "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz",
2162 | "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==",
2163 | "dev": true,
2164 | "requires": {
2165 | "buffer-from": "^1.0.0",
2166 | "source-map": "^0.6.0"
2167 | },
2168 | "dependencies": {
2169 | "source-map": {
2170 | "version": "0.6.1",
2171 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
2172 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
2173 | "dev": true
2174 | }
2175 | }
2176 | },
2177 | "sourcemap-codec": {
2178 | "version": "1.4.6",
2179 | "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.6.tgz",
2180 | "integrity": "sha512-1ZooVLYFxC448piVLBbtOxFcXwnymH9oUF8nRd3CuYDVvkRBxRl6pB4Mtas5a4drtL+E8LDgFkQNcgIw6tc8Hg==",
2181 | "dev": true
2182 | },
2183 | "spdx-correct": {
2184 | "version": "3.1.0",
2185 | "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz",
2186 | "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==",
2187 | "dev": true,
2188 | "requires": {
2189 | "spdx-expression-parse": "^3.0.0",
2190 | "spdx-license-ids": "^3.0.0"
2191 | }
2192 | },
2193 | "spdx-exceptions": {
2194 | "version": "2.2.0",
2195 | "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz",
2196 | "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==",
2197 | "dev": true
2198 | },
2199 | "spdx-expression-parse": {
2200 | "version": "3.0.0",
2201 | "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz",
2202 | "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==",
2203 | "dev": true,
2204 | "requires": {
2205 | "spdx-exceptions": "^2.1.0",
2206 | "spdx-license-ids": "^3.0.0"
2207 | }
2208 | },
2209 | "spdx-license-ids": {
2210 | "version": "3.0.5",
2211 | "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz",
2212 | "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==",
2213 | "dev": true
2214 | },
2215 | "string-hash": {
2216 | "version": "1.1.3",
2217 | "resolved": "https://registry.npmjs.org/string-hash/-/string-hash-1.1.3.tgz",
2218 | "integrity": "sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs=",
2219 | "dev": true
2220 | },
2221 | "string.prototype.padend": {
2222 | "version": "3.0.0",
2223 | "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.0.0.tgz",
2224 | "integrity": "sha1-86rvfBcZ8XDF6rHDK/eA2W4h8vA=",
2225 | "dev": true,
2226 | "requires": {
2227 | "define-properties": "^1.1.2",
2228 | "es-abstract": "^1.4.3",
2229 | "function-bind": "^1.0.2"
2230 | }
2231 | },
2232 | "string.prototype.trimleft": {
2233 | "version": "2.1.0",
2234 | "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz",
2235 | "integrity": "sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw==",
2236 | "dev": true,
2237 | "requires": {
2238 | "define-properties": "^1.1.3",
2239 | "function-bind": "^1.1.1"
2240 | }
2241 | },
2242 | "string.prototype.trimright": {
2243 | "version": "2.1.0",
2244 | "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz",
2245 | "integrity": "sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg==",
2246 | "dev": true,
2247 | "requires": {
2248 | "define-properties": "^1.1.3",
2249 | "function-bind": "^1.1.1"
2250 | }
2251 | },
2252 | "strip-bom": {
2253 | "version": "3.0.0",
2254 | "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
2255 | "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
2256 | "dev": true
2257 | },
2258 | "strip-indent": {
2259 | "version": "2.0.0",
2260 | "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz",
2261 | "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=",
2262 | "dev": true
2263 | },
2264 | "supports-color": {
2265 | "version": "5.5.0",
2266 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
2267 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
2268 | "dev": true,
2269 | "requires": {
2270 | "has-flag": "^3.0.0"
2271 | }
2272 | },
2273 | "svelte": {
2274 | "version": "3.12.1",
2275 | "resolved": "https://registry.npmjs.org/svelte/-/svelte-3.12.1.tgz",
2276 | "integrity": "sha512-t29WJNjHIqfrdMcVXqIyRfgLEaNz7MihKXTpb8qHlbzvf0WyOOIhIlwIGvl6ahJ9+9CLJwz0sjhFNAmPgo8BHg==",
2277 | "dev": true
2278 | },
2279 | "svelte-preprocess": {
2280 | "version": "3.1.2",
2281 | "resolved": "https://registry.npmjs.org/svelte-preprocess/-/svelte-preprocess-3.1.2.tgz",
2282 | "integrity": "sha512-OfTuQ6X4X0wCs27rU8IS6EvHD/VYJsiMfI+GPWixCyk4sDcm/k1RTJ3Nn0EJJSXFDRY2KKggKJM6dpaIoLtF3Q==",
2283 | "dev": true,
2284 | "requires": {
2285 | "detect-indent": "^6.0.0",
2286 | "strip-indent": "^2.0.0"
2287 | }
2288 | },
2289 | "terser": {
2290 | "version": "3.17.0",
2291 | "resolved": "https://registry.npmjs.org/terser/-/terser-3.17.0.tgz",
2292 | "integrity": "sha512-/FQzzPJmCpjAH9Xvk2paiWrFq+5M6aVOf+2KRbwhByISDX/EujxsK+BAvrhb6H+2rtrLCHK9N01wO014vrIwVQ==",
2293 | "dev": true,
2294 | "requires": {
2295 | "commander": "^2.19.0",
2296 | "source-map": "~0.6.1",
2297 | "source-map-support": "~0.5.10"
2298 | },
2299 | "dependencies": {
2300 | "source-map": {
2301 | "version": "0.6.1",
2302 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
2303 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
2304 | "dev": true
2305 | }
2306 | }
2307 | },
2308 | "to-fast-properties": {
2309 | "version": "2.0.0",
2310 | "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
2311 | "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
2312 | "dev": true
2313 | },
2314 | "to-regex-range": {
2315 | "version": "5.0.1",
2316 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
2317 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
2318 | "dev": true,
2319 | "requires": {
2320 | "is-number": "^7.0.0"
2321 | }
2322 | },
2323 | "trim-right": {
2324 | "version": "1.0.1",
2325 | "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz",
2326 | "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=",
2327 | "dev": true
2328 | },
2329 | "trouter": {
2330 | "version": "3.1.0",
2331 | "resolved": "https://registry.npmjs.org/trouter/-/trouter-3.1.0.tgz",
2332 | "integrity": "sha512-3Swwu638QQWOefHLss9cdyLi5/9BKYmXZEXpH0KOFfB9YZwUAwHbDAcoYxaHfqAeFvbi/LqAK7rGkhCr1v1BJA==",
2333 | "requires": {
2334 | "regexparam": "^1.3.0"
2335 | }
2336 | },
2337 | "uglify-js": {
2338 | "version": "3.6.0",
2339 | "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.6.0.tgz",
2340 | "integrity": "sha512-W+jrUHJr3DXKhrsS7NUVxn3zqMOFn0hL/Ei6v0anCIMoKC93TjcflTagwIHLW7SfMFfiQuktQyFVCFHGUE0+yg==",
2341 | "dev": true,
2342 | "requires": {
2343 | "commander": "~2.20.0",
2344 | "source-map": "~0.6.1"
2345 | },
2346 | "dependencies": {
2347 | "source-map": {
2348 | "version": "0.6.1",
2349 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
2350 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
2351 | "dev": true
2352 | }
2353 | }
2354 | },
2355 | "unicode-canonical-property-names-ecmascript": {
2356 | "version": "1.0.4",
2357 | "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz",
2358 | "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==",
2359 | "dev": true
2360 | },
2361 | "unicode-match-property-ecmascript": {
2362 | "version": "1.0.4",
2363 | "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz",
2364 | "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==",
2365 | "dev": true,
2366 | "requires": {
2367 | "unicode-canonical-property-names-ecmascript": "^1.0.4",
2368 | "unicode-property-aliases-ecmascript": "^1.0.4"
2369 | }
2370 | },
2371 | "unicode-match-property-value-ecmascript": {
2372 | "version": "1.1.0",
2373 | "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz",
2374 | "integrity": "sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g==",
2375 | "dev": true
2376 | },
2377 | "unicode-property-aliases-ecmascript": {
2378 | "version": "1.0.5",
2379 | "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz",
2380 | "integrity": "sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw==",
2381 | "dev": true
2382 | },
2383 | "upper-case": {
2384 | "version": "1.1.3",
2385 | "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz",
2386 | "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=",
2387 | "dev": true
2388 | },
2389 | "validate-npm-package-license": {
2390 | "version": "3.0.4",
2391 | "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
2392 | "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
2393 | "dev": true,
2394 | "requires": {
2395 | "spdx-correct": "^3.0.0",
2396 | "spdx-expression-parse": "^3.0.0"
2397 | }
2398 | },
2399 | "vary": {
2400 | "version": "1.1.2",
2401 | "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
2402 | "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
2403 | },
2404 | "which": {
2405 | "version": "1.3.1",
2406 | "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
2407 | "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
2408 | "dev": true,
2409 | "requires": {
2410 | "isexe": "^2.0.0"
2411 | }
2412 | }
2413 | }
2414 | }
2415 |
--------------------------------------------------------------------------------