From 064bd86f2b8935c0f99c190c14a960b7b0c784a1 Mon Sep 17 00:00:00 2001 From: tim-herbst Date: Sat, 19 Dec 2020 09:56:33 +0100 Subject: [PATCH 001/104] frontend project-init * angular routing * scss as style --- projects/project-3/frontend/.browserslistrc | 18 + projects/project-3/frontend/.editorconfig | 16 + projects/project-3/frontend/.gitignore | 46 + projects/project-3/frontend/README.md | 27 + projects/project-3/frontend/angular.json | 128 + .../project-3/frontend/e2e/protractor.conf.js | 36 + .../frontend/e2e/src/app.e2e-spec.ts | 23 + projects/project-3/frontend/e2e/src/app.po.ts | 11 + projects/project-3/frontend/e2e/tsconfig.json | 14 + projects/project-3/frontend/karma.conf.js | 32 + projects/project-3/frontend/package-lock.json | 13714 ++++++++++++++++ projects/project-3/frontend/package.json | 46 + .../frontend/src/app/app-routing.module.ts | 10 + .../frontend/src/app/app.component.html | 534 + .../frontend/src/app/app.component.scss | 0 .../frontend/src/app/app.component.spec.ts | 35 + .../frontend/src/app/app.component.ts | 10 + .../project-3/frontend/src/app/app.module.ts | 18 + .../project-3/frontend/src/assets/.gitkeep | 0 .../src/environments/environment.prod.ts | 3 + .../frontend/src/environments/environment.ts | 16 + projects/project-3/frontend/src/favicon.ico | Bin 0 -> 948 bytes projects/project-3/frontend/src/index.html | 13 + projects/project-3/frontend/src/main.ts | 12 + projects/project-3/frontend/src/polyfills.ts | 63 + projects/project-3/frontend/src/styles.scss | 1 + projects/project-3/frontend/src/test.ts | 25 + projects/project-3/frontend/tsconfig.app.json | 15 + projects/project-3/frontend/tsconfig.json | 20 + .../project-3/frontend/tsconfig.spec.json | 18 + projects/project-3/frontend/tslint.json | 152 + 31 files changed, 15056 insertions(+) create mode 100644 projects/project-3/frontend/.browserslistrc create mode 100644 projects/project-3/frontend/.editorconfig create mode 100644 projects/project-3/frontend/.gitignore create mode 100644 projects/project-3/frontend/README.md create mode 100644 projects/project-3/frontend/angular.json create mode 100644 projects/project-3/frontend/e2e/protractor.conf.js create mode 100644 projects/project-3/frontend/e2e/src/app.e2e-spec.ts create mode 100644 projects/project-3/frontend/e2e/src/app.po.ts create mode 100644 projects/project-3/frontend/e2e/tsconfig.json create mode 100644 projects/project-3/frontend/karma.conf.js create mode 100644 projects/project-3/frontend/package-lock.json create mode 100644 projects/project-3/frontend/package.json create mode 100644 projects/project-3/frontend/src/app/app-routing.module.ts create mode 100644 projects/project-3/frontend/src/app/app.component.html create mode 100644 projects/project-3/frontend/src/app/app.component.scss create mode 100644 projects/project-3/frontend/src/app/app.component.spec.ts create mode 100644 projects/project-3/frontend/src/app/app.component.ts create mode 100644 projects/project-3/frontend/src/app/app.module.ts create mode 100644 projects/project-3/frontend/src/assets/.gitkeep create mode 100644 projects/project-3/frontend/src/environments/environment.prod.ts create mode 100644 projects/project-3/frontend/src/environments/environment.ts create mode 100644 projects/project-3/frontend/src/favicon.ico create mode 100644 projects/project-3/frontend/src/index.html create mode 100644 projects/project-3/frontend/src/main.ts create mode 100644 projects/project-3/frontend/src/polyfills.ts create mode 100644 projects/project-3/frontend/src/styles.scss create mode 100644 projects/project-3/frontend/src/test.ts create mode 100644 projects/project-3/frontend/tsconfig.app.json create mode 100644 projects/project-3/frontend/tsconfig.json create mode 100644 projects/project-3/frontend/tsconfig.spec.json create mode 100644 projects/project-3/frontend/tslint.json diff --git a/projects/project-3/frontend/.browserslistrc b/projects/project-3/frontend/.browserslistrc new file mode 100644 index 0000000..0ccadaf --- /dev/null +++ b/projects/project-3/frontend/.browserslistrc @@ -0,0 +1,18 @@ +# This file is used by the build system to adjust CSS and JS output to support the specified browsers below. +# For additional information regarding the format and rule options, please see: +# https://github.com/browserslist/browserslist#queries + +# For the full list of supported browsers by the Angular framework, please see: +# https://angular.io/guide/browser-support + +# You can see what browsers were selected by your queries by running: +# npx browserslist + +last 1 Chrome version +last 1 Firefox version +last 2 Edge major versions +last 2 Safari major versions +last 2 iOS major versions +Firefox ESR +not IE 9-10 # Angular support for IE 9-10 has been deprecated and will be removed as of Angular v11. To opt-in, remove the 'not' prefix on this line. +not IE 11 # Angular supports IE 11 only as an opt-in. To opt-in, remove the 'not' prefix on this line. diff --git a/projects/project-3/frontend/.editorconfig b/projects/project-3/frontend/.editorconfig new file mode 100644 index 0000000..59d9a3a --- /dev/null +++ b/projects/project-3/frontend/.editorconfig @@ -0,0 +1,16 @@ +# Editor configuration, see https://editorconfig.org +root = true + +[*] +charset = utf-8 +indent_style = space +indent_size = 2 +insert_final_newline = true +trim_trailing_whitespace = true + +[*.ts] +quote_type = single + +[*.md] +max_line_length = off +trim_trailing_whitespace = false diff --git a/projects/project-3/frontend/.gitignore b/projects/project-3/frontend/.gitignore new file mode 100644 index 0000000..86d943a --- /dev/null +++ b/projects/project-3/frontend/.gitignore @@ -0,0 +1,46 @@ +# See http://help.github.com/ignore-files/ for more about ignoring files. + +# compiled output +/dist +/tmp +/out-tsc +# Only exists if Bazel was run +/bazel-out + +# dependencies +/node_modules + +# profiling files +chrome-profiler-events*.json +speed-measure-plugin*.json + +# IDEs and editors +/.idea +.project +.classpath +.c9/ +*.launch +.settings/ +*.sublime-workspace + +# IDE - VSCode +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json +.history/* + +# misc +/.sass-cache +/connect.lock +/coverage +/libpeerconnection.log +npm-debug.log +yarn-error.log +testem.log +/typings + +# System Files +.DS_Store +Thumbs.db diff --git a/projects/project-3/frontend/README.md b/projects/project-3/frontend/README.md new file mode 100644 index 0000000..4312f97 --- /dev/null +++ b/projects/project-3/frontend/README.md @@ -0,0 +1,27 @@ +# Frontend + +This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 10.2.0. + +## Development server + +Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files. + +## Code scaffolding + +Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`. + +## Build + +Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. Use the `--prod` flag for a production build. + +## Running unit tests + +Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io). + +## Running end-to-end tests + +Run `ng e2e` to execute the end-to-end tests via [Protractor](http://www.protractortest.org/). + +## Further help + +To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page. diff --git a/projects/project-3/frontend/angular.json b/projects/project-3/frontend/angular.json new file mode 100644 index 0000000..485de41 --- /dev/null +++ b/projects/project-3/frontend/angular.json @@ -0,0 +1,128 @@ +{ + "$schema": "./node_modules/@angular/cli/lib/config/schema.json", + "version": 1, + "newProjectRoot": "projects", + "projects": { + "frontend": { + "projectType": "application", + "schematics": { + "@schematics/angular:component": { + "style": "scss" + } + }, + "root": "", + "sourceRoot": "src", + "prefix": "app", + "architect": { + "build": { + "builder": "@angular-devkit/build-angular:browser", + "options": { + "outputPath": "dist/frontend", + "index": "src/index.html", + "main": "src/main.ts", + "polyfills": "src/polyfills.ts", + "tsConfig": "tsconfig.app.json", + "aot": true, + "assets": [ + "src/favicon.ico", + "src/assets" + ], + "styles": [ + "src/styles.scss" + ], + "scripts": [] + }, + "configurations": { + "production": { + "fileReplacements": [ + { + "replace": "src/environments/environment.ts", + "with": "src/environments/environment.prod.ts" + } + ], + "optimization": true, + "outputHashing": "all", + "sourceMap": false, + "extractCss": true, + "namedChunks": false, + "extractLicenses": true, + "vendorChunk": false, + "buildOptimizer": true, + "budgets": [ + { + "type": "initial", + "maximumWarning": "2mb", + "maximumError": "5mb" + }, + { + "type": "anyComponentStyle", + "maximumWarning": "6kb", + "maximumError": "10kb" + } + ] + } + } + }, + "serve": { + "builder": "@angular-devkit/build-angular:dev-server", + "options": { + "browserTarget": "frontend:build" + }, + "configurations": { + "production": { + "browserTarget": "frontend:build:production" + } + } + }, + "extract-i18n": { + "builder": "@angular-devkit/build-angular:extract-i18n", + "options": { + "browserTarget": "frontend:build" + } + }, + "test": { + "builder": "@angular-devkit/build-angular:karma", + "options": { + "main": "src/test.ts", + "polyfills": "src/polyfills.ts", + "tsConfig": "tsconfig.spec.json", + "karmaConfig": "karma.conf.js", + "assets": [ + "src/favicon.ico", + "src/assets" + ], + "styles": [ + "src/styles.scss" + ], + "scripts": [] + } + }, + "lint": { + "builder": "@angular-devkit/build-angular:tslint", + "options": { + "tsConfig": [ + "tsconfig.app.json", + "tsconfig.spec.json", + "e2e/tsconfig.json" + ], + "exclude": [ + "**/node_modules/**" + ] + } + }, + "e2e": { + "builder": "@angular-devkit/build-angular:protractor", + "options": { + "protractorConfig": "e2e/protractor.conf.js", + "devServerTarget": "frontend:serve" + }, + "configurations": { + "production": { + "devServerTarget": "frontend:serve:production" + } + } + } + } + }}, + "defaultProject": "frontend" +} diff --git a/projects/project-3/frontend/e2e/protractor.conf.js b/projects/project-3/frontend/e2e/protractor.conf.js new file mode 100644 index 0000000..f238c0b --- /dev/null +++ b/projects/project-3/frontend/e2e/protractor.conf.js @@ -0,0 +1,36 @@ +// @ts-check +// Protractor configuration file, see link for more information +// https://github.com/angular/protractor/blob/master/lib/config.ts + +const { SpecReporter, StacktraceOption } = require('jasmine-spec-reporter'); + +/** + * @type { import("protractor").Config } + */ +exports.config = { + allScriptsTimeout: 11000, + specs: [ + './src/**/*.e2e-spec.ts' + ], + capabilities: { + browserName: 'chrome' + }, + directConnect: true, + baseUrl: 'http://localhost:4200/', + framework: 'jasmine', + jasmineNodeOpts: { + showColors: true, + defaultTimeoutInterval: 30000, + print: function() {} + }, + onPrepare() { + require('ts-node').register({ + project: require('path').join(__dirname, './tsconfig.json') + }); + jasmine.getEnv().addReporter(new SpecReporter({ + spec: { + displayStacktrace: StacktraceOption.PRETTY + } + })); + } +}; \ No newline at end of file diff --git a/projects/project-3/frontend/e2e/src/app.e2e-spec.ts b/projects/project-3/frontend/e2e/src/app.e2e-spec.ts new file mode 100644 index 0000000..f8b8268 --- /dev/null +++ b/projects/project-3/frontend/e2e/src/app.e2e-spec.ts @@ -0,0 +1,23 @@ +import { AppPage } from './app.po'; +import { browser, logging } from 'protractor'; + +describe('workspace-project App', () => { + let page: AppPage; + + beforeEach(() => { + page = new AppPage(); + }); + + it('should display welcome message', () => { + page.navigateTo(); + expect(page.getTitleText()).toEqual('frontend app is running!'); + }); + + afterEach(async () => { + // Assert that there are no errors emitted from the browser + const logs = await browser.manage().logs().get(logging.Type.BROWSER); + expect(logs).not.toContain(jasmine.objectContaining({ + level: logging.Level.SEVERE, + } as logging.Entry)); + }); +}); diff --git a/projects/project-3/frontend/e2e/src/app.po.ts b/projects/project-3/frontend/e2e/src/app.po.ts new file mode 100644 index 0000000..b68475e --- /dev/null +++ b/projects/project-3/frontend/e2e/src/app.po.ts @@ -0,0 +1,11 @@ +import { browser, by, element } from 'protractor'; + +export class AppPage { + navigateTo(): Promise { + return browser.get(browser.baseUrl) as Promise; + } + + getTitleText(): Promise { + return element(by.css('app-root .content span')).getText() as Promise; + } +} diff --git a/projects/project-3/frontend/e2e/tsconfig.json b/projects/project-3/frontend/e2e/tsconfig.json new file mode 100644 index 0000000..426058e --- /dev/null +++ b/projects/project-3/frontend/e2e/tsconfig.json @@ -0,0 +1,14 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "extends": "../tsconfig.json", + "compilerOptions": { + "outDir": "../out-tsc/e2e", + "module": "commonjs", + "target": "es2018", + "types": [ + "jasmine", + "jasminewd2", + "node" + ] + } +} diff --git a/projects/project-3/frontend/karma.conf.js b/projects/project-3/frontend/karma.conf.js new file mode 100644 index 0000000..d26663c --- /dev/null +++ b/projects/project-3/frontend/karma.conf.js @@ -0,0 +1,32 @@ +// Karma configuration file, see link for more information +// https://karma-runner.github.io/1.0/config/configuration-file.html + +module.exports = function (config) { + config.set({ + basePath: '', + frameworks: ['jasmine', '@angular-devkit/build-angular'], + plugins: [ + require('karma-jasmine'), + require('karma-chrome-launcher'), + require('karma-jasmine-html-reporter'), + require('karma-coverage-istanbul-reporter'), + require('@angular-devkit/build-angular/plugins/karma') + ], + client: { + clearContext: false // leave Jasmine Spec Runner output visible in browser + }, + coverageIstanbulReporter: { + dir: require('path').join(__dirname, './coverage/frontend'), + reports: ['html', 'lcovonly', 'text-summary'], + fixWebpackSourcePaths: true + }, + reporters: ['progress', 'kjhtml'], + port: 9876, + colors: true, + logLevel: config.LOG_INFO, + autoWatch: true, + browsers: ['Chrome'], + singleRun: false, + restartOnFileChange: true + }); +}; diff --git a/projects/project-3/frontend/package-lock.json b/projects/project-3/frontend/package-lock.json new file mode 100644 index 0000000..ff00ba8 --- /dev/null +++ b/projects/project-3/frontend/package-lock.json @@ -0,0 +1,13714 @@ +{ + "name": "frontend", + "version": "0.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@angular-devkit/architect": { + "version": "0.1002.1", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1002.1.tgz", + "integrity": "sha512-vP27xCe++p3zm+zwSDXDm9/rsM71Q4MYidLLi0MQfo8wxsWS/4mWXycCBoMwDkvW44SPJ4Ds1/F46bb3/xRDvA==", + "dev": true, + "requires": { + "@angular-devkit/core": "10.2.1", + "rxjs": "6.6.2" + }, + "dependencies": { + "rxjs": { + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.2.tgz", + "integrity": "sha512-BHdBMVoWC2sL26w//BCu3YzKT4s2jip/WhwsGEDmeKYBhKDZeYezVUnHatYB7L85v5xs0BAQmg6BEYJEKxBabg==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "@angular-devkit/build-angular": { + "version": "0.1002.1", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-0.1002.1.tgz", + "integrity": "sha512-z5asIOrkxandGT2NgVH3B5uiV0ncURfHpXer/E8q1q5pwY2pCCmvqF2f7tMWrR6j+1Q/Dy1jrpXTWdOUlUCFqw==", + "dev": true, + "requires": { + "@angular-devkit/architect": "0.1002.1", + "@angular-devkit/build-optimizer": "0.1002.1", + "@angular-devkit/build-webpack": "0.1002.1", + "@angular-devkit/core": "10.2.1", + "@babel/core": "7.11.1", + "@babel/generator": "7.11.0", + "@babel/plugin-transform-runtime": "7.11.0", + "@babel/preset-env": "7.11.0", + "@babel/runtime": "7.11.2", + "@babel/template": "7.10.4", + "@jsdevtools/coverage-istanbul-loader": "3.0.5", + "@ngtools/webpack": "10.2.1", + "autoprefixer": "9.8.6", + "babel-loader": "8.1.0", + "browserslist": "^4.9.1", + "cacache": "15.0.5", + "caniuse-lite": "^1.0.30001032", + "circular-dependency-plugin": "5.2.0", + "copy-webpack-plugin": "6.0.3", + "core-js": "3.6.4", + "css-loader": "4.2.2", + "cssnano": "4.1.10", + "file-loader": "6.0.0", + "find-cache-dir": "3.3.1", + "glob": "7.1.6", + "jest-worker": "26.3.0", + "karma-source-map-support": "1.4.0", + "less-loader": "6.2.0", + "license-webpack-plugin": "2.3.0", + "loader-utils": "2.0.0", + "mini-css-extract-plugin": "0.10.0", + "minimatch": "3.0.4", + "open": "7.2.0", + "parse5": "6.0.1", + "parse5-htmlparser2-tree-adapter": "6.0.1", + "pnp-webpack-plugin": "1.6.4", + "postcss": "7.0.32", + "postcss-import": "12.0.1", + "postcss-loader": "3.0.0", + "raw-loader": "4.0.1", + "regenerator-runtime": "0.13.7", + "resolve-url-loader": "3.1.2", + "rimraf": "3.0.2", + "rollup": "2.26.5", + "rxjs": "6.6.2", + "sass": "1.26.10", + "sass-loader": "10.0.1", + "semver": "7.3.2", + "source-map": "0.7.3", + "source-map-loader": "1.0.2", + "source-map-support": "0.5.19", + "speed-measure-webpack-plugin": "1.3.3", + "style-loader": "1.2.1", + "stylus": "0.54.8", + "stylus-loader": "3.0.2", + "terser": "5.3.0", + "terser-webpack-plugin": "4.1.0", + "tree-kill": "1.2.2", + "webpack": "4.44.1", + "webpack-dev-middleware": "3.7.2", + "webpack-dev-server": "3.11.0", + "webpack-merge": "4.2.2", + "webpack-sources": "1.4.3", + "webpack-subresource-integrity": "1.4.1", + "worker-plugin": "5.0.0" + }, + "dependencies": { + "rxjs": { + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.2.tgz", + "integrity": "sha512-BHdBMVoWC2sL26w//BCu3YzKT4s2jip/WhwsGEDmeKYBhKDZeYezVUnHatYB7L85v5xs0BAQmg6BEYJEKxBabg==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "@angular-devkit/build-optimizer": { + "version": "0.1002.1", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.1002.1.tgz", + "integrity": "sha512-9TLbHVGlux/b/eAubiyd3MNS5xog+8MDABG/Y4vWQInWZVNfcSUY7fycbvlCAXLguSVUvjYP2AoPBGPow4mIMw==", + "dev": true, + "requires": { + "loader-utils": "2.0.0", + "source-map": "0.7.3", + "tslib": "2.0.1", + "typescript": "4.0.2", + "webpack-sources": "1.4.3" + }, + "dependencies": { + "tslib": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.1.tgz", + "integrity": "sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ==", + "dev": true + }, + "typescript": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.0.2.tgz", + "integrity": "sha512-e4ERvRV2wb+rRZ/IQeb3jm2VxBsirQLpQhdxplZ2MEzGvDkkMmPglecnNDfSUBivMjP93vRbngYYDQqQ/78bcQ==", + "dev": true + } + } + }, + "@angular-devkit/build-webpack": { + "version": "0.1002.1", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1002.1.tgz", + "integrity": "sha512-RgTIgwGoHY+fBUEwZGhYrAi2RqqvLe5eHAPxRIG33nydZ6KLxD4XozqmCEx7EJwDws+HFiOhlAYoW12QhimK7w==", + "dev": true, + "requires": { + "@angular-devkit/architect": "0.1002.1", + "@angular-devkit/core": "10.2.1", + "rxjs": "6.6.2" + }, + "dependencies": { + "rxjs": { + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.2.tgz", + "integrity": "sha512-BHdBMVoWC2sL26w//BCu3YzKT4s2jip/WhwsGEDmeKYBhKDZeYezVUnHatYB7L85v5xs0BAQmg6BEYJEKxBabg==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "@angular-devkit/core": { + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-10.2.1.tgz", + "integrity": "sha512-dzlF9Gl7KNt9sPYT2HYq6ySZYwKzkyYR5mrBj3DZOD0OQsoc21LvLkWAHNSL2iYGdHJQS1oJDNs8iRYxYIOY3w==", + "dev": true, + "requires": { + "ajv": "6.12.4", + "fast-json-stable-stringify": "2.1.0", + "magic-string": "0.25.7", + "rxjs": "6.6.2", + "source-map": "0.7.3" + }, + "dependencies": { + "rxjs": { + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.2.tgz", + "integrity": "sha512-BHdBMVoWC2sL26w//BCu3YzKT4s2jip/WhwsGEDmeKYBhKDZeYezVUnHatYB7L85v5xs0BAQmg6BEYJEKxBabg==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "@angular-devkit/schematics": { + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-10.2.1.tgz", + "integrity": "sha512-0oMhB1eM7hg5Xf4U7r193zrNTGyxfzl2okBsLJPuVmkb3KCBGQOyHYmU5HjDNadPc5iCFc+Xo2+DSDvXGuLmaA==", + "dev": true, + "requires": { + "@angular-devkit/core": "10.2.1", + "ora": "5.0.0", + "rxjs": "6.6.2" + }, + "dependencies": { + "rxjs": { + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.2.tgz", + "integrity": "sha512-BHdBMVoWC2sL26w//BCu3YzKT4s2jip/WhwsGEDmeKYBhKDZeYezVUnHatYB7L85v5xs0BAQmg6BEYJEKxBabg==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "@angular/animations": { + "version": "10.2.4", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-10.2.4.tgz", + "integrity": "sha512-ovlfHxY1C6yH6SdfWIG1WqB77GHfuJ4i3jItvf0qFSvbOHG8OOzrSOR6EVRJYTnre4r4pQ3V8cDFy3igBlWXUw==", + "requires": { + "tslib": "^2.0.0" + } + }, + "@angular/cli": { + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-10.2.1.tgz", + "integrity": "sha512-9u/IVZqESiNX7qsLDW31MPBFUJUqvc+zqq+ekEtjRopq32RQpAGFWfvRZCR6GyJd06gzUWcYeYKkpl1XFNBXUg==", + "dev": true, + "requires": { + "@angular-devkit/architect": "0.1002.1", + "@angular-devkit/core": "10.2.1", + "@angular-devkit/schematics": "10.2.1", + "@schematics/angular": "10.2.1", + "@schematics/update": "0.1002.1", + "@yarnpkg/lockfile": "1.1.0", + "ansi-colors": "4.1.1", + "debug": "4.1.1", + "ini": "1.3.6", + "inquirer": "7.3.3", + "npm-package-arg": "8.0.1", + "npm-pick-manifest": "6.1.0", + "open": "7.2.0", + "pacote": "9.5.12", + "read-package-tree": "5.3.1", + "rimraf": "3.0.2", + "semver": "7.3.2", + "symbol-observable": "1.2.0", + "universal-analytics": "0.4.23", + "uuid": "8.3.0" + }, + "dependencies": { + "ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "uuid": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.0.tgz", + "integrity": "sha512-fX6Z5o4m6XsXBdli9g7DtWgAx+osMsRRZFKma1mIUsLCz6vRvv+pz5VNbyu9UEDzpMWulZfvpgb/cmDXVulYFQ==", + "dev": true + } + } + }, + "@angular/common": { + "version": "10.2.4", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-10.2.4.tgz", + "integrity": "sha512-bBfsLJNDQaC2OI1mReDJuSZ/uBb7Pf3HVpRmlQKNIPllIxqX1hLH8I3Plodrns9m32JMJ6FMsQthcP0KMdRCJA==", + "requires": { + "tslib": "^2.0.0" + } + }, + "@angular/compiler": { + "version": "10.2.4", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-10.2.4.tgz", + "integrity": "sha512-xkpDQJt9047eT+HPEoJoJ7TVN+yXIFL0EcYP9pE+jG/f7H8re6Nwf2sBXa91dyCYBanXGMRbivbXIjqLGOfzbA==", + "requires": { + "tslib": "^2.0.0" + } + }, + "@angular/compiler-cli": { + "version": "10.2.4", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-10.2.4.tgz", + "integrity": "sha512-gpw7Px6c2EaVUiDrU4PLaxf5zk8oJ72Yq62YZ8k4Jd7Vhl39Bhx9a9/I3GFQzZ8X6W/VJMWfZRs3E7bm1krRkw==", + "dev": true, + "requires": { + "canonical-path": "1.0.0", + "chokidar": "^3.0.0", + "convert-source-map": "^1.5.1", + "dependency-graph": "^0.7.2", + "fs-extra": "4.0.2", + "magic-string": "^0.25.0", + "minimist": "^1.2.0", + "reflect-metadata": "^0.1.2", + "semver": "^6.3.0", + "source-map": "^0.6.1", + "sourcemap-codec": "^1.4.8", + "tslib": "^2.0.0", + "yargs": "^16.1.1" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "y18n": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.5.tgz", + "integrity": "sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg==", + "dev": true + }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + }, + "yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "dev": true + } + } + }, + "@angular/core": { + "version": "10.2.4", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-10.2.4.tgz", + "integrity": "sha512-5xpAvmZwD9nZ8eWx10urjibqEeePGEiFXVMEn3IaJWgfdOcMmeSoioW9JUllT3w85+DlNVWbRbhz0YfE9a4jyw==", + "requires": { + "tslib": "^2.0.0" + } + }, + "@angular/forms": { + "version": "10.2.4", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-10.2.4.tgz", + "integrity": "sha512-nrag/3+sjclH5mYqgM9UKzjotMGDCYBlPMqLt2Mj8rIxtAPRxfKmzAhxf4lRw3RTzMvOLM0rBRJagpi5glyLEw==", + "requires": { + "tslib": "^2.0.0" + } + }, + "@angular/platform-browser": { + "version": "10.2.4", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-10.2.4.tgz", + "integrity": "sha512-gYewLxoTnxOxX3XXK959YiDaw8CEnksKIbK6RYuofIcB8dTL9AlS9/l22xdGifTXTkFjs8noO6i/WT5hCt49Ww==", + "requires": { + "tslib": "^2.0.0" + } + }, + "@angular/platform-browser-dynamic": { + "version": "10.2.4", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-10.2.4.tgz", + "integrity": "sha512-+oON9ujv9EOC3yJVgnV/vy3262dpMKBFlQ+dHcr5rfk2WpsnyJ26R+Nhkaug9FEdmSo9w+GqowF5bodrtTOTlA==", + "requires": { + "tslib": "^2.0.0" + } + }, + "@angular/router": { + "version": "10.2.4", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-10.2.4.tgz", + "integrity": "sha512-y3xMwZHWS84fbm3FoU8vTAeXaTuPd4ZfmZ3dhkG9c1tkVq/jCmc6pkqNxjv3L1iPenKrvt2bFhh+wCs+bcUPhw==", + "requires": { + "tslib": "^2.0.0" + } + }, + "@babel/code-frame": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.4" + } + }, + "@babel/compat-data": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.12.7.tgz", + "integrity": "sha512-YaxPMGs/XIWtYqrdEOZOCPsVWfEoriXopnsz3/i7apYPXQ3698UFhS6dVT1KN5qOsWmVgw/FOrmQgpRaZayGsw==", + "dev": true + }, + "@babel/core": { + "version": "7.11.1", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.11.1.tgz", + "integrity": "sha512-XqF7F6FWQdKGGWAzGELL+aCO1p+lRY5Tj5/tbT3St1G8NaH70jhhDIKknIZaDans0OQBG5wRAldROLHSt44BgQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.11.0", + "@babel/helper-module-transforms": "^7.11.0", + "@babel/helpers": "^7.10.4", + "@babel/parser": "^7.11.1", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.11.0", + "@babel/types": "^7.11.0", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.2", + "lodash": "^4.17.19", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "@babel/generator": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.11.0.tgz", + "integrity": "sha512-fEm3Uzw7Mc9Xi//qU20cBKatTfs2aOtKqmvy/Vm7RkJEGFQ4xc9myCfbXxqK//ZS8MR/ciOHw6meGASJuKmDfQ==", + "dev": true, + "requires": { + "@babel/types": "^7.11.0", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.10.tgz", + "integrity": "sha512-XplmVbC1n+KY6jL8/fgLVXXUauDIB+lD5+GsQEh6F6GBF1dq1qy4DP4yXWzDKcoqXB3X58t61e85Fitoww4JVQ==", + "dev": true, + "requires": { + "@babel/types": "^7.12.10" + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz", + "integrity": "sha512-L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg==", + "dev": true, + "requires": { + "@babel/helper-explode-assignable-expression": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.12.5.tgz", + "integrity": "sha512-+qH6NrscMolUlzOYngSBMIOQpKUGPPsc61Bu5W10mg84LxZ7cmvnBHzARKbDoFxVvqqAbj6Tg6N7bSrWSPXMyw==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.12.5", + "@babel/helper-validator-option": "^7.12.1", + "browserslist": "^4.14.5", + "semver": "^5.5.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.12.1.tgz", + "integrity": "sha512-hkL++rWeta/OVOBTRJc9a5Azh5mt5WgZUGAKMD8JM141YsE08K//bp1unBBieO6rUKkIPyUE0USQ30jAy3Sk1w==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-member-expression-to-functions": "^7.12.1", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/helper-replace-supers": "^7.12.1", + "@babel/helper-split-export-declaration": "^7.10.4" + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.7.tgz", + "integrity": "sha512-idnutvQPdpbduutvi3JVfEgcVIHooQnhvhx0Nk9isOINOIGYkZea1Pk2JlJRiUnMefrlvr0vkByATBY/mB4vjQ==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "regexpu-core": "^4.7.1" + } + }, + "@babel/helper-define-map": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz", + "integrity": "sha512-fMw4kgFB720aQFXSVaXr79pjjcW5puTCM16+rECJ/plGS+zByelE8l9nCpV1GibxTnFVmUuYG9U8wYfQHdzOEQ==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.10.4", + "@babel/types": "^7.10.5", + "lodash": "^4.17.19" + } + }, + "@babel/helper-explode-assignable-expression": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.12.1.tgz", + "integrity": "sha512-dmUwH8XmlrUpVqgtZ737tK88v07l840z9j3OEhCLwKTkjlvKpfqXVIZ0wpK3aeOxspwGrf/5AP5qLx4rO3w5rA==", + "dev": true, + "requires": { + "@babel/types": "^7.12.1" + } + }, + "@babel/helper-function-name": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.11.tgz", + "integrity": "sha512-AtQKjtYNolKNi6nNNVLQ27CP6D9oFR6bq/HPYSizlzbp7uC1M59XJe8L+0uXjbIaZaUJF99ruHqVGiKXU/7ybA==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.12.10", + "@babel/template": "^7.12.7", + "@babel/types": "^7.12.11" + }, + "dependencies": { + "@babel/template": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.7.tgz", + "integrity": "sha512-GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.12.7", + "@babel/types": "^7.12.7" + } + } + } + }, + "@babel/helper-get-function-arity": { + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.10.tgz", + "integrity": "sha512-mm0n5BPjR06wh9mPQaDdXWDoll/j5UpCAPl1x8fS71GHm7HA6Ua2V4ylG1Ju8lvcTOietbPNNPaSilKj+pj+Ag==", + "dev": true, + "requires": { + "@babel/types": "^7.12.10" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz", + "integrity": "sha512-wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.7.tgz", + "integrity": "sha512-DCsuPyeWxeHgh1Dus7APn7iza42i/qXqiFPWyBDdOFtvS581JQePsc1F/nD+fHrcswhLlRc2UpYS1NwERxZhHw==", + "dev": true, + "requires": { + "@babel/types": "^7.12.7" + } + }, + "@babel/helper-module-imports": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz", + "integrity": "sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA==", + "dev": true, + "requires": { + "@babel/types": "^7.12.5" + } + }, + "@babel/helper-module-transforms": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz", + "integrity": "sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-replace-supers": "^7.12.1", + "@babel/helper-simple-access": "^7.12.1", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/helper-validator-identifier": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.1", + "@babel/types": "^7.12.1", + "lodash": "^4.17.19" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.10.tgz", + "integrity": "sha512-4tpbU0SrSTjjt65UMWSrUOPZTsgvPgGG4S8QSTNHacKzpS51IVWGDj0yCwyeZND/i+LSN2g/O63jEXEWm49sYQ==", + "dev": true, + "requires": { + "@babel/types": "^7.12.10" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.12.1.tgz", + "integrity": "sha512-9d0KQCRM8clMPcDwo8SevNs+/9a8yWVVmaE80FGJcEP8N1qToREmWEGnBn8BUlJhYRFz6fqxeRL1sl5Ogsed7A==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-wrap-function": "^7.10.4", + "@babel/types": "^7.12.1" + } + }, + "@babel/helper-replace-supers": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.11.tgz", + "integrity": "sha512-q+w1cqmhL7R0FNzth/PLLp2N+scXEK/L2AHbXUyydxp828F4FEa5WcVoqui9vFRiHDQErj9Zof8azP32uGVTRA==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.12.7", + "@babel/helper-optimise-call-expression": "^7.12.10", + "@babel/traverse": "^7.12.10", + "@babel/types": "^7.12.11" + } + }, + "@babel/helper-simple-access": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz", + "integrity": "sha512-OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA==", + "dev": true, + "requires": { + "@babel/types": "^7.12.1" + } + }, + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz", + "integrity": "sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA==", + "dev": true, + "requires": { + "@babel/types": "^7.12.1" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.11.tgz", + "integrity": "sha512-LsIVN8j48gHgwzfocYUSkO/hjYAOJqlpJEc7tGXcIm4cubjVUf8LGW6eWRyxEu7gA25q02p0rQUWoCI33HNS5g==", + "dev": true, + "requires": { + "@babel/types": "^7.12.11" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", + "dev": true + }, + "@babel/helper-validator-option": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.11.tgz", + "integrity": "sha512-TBFCyj939mFSdeX7U7DDj32WtzYY7fDcalgq8v3fBZMNOJQNn7nOYzMaUCiPxPYfCup69mtIpqlKgMZLvQ8Xhw==", + "dev": true + }, + "@babel/helper-wrap-function": { + "version": "7.12.3", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.12.3.tgz", + "integrity": "sha512-Cvb8IuJDln3rs6tzjW3Y8UeelAOdnpB8xtQ4sme2MSZ9wOxrbThporC0y/EtE16VAtoyEfLM404Xr1e0OOp+ow==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helpers": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.5.tgz", + "integrity": "sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA==", + "dev": true, + "requires": { + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.5", + "@babel/types": "^7.12.5" + } + }, + "@babel/highlight": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.11.tgz", + "integrity": "sha512-N3UxG+uuF4CMYoNj8AhnbAcJF0PiuJ9KHuy1lQmkYsxTer/MAH9UBNHsBoAX/4s6NvlDD047No8mYVGGzLL4hg==", + "dev": true + }, + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.12.1.tgz", + "integrity": "sha512-d+/o30tJxFxrA1lhzJqiUcEJdI6jKlNregCv5bASeGf2Q4MXmnwH7viDo7nhx1/ohf09oaH8j1GVYG/e3Yqk6A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-remap-async-to-generator": "^7.12.1", + "@babel/plugin-syntax-async-generators": "^7.8.0" + } + }, + "@babel/plugin-proposal-class-properties": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.12.1.tgz", + "integrity": "sha512-cKp3dlQsFsEs5CWKnN7BnSHOd0EOW8EKpEjkoz1pO2E5KzIDNV9Ros1b0CnmbVgAGXJubOYVBOGCT1OmJwOI7w==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-proposal-dynamic-import": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.12.1.tgz", + "integrity": "sha512-a4rhUSZFuq5W8/OO8H7BL5zspjnc1FLd9hlOxIK/f7qG4a0qsqk8uvF/ywgBA8/OmjsapjpvaEOYItfGG1qIvQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-dynamic-import": "^7.8.0" + } + }, + "@babel/plugin-proposal-export-namespace-from": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.1.tgz", + "integrity": "sha512-6CThGf0irEkzujYS5LQcjBx8j/4aQGiVv7J9+2f7pGfxqyKh3WnmVJYW3hdrQjyksErMGBPQrCnHfOtna+WLbw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + } + }, + "@babel/plugin-proposal-json-strings": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.12.1.tgz", + "integrity": "sha512-GoLDUi6U9ZLzlSda2Df++VSqDJg3CG+dR0+iWsv6XRw1rEq+zwt4DirM9yrxW6XWaTpmai1cWJLMfM8qQJf+yw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.0" + } + }, + "@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.12.1.tgz", + "integrity": "sha512-k8ZmVv0JU+4gcUGeCDZOGd0lCIamU/sMtIiX3UWnUc5yzgq6YUGyEolNYD+MLYKfSzgECPcqetVcJP9Afe/aCA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + } + }, + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.12.1.tgz", + "integrity": "sha512-nZY0ESiaQDI1y96+jk6VxMOaL4LPo/QDHBqL+SF3/vl6dHkTwHlOI8L4ZwuRBHgakRBw5zsVylel7QPbbGuYgg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" + } + }, + "@babel/plugin-proposal-numeric-separator": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.7.tgz", + "integrity": "sha512-8c+uy0qmnRTeukiGsjLGy6uVs/TFjJchGXUeBqlG4VWYOdJWkhhVPdQ3uHwbmalfJwv2JsV0qffXP4asRfL2SQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz", + "integrity": "sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-transform-parameters": "^7.12.1" + } + }, + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.12.1.tgz", + "integrity": "sha512-hFvIjgprh9mMw5v42sJWLI1lzU5L2sznP805zeT6rySVRA0Y18StRhDqhSxlap0oVgItRsB6WSROp4YnJTJz0g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" + } + }, + "@babel/plugin-proposal-optional-chaining": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.12.7.tgz", + "integrity": "sha512-4ovylXZ0PWmwoOvhU2vhnzVNnm88/Sm9nx7V8BPgMvAzn5zDou3/Awy0EjglyubVHasJj+XCEkr/r1X3P5elCA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1", + "@babel/plugin-syntax-optional-chaining": "^7.8.0" + } + }, + "@babel/plugin-proposal-private-methods": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.12.1.tgz", + "integrity": "sha512-mwZ1phvH7/NHK6Kf8LP7MYDogGV+DKB1mryFOEwx5EBNQrosvIczzZFTUmWaeujd5xT6G1ELYWUz3CutMhjE1w==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.1.tgz", + "integrity": "sha512-MYq+l+PvHuw/rKUz1at/vb6nCnQ2gmJBNaM62z0OgH7B2W1D9pvkpYtlti9bGtizNIU1K3zm4bZF9F91efVY0w==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-class-properties": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.1.tgz", + "integrity": "sha512-U40A76x5gTwmESz+qiqssqmeEsKvcSyvtgktrm0uzcARAmM9I1jR221f6Oq+GmHrcD+LvZDag1UTOTe2fL3TeA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.1.tgz", + "integrity": "sha512-i7ooMZFS+a/Om0crxZodrTzNEPJHZrlMVGMTEpFAj6rYY/bKCddB0Dk/YxfPuYXOopuhKk/e1jV6h+WUU9XN3A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.12.1.tgz", + "integrity": "sha512-5QB50qyN44fzzz4/qxDPQMBCTHgxg3n0xRBLJUmBlLoU/sFvxVWGZF/ZUfMVDQuJUKXaBhbupxIzIfZ6Fwk/0A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.12.1.tgz", + "integrity": "sha512-SDtqoEcarK1DFlRJ1hHRY5HvJUj5kX4qmtpMAm2QnhOlyuMC4TMdCRgW6WXpv93rZeYNeLP22y8Aq2dbcDRM1A==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-remap-async-to-generator": "^7.12.1" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.1.tgz", + "integrity": "sha512-5OpxfuYnSgPalRpo8EWGPzIYf0lHBWORCkj5M0oLBwHdlux9Ri36QqGW3/LR13RSVOAoUUMzoPI/jpE4ABcHoA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.11.tgz", + "integrity": "sha512-atR1Rxc3hM+VPg/NvNvfYw0npQEAcHuJ+MGZnFn6h3bo+1U3BWXMdFMlvVRApBTWKQMX7SOwRJZA5FBF/JQbvA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.12.1.tgz", + "integrity": "sha512-/74xkA7bVdzQTBeSUhLLJgYIcxw/dpEpCdRDiHgPJ3Mv6uC11UhjpOhl72CgqbBCmt1qtssCyB2xnJm1+PFjog==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-define-map": "^7.10.4", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-replace-supers": "^7.12.1", + "@babel/helper-split-export-declaration": "^7.10.4", + "globals": "^11.1.0" + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.12.1.tgz", + "integrity": "sha512-vVUOYpPWB7BkgUWPo4C44mUQHpTZXakEqFjbv8rQMg7TC6S6ZhGZ3otQcRH6u7+adSlE5i0sp63eMC/XGffrzg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.12.1.tgz", + "integrity": "sha512-fRMYFKuzi/rSiYb2uRLiUENJOKq4Gnl+6qOv5f8z0TZXg3llUwUhsNNwrwaT/6dUhJTzNpBr+CUvEWBtfNY1cw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.1.tgz", + "integrity": "sha512-B2pXeRKoLszfEW7J4Hg9LoFaWEbr/kzo3teWHmtFCszjRNa/b40f9mfeqZsIDLLt/FjwQ6pz/Gdlwy85xNckBA==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.1.tgz", + "integrity": "sha512-iRght0T0HztAb/CazveUpUQrZY+aGKKaWXMJ4uf9YJtqxSUe09j3wteztCUDRHs+SRAL7yMuFqUsLoAKKzgXjw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.1.tgz", + "integrity": "sha512-7tqwy2bv48q+c1EHbXK0Zx3KXd2RVQp6OC7PbwFNt/dPTAV3Lu5sWtWuAj8owr5wqtWnqHfl2/mJlUmqkChKug==", + "dev": true, + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.12.1.tgz", + "integrity": "sha512-Zaeq10naAsuHo7heQvyV0ptj4dlZJwZgNAtBYBnu5nNKJoW62m0zKcIEyVECrUKErkUkg6ajMy4ZfnVZciSBhg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.1.tgz", + "integrity": "sha512-JF3UgJUILoFrFMEnOJLJkRHSk6LUSXLmEFsA23aR2O5CSLUxbeUX1IZ1YQ7Sn0aXb601Ncwjx73a+FVqgcljVw==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-literals": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.1.tgz", + "integrity": "sha512-+PxVGA+2Ag6uGgL0A5f+9rklOnnMccwEBzwYFL3EUaKuiyVnUipyXncFcfjSkbimLrODoqki1U9XxZzTvfN7IQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.1.tgz", + "integrity": "sha512-1sxePl6z9ad0gFMB9KqmYofk34flq62aqMt9NqliS/7hPEpURUCMbyHXrMPlo282iY7nAvUB1aQd5mg79UD9Jg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.12.1.tgz", + "integrity": "sha512-tDW8hMkzad5oDtzsB70HIQQRBiTKrhfgwC/KkJeGsaNFTdWhKNt/BiE8c5yj19XiGyrxpbkOfH87qkNg1YGlOQ==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.12.1.tgz", + "integrity": "sha512-dY789wq6l0uLY8py9c1B48V8mVL5gZh/+PQ5ZPrylPYsnAvnEMjqsUXkuoDVPeVK+0VyGar+D08107LzDQ6pag==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-simple-access": "^7.12.1", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.12.1.tgz", + "integrity": "sha512-Hn7cVvOavVh8yvW6fLwveFqSnd7rbQN3zJvoPNyNaQSvgfKmDBO9U1YL9+PCXGRlZD9tNdWTy5ACKqMuzyn32Q==", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.10.4", + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-validator-identifier": "^7.10.4", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.12.1.tgz", + "integrity": "sha512-aEIubCS0KHKM0zUos5fIoQm+AZUMt1ZvMpqz0/H5qAQ7vWylr9+PLYurT+Ic7ID/bKLd4q8hDovaG3Zch2uz5Q==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.1.tgz", + "integrity": "sha512-tB43uQ62RHcoDp9v2Nsf+dSM8sbNodbEicbQNA53zHz8pWUhsgHSJCGpt7daXxRydjb0KnfmB+ChXOv3oADp1Q==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.12.1" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.1.tgz", + "integrity": "sha512-+eW/VLcUL5L9IvJH7rT1sT0CzkdUTvPrXC2PXTn/7z7tXLBuKvezYbGdxD5WMRoyvyaujOq2fWoKl869heKjhw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.1.tgz", + "integrity": "sha512-AvypiGJH9hsquNUn+RXVcBdeE3KHPZexWRdimhuV59cSoOt5kFBmqlByorAeUlGG2CJWd0U+4ZtNKga/TB0cAw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-replace-supers": "^7.12.1" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.12.1.tgz", + "integrity": "sha512-xq9C5EQhdPK23ZeCdMxl8bbRnAgHFrw5EOC3KJUsSylZqdkCaFEXxGSBuTSObOpiiHHNyb82es8M1QYgfQGfNg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.1.tgz", + "integrity": "sha512-6MTCR/mZ1MQS+AwZLplX4cEySjCpnIF26ToWo942nqn8hXSm7McaHQNeGx/pt7suI1TWOWMfa/NgBhiqSnX0cQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.1.tgz", + "integrity": "sha512-gYrHqs5itw6i4PflFX3OdBPMQdPbF4bj2REIUxlMRUFk0/ZOAIpDFuViuxPjUL7YC8UPnf+XG7/utJvqXdPKng==", + "dev": true, + "requires": { + "regenerator-transform": "^0.14.2" + } + }, + "@babel/plugin-transform-reserved-words": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.1.tgz", + "integrity": "sha512-pOnUfhyPKvZpVyBHhSBoX8vfA09b7r00Pmm1sH+29ae2hMTKVmSp4Ztsr8KBKjLjx17H0eJqaRC3bR2iThM54A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-runtime": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.11.0.tgz", + "integrity": "sha512-LFEsP+t3wkYBlis8w6/kmnd6Kb1dxTd+wGJ8MlxTGzQo//ehtqlVL4S9DNUa53+dtPSQobN2CXx4d81FqC58cw==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "resolve": "^1.8.1", + "semver": "^5.5.1" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.1.tgz", + "integrity": "sha512-GFZS3c/MhX1OusqB1MZ1ct2xRzX5ppQh2JU1h2Pnfk88HtFTM+TWQqJNfwkmxtPQtb/s1tk87oENfXJlx7rSDw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.12.1.tgz", + "integrity": "sha512-vuLp8CP0BE18zVYjsEBZ5xoCecMK6LBMMxYzJnh01rxQRvhNhH1csMMmBfNo5tGpGO+NhdSNW2mzIvBu3K1fng==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.7.tgz", + "integrity": "sha512-VEiqZL5N/QvDbdjfYQBhruN0HYjSPjC4XkeqW4ny/jNtH9gcbgaqBIXYEZCNnESMAGs0/K/R7oFGMhOyu/eIxg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.12.1.tgz", + "integrity": "sha512-b4Zx3KHi+taXB1dVRBhVJtEPi9h1THCeKmae2qP0YdUHIFhVjtpqqNfxeVAa1xeHVhAy4SbHxEwx5cltAu5apw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.10.tgz", + "integrity": "sha512-JQ6H8Rnsogh//ijxspCjc21YPd3VLVoYtAwv3zQmqAt8YGYUtdo5usNhdl4b9/Vir2kPFZl6n1h0PfUz4hJhaA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-unicode-escapes": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.1.tgz", + "integrity": "sha512-I8gNHJLIc7GdApm7wkVnStWssPNbSRMPtgHdmH3sRM1zopz09UWPS4x5V4n1yz/MIWTVnJ9sp6IkuXdWM4w+2Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.1.tgz", + "integrity": "sha512-SqH4ClNngh/zGwHZOOQMTD+e8FGWexILV+ePMyiDJttAWRh5dhDL8rcl5lSgU3Huiq6Zn6pWTMvdPAb21Dwdyg==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/preset-env": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.11.0.tgz", + "integrity": "sha512-2u1/k7rG/gTh02dylX2kL3S0IJNF+J6bfDSp4DI2Ma8QN6Y9x9pmAax59fsCk6QUQG0yqH47yJWA+u1I1LccAg==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.11.0", + "@babel/helper-compilation-targets": "^7.10.4", + "@babel/helper-module-imports": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-proposal-async-generator-functions": "^7.10.4", + "@babel/plugin-proposal-class-properties": "^7.10.4", + "@babel/plugin-proposal-dynamic-import": "^7.10.4", + "@babel/plugin-proposal-export-namespace-from": "^7.10.4", + "@babel/plugin-proposal-json-strings": "^7.10.4", + "@babel/plugin-proposal-logical-assignment-operators": "^7.11.0", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.10.4", + "@babel/plugin-proposal-numeric-separator": "^7.10.4", + "@babel/plugin-proposal-object-rest-spread": "^7.11.0", + "@babel/plugin-proposal-optional-catch-binding": "^7.10.4", + "@babel/plugin-proposal-optional-chaining": "^7.11.0", + "@babel/plugin-proposal-private-methods": "^7.10.4", + "@babel/plugin-proposal-unicode-property-regex": "^7.10.4", + "@babel/plugin-syntax-async-generators": "^7.8.0", + "@babel/plugin-syntax-class-properties": "^7.10.4", + "@babel/plugin-syntax-dynamic-import": "^7.8.0", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.0", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.0", + "@babel/plugin-syntax-top-level-await": "^7.10.4", + "@babel/plugin-transform-arrow-functions": "^7.10.4", + "@babel/plugin-transform-async-to-generator": "^7.10.4", + "@babel/plugin-transform-block-scoped-functions": "^7.10.4", + "@babel/plugin-transform-block-scoping": "^7.10.4", + "@babel/plugin-transform-classes": "^7.10.4", + "@babel/plugin-transform-computed-properties": "^7.10.4", + "@babel/plugin-transform-destructuring": "^7.10.4", + "@babel/plugin-transform-dotall-regex": "^7.10.4", + "@babel/plugin-transform-duplicate-keys": "^7.10.4", + "@babel/plugin-transform-exponentiation-operator": "^7.10.4", + "@babel/plugin-transform-for-of": "^7.10.4", + "@babel/plugin-transform-function-name": "^7.10.4", + "@babel/plugin-transform-literals": "^7.10.4", + "@babel/plugin-transform-member-expression-literals": "^7.10.4", + "@babel/plugin-transform-modules-amd": "^7.10.4", + "@babel/plugin-transform-modules-commonjs": "^7.10.4", + "@babel/plugin-transform-modules-systemjs": "^7.10.4", + "@babel/plugin-transform-modules-umd": "^7.10.4", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.10.4", + "@babel/plugin-transform-new-target": "^7.10.4", + "@babel/plugin-transform-object-super": "^7.10.4", + "@babel/plugin-transform-parameters": "^7.10.4", + "@babel/plugin-transform-property-literals": "^7.10.4", + "@babel/plugin-transform-regenerator": "^7.10.4", + "@babel/plugin-transform-reserved-words": "^7.10.4", + "@babel/plugin-transform-shorthand-properties": "^7.10.4", + "@babel/plugin-transform-spread": "^7.11.0", + "@babel/plugin-transform-sticky-regex": "^7.10.4", + "@babel/plugin-transform-template-literals": "^7.10.4", + "@babel/plugin-transform-typeof-symbol": "^7.10.4", + "@babel/plugin-transform-unicode-escapes": "^7.10.4", + "@babel/plugin-transform-unicode-regex": "^7.10.4", + "@babel/preset-modules": "^0.1.3", + "@babel/types": "^7.11.0", + "browserslist": "^4.12.0", + "core-js-compat": "^3.6.2", + "invariant": "^2.2.2", + "levenary": "^1.1.1", + "semver": "^5.5.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "@babel/preset-modules": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.4.tgz", + "integrity": "sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + } + }, + "@babel/runtime": { + "version": "7.11.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.11.2.tgz", + "integrity": "sha512-TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "@babel/template": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", + "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/traverse": { + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.10.tgz", + "integrity": "sha512-6aEtf0IeRgbYWzta29lePeYSk+YAFIC3kyqESeft8o5CkFlYIMX+EQDDWEiAQ9LHOA3d0oHdgrSsID/CKqXJlg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.10", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/parser": "^7.12.10", + "@babel/types": "^7.12.10", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.19" + }, + "dependencies": { + "@babel/generator": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.11.tgz", + "integrity": "sha512-Ggg6WPOJtSi8yYQvLVjG8F/TlpWDlKx0OpS4Kt+xMQPs5OaGYWy+v1A+1TvxI6sAMGZpKWWoAQ1DaeQbImlItA==", + "dev": true, + "requires": { + "@babel/types": "^7.12.11", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "@babel/types": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.11.tgz", + "integrity": "sha512-ukA9SQtKThINm++CX1CwmliMrE54J6nIYB5XTwL5f/CLFW9owfls+YSU8tVW15RQ2w+a3fSbPjC6HdQNtWZkiA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + }, + "@istanbuljs/schema": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz", + "integrity": "sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==", + "dev": true + }, + "@jsdevtools/coverage-istanbul-loader": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@jsdevtools/coverage-istanbul-loader/-/coverage-istanbul-loader-3.0.5.tgz", + "integrity": "sha512-EUCPEkaRPvmHjWAAZkWMT7JDzpw7FKB00WTISaiXsbNOd5hCHg77XLA8sLYLFDo1zepYLo2w7GstN8YBqRXZfA==", + "dev": true, + "requires": { + "convert-source-map": "^1.7.0", + "istanbul-lib-instrument": "^4.0.3", + "loader-utils": "^2.0.0", + "merge-source-map": "^1.1.0", + "schema-utils": "^2.7.0" + } + }, + "@ngtools/webpack": { + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-10.2.1.tgz", + "integrity": "sha512-RKJSoQufHHpLpsGWUas3WEYtFhnCXmf5GiYCEv8d36ITNRKHhQv38FHLq1aen8Jd7F0b3eZFX5JmGvb7JJmVVg==", + "dev": true, + "requires": { + "@angular-devkit/core": "10.2.1", + "enhanced-resolve": "4.3.0", + "webpack-sources": "1.4.3" + } + }, + "@nodelib/fs.scandir": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz", + "integrity": "sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.3", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz", + "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz", + "integrity": "sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.3", + "fastq": "^1.6.0" + } + }, + "@npmcli/move-file": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.0.1.tgz", + "integrity": "sha512-Uv6h1sT+0DrblvIrolFtbvM1FgWm+/sy4B3pvLp67Zys+thcukzS5ekn7HsZFGpWP4Q3fYJCljbWQE/XivMRLw==", + "dev": true, + "requires": { + "mkdirp": "^1.0.4" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + } + } + }, + "@schematics/angular": { + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-10.2.1.tgz", + "integrity": "sha512-hmhZ6zPJshP1ATYc/EzJPwaFas0D+T6eeWEFyHAgIV2GmNdJNyBdKHQtizGRQBpfWvBdI4/krvX+a71VnkU8oA==", + "dev": true, + "requires": { + "@angular-devkit/core": "10.2.1", + "@angular-devkit/schematics": "10.2.1", + "jsonc-parser": "2.3.0" + } + }, + "@schematics/update": { + "version": "0.1002.1", + "resolved": "https://registry.npmjs.org/@schematics/update/-/update-0.1002.1.tgz", + "integrity": "sha512-RbC01VKb9q7Db5rpbrQLBOVkIzv3TPWMjRUSgg/LlLFEDVO3LPn5nX9bYnb6E0HeIqUW+zAU5Qaz9ob/Py06LA==", + "dev": true, + "requires": { + "@angular-devkit/core": "10.2.1", + "@angular-devkit/schematics": "10.2.1", + "@yarnpkg/lockfile": "1.1.0", + "ini": "1.3.6", + "npm-package-arg": "^8.0.0", + "pacote": "9.5.12", + "semver": "7.3.2", + "semver-intersect": "1.4.0" + } + }, + "@types/glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==", + "dev": true, + "requires": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "@types/jasmine": { + "version": "3.5.14", + "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-3.5.14.tgz", + "integrity": "sha512-Fkgk536sHPqcOtd+Ow+WiUNuk0TSo/BntKkF8wSvcd6M2FvPjeXcUE6Oz/bwDZiUZEaXLslAgw00Q94Pnx6T4w==", + "dev": true + }, + "@types/jasminewd2": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@types/jasminewd2/-/jasminewd2-2.0.8.tgz", + "integrity": "sha512-d9p31r7Nxk0ZH0U39PTH0hiDlJ+qNVGjlt1ucOoTUptxb2v+Y5VMnsxfwN+i3hK4yQnqBi3FMmoMFcd1JHDxdg==", + "dev": true, + "requires": { + "@types/jasmine": "*" + } + }, + "@types/json-schema": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.6.tgz", + "integrity": "sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw==", + "dev": true + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, + "@types/node": { + "version": "12.19.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.19.9.tgz", + "integrity": "sha512-yj0DOaQeUrk3nJ0bd3Y5PeDRJ6W0r+kilosLA+dzF3dola/o9hxhMSg2sFvVcA2UHS5JSOsZp4S0c1OEXc4m1Q==", + "dev": true + }, + "@types/q": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz", + "integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==", + "dev": true + }, + "@types/selenium-webdriver": { + "version": "3.0.17", + "resolved": "https://registry.npmjs.org/@types/selenium-webdriver/-/selenium-webdriver-3.0.17.tgz", + "integrity": "sha512-tGomyEuzSC1H28y2zlW6XPCaDaXFaD6soTdb4GNdmte2qfHtrKqhy0ZFs4r/1hpazCfEZqeTSRLvSasmEx89uw==", + "dev": true + }, + "@types/source-list-map": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz", + "integrity": "sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==", + "dev": true + }, + "@types/webpack-sources": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-0.1.8.tgz", + "integrity": "sha512-JHB2/xZlXOjzjBB6fMOpH1eQAfsrpqVVIbneE0Rok16WXwFaznaI5vfg75U5WgGJm7V9W1c4xeRQDjX/zwvghA==", + "dev": true, + "requires": { + "@types/node": "*", + "@types/source-list-map": "*", + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "@webassemblyjs/ast": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", + "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", + "dev": true, + "requires": { + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz", + "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==", + "dev": true + }, + "@webassemblyjs/helper-api-error": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", + "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==", + "dev": true + }, + "@webassemblyjs/helper-buffer": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", + "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==", + "dev": true + }, + "@webassemblyjs/helper-code-frame": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz", + "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==", + "dev": true, + "requires": { + "@webassemblyjs/wast-printer": "1.9.0" + } + }, + "@webassemblyjs/helper-fsm": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz", + "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==", + "dev": true + }, + "@webassemblyjs/helper-module-context": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz", + "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0" + } + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", + "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==", + "dev": true + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", + "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0" + } + }, + "@webassemblyjs/ieee754": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", + "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", + "dev": true, + "requires": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", + "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", + "dev": true, + "requires": { + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/utf8": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", + "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==", + "dev": true + }, + "@webassemblyjs/wasm-edit": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", + "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/helper-wasm-section": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-opt": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "@webassemblyjs/wast-printer": "1.9.0" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", + "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", + "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", + "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" + } + }, + "@webassemblyjs/wast-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz", + "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/floating-point-hex-parser": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-code-frame": "1.9.0", + "@webassemblyjs/helper-fsm": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", + "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "@yarnpkg/lockfile": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", + "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", + "dev": true + }, + "JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "dev": true, + "requires": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + } + }, + "abab": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", + "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", + "dev": true + }, + "accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "dev": true, + "requires": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + } + }, + "acorn": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", + "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", + "dev": true + }, + "adjust-sourcemap-loader": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-3.0.0.tgz", + "integrity": "sha512-YBrGyT2/uVQ/c6Rr+t6ZJXniY03YtHGMJQYal368burRGYKqhx9qGTWqcBU5s1CwYY9E/ri63RYyG1IacMZtqw==", + "dev": true, + "requires": { + "loader-utils": "^2.0.0", + "regex-parser": "^2.2.11" + } + }, + "adm-zip": { + "version": "0.4.16", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz", + "integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==", + "dev": true + }, + "after": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", + "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=", + "dev": true + }, + "agent-base": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", + "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", + "dev": true, + "requires": { + "es6-promisify": "^5.0.0" + } + }, + "agentkeepalive": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-3.5.2.tgz", + "integrity": "sha512-e0L/HNe6qkQ7H19kTlRRqUibEAwDK5AFk6y3PtMsuut2VAH6+Q4xZml1tNDJD7kSAyqmbG/K08K5WEJYtUrSlQ==", + "dev": true, + "requires": { + "humanize-ms": "^1.2.1" + } + }, + "aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, + "ajv": { + "version": "6.12.4", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.4.tgz", + "integrity": "sha512-eienB2c9qVQs2KWexhkrdMLVDoIQCz5KSeLxwg9Lzk4DOfBtIK9PQwwufcsn1jjGuf9WZmqPMbGxOzfcuphJCQ==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-errors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", + "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", + "dev": true + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true + }, + "alphanum-sort": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", + "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", + "dev": true + }, + "ansi-colors": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", + "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", + "dev": true + }, + "ansi-escapes": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", + "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", + "dev": true, + "requires": { + "type-fest": "^0.11.0" + } + }, + "ansi-html": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", + "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=", + "dev": true + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "app-root-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-3.0.0.tgz", + "integrity": "sha512-qMcx+Gy2UZynHjOHOIXPNvpf+9cjvk3cWrBBK7zg4gH9+clobJRb9NGzcT7mQTcV/6Gm/1WelUtqxVXnNlrwcw==", + "dev": true + }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true + }, + "arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "aria-query": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-3.0.0.tgz", + "integrity": "sha1-ZbP8wcoRVajJrmTW7uKX8V1RM8w=", + "dev": true, + "requires": { + "ast-types-flow": "0.0.7", + "commander": "^2.11.0" + } + }, + "arity-n": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/arity-n/-/arity-n-1.0.4.tgz", + "integrity": "sha1-2edrEXM+CFacCEeuezmyhgswt0U=", + "dev": true + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true + }, + "array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", + "dev": true + }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "arraybuffer.slice": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz", + "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==", + "dev": true + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", + "dev": true + }, + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "dev": true, + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "asn1.js": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", + "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "assert": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", + "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", + "dev": true, + "requires": { + "object-assign": "^4.1.1", + "util": "0.10.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", + "dev": true + }, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "dev": true, + "requires": { + "inherits": "2.0.1" + } + } + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true + }, + "ast-types-flow": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", + "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=", + "dev": true + }, + "async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } + }, + "async-each": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", + "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", + "dev": true + }, + "async-limiter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true + }, + "autoprefixer": { + "version": "9.8.6", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.6.tgz", + "integrity": "sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg==", + "dev": true, + "requires": { + "browserslist": "^4.12.0", + "caniuse-lite": "^1.0.30001109", + "colorette": "^1.2.1", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "postcss": "^7.0.32", + "postcss-value-parser": "^4.1.0" + } + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true + }, + "aws4": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", + "dev": true + }, + "axobject-query": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.0.2.tgz", + "integrity": "sha512-MCeek8ZH7hKyO1rWUbKNQBbl4l2eY0ntk7OGi+q0RlafrCnfPxC06WZA+uebCfmYp4mNU9jRBP1AhGyf8+W3ww==", + "dev": true, + "requires": { + "ast-types-flow": "0.0.7" + } + }, + "babel-loader": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.1.0.tgz", + "integrity": "sha512-7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw==", + "dev": true, + "requires": { + "find-cache-dir": "^2.1.0", + "loader-utils": "^1.4.0", + "mkdirp": "^0.5.3", + "pify": "^4.0.1", + "schema-utils": "^2.6.5" + }, + "dependencies": { + "find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + } + }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + } + } + }, + "babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "dev": true, + "requires": { + "object.assign": "^4.1.0" + } + }, + "backo2": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", + "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "base64-arraybuffer": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz", + "integrity": "sha1-mBjHngWbE1X5fgQooBfIOOkLqBI=", + "dev": true + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true + }, + "base64id": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", + "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", + "dev": true + }, + "batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dev": true, + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "better-assert": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", + "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=", + "dev": true, + "requires": { + "callsite": "1.0.0" + } + }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true + }, + "binary-extensions": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", + "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", + "dev": true + }, + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dev": true, + "optional": true, + "requires": { + "file-uri-to-path": "1.0.0" + } + }, + "blob": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz", + "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==", + "dev": true + }, + "blocking-proxy": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/blocking-proxy/-/blocking-proxy-1.0.1.tgz", + "integrity": "sha512-KE8NFMZr3mN2E0HcvCgRtX7DjhiIQrwle+nSVJVC/yqFb9+xznHl2ZcoBp2L9qzkI4t4cBFJ1efXF8Dwi132RA==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, + "bn.js": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.3.tgz", + "integrity": "sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ==", + "dev": true + }, + "body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "dev": true, + "requires": { + "bytes": "3.1.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" + }, + "dependencies": { + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "bonjour": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", + "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", + "dev": true, + "requires": { + "array-flatten": "^2.1.0", + "deep-equal": "^1.0.1", + "dns-equal": "^1.0.0", + "dns-txt": "^2.0.2", + "multicast-dns": "^6.0.1", + "multicast-dns-service-types": "^1.1.0" + } + }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", + "dev": true + }, + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dev": true, + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "dev": true, + "requires": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "browserify-rsa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", + "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", + "dev": true, + "requires": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + } + }, + "browserify-sign": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", + "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", + "dev": true, + "requires": { + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.3", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + } + } + }, + "browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "dev": true, + "requires": { + "pako": "~1.0.5" + } + }, + "browserslist": { + "version": "4.16.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.0.tgz", + "integrity": "sha512-/j6k8R0p3nxOC6kx5JGAxsnhc9ixaWJfYc+TNTzxg6+ARaESAvQGV7h0uNOB4t+pLQJZWzcrMxXOxjgsCj3dqQ==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001165", + "colorette": "^1.2.1", + "electron-to-chromium": "^1.3.621", + "escalade": "^3.1.1", + "node-releases": "^1.1.67" + } + }, + "browserstack": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/browserstack/-/browserstack-1.6.1.tgz", + "integrity": "sha512-GxtFjpIaKdbAyzHfFDKixKO8IBT7wR3NjbzrGc78nNs/Ciys9wU3/nBtsqsWv5nDSrdI5tz0peKuzCPuNXNUiw==", + "dev": true, + "requires": { + "https-proxy-agent": "^2.2.1" + } + }, + "buffer": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "dev": true, + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "dev": true + }, + "buffer-indexof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", + "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", + "dev": true + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", + "dev": true + }, + "builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "dev": true + }, + "builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", + "dev": true + }, + "builtins": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", + "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=", + "dev": true + }, + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", + "dev": true + }, + "cacache": { + "version": "15.0.5", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.0.5.tgz", + "integrity": "sha512-lloiL22n7sOjEEXdL8NAjTgv9a1u43xICE9/203qonkZUCj5X1UEWIdf2/Y0d6QcCtMzbKQyhrcDbdvlZTs/+A==", + "dev": true, + "requires": { + "@npmcli/move-file": "^1.0.1", + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "infer-owner": "^1.0.4", + "lru-cache": "^6.0.0", + "minipass": "^3.1.1", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^1.0.3", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^8.0.0", + "tar": "^6.0.2", + "unique-filename": "^1.1.1" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + } + } + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } + }, + "call-bind": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.0.tgz", + "integrity": "sha512-AEXsYIyyDY3MCzbwdhzG3Jx1R0J2wetQyUynn6dYHAO+bg8l1k7jwZtRv4ryryFs7EP+NDlikJlVe59jr0cM2w==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.0" + } + }, + "caller-callsite": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", + "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", + "dev": true, + "requires": { + "callsites": "^2.0.0" + } + }, + "caller-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", + "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", + "dev": true, + "requires": { + "caller-callsite": "^2.0.0" + } + }, + "callsite": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", + "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=", + "dev": true + }, + "callsites": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", + "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", + "dev": true + }, + "camelcase": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", + "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", + "dev": true + }, + "caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "caniuse-lite": { + "version": "1.0.30001168", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001168.tgz", + "integrity": "sha512-P2zmX7swIXKu+GMMR01TWa4csIKELTNnZKc+f1CjebmZJQtTAEXmpQSoKVJVVcvPGAA0TEYTOUp3VehavZSFPQ==", + "dev": true + }, + "canonical-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/canonical-path/-/canonical-path-1.0.0.tgz", + "integrity": "sha512-feylzsbDxi1gPZ1IjystzIQZagYYLvfKrSuygUCgf7z6x790VEzze5QEkdSV1U58RA7Hi0+v6fv4K54atOzATg==", + "dev": true + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, + "chokidar": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.3.tgz", + "integrity": "sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ==", + "dev": true, + "requires": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.1.2", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.5.0" + } + }, + "chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true + }, + "chrome-trace-event": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz", + "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "circular-dependency-plugin": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/circular-dependency-plugin/-/circular-dependency-plugin-5.2.0.tgz", + "integrity": "sha512-7p4Kn/gffhQaavNfyDFg7LS5S/UT1JAjyGd4UqR2+jzoYF02eDkj0Ec3+48TsIa4zghjLY87nQHIh/ecK9qLdw==", + "dev": true + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true + }, + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "cli-spinners": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.5.0.tgz", + "integrity": "sha512-PC+AmIuK04E6aeSs/pUccSujsTzBhu4HzC2dL+CfJB/Jcc2qTRbEwZQDfIUpt2Xl8BodYBEq8w4fc0kU2I9DjQ==", + "dev": true + }, + "cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "dev": true + }, + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "dev": true + }, + "coa": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", + "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", + "dev": true, + "requires": { + "@types/q": "^1.5.1", + "chalk": "^2.4.1", + "q": "^1.1.2" + } + }, + "codelyzer": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/codelyzer/-/codelyzer-6.0.1.tgz", + "integrity": "sha512-cOyGQgMdhnRYtW2xrJUNrNYDjEgwQ+BrE2y93Bwz3h4DJ6vJRLfupemU5N3pbYsUlBHJf0u1j1UGk+NLW4d97g==", + "dev": true, + "requires": { + "@angular/compiler": "9.0.0", + "@angular/core": "9.0.0", + "app-root-path": "^3.0.0", + "aria-query": "^3.0.0", + "axobject-query": "2.0.2", + "css-selector-tokenizer": "^0.7.1", + "cssauron": "^1.4.0", + "damerau-levenshtein": "^1.0.4", + "rxjs": "^6.5.3", + "semver-dsl": "^1.0.1", + "source-map": "^0.5.7", + "sprintf-js": "^1.1.2", + "tslib": "^1.10.0", + "zone.js": "~0.10.3" + }, + "dependencies": { + "@angular/compiler": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-9.0.0.tgz", + "integrity": "sha512-ctjwuntPfZZT2mNj2NDIVu51t9cvbhl/16epc5xEwyzyDt76pX9UgwvY+MbXrf/C/FWwdtmNtfP698BKI+9leQ==", + "dev": true + }, + "@angular/core": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-9.0.0.tgz", + "integrity": "sha512-6Pxgsrf0qF9iFFqmIcWmjJGkkCaCm6V5QNnxMy2KloO3SDq6QuMVRbN9RtC8Urmo25LP+eZ6ZgYqFYpdD8Hd9w==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "sprintf-js": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", + "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", + "dev": true + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "color": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/color/-/color-3.1.3.tgz", + "integrity": "sha512-xgXAcTHa2HeFCGLE9Xs/R82hujGtu9Jd9x4NW3T34+OMs7VoPsjwzRczKHvTAHeJwWFwX5j15+MgAppE8ztObQ==", + "dev": true, + "requires": { + "color-convert": "^1.9.1", + "color-string": "^1.5.4" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "color-string": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.4.tgz", + "integrity": "sha512-57yF5yt8Xa3czSEW1jfQDE79Idk0+AkN/4KWad6tbdxUmAs3MvjxlWSWD4deYytcRfoZ9nhKyFl1kj5tBvidbw==", + "dev": true, + "requires": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "colorette": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz", + "integrity": "sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==", + "dev": true + }, + "colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "dev": true + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, + "component-bind": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", + "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=", + "dev": true + }, + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true + }, + "component-inherit": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", + "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=", + "dev": true + }, + "compose-function": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/compose-function/-/compose-function-3.0.3.tgz", + "integrity": "sha1-ntZ18TzFRQHTCVCkhv9qe6OrGF8=", + "dev": true, + "requires": { + "arity-n": "^1.0.4" + } + }, + "compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dev": true, + "requires": { + "mime-db": ">= 1.43.0 < 2" + } + }, + "compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dev": true, + "requires": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "connect": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", + "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", + "dev": true, + "requires": { + "debug": "2.6.9", + "finalhandler": "1.1.2", + "parseurl": "~1.3.3", + "utils-merge": "1.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "connect-history-api-fallback": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", + "dev": true + }, + "console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", + "dev": true + }, + "constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", + "dev": true + }, + "content-disposition": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", + "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", + "dev": true, + "requires": { + "safe-buffer": "5.1.2" + } + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "dev": true + }, + "convert-source-map": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "cookie": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", + "dev": true + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", + "dev": true + }, + "copy-anything": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.1.tgz", + "integrity": "sha512-lA57e7viQHOdPQcrytv5jFeudZZOXuyk47lZym279FiDQ8jeZomXiGuVf6ffMKkJ+3TIai3J1J3yi6M+/4U35g==", + "dev": true, + "requires": { + "is-what": "^3.7.1" + } + }, + "copy-concurrently": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", + "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", + "dev": true, + "requires": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + }, + "dependencies": { + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, + "copy-webpack-plugin": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-6.0.3.tgz", + "integrity": "sha512-q5m6Vz4elsuyVEIUXr7wJdIdePWTubsqVbEMvf1WQnHGv0Q+9yPRu7MtYFPt+GBOXRav9lvIINifTQ1vSCs+eA==", + "dev": true, + "requires": { + "cacache": "^15.0.4", + "fast-glob": "^3.2.4", + "find-cache-dir": "^3.3.1", + "glob-parent": "^5.1.1", + "globby": "^11.0.1", + "loader-utils": "^2.0.0", + "normalize-path": "^3.0.0", + "p-limit": "^3.0.1", + "schema-utils": "^2.7.0", + "serialize-javascript": "^4.0.0", + "webpack-sources": "^1.4.3" + }, + "dependencies": { + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + } + } + }, + "core-js": { + "version": "3.6.4", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.4.tgz", + "integrity": "sha512-4paDGScNgZP2IXXilaffL9X7968RuvwlkK3xWtZRVqgd8SYNiVKRJvkFd1aqqEuPfN7E68ZHEp9hDj6lHj4Hyw==", + "dev": true + }, + "core-js-compat": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.8.1.tgz", + "integrity": "sha512-a16TLmy9NVD1rkjUGbwuyWkiDoN0FDpAwrfLONvHFQx0D9k7J9y0srwMT8QP/Z6HE3MIFaVynEeYwZwPX1o5RQ==", + "dev": true, + "requires": { + "browserslist": "^4.15.0", + "semver": "7.0.0" + }, + "dependencies": { + "semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "dev": true + } + } + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "cosmiconfig": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", + "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", + "dev": true, + "requires": { + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" + } + }, + "create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dev": true, + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "dev": true, + "requires": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + } + }, + "css": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz", + "integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "source-map": "^0.6.1", + "source-map-resolve": "^0.5.2", + "urix": "^0.1.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "css-color-names": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", + "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=", + "dev": true + }, + "css-declaration-sorter": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz", + "integrity": "sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==", + "dev": true, + "requires": { + "postcss": "^7.0.1", + "timsort": "^0.3.0" + } + }, + "css-loader": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-4.2.2.tgz", + "integrity": "sha512-omVGsTkZPVwVRpckeUnLshPp12KsmMSLqYxs12+RzM9jRR5Y+Idn/tBffjXRvOE+qW7if24cuceFJqYR5FmGBg==", + "dev": true, + "requires": { + "camelcase": "^6.0.0", + "cssesc": "^3.0.0", + "icss-utils": "^4.1.1", + "loader-utils": "^2.0.0", + "postcss": "^7.0.32", + "postcss-modules-extract-imports": "^2.0.0", + "postcss-modules-local-by-default": "^3.0.3", + "postcss-modules-scope": "^2.2.0", + "postcss-modules-values": "^3.0.0", + "postcss-value-parser": "^4.1.0", + "schema-utils": "^2.7.0", + "semver": "^7.3.2" + } + }, + "css-parse": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/css-parse/-/css-parse-2.0.0.tgz", + "integrity": "sha1-pGjuZnwW2BzPBcWMONKpfHgNv9Q=", + "dev": true, + "requires": { + "css": "^2.0.0" + } + }, + "css-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", + "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", + "dev": true, + "requires": { + "boolbase": "^1.0.0", + "css-what": "^3.2.1", + "domutils": "^1.7.0", + "nth-check": "^1.0.2" + } + }, + "css-select-base-adapter": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", + "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==", + "dev": true + }, + "css-selector-tokenizer": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.3.tgz", + "integrity": "sha512-jWQv3oCEL5kMErj4wRnK/OPoBi0D+P1FR2cDCKYPaMeD2eW3/mttav8HT4hT1CKopiJI/psEULjkClhvJo4Lvg==", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "fastparse": "^1.1.2" + } + }, + "css-tree": { + "version": "1.0.0-alpha.37", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", + "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", + "dev": true, + "requires": { + "mdn-data": "2.0.4", + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "css-what": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", + "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==", + "dev": true + }, + "cssauron": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/cssauron/-/cssauron-1.4.0.tgz", + "integrity": "sha1-pmAt/34EqDBtwNuaVR6S6LVmKtg=", + "dev": true, + "requires": { + "through": "X.X.X" + } + }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true + }, + "cssnano": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.10.tgz", + "integrity": "sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ==", + "dev": true, + "requires": { + "cosmiconfig": "^5.0.0", + "cssnano-preset-default": "^4.0.7", + "is-resolvable": "^1.0.0", + "postcss": "^7.0.0" + } + }, + "cssnano-preset-default": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz", + "integrity": "sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA==", + "dev": true, + "requires": { + "css-declaration-sorter": "^4.0.1", + "cssnano-util-raw-cache": "^4.0.1", + "postcss": "^7.0.0", + "postcss-calc": "^7.0.1", + "postcss-colormin": "^4.0.3", + "postcss-convert-values": "^4.0.1", + "postcss-discard-comments": "^4.0.2", + "postcss-discard-duplicates": "^4.0.2", + "postcss-discard-empty": "^4.0.1", + "postcss-discard-overridden": "^4.0.1", + "postcss-merge-longhand": "^4.0.11", + "postcss-merge-rules": "^4.0.3", + "postcss-minify-font-values": "^4.0.2", + "postcss-minify-gradients": "^4.0.2", + "postcss-minify-params": "^4.0.2", + "postcss-minify-selectors": "^4.0.2", + "postcss-normalize-charset": "^4.0.1", + "postcss-normalize-display-values": "^4.0.2", + "postcss-normalize-positions": "^4.0.2", + "postcss-normalize-repeat-style": "^4.0.2", + "postcss-normalize-string": "^4.0.2", + "postcss-normalize-timing-functions": "^4.0.2", + "postcss-normalize-unicode": "^4.0.1", + "postcss-normalize-url": "^4.0.1", + "postcss-normalize-whitespace": "^4.0.2", + "postcss-ordered-values": "^4.1.2", + "postcss-reduce-initial": "^4.0.3", + "postcss-reduce-transforms": "^4.0.2", + "postcss-svgo": "^4.0.2", + "postcss-unique-selectors": "^4.0.1" + } + }, + "cssnano-util-get-arguments": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz", + "integrity": "sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=", + "dev": true + }, + "cssnano-util-get-match": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz", + "integrity": "sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=", + "dev": true + }, + "cssnano-util-raw-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz", + "integrity": "sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "cssnano-util-same-parent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz", + "integrity": "sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==", + "dev": true + }, + "csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "dev": true, + "requires": { + "css-tree": "^1.1.2" + }, + "dependencies": { + "css-tree": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.2.tgz", + "integrity": "sha512-wCoWush5Aeo48GLhfHPbmvZs59Z+M7k5+B1xDnXbdWNcEF423DoFdqSWE0PM5aNk5nI5cp1q7ms36zGApY/sKQ==", + "dev": true, + "requires": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + } + }, + "mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "custom-event": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", + "integrity": "sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU=", + "dev": true + }, + "cyclist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", + "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", + "dev": true + }, + "d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "dev": true, + "requires": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + }, + "damerau-levenshtein": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz", + "integrity": "sha512-JVrozIeElnj3QzfUIt8tB8YMluBJom4Vw9qTPpjGYQ9fYlB3D/rb6OordUxf3xeFB35LKWs0xqcO5U6ySvBtug==", + "dev": true + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "data-urls": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", + "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "dev": true, + "requires": { + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" + } + }, + "date-format": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-3.0.0.tgz", + "integrity": "sha512-eyTcpKOcamdhWJXj56DpQMo1ylSQpcGtGKXcU0Tb97+K56/CF5amAqqqNj0+KvA0iw2ynxtHWFsPDSClCxe48w==", + "dev": true + }, + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "debuglog": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz", + "integrity": "sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI=", + "dev": true + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true + }, + "deep-equal": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", + "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", + "dev": true, + "requires": { + "is-arguments": "^1.0.4", + "is-date-object": "^1.0.1", + "is-regex": "^1.0.4", + "object-is": "^1.0.1", + "object-keys": "^1.1.1", + "regexp.prototype.flags": "^1.2.0" + } + }, + "default-gateway": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", + "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==", + "dev": true, + "requires": { + "execa": "^1.0.0", + "ip-regex": "^2.1.0" + } + }, + "defaults": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "dev": true, + "requires": { + "clone": "^1.0.2" + }, + "dependencies": { + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "dev": true + } + } + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "requires": { + "object-keys": "^1.0.12" + } + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "del": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", + "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", + "dev": true, + "requires": { + "@types/glob": "^7.1.1", + "globby": "^6.1.0", + "is-path-cwd": "^2.0.0", + "is-path-in-cwd": "^2.0.0", + "p-map": "^2.0.0", + "pify": "^4.0.1", + "rimraf": "^2.6.3" + }, + "dependencies": { + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, + "requires": { + "array-uniq": "^1.0.1" + } + }, + "globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, + "p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", + "dev": true + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "dev": true + }, + "dependency-graph": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.7.2.tgz", + "integrity": "sha512-KqtH4/EZdtdfWX0p6MGP9jljvxSY6msy/pRUD4jgNwVpv3v1QmNLlsB3LDSSUg79BRVSn7jI1QPRtArGABovAQ==", + "dev": true + }, + "des.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", + "dev": true + }, + "detect-node": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz", + "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==", + "dev": true + }, + "dezalgo": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz", + "integrity": "sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY=", + "dev": true, + "requires": { + "asap": "^2.0.0", + "wrappy": "1" + } + }, + "di": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", + "integrity": "sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw=", + "dev": true + }, + "diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true + }, + "diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, + "dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=", + "dev": true + }, + "dns-packet": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz", + "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==", + "dev": true, + "requires": { + "ip": "^1.1.0", + "safe-buffer": "^5.0.1" + } + }, + "dns-txt": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", + "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", + "dev": true, + "requires": { + "buffer-indexof": "^1.0.0" + } + }, + "dom-serialize": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", + "integrity": "sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs=", + "dev": true, + "requires": { + "custom-event": "~1.0.0", + "ent": "~2.2.0", + "extend": "^3.0.0", + "void-elements": "^2.0.0" + } + }, + "dom-serializer": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", + "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "dev": true, + "requires": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + }, + "dependencies": { + "domelementtype": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.1.0.tgz", + "integrity": "sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w==", + "dev": true + } + } + }, + "domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", + "dev": true + }, + "domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", + "dev": true + }, + "domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "dev": true, + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dev": true, + "requires": { + "is-obj": "^2.0.0" + } + }, + "duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "dev": true, + "requires": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "dev": true, + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "dev": true + }, + "electron-to-chromium": { + "version": "1.3.629", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.629.tgz", + "integrity": "sha512-iSPPJtPvHrMAvYOt+9cdbDmTasPqwnwz4lkP8Dn200gDNUBQOLQ96xUsWXBwXslAo5XxdoXAoQQ3RAy4uao9IQ==", + "dev": true + }, + "elliptic": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", + "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", + "dev": true, + "requires": { + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "dev": true + }, + "encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "dev": true, + "requires": { + "iconv-lite": "^0.6.2" + } + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "engine.io": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.4.2.tgz", + "integrity": "sha512-b4Q85dFkGw+TqgytGPrGgACRUhsdKc9S9ErRAXpPGy/CXKs4tYoHDkvIRdsseAF7NjfVwjRFIn6KTnbw7LwJZg==", + "dev": true, + "requires": { + "accepts": "~1.3.4", + "base64id": "2.0.0", + "cookie": "0.3.1", + "debug": "~4.1.0", + "engine.io-parser": "~2.2.0", + "ws": "^7.1.2" + }, + "dependencies": { + "cookie": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", + "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=", + "dev": true + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ws": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.1.tgz", + "integrity": "sha512-pTsP8UAfhy3sk1lSk/O/s4tjD0CRwvMnzvwr4OKGX7ZvqZtUyx4KIJB5JWbkykPoc55tixMGgTNoh3k4FkNGFQ==", + "dev": true + } + } + }, + "engine.io-client": { + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.4.4.tgz", + "integrity": "sha512-iU4CRr38Fecj8HoZEnFtm2EiKGbYZcPn3cHxqNGl/tmdWRf60KhK+9vE0JeSjgnlS/0oynEfLgKbT9ALpim0sQ==", + "dev": true, + "requires": { + "component-emitter": "~1.3.0", + "component-inherit": "0.0.3", + "debug": "~3.1.0", + "engine.io-parser": "~2.2.0", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "parseqs": "0.0.6", + "parseuri": "0.0.6", + "ws": "~6.1.0", + "xmlhttprequest-ssl": "~1.5.4", + "yeast": "0.1.2" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "parseqs": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.6.tgz", + "integrity": "sha512-jeAGzMDbfSHHA091hr0r31eYfTig+29g3GKKE/PPbEQ65X0lmMwlEoqmhzu0iztID5uJpZsFlUPDP8ThPL7M8w==", + "dev": true + }, + "parseuri": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.6.tgz", + "integrity": "sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow==", + "dev": true + }, + "ws": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.1.4.tgz", + "integrity": "sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA==", + "dev": true, + "requires": { + "async-limiter": "~1.0.0" + } + } + } + }, + "engine.io-parser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.2.1.tgz", + "integrity": "sha512-x+dN/fBH8Ro8TFwJ+rkB2AmuVw9Yu2mockR/p3W8f8YtExwFgDvBDi0GWyb4ZLkpahtDGZgtr3zLovanJghPqg==", + "dev": true, + "requires": { + "after": "0.8.2", + "arraybuffer.slice": "~0.0.7", + "base64-arraybuffer": "0.1.4", + "blob": "0.0.5", + "has-binary2": "~1.0.2" + } + }, + "enhanced-resolve": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz", + "integrity": "sha512-3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.5.0", + "tapable": "^1.0.0" + } + }, + "ent": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", + "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=", + "dev": true + }, + "entities": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", + "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", + "dev": true + }, + "err-code": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz", + "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=", + "dev": true + }, + "errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "dev": true, + "requires": { + "prr": "~1.0.1" + } + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es-abstract": { + "version": "1.18.0-next.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz", + "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-negative-zero": "^2.0.0", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "es5-ext": { + "version": "0.10.53", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", + "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", + "dev": true, + "requires": { + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.3", + "next-tick": "~1.0.0" + } + }, + "es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "es6-promise": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", + "dev": true + }, + "es6-promisify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", + "dev": true, + "requires": { + "es6-promise": "^4.0.3" + } + }, + "es6-symbol": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", + "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "dev": true, + "requires": { + "d": "^1.0.1", + "ext": "^1.1.2" + } + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "eslint-scope": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", + "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", + "dev": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true + } + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "dev": true + }, + "eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + }, + "events": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz", + "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==", + "dev": true + }, + "eventsource": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz", + "integrity": "sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ==", + "dev": true, + "requires": { + "original": "^1.0.0" + } + }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dev": true, + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "dev": true + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "express": { + "version": "4.17.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", + "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", + "dev": true, + "requires": { + "accepts": "~1.3.7", + "array-flatten": "1.1.1", + "body-parser": "1.19.0", + "content-disposition": "0.5.3", + "content-type": "~1.0.4", + "cookie": "0.4.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.5", + "qs": "6.7.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.1.2", + "send": "0.17.1", + "serve-static": "1.14.1", + "setprototypeof": "1.1.1", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "ext": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", + "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==", + "dev": true, + "requires": { + "type": "^2.0.0" + }, + "dependencies": { + "type": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/type/-/type-2.1.0.tgz", + "integrity": "sha512-G9absDWvhAWCV2gmF1zKud3OyC61nZDwWvBL2DApaVFogI07CprggiQAOOjvp2NRjYWFzPyu7vwtDrQFq8jeSA==", + "dev": true + } + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "requires": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "dependencies": { + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "fast-glob": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz", + "integrity": "sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.0", + "merge2": "^1.3.0", + "micromatch": "^4.0.2", + "picomatch": "^2.2.1" + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fastparse": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", + "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==", + "dev": true + }, + "fastq": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.9.0.tgz", + "integrity": "sha512-i7FVWL8HhVY+CTkwFxkN2mk3h+787ixS5S63eb78diVRc1MCssarHq3W5cj0av7YDSwmaV928RNag+U1etRQ7w==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "faye-websocket": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", + "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", + "dev": true, + "requires": { + "websocket-driver": ">=0.5.1" + } + }, + "figgy-pudding": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", + "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", + "dev": true + }, + "figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "file-loader": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.0.0.tgz", + "integrity": "sha512-/aMOAYEFXDdjG0wytpTL5YQLfZnnTmLNjn+AIrJ/6HVnTfDqLsVKUUwkDf4I4kgex36BvjuXEn/TX9B/1ESyqQ==", + "dev": true, + "requires": { + "loader-utils": "^2.0.0", + "schema-utils": "^2.6.5" + } + }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true, + "optional": true + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "dev": true, + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "find-cache-dir": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", + "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "flatted": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", + "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", + "dev": true + }, + "flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + } + }, + "follow-redirects": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.1.tgz", + "integrity": "sha512-SSG5xmZh1mkPGyKzjZP8zLjltIfpW32Y5QpdNJyjcfGxK3qo3NDDkZOZSFiGn1A6SclQxY9GzEwAHQ3dmYRWpg==", + "dev": true + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true + }, + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", + "dev": true + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "requires": { + "map-cache": "^0.2.2" + } + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "dev": true + }, + "from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "fs-extra": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.2.tgz", + "integrity": "sha1-+RcExT0bRh+JNFKwwwfZmXZHq2s=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "fs-write-stream-atomic": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "fsevents": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "genfun": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/genfun/-/genfun-5.0.0.tgz", + "integrity": "sha512-KGDOARWVga7+rnB3z9Sd2Letx515owfk0hSxHGuqjANb1M+x2bGZGqHLiozPsYMdM2OubeMni/Hpwmjq6qIUhA==", + "dev": true + }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "get-intrinsic": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.0.2.tgz", + "integrity": "sha512-aeX0vrFm21ILl3+JpFFRNe9aUvp6VFZb2/CTbgLb8j75kOhvoNYjt9d8KA/tJG4gSo8nzEDedRl0h7vDmBYRVg==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + }, + "globby": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.1.tgz", + "integrity": "sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.1.1", + "ignore": "^5.1.4", + "merge2": "^1.3.0", + "slash": "^3.0.0" + } + }, + "graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "dev": true + }, + "handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", + "dev": true + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true + }, + "har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "dev": true, + "requires": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "has-binary2": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz", + "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==", + "dev": true, + "requires": { + "isarray": "2.0.1" + }, + "dependencies": { + "isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", + "dev": true + } + } + }, + "has-cors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", + "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "dev": true, + "requires": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + } + } + }, + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "hex-color-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz", + "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==", + "dev": true + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "dev": true, + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "hosted-git-info": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.7.tgz", + "integrity": "sha512-fWqc0IcuXs+BmE9orLDyVykAG9GJtGLGuZAAqgcckPgv5xad4AcXGIv8galtQvlwutxSlaMcdw7BUtq2EIvqCQ==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "hsl-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz", + "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=", + "dev": true + }, + "hsla-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz", + "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=", + "dev": true + }, + "html-comment-regex": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz", + "integrity": "sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==", + "dev": true + }, + "html-entities": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.4.0.tgz", + "integrity": "sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA==", + "dev": true + }, + "html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "http-cache-semantics": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", + "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==", + "dev": true + }, + "http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", + "dev": true + }, + "http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + } + } + }, + "http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dev": true, + "requires": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + } + }, + "http-proxy-agent": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz", + "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", + "dev": true, + "requires": { + "agent-base": "4", + "debug": "3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "http-proxy-middleware": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz", + "integrity": "sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==", + "dev": true, + "requires": { + "http-proxy": "^1.17.0", + "is-glob": "^4.0.0", + "lodash": "^4.17.11", + "micromatch": "^3.1.10" + }, + "dependencies": { + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", + "dev": true + }, + "https-proxy-agent": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", + "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", + "dev": true, + "requires": { + "agent-base": "^4.3.0", + "debug": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", + "dev": true, + "requires": { + "ms": "^2.0.0" + } + }, + "iconv-lite": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz", + "integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + }, + "icss-utils": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz", + "integrity": "sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA==", + "dev": true, + "requires": { + "postcss": "^7.0.14" + } + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true + }, + "iferr": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", + "dev": true + }, + "ignore": { + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", + "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", + "dev": true + }, + "ignore-walk": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz", + "integrity": "sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==", + "dev": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "image-size": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", + "dev": true, + "optional": true + }, + "immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=", + "dev": true + }, + "import-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz", + "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", + "dev": true, + "requires": { + "import-from": "^2.1.0" + } + }, + "import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", + "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", + "dev": true, + "requires": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + } + }, + "import-from": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz", + "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", + "dev": true, + "requires": { + "resolve-from": "^3.0.0" + } + }, + "import-local": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", + "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", + "dev": true, + "requires": { + "pkg-dir": "^3.0.0", + "resolve-cwd": "^2.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true + }, + "indexes-of": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", + "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", + "dev": true + }, + "indexof": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", + "dev": true + }, + "infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "ini": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.6.tgz", + "integrity": "sha512-IZUoxEjNjubzrmvzZU4lKP7OnYmX72XRl3sqkfJhBKweKi5rnGi5+IUdlj/H1M+Ip5JQ1WzaDMOBRY90Ajc5jg==", + "dev": true + }, + "inquirer": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", + "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", + "dev": true, + "requires": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.19", + "mute-stream": "0.0.8", + "run-async": "^2.4.0", + "rxjs": "^6.6.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "internal-ip": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", + "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==", + "dev": true, + "requires": { + "default-gateway": "^4.2.0", + "ipaddr.js": "^1.9.0" + } + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, + "requires": { + "loose-envify": "^1.0.0" + } + }, + "ip": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", + "dev": true + }, + "ip-regex": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", + "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", + "dev": true + }, + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true + }, + "is-absolute-url": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", + "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=", + "dev": true + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-arguments": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz", + "integrity": "sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==", + "dev": true, + "requires": { + "call-bind": "^1.0.0" + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-callable": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz", + "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==", + "dev": true + }, + "is-color-stop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz", + "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=", + "dev": true, + "requires": { + "css-color-names": "^0.0.4", + "hex-color-regex": "^1.1.0", + "hsl-regex": "^1.0.0", + "hsla-regex": "^1.0.0", + "rgb-regex": "^1.0.1", + "rgba-regex": "^1.0.0" + } + }, + "is-core-module": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", + "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-date-object": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", + "dev": true + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", + "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", + "dev": true + }, + "is-docker": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.1.1.tgz", + "integrity": "sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw==", + "dev": true + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "dev": true + }, + "is-negative-zero": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", + "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true + }, + "is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "dev": true + }, + "is-path-in-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", + "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", + "dev": true, + "requires": { + "is-path-inside": "^2.1.0" + } + }, + "is-path-inside": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", + "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", + "dev": true, + "requires": { + "path-is-inside": "^1.0.2" + } + }, + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "dev": true + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "is-regex": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", + "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + }, + "is-resolvable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", + "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", + "dev": true + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true + }, + "is-svg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-3.0.0.tgz", + "integrity": "sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ==", + "dev": true, + "requires": { + "html-comment-regex": "^1.1.0" + } + }, + "is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "is-what": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.12.0.tgz", + "integrity": "sha512-2ilQz5/f/o9V7WRWJQmpFYNmQFZ9iM+OXRonZKcYgTkCzjb949Vi4h282PD1UfmgHk666rcWonbRJ++KI41VGw==", + "dev": true + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "requires": { + "is-docker": "^2.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isbinaryfile": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.6.tgz", + "integrity": "sha512-ORrEy+SNVqUhrCaal4hA4fBzhggQQ+BaLntyPOdoEiwlKZW9BZiJXjg3RMiruE4tPEI3pyVPpySHQF/dKWperg==", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "istanbul-lib-coverage": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", + "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", + "dev": true + }, + "istanbul-lib-instrument": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", + "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", + "dev": true, + "requires": { + "@babel/core": "^7.7.5", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.0.0", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "istanbul-lib-source-maps": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz", + "integrity": "sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^2.0.5", + "make-dir": "^2.1.0", + "rimraf": "^2.6.3", + "source-map": "^0.6.1" + }, + "dependencies": { + "istanbul-lib-coverage": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz", + "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==", + "dev": true + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "istanbul-reports": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz", + "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==", + "dev": true, + "requires": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + } + }, + "jasmine": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-2.8.0.tgz", + "integrity": "sha1-awicChFXax8W3xG4AUbZHU6Lij4=", + "dev": true, + "requires": { + "exit": "^0.1.2", + "glob": "^7.0.6", + "jasmine-core": "~2.8.0" + }, + "dependencies": { + "jasmine-core": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.8.0.tgz", + "integrity": "sha1-vMl5rh+f0FcB5F5S5l06XWPxok4=", + "dev": true + } + } + }, + "jasmine-core": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-3.6.0.tgz", + "integrity": "sha512-8uQYa7zJN8hq9z+g8z1bqCfdC8eoDAeVnM5sfqs7KHv9/ifoJ500m018fpFc7RDaO6SWCLCXwo/wPSNcdYTgcw==", + "dev": true + }, + "jasmine-spec-reporter": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/jasmine-spec-reporter/-/jasmine-spec-reporter-5.0.2.tgz", + "integrity": "sha512-6gP1LbVgJ+d7PKksQBc2H0oDGNRQI3gKUsWlswKaQ2fif9X5gzhQcgM5+kiJGCQVurOG09jqNhk7payggyp5+g==", + "dev": true, + "requires": { + "colors": "1.4.0" + } + }, + "jasminewd2": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/jasminewd2/-/jasminewd2-2.2.0.tgz", + "integrity": "sha1-43zwsX8ZnM4jvqcbIDk5Uka07E4=", + "dev": true + }, + "jest-worker": { + "version": "26.3.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.3.0.tgz", + "integrity": "sha512-Vmpn2F6IASefL+DVBhPzI2J9/GJUsqzomdeN+P+dK8/jKxbh8R3BtFnx3FIta7wYlPU62cpJMJQo4kuOowcMnw==", + "dev": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, + "json3": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz", + "integrity": "sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==", + "dev": true + }, + "json5": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", + "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "jsonc-parser": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-2.3.0.tgz", + "integrity": "sha512-b0EBt8SWFNnixVdvoR2ZtEGa9ZqLhbJnOjezn+WP+8kspFm+PFYDN8Z4Bc7pRlDjvuVcADSUkroIuTWWn/YiIA==", + "dev": true + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", + "dev": true + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "jszip": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.5.0.tgz", + "integrity": "sha512-WRtu7TPCmYePR1nazfrtuF216cIVon/3GWOvHS9QR5bIwSbnxtdpma6un3jyGGNhHsKCSzn5Ypk+EkDRvTGiFA==", + "dev": true, + "requires": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "set-immediate-shim": "~1.0.1" + } + }, + "karma": { + "version": "5.0.9", + "resolved": "https://registry.npmjs.org/karma/-/karma-5.0.9.tgz", + "integrity": "sha512-dUA5z7Lo7G4FRSe1ZAXqOINEEWxmCjDBbfRBmU/wYlSMwxUQJP/tEEP90yJt3Uqo03s9rCgVnxtlfq+uDhxSPg==", + "dev": true, + "requires": { + "body-parser": "^1.19.0", + "braces": "^3.0.2", + "chokidar": "^3.0.0", + "colors": "^1.4.0", + "connect": "^3.7.0", + "di": "^0.0.1", + "dom-serialize": "^2.2.1", + "flatted": "^2.0.2", + "glob": "^7.1.6", + "graceful-fs": "^4.2.4", + "http-proxy": "^1.18.1", + "isbinaryfile": "^4.0.6", + "lodash": "^4.17.15", + "log4js": "^6.2.1", + "mime": "^2.4.5", + "minimatch": "^3.0.4", + "qjobs": "^1.2.0", + "range-parser": "^1.2.1", + "rimraf": "^3.0.2", + "socket.io": "^2.3.0", + "source-map": "^0.6.1", + "tmp": "0.2.1", + "ua-parser-js": "0.7.21", + "yargs": "^15.3.1" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "mime": { + "version": "2.4.7", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.7.tgz", + "integrity": "sha512-dhNd1uA2u397uQk3Nv5LM4lm93WYDUXFn3Fu291FJerns4jyTudqhIWe4W04YLy7Uk1tm1Ore04NpjRvQp/NPA==", + "dev": true + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "dev": true, + "requires": { + "rimraf": "^3.0.0" + } + }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "requires": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + } + }, + "yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "karma-chrome-launcher": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.1.0.tgz", + "integrity": "sha512-3dPs/n7vgz1rxxtynpzZTvb9y/GIaW8xjAwcIGttLbycqoFtI7yo1NGnQi6oFTherRE+GIhCAHZC4vEqWGhNvg==", + "dev": true, + "requires": { + "which": "^1.2.1" + } + }, + "karma-coverage-istanbul-reporter": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/karma-coverage-istanbul-reporter/-/karma-coverage-istanbul-reporter-3.0.3.tgz", + "integrity": "sha512-wE4VFhG/QZv2Y4CdAYWDbMmcAHeS926ZIji4z+FkB2aF/EposRb6DP6G5ncT/wXhqUfAb/d7kZrNKPonbvsATw==", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^3.0.6", + "istanbul-reports": "^3.0.2", + "minimatch": "^3.0.4" + } + }, + "karma-jasmine": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-4.0.1.tgz", + "integrity": "sha512-h8XDAhTiZjJKzfkoO1laMH+zfNlra+dEQHUAjpn5JV1zCPtOIVWGQjLBrqhnzQa/hrU2XrZwSyBa6XjEBzfXzw==", + "dev": true, + "requires": { + "jasmine-core": "^3.6.0" + } + }, + "karma-jasmine-html-reporter": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-1.5.4.tgz", + "integrity": "sha512-PtilRLno5O6wH3lDihRnz0Ba8oSn0YUJqKjjux1peoYGwo0AQqrWRbdWk/RLzcGlb+onTyXAnHl6M+Hu3UxG/Q==", + "dev": true + }, + "karma-source-map-support": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.4.0.tgz", + "integrity": "sha512-RsBECncGO17KAoJCYXjv+ckIz+Ii9NCi+9enk+rq6XC81ezYkb4/RHE6CTXdA7IOJqoF3wcaLfVG0CPmE5ca6A==", + "dev": true, + "requires": { + "source-map-support": "^0.5.5" + } + }, + "killable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", + "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==", + "dev": true + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + }, + "klona": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.4.tgz", + "integrity": "sha512-ZRbnvdg/NxqzC7L9Uyqzf4psi1OM4Cuc+sJAkQPjO6XkQIJTNbfK2Rsmbw8fx1p2mkZdp2FZYo2+LwXYY/uwIA==", + "dev": true + }, + "less": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/less/-/less-3.13.1.tgz", + "integrity": "sha512-SwA1aQXGUvp+P5XdZslUOhhLnClSLIjWvJhmd+Vgib5BFIr9lMNlQwmwUNOjXThF/A0x+MCYYPeWEfeWiLRnTw==", + "dev": true, + "requires": { + "copy-anything": "^2.0.1", + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "make-dir": "^2.1.0", + "mime": "^1.4.1", + "native-request": "^1.0.5", + "source-map": "~0.6.0", + "tslib": "^1.10.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "less-loader": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-6.2.0.tgz", + "integrity": "sha512-Cl5h95/Pz/PWub/tCBgT1oNMFeH1WTD33piG80jn5jr12T4XbxZcjThwNXDQ7AG649WEynuIzO4b0+2Tn9Qolg==", + "dev": true, + "requires": { + "clone": "^2.1.2", + "less": "^3.11.3", + "loader-utils": "^2.0.0", + "schema-utils": "^2.7.0" + } + }, + "leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true + }, + "levenary": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/levenary/-/levenary-1.1.1.tgz", + "integrity": "sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ==", + "dev": true, + "requires": { + "leven": "^3.1.0" + } + }, + "license-webpack-plugin": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-2.3.0.tgz", + "integrity": "sha512-JK/DXrtN6UeYQSgkg5q1+pgJ8aiKPL9tnz9Wzw+Ikkf+8mJxG56x6t8O+OH/tAeF/5NREnelTEMyFtbJNkjH4w==", + "dev": true, + "requires": { + "@types/webpack-sources": "^0.1.5", + "webpack-sources": "^1.2.0" + } + }, + "lie": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "dev": true, + "requires": { + "immediate": "~3.0.5" + } + }, + "loader-runner": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", + "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", + "dev": true + }, + "loader-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", + "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "lodash": { + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", + "dev": true + }, + "lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", + "dev": true + }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "dev": true + }, + "lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", + "dev": true + }, + "lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", + "dev": true + }, + "log-symbols": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz", + "integrity": "sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==", + "dev": true, + "requires": { + "chalk": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "log4js": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.3.0.tgz", + "integrity": "sha512-Mc8jNuSFImQUIateBFwdOQcmC6Q5maU0VVvdC2R6XMb66/VnT+7WS4D/0EeNMZu1YODmJe5NIn2XftCzEocUgw==", + "dev": true, + "requires": { + "date-format": "^3.0.0", + "debug": "^4.1.1", + "flatted": "^2.0.1", + "rfdc": "^1.1.4", + "streamroller": "^2.2.4" + } + }, + "loglevel": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.7.1.tgz", + "integrity": "sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw==", + "dev": true + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "magic-string": { + "version": "0.25.7", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", + "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", + "dev": true, + "requires": { + "sourcemap-codec": "^1.4.4" + } + }, + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "make-fetch-happen": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-5.0.2.tgz", + "integrity": "sha512-07JHC0r1ykIoruKO8ifMXu+xEU8qOXDFETylktdug6vJDACnP+HKevOu3PXyNPzFyTSlz8vrBYlBO1JZRe8Cag==", + "dev": true, + "requires": { + "agentkeepalive": "^3.4.1", + "cacache": "^12.0.0", + "http-cache-semantics": "^3.8.1", + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^2.2.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "node-fetch-npm": "^2.0.2", + "promise-retry": "^1.1.1", + "socks-proxy-agent": "^4.0.0", + "ssri": "^6.0.0" + }, + "dependencies": { + "cacache": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", + "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", + "dev": true, + "requires": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } + }, + "chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "ssri": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", + "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1" + } + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + } + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "^1.0.0" + } + }, + "md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "mdn-data": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", + "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==", + "dev": true + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "dev": true + }, + "memory-fs": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", + "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", + "dev": true, + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", + "dev": true + }, + "merge-source-map": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", + "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", + "dev": true, + "requires": { + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "dev": true + }, + "micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + } + }, + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true + }, + "mime-db": { + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", + "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==", + "dev": true + }, + "mime-types": { + "version": "2.1.27", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", + "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", + "dev": true, + "requires": { + "mime-db": "1.44.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "mini-css-extract-plugin": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.10.0.tgz", + "integrity": "sha512-QgKgJBjaJhxVPwrLNqqwNS0AGkuQQ31Hp4xGXEK/P7wehEg6qmNtReHKai3zRXqY60wGVWLYcOMJK2b98aGc3A==", + "dev": true, + "requires": { + "loader-utils": "^1.1.0", + "normalize-url": "1.9.1", + "schema-utils": "^1.0.0", + "webpack-sources": "^1.1.0" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + }, + "normalize-url": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", + "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", + "dev": true, + "requires": { + "object-assign": "^4.0.1", + "prepend-http": "^1.0.0", + "query-string": "^4.1.0", + "sort-keys": "^1.0.0" + } + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + } + } + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "minipass": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", + "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dev": true, + "requires": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + } + }, + "mississippi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", + "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", + "dev": true, + "requires": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + } + }, + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", + "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", + "dev": true, + "requires": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + }, + "dependencies": { + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "multicast-dns": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", + "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", + "dev": true, + "requires": { + "dns-packet": "^1.3.1", + "thunky": "^1.0.2" + } + }, + "multicast-dns-service-types": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", + "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", + "dev": true + }, + "mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true + }, + "nan": { + "version": "2.14.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", + "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==", + "dev": true, + "optional": true + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + } + }, + "native-request": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/native-request/-/native-request-1.0.8.tgz", + "integrity": "sha512-vU2JojJVelUGp6jRcLwToPoWGxSx23z/0iX+I77J3Ht17rf2INGjrhOoQnjVo60nQd8wVsgzKkPfRXBiVdD2ag==", + "dev": true, + "optional": true + }, + "negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", + "dev": true + }, + "neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "next-tick": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", + "dev": true + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "node-fetch-npm": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/node-fetch-npm/-/node-fetch-npm-2.0.4.tgz", + "integrity": "sha512-iOuIQDWDyjhv9qSDrj9aq/klt6F9z1p2otB3AV7v3zBDcL/x+OfGsvGQZZCcMZbUf4Ujw1xGNQkjvGnVT22cKg==", + "dev": true, + "requires": { + "encoding": "^0.1.11", + "json-parse-better-errors": "^1.0.0", + "safe-buffer": "^5.1.1" + } + }, + "node-forge": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", + "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==", + "dev": true + }, + "node-libs-browser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", + "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", + "dev": true, + "requires": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.1", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "^1.0.1" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + } + } + }, + "node-releases": { + "version": "1.1.67", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.67.tgz", + "integrity": "sha512-V5QF9noGFl3EymEwUYzO+3NTDpGfQB4ve6Qfnzf3UNydMhjQRVPR1DZTuvWiLzaFJYw2fmDwAfnRNEVb64hSIg==", + "dev": true + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + }, + "dependencies": { + "hosted-git-info": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", + "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", + "dev": true + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", + "dev": true + }, + "normalize-url": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz", + "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==", + "dev": true + }, + "npm-bundled": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.1.tgz", + "integrity": "sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA==", + "dev": true, + "requires": { + "npm-normalize-package-bin": "^1.0.1" + } + }, + "npm-install-checks": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-4.0.0.tgz", + "integrity": "sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w==", + "dev": true, + "requires": { + "semver": "^7.1.1" + } + }, + "npm-normalize-package-bin": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", + "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", + "dev": true + }, + "npm-package-arg": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.0.1.tgz", + "integrity": "sha512-/h5Fm6a/exByzFSTm7jAyHbgOqErl9qSNJDQF32Si/ZzgwT2TERVxRxn3Jurw1wflgyVVAxnFR4fRHPM7y1ClQ==", + "dev": true, + "requires": { + "hosted-git-info": "^3.0.2", + "semver": "^7.0.0", + "validate-npm-package-name": "^3.0.0" + } + }, + "npm-packlist": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz", + "integrity": "sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==", + "dev": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1", + "npm-normalize-package-bin": "^1.0.1" + } + }, + "npm-pick-manifest": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-6.1.0.tgz", + "integrity": "sha512-ygs4k6f54ZxJXrzT0x34NybRlLeZ4+6nECAIbr2i0foTnijtS1TJiyzpqtuUAJOps/hO0tNDr8fRV5g+BtRlTw==", + "dev": true, + "requires": { + "npm-install-checks": "^4.0.0", + "npm-package-arg": "^8.0.0", + "semver": "^7.0.0" + } + }, + "npm-registry-fetch": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-4.0.7.tgz", + "integrity": "sha512-cny9v0+Mq6Tjz+e0erFAB+RYJ/AVGzkjnISiobqP8OWj9c9FLoZZu8/SPSKJWE17F1tk4018wfjV+ZbIbqC7fQ==", + "dev": true, + "requires": { + "JSONStream": "^1.3.4", + "bluebird": "^3.5.1", + "figgy-pudding": "^3.4.1", + "lru-cache": "^5.1.1", + "make-fetch-happen": "^5.0.0", + "npm-package-arg": "^6.1.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "hosted-git-info": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", + "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", + "dev": true + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "npm-package-arg": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.1.tgz", + "integrity": "sha512-qBpssaL3IOZWi5vEKUKW0cO7kzLeT+EQO9W8RsLOZf76KF9E/K9+wH0C7t06HXPpaH8WH5xF1MExLuCwbTqRUg==", + "dev": true, + "requires": { + "hosted-git-info": "^2.7.1", + "osenv": "^0.1.5", + "semver": "^5.6.0", + "validate-npm-package-name": "^3.0.0" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + } + } + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, + "requires": { + "path-key": "^2.0.0" + } + }, + "nth-check": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", + "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", + "dev": true, + "requires": { + "boolbase": "~1.0.0" + } + }, + "num2fraction": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", + "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", + "dev": true + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, + "object-component": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", + "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=", + "dev": true + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "object-inspect": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz", + "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==", + "dev": true + }, + "object-is": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.4.tgz", + "integrity": "sha512-1ZvAZ4wlF7IyPVOcE1Omikt7UpaFlOQq0HlSti+ZvDH3UiD2brwGMwDbyV43jao2bKJ+4+WdPJHSd7kgzKYVqg==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + } + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "requires": { + "isobject": "^3.0.0" + } + }, + "object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + } + }, + "object.getownpropertydescriptors": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.1.tgz", + "integrity": "sha512-6DtXgZ/lIZ9hqx4GtZETobXLR/ZLaa0aqV0kzbn80Rf8Z2e/XFnhA0I7p07N2wH8bBBltr2xQPi6sbKWAY2Eng==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "object.values": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.2.tgz", + "integrity": "sha512-MYC0jvJopr8EK6dPBiO8Nb9mvjdypOachO5REGk6MXzujbBrAisKo3HmdEI6kZDL6fC31Mwee/5YbtMebixeag==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1", + "has": "^1.0.3" + } + }, + "obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "dev": true + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "dev": true, + "requires": { + "ee-first": "1.1.1" + } + }, + "on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "open": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/open/-/open-7.2.0.tgz", + "integrity": "sha512-4HeyhxCvBTI5uBePsAdi55C5fmqnWZ2e2MlmvWi5KW5tdH5rxoiv/aMtbeVxKZc3eWkT1GymMnLG8XC4Rq4TDQ==", + "dev": true, + "requires": { + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" + } + }, + "opn": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", + "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==", + "dev": true, + "requires": { + "is-wsl": "^1.1.0" + }, + "dependencies": { + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "dev": true + } + } + }, + "ora": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.0.0.tgz", + "integrity": "sha512-s26qdWqke2kjN/wC4dy+IQPBIMWBJlSU/0JZhk30ZDBLelW25rv66yutUWARMigpGPzcXHb+Nac5pNhN/WsARw==", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.4.0", + "is-interactive": "^1.0.0", + "log-symbols": "^4.0.0", + "mute-stream": "0.0.8", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "original": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz", + "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==", + "dev": true, + "requires": { + "url-parse": "^1.4.3" + } + }, + "os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", + "dev": true + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true + }, + "osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "dev": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "p-retry": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz", + "integrity": "sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==", + "dev": true, + "requires": { + "retry": "^0.12.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "pacote": { + "version": "9.5.12", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-9.5.12.tgz", + "integrity": "sha512-BUIj/4kKbwWg4RtnBncXPJd15piFSVNpTzY0rysSr3VnMowTYgkGKcaHrbReepAkjTr8lH2CVWRi58Spg2CicQ==", + "dev": true, + "requires": { + "bluebird": "^3.5.3", + "cacache": "^12.0.2", + "chownr": "^1.1.2", + "figgy-pudding": "^3.5.1", + "get-stream": "^4.1.0", + "glob": "^7.1.3", + "infer-owner": "^1.0.4", + "lru-cache": "^5.1.1", + "make-fetch-happen": "^5.0.0", + "minimatch": "^3.0.4", + "minipass": "^2.3.5", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "normalize-package-data": "^2.4.0", + "npm-normalize-package-bin": "^1.0.0", + "npm-package-arg": "^6.1.0", + "npm-packlist": "^1.1.12", + "npm-pick-manifest": "^3.0.0", + "npm-registry-fetch": "^4.0.0", + "osenv": "^0.1.5", + "promise-inflight": "^1.0.1", + "promise-retry": "^1.1.1", + "protoduck": "^5.0.1", + "rimraf": "^2.6.2", + "safe-buffer": "^5.1.2", + "semver": "^5.6.0", + "ssri": "^6.0.1", + "tar": "^4.4.10", + "unique-filename": "^1.1.1", + "which": "^1.3.1" + }, + "dependencies": { + "cacache": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", + "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", + "dev": true, + "requires": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } + }, + "chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, + "fs-minipass": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", + "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", + "dev": true, + "requires": { + "minipass": "^2.6.0" + } + }, + "hosted-git-info": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", + "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", + "dev": true + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "minipass": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", + "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", + "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", + "dev": true, + "requires": { + "minipass": "^2.9.0" + } + }, + "npm-package-arg": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.1.tgz", + "integrity": "sha512-qBpssaL3IOZWi5vEKUKW0cO7kzLeT+EQO9W8RsLOZf76KF9E/K9+wH0C7t06HXPpaH8WH5xF1MExLuCwbTqRUg==", + "dev": true, + "requires": { + "hosted-git-info": "^2.7.1", + "osenv": "^0.1.5", + "semver": "^5.6.0", + "validate-npm-package-name": "^3.0.0" + } + }, + "npm-pick-manifest": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-3.0.2.tgz", + "integrity": "sha512-wNprTNg+X5nf+tDi+hbjdHhM4bX+mKqv6XmPh7B5eG+QY9VARfQPfCEH013H5GqfNj6ee8Ij2fg8yk0mzps1Vw==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1", + "npm-package-arg": "^6.0.0", + "semver": "^5.4.1" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "ssri": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", + "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1" + } + }, + "tar": { + "version": "4.4.13", + "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz", + "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==", + "dev": true, + "requires": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.8.6", + "minizlib": "^1.2.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.3" + } + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + } + } + }, + "pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "dev": true + }, + "parallel-transform": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", + "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", + "dev": true, + "requires": { + "cyclist": "^1.0.1", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + } + }, + "parse-asn1": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", + "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", + "dev": true, + "requires": { + "asn1.js": "^5.2.0", + "browserify-aes": "^1.0.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true + }, + "parse5-htmlparser2-tree-adapter": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", + "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", + "dev": true, + "requires": { + "parse5": "^6.0.1" + } + }, + "parseqs": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", + "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", + "dev": true, + "requires": { + "better-assert": "~1.0.0" + } + }, + "parseuri": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", + "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", + "dev": true, + "requires": { + "better-assert": "~1.0.0" + } + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true + }, + "path-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", + "dev": true + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "dev": true + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", + "dev": true + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + }, + "pbkdf2": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", + "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==", + "dev": true, + "requires": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true + }, + "picomatch": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "dev": true + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "requires": { + "pinkie": "^2.0.0" + } + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "requires": { + "find-up": "^3.0.0" + } + }, + "pnp-webpack-plugin": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz", + "integrity": "sha512-7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg==", + "dev": true, + "requires": { + "ts-pnp": "^1.1.6" + } + }, + "portfinder": { + "version": "1.0.28", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", + "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", + "dev": true, + "requires": { + "async": "^2.6.2", + "debug": "^3.1.1", + "mkdirp": "^0.5.5" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true + }, + "postcss": { + "version": "7.0.32", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.32.tgz", + "integrity": "sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-calc": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.5.tgz", + "integrity": "sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg==", + "dev": true, + "requires": { + "postcss": "^7.0.27", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.0.2" + } + }, + "postcss-colormin": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz", + "integrity": "sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "color": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-convert-values": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz", + "integrity": "sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==", + "dev": true, + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-discard-comments": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz", + "integrity": "sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-discard-duplicates": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz", + "integrity": "sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-discard-empty": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz", + "integrity": "sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-discard-overridden": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz", + "integrity": "sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-import": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-12.0.1.tgz", + "integrity": "sha512-3Gti33dmCjyKBgimqGxL3vcV8w9+bsHwO5UrBawp796+jdardbcFl4RP5w/76BwNL7aGzpKstIfF9I+kdE8pTw==", + "dev": true, + "requires": { + "postcss": "^7.0.1", + "postcss-value-parser": "^3.2.3", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-load-config": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.2.tgz", + "integrity": "sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw==", + "dev": true, + "requires": { + "cosmiconfig": "^5.0.0", + "import-cwd": "^2.0.0" + } + }, + "postcss-loader": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-3.0.0.tgz", + "integrity": "sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA==", + "dev": true, + "requires": { + "loader-utils": "^1.1.0", + "postcss": "^7.0.0", + "postcss-load-config": "^2.0.0", + "schema-utils": "^1.0.0" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + } + } + }, + "postcss-merge-longhand": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz", + "integrity": "sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==", + "dev": true, + "requires": { + "css-color-names": "0.0.4", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "stylehacks": "^4.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-merge-rules": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz", + "integrity": "sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "cssnano-util-same-parent": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0", + "vendors": "^1.0.0" + }, + "dependencies": { + "postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "dev": true, + "requires": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "postcss-minify-font-values": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz", + "integrity": "sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==", + "dev": true, + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-minify-gradients": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz", + "integrity": "sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "is-color-stop": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-minify-params": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz", + "integrity": "sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.0", + "browserslist": "^4.0.0", + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "uniqs": "^2.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-minify-selectors": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz", + "integrity": "sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "dependencies": { + "postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "dev": true, + "requires": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "postcss-modules-extract-imports": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz", + "integrity": "sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ==", + "dev": true, + "requires": { + "postcss": "^7.0.5" + } + }, + "postcss-modules-local-by-default": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz", + "integrity": "sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw==", + "dev": true, + "requires": { + "icss-utils": "^4.1.1", + "postcss": "^7.0.32", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-modules-scope": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz", + "integrity": "sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ==", + "dev": true, + "requires": { + "postcss": "^7.0.6", + "postcss-selector-parser": "^6.0.0" + } + }, + "postcss-modules-values": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz", + "integrity": "sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg==", + "dev": true, + "requires": { + "icss-utils": "^4.0.0", + "postcss": "^7.0.6" + } + }, + "postcss-normalize-charset": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz", + "integrity": "sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-normalize-display-values": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz", + "integrity": "sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==", + "dev": true, + "requires": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-normalize-positions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz", + "integrity": "sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-normalize-repeat-style": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz", + "integrity": "sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-normalize-string": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz", + "integrity": "sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==", + "dev": true, + "requires": { + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-normalize-timing-functions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz", + "integrity": "sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==", + "dev": true, + "requires": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-normalize-unicode": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz", + "integrity": "sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-normalize-url": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz", + "integrity": "sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==", + "dev": true, + "requires": { + "is-absolute-url": "^2.0.0", + "normalize-url": "^3.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-normalize-whitespace": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz", + "integrity": "sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==", + "dev": true, + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-ordered-values": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz", + "integrity": "sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-reduce-initial": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz", + "integrity": "sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0" + } + }, + "postcss-reduce-transforms": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz", + "integrity": "sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==", + "dev": true, + "requires": { + "cssnano-util-get-match": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-selector-parser": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz", + "integrity": "sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw==", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1", + "util-deprecate": "^1.0.2" + } + }, + "postcss-svgo": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.2.tgz", + "integrity": "sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw==", + "dev": true, + "requires": { + "is-svg": "^3.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "svgo": "^1.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-unique-selectors": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz", + "integrity": "sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.0", + "postcss": "^7.0.0", + "uniqs": "^2.0.0" + } + }, + "postcss-value-parser": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", + "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", + "dev": true + }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", + "dev": true + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", + "dev": true + }, + "promise-retry": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-1.1.1.tgz", + "integrity": "sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=", + "dev": true, + "requires": { + "err-code": "^1.0.0", + "retry": "^0.10.0" + }, + "dependencies": { + "retry": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", + "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=", + "dev": true + } + } + }, + "protoduck": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/protoduck/-/protoduck-5.0.1.tgz", + "integrity": "sha512-WxoCeDCoCBY55BMvj4cAEjdVUFGRWed9ZxPlqTKYyw1nDDTQ4pqmnIMAGfJlg7Dx35uB/M+PHJPTmGOvaCaPTg==", + "dev": true, + "requires": { + "genfun": "^5.0.0" + } + }, + "protractor": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/protractor/-/protractor-7.0.0.tgz", + "integrity": "sha512-UqkFjivi4GcvUQYzqGYNe0mLzfn5jiLmO8w9nMhQoJRLhy2grJonpga2IWhI6yJO30LibWXJJtA4MOIZD2GgZw==", + "dev": true, + "requires": { + "@types/q": "^0.0.32", + "@types/selenium-webdriver": "^3.0.0", + "blocking-proxy": "^1.0.0", + "browserstack": "^1.5.1", + "chalk": "^1.1.3", + "glob": "^7.0.3", + "jasmine": "2.8.0", + "jasminewd2": "^2.1.0", + "q": "1.4.1", + "saucelabs": "^1.5.0", + "selenium-webdriver": "3.6.0", + "source-map-support": "~0.4.0", + "webdriver-js-extender": "2.1.0", + "webdriver-manager": "^12.1.7", + "yargs": "^15.3.1" + }, + "dependencies": { + "@types/q": { + "version": "0.0.32", + "resolved": "https://registry.npmjs.org/@types/q/-/q-0.0.32.tgz", + "integrity": "sha1-vShOV8hPEyXacCur/IKlMoGQwMU=", + "dev": true + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, + "requires": { + "array-uniq": "^1.0.1" + } + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + }, + "dependencies": { + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + } + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "del": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", + "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", + "dev": true, + "requires": { + "globby": "^5.0.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "rimraf": "^2.2.8" + } + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "globby": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", + "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "is-path-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", + "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", + "dev": true + }, + "is-path-in-cwd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", + "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", + "dev": true, + "requires": { + "is-path-inside": "^1.0.0" + } + }, + "is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "dev": true, + "requires": { + "path-is-inside": "^1.0.1" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "q": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz", + "integrity": "sha1-VXBbzZPF82c1MMLCy8DCs63cKG4=", + "dev": true + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "source-map-support": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "dev": true, + "requires": { + "source-map": "^0.5.6" + } + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + } + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + }, + "webdriver-manager": { + "version": "12.1.7", + "resolved": "https://registry.npmjs.org/webdriver-manager/-/webdriver-manager-12.1.7.tgz", + "integrity": "sha512-XINj6b8CYuUYC93SG3xPkxlyUc3IJbD6Vvo75CVGuG9uzsefDzWQrhz0Lq8vbPxtb4d63CZdYophF8k8Or/YiA==", + "dev": true, + "requires": { + "adm-zip": "^0.4.9", + "chalk": "^1.1.1", + "del": "^2.2.0", + "glob": "^7.0.3", + "ini": "^1.3.4", + "minimist": "^1.2.0", + "q": "^1.4.1", + "request": "^2.87.0", + "rimraf": "^2.5.2", + "semver": "^5.3.0", + "xml2js": "^0.4.17" + } + }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + } + } + }, + "yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "requires": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + } + }, + "yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "proxy-addr": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", + "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", + "dev": true, + "requires": { + "forwarded": "~0.1.2", + "ipaddr.js": "1.9.1" + } + }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "dev": true + }, + "psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", + "dev": true + }, + "public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "dev": true, + "requires": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + }, + "dependencies": { + "pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + } + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", + "dev": true + }, + "qjobs": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz", + "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==", + "dev": true + }, + "qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", + "dev": true + }, + "query-string": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", + "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", + "dev": true, + "requires": { + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + } + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "dev": true + }, + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "dev": true + }, + "querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "dev": true, + "requires": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true + }, + "raw-body": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", + "dev": true, + "requires": { + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "dependencies": { + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "dev": true + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + } + } + }, + "raw-loader": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-4.0.1.tgz", + "integrity": "sha512-baolhQBSi3iNh1cglJjA0mYzga+wePk7vdEX//1dTFd+v4TsQlQE0jitJSNF1OIP82rdYulH7otaVmdlDaJ64A==", + "dev": true, + "requires": { + "loader-utils": "^2.0.0", + "schema-utils": "^2.6.5" + } + }, + "read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=", + "dev": true, + "requires": { + "pify": "^2.3.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, + "read-package-json": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.1.2.tgz", + "integrity": "sha512-D1KmuLQr6ZSJS0tW8hf3WGpRlwszJOXZ3E8Yd/DNRaM5d+1wVRZdHlpGBLAuovjr28LbWvjpWkBHMxpRGGjzNA==", + "dev": true, + "requires": { + "glob": "^7.1.1", + "json-parse-even-better-errors": "^2.3.0", + "normalize-package-data": "^2.0.0", + "npm-normalize-package-bin": "^1.0.0" + } + }, + "read-package-tree": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/read-package-tree/-/read-package-tree-5.3.1.tgz", + "integrity": "sha512-mLUDsD5JVtlZxjSlPPx1RETkNjjvQYuweKwNVt1Sn8kP5Jh44pvYuUHCp6xSVDZWbNxVxG5lyZJ921aJH61sTw==", + "dev": true, + "requires": { + "read-package-json": "^2.0.0", + "readdir-scoped-modules": "^1.0.0", + "util-promisify": "^2.1.0" + } + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "readdir-scoped-modules": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz", + "integrity": "sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==", + "dev": true, + "requires": { + "debuglog": "^1.0.1", + "dezalgo": "^1.0.0", + "graceful-fs": "^4.1.2", + "once": "^1.3.0" + } + }, + "readdirp": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", + "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "reflect-metadata": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", + "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==", + "dev": true + }, + "regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "regenerate-unicode-properties": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", + "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", + "dev": true, + "requires": { + "regenerate": "^1.4.0" + } + }, + "regenerator-runtime": { + "version": "0.13.7", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", + "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==", + "dev": true + }, + "regenerator-transform": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", + "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", + "dev": true, + "requires": { + "@babel/runtime": "^7.8.4" + } + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "regex-parser": { + "version": "2.2.11", + "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.11.tgz", + "integrity": "sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q==", + "dev": true + }, + "regexp.prototype.flags": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz", + "integrity": "sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + }, + "dependencies": { + "es-abstract": { + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", + "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + } + } + }, + "regexpu-core": { + "version": "4.7.1", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.1.tgz", + "integrity": "sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ==", + "dev": true, + "requires": { + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^8.2.0", + "regjsgen": "^0.5.1", + "regjsparser": "^0.6.4", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.2.0" + } + }, + "regjsgen": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", + "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==", + "dev": true + }, + "regjsparser": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz", + "integrity": "sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + } + } + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true + }, + "repeat-element": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "dev": true, + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "dependencies": { + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "dev": true + } + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "dev": true + }, + "resolve": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", + "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", + "dev": true, + "requires": { + "is-core-module": "^2.1.0", + "path-parse": "^1.0.6" + } + }, + "resolve-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", + "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", + "dev": true, + "requires": { + "resolve-from": "^3.0.0" + } + }, + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, + "resolve-url-loader": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-3.1.2.tgz", + "integrity": "sha512-QEb4A76c8Mi7I3xNKXlRKQSlLBwjUV/ULFMP+G7n3/7tJZ8MG5wsZ3ucxP1Jz8Vevn6fnJsxDx9cIls+utGzPQ==", + "dev": true, + "requires": { + "adjust-sourcemap-loader": "3.0.0", + "camelcase": "5.3.1", + "compose-function": "3.0.3", + "convert-source-map": "1.7.0", + "es6-iterator": "2.0.3", + "loader-utils": "1.2.3", + "postcss": "7.0.21", + "rework": "1.0.1", + "rework-visit": "1.0.0", + "source-map": "0.6.1" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", + "dev": true + }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", + "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^2.0.0", + "json5": "^1.0.1" + } + }, + "postcss": { + "version": "7.0.21", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.21.tgz", + "integrity": "sha512-uIFtJElxJo29QC753JzhidoAhvp/e/Exezkdhfmt8AymWT6/5B7W1WmponYWkHk2eg6sONyTch0A3nkMPun3SQ==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, + "retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", + "dev": true + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "rework": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/rework/-/rework-1.0.1.tgz", + "integrity": "sha1-MIBqhBNCtUUQqkEQhQzUhTQUSqc=", + "dev": true, + "requires": { + "convert-source-map": "^0.3.3", + "css": "^2.0.0" + }, + "dependencies": { + "convert-source-map": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-0.3.5.tgz", + "integrity": "sha1-8dgClQr33SYxof6+BZZVDIarMZA=", + "dev": true + } + } + }, + "rework-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/rework-visit/-/rework-visit-1.0.0.tgz", + "integrity": "sha1-mUWygD8hni96ygCtuLyfZA+ELJo=", + "dev": true + }, + "rfdc": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.1.4.tgz", + "integrity": "sha512-5C9HXdzK8EAqN7JDif30jqsBzavB7wLpaubisuQIGHWf2gUXSpzy6ArX/+Da8RjFpagWsCn+pIgxTMAmKw9Zug==", + "dev": true + }, + "rgb-regex": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz", + "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=", + "dev": true + }, + "rgba-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz", + "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "rollup": { + "version": "2.26.5", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.26.5.tgz", + "integrity": "sha512-rCyFG3ZtQdnn9YwfuAVH0l/Om34BdO5lwCA0W6Hq+bNB21dVEBbCRxhaHOmu1G7OBFDWytbzAC104u7rxHwGjA==", + "dev": true, + "requires": { + "fsevents": "~2.1.2" + } + }, + "run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true + }, + "run-parallel": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.10.tgz", + "integrity": "sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw==", + "dev": true + }, + "run-queue": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", + "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", + "dev": true, + "requires": { + "aproba": "^1.1.1" + } + }, + "rxjs": { + "version": "6.6.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", + "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", + "requires": { + "tslib": "^1.9.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "requires": { + "ret": "~0.1.10" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "sass": { + "version": "1.26.10", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.26.10.tgz", + "integrity": "sha512-bzN0uvmzfsTvjz0qwccN1sPm2HxxpNI/Xa+7PlUEMS+nQvbyuEK7Y0qFqxlPHhiNHb1Ze8WQJtU31olMObkAMw==", + "dev": true, + "requires": { + "chokidar": ">=2.0.0 <4.0.0" + } + }, + "sass-loader": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-10.0.1.tgz", + "integrity": "sha512-b2PSldKVTS3JcFPHSrEXh3BeAfR7XknGiGCAO5aHruR3Pf3kqLP3Gb2ypXLglRrAzgZkloNxLZ7GXEGDX0hBUQ==", + "dev": true, + "requires": { + "klona": "^2.0.3", + "loader-utils": "^2.0.0", + "neo-async": "^2.6.2", + "schema-utils": "^2.7.0", + "semver": "^7.3.2" + } + }, + "saucelabs": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/saucelabs/-/saucelabs-1.5.0.tgz", + "integrity": "sha512-jlX3FGdWvYf4Q3LFfFWS1QvPg3IGCGWxIc8QBFdPTbpTJnt/v17FHXYVAn7C8sHf1yUXo2c7yIM0isDryfYtHQ==", + "dev": true, + "requires": { + "https-proxy-agent": "^2.2.1" + } + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true + }, + "schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + } + }, + "select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", + "dev": true + }, + "selenium-webdriver": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-3.6.0.tgz", + "integrity": "sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q==", + "dev": true, + "requires": { + "jszip": "^3.1.3", + "rimraf": "^2.5.4", + "tmp": "0.0.30", + "xml2js": "^0.4.17" + }, + "dependencies": { + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "tmp": { + "version": "0.0.30", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.30.tgz", + "integrity": "sha1-ckGdSovn1s51FI/YsyTlk6cRwu0=", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.1" + } + } + } + }, + "selfsigned": { + "version": "1.10.8", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.8.tgz", + "integrity": "sha512-2P4PtieJeEwVgTU9QEcwIRDQ/mXJLX8/+I3ur+Pg16nS8oNbrGxEso9NyYWy8NAmXiNl4dlAp5MwoNeCWzON4w==", + "dev": true, + "requires": { + "node-forge": "^0.10.0" + } + }, + "semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "dev": true + }, + "semver-dsl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/semver-dsl/-/semver-dsl-1.0.1.tgz", + "integrity": "sha1-02eN5VVeimH2Ke7QJTZq5fJzQKA=", + "dev": true, + "requires": { + "semver": "^5.3.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "semver-intersect": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/semver-intersect/-/semver-intersect-1.4.0.tgz", + "integrity": "sha512-d8fvGg5ycKAq0+I6nfWeCx6ffaWJCsBYU0H2Rq56+/zFePYfT8mXkB3tWBSjR5BerkHNZ5eTPIk1/LBYas35xQ==", + "dev": true, + "requires": { + "semver": "^5.0.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "dev": true, + "requires": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.7.2", + "mime": "1.6.0", + "ms": "2.1.1", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + } + } + }, + "serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, + "serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "dev": true, + "requires": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + } + } + }, + "serve-static": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", + "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", + "dev": true, + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.1" + } + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "set-immediate-shim": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", + "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", + "dev": true + }, + "set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", + "dev": true + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", + "dev": true + }, + "sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", + "dev": true + }, + "simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", + "dev": true, + "requires": { + "is-arrayish": "^0.3.1" + }, + "dependencies": { + "is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "dev": true + } + } + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "smart-buffer": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.1.0.tgz", + "integrity": "sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw==", + "dev": true + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "requires": { + "kind-of": "^3.2.0" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "socket.io": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.3.0.tgz", + "integrity": "sha512-2A892lrj0GcgR/9Qk81EaY2gYhCBxurV0PfmmESO6p27QPrUK1J3zdns+5QPqvUYK2q657nSj0guoIil9+7eFg==", + "dev": true, + "requires": { + "debug": "~4.1.0", + "engine.io": "~3.4.0", + "has-binary2": "~1.0.2", + "socket.io-adapter": "~1.1.0", + "socket.io-client": "2.3.0", + "socket.io-parser": "~3.4.0" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "socket.io-adapter": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz", + "integrity": "sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g==", + "dev": true + }, + "socket.io-client": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.3.0.tgz", + "integrity": "sha512-cEQQf24gET3rfhxZ2jJ5xzAOo/xhZwK+mOqtGRg5IowZsMgwvHwnf/mCRapAAkadhM26y+iydgwsXGObBB5ZdA==", + "dev": true, + "requires": { + "backo2": "1.0.2", + "base64-arraybuffer": "0.1.5", + "component-bind": "1.0.0", + "component-emitter": "1.2.1", + "debug": "~4.1.0", + "engine.io-client": "~3.4.0", + "has-binary2": "~1.0.2", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "object-component": "0.0.3", + "parseqs": "0.0.5", + "parseuri": "0.0.5", + "socket.io-parser": "~3.3.0", + "to-array": "0.1.4" + }, + "dependencies": { + "base64-arraybuffer": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", + "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=", + "dev": true + }, + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", + "dev": true + }, + "socket.io-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.1.tgz", + "integrity": "sha512-1QLvVAe8dTz+mKmZ07Swxt+LAo4Y1ff50rlyoEx00TQmDFVQYPfcqGvIDJLGaBdhdNCecXtyKpD+EgKGcmmbuQ==", + "dev": true, + "requires": { + "component-emitter": "~1.3.0", + "debug": "~3.1.0", + "isarray": "2.0.1" + }, + "dependencies": { + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + } + } + }, + "socket.io-parser": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.4.1.tgz", + "integrity": "sha512-11hMgzL+WCLWf1uFtHSNvliI++tcRUWdoeYuwIl+Axvwy9z2gQM+7nJyN3STj1tLj5JyIUH8/gpDGxzAlDdi0A==", + "dev": true, + "requires": { + "component-emitter": "1.2.1", + "debug": "~4.1.0", + "isarray": "2.0.1" + }, + "dependencies": { + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", + "dev": true + } + } + }, + "sockjs": { + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.20.tgz", + "integrity": "sha512-SpmVOVpdq0DJc0qArhF3E5xsxvaiqGNb73XfgBpK1y3UD5gs8DSo8aCTsuT5pX8rssdc2NDIzANwP9eCAiSdTA==", + "dev": true, + "requires": { + "faye-websocket": "^0.10.0", + "uuid": "^3.4.0", + "websocket-driver": "0.6.5" + } + }, + "sockjs-client": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.4.0.tgz", + "integrity": "sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g==", + "dev": true, + "requires": { + "debug": "^3.2.5", + "eventsource": "^1.0.7", + "faye-websocket": "~0.11.1", + "inherits": "^2.0.3", + "json3": "^3.3.2", + "url-parse": "^1.4.3" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "faye-websocket": { + "version": "0.11.3", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz", + "integrity": "sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==", + "dev": true, + "requires": { + "websocket-driver": ">=0.5.1" + } + } + } + }, + "socks": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.3.3.tgz", + "integrity": "sha512-o5t52PCNtVdiOvzMry7wU4aOqYWL0PeCXRWBEiJow4/i/wr+wpsJQ9awEu1EonLIqsfGd5qSgDdxEOvCdmBEpA==", + "dev": true, + "requires": { + "ip": "1.1.5", + "smart-buffer": "^4.1.0" + } + }, + "socks-proxy-agent": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz", + "integrity": "sha512-NT6syHhI9LmuEMSK6Kd2V7gNv5KFZoLE7V5udWmn0de+3Mkj3UMA/AJPLyeNUVmElCurSHtUdM3ETpR3z770Wg==", + "dev": true, + "requires": { + "agent-base": "~4.2.1", + "socks": "~2.3.2" + }, + "dependencies": { + "agent-base": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz", + "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==", + "dev": true, + "requires": { + "es6-promisify": "^5.0.0" + } + } + } + }, + "sort-keys": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", + "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", + "dev": true, + "requires": { + "is-plain-obj": "^1.0.0" + } + }, + "source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", + "dev": true + }, + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true + }, + "source-map-loader": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-1.0.2.tgz", + "integrity": "sha512-oX8d6ndRjN+tVyjj6PlXSyFPhDdVAPsZA30nD3/II8g4uOv8fCz0DMn5sy8KtVbDfKQxOpGwGJnK3xIW3tauDw==", + "dev": true, + "requires": { + "data-urls": "^2.0.0", + "iconv-lite": "^0.6.2", + "loader-utils": "^2.0.0", + "schema-utils": "^2.7.0", + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "dev": true, + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "dev": true + }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "dev": true + }, + "spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz", + "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==", + "dev": true + }, + "spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "dev": true, + "requires": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + } + }, + "spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "dev": true, + "requires": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "speed-measure-webpack-plugin": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/speed-measure-webpack-plugin/-/speed-measure-webpack-plugin-1.3.3.tgz", + "integrity": "sha512-2ljD4Ch/rz2zG3HsLsnPfp23osuPBS0qPuz9sGpkNXTN1Ic4M+W9xB8l8rS8ob2cO4b1L+WTJw/0AJwWYVgcxQ==", + "dev": true, + "requires": { + "chalk": "^2.0.1" + } + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.0" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "dev": true, + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } + }, + "ssri": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.0.tgz", + "integrity": "sha512-aq/pz989nxVYwn16Tsbj1TqFpD5LLrQxHf5zaHuieFV+R0Bbr4y8qUsOA45hXT/N4/9UNXTarBjnjVmjSOVaAA==", + "dev": true, + "requires": { + "minipass": "^3.1.1" + } + }, + "stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "dev": true + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "dev": true + }, + "stream-browserify": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", + "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", + "dev": true, + "requires": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + } + }, + "stream-each": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", + "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" + } + }, + "stream-http": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "dev": true, + "requires": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + } + }, + "stream-shift": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", + "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", + "dev": true + }, + "streamroller": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-2.2.4.tgz", + "integrity": "sha512-OG79qm3AujAM9ImoqgWEY1xG4HX+Lw+yY6qZj9R1K2mhF5bEmQ849wvrb+4vt4jLMLzwXttJlQbOdPOQVRv7DQ==", + "dev": true, + "requires": { + "date-format": "^2.1.0", + "debug": "^4.1.1", + "fs-extra": "^8.1.0" + }, + "dependencies": { + "date-format": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-2.1.0.tgz", + "integrity": "sha512-bYQuGLeFxhkxNOF3rcMtiZxvCBAquGzZm6oWA1oZ0g2THUzivaRhv8uOhdr19LmoobSOLoIAxeUK2RdbM8IFTA==", + "dev": true + }, + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + } + } + }, + "strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "string.prototype.trimend": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz", + "integrity": "sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + } + }, + "string.prototype.trimstart": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz", + "integrity": "sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true + }, + "style-loader": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-1.2.1.tgz", + "integrity": "sha512-ByHSTQvHLkWE9Ir5+lGbVOXhxX10fbprhLvdg96wedFZb4NDekDPxVKv5Fwmio+QcMlkkNfuK+5W1peQ5CUhZg==", + "dev": true, + "requires": { + "loader-utils": "^2.0.0", + "schema-utils": "^2.6.6" + } + }, + "stylehacks": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz", + "integrity": "sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "dependencies": { + "postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "dev": true, + "requires": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "stylus": { + "version": "0.54.8", + "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.54.8.tgz", + "integrity": "sha512-vr54Or4BZ7pJafo2mpf0ZcwA74rpuYCZbxrHBsH8kbcXOwSfvBFwsRfpGO5OD5fhG5HDCFW737PKaawI7OqEAg==", + "dev": true, + "requires": { + "css-parse": "~2.0.0", + "debug": "~3.1.0", + "glob": "^7.1.6", + "mkdirp": "~1.0.4", + "safer-buffer": "^2.1.2", + "sax": "~1.2.4", + "semver": "^6.3.0", + "source-map": "^0.7.3" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "stylus-loader": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/stylus-loader/-/stylus-loader-3.0.2.tgz", + "integrity": "sha512-+VomPdZ6a0razP+zinir61yZgpw2NfljeSsdUF5kJuEzlo3khXhY19Fn6l8QQz1GRJGtMCo8nG5C04ePyV7SUA==", + "dev": true, + "requires": { + "loader-utils": "^1.0.2", + "lodash.clonedeep": "^4.5.0", + "when": "~3.6.x" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + } + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "svgo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", + "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "coa": "^2.0.2", + "css-select": "^2.0.0", + "css-select-base-adapter": "^0.1.1", + "css-tree": "1.0.0-alpha.37", + "csso": "^4.0.2", + "js-yaml": "^3.13.1", + "mkdirp": "~0.5.1", + "object.values": "^1.1.0", + "sax": "~1.2.4", + "stable": "^0.1.8", + "unquote": "~1.1.1", + "util.promisify": "~1.0.0" + } + }, + "symbol-observable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", + "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", + "dev": true + }, + "tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "dev": true + }, + "tar": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.0.5.tgz", + "integrity": "sha512-0b4HOimQHj9nXNEAA7zWwMM91Zhhba3pspja6sQbgTpynOJf+bkjBnfybNYzbpLbnwXnbyB4LOREvlyXLkCHSg==", + "dev": true, + "requires": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + } + } + }, + "terser": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.3.0.tgz", + "integrity": "sha512-XTT3D3AwxC54KywJijmY2mxZ8nJiEjBHVYzq8l9OaYuRFWeQNBwvipuzzYEP4e+/AVcd1hqG/CqgsdIRyT45Fg==", + "dev": true, + "requires": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "terser-webpack-plugin": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-4.1.0.tgz", + "integrity": "sha512-0ZWDPIP8BtEDZdChbufcXUigOYk6dOX/P/X0hWxqDDcVAQLb8Yy/0FAaemSfax3PAA67+DJR778oz8qVbmy4hA==", + "dev": true, + "requires": { + "cacache": "^15.0.5", + "find-cache-dir": "^3.3.1", + "jest-worker": "^26.3.0", + "p-limit": "^3.0.2", + "schema-utils": "^2.6.6", + "serialize-javascript": "^4.0.0", + "source-map": "^0.6.1", + "terser": "^5.0.0", + "webpack-sources": "^1.4.3" + }, + "dependencies": { + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "dev": true + }, + "timers-browserify": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", + "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", + "dev": true, + "requires": { + "setimmediate": "^1.0.4" + } + }, + "timsort": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", + "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=", + "dev": true + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.2" + } + }, + "to-array": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", + "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=", + "dev": true + }, + "to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", + "dev": true + }, + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dev": true, + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + }, + "tr46": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.0.2.tgz", + "integrity": "sha512-3n1qG+/5kg+jrbTzwAykB5yRYtQCTqOGKq5U5PE3b0a1/mzo6snDhjGS0zJVJunO0NrT3Dg1MLy5TjWP/UJppg==", + "dev": true, + "requires": { + "punycode": "^2.1.1" + } + }, + "tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true + }, + "ts-node": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.3.0.tgz", + "integrity": "sha512-dyNS/RqyVTDcmNM4NIBAeDMpsAdaQ+ojdf0GOLqE6nwJOgzEkdRNzJywhDfwnuvB10oa6NLVG1rUJQCpRN7qoQ==", + "dev": true, + "requires": { + "arg": "^4.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "source-map-support": "^0.5.6", + "yn": "^3.0.0" + } + }, + "ts-pnp": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.2.0.tgz", + "integrity": "sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw==", + "dev": true + }, + "tslib": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", + "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==" + }, + "tslint": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/tslint/-/tslint-6.1.3.tgz", + "integrity": "sha512-IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "builtin-modules": "^1.1.1", + "chalk": "^2.3.0", + "commander": "^2.12.1", + "diff": "^4.0.1", + "glob": "^7.1.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.3", + "resolve": "^1.3.2", + "semver": "^5.3.0", + "tslib": "^1.13.0", + "tsutils": "^2.29.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "tsutils": { + "version": "2.29.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", + "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", + "dev": true + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true + }, + "type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==", + "dev": true + }, + "type-fest": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "dev": true + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, + "typescript": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.0.5.tgz", + "integrity": "sha512-ywmr/VrTVCmNTJ6iV2LwIrfG1P+lv6luD8sUJs+2eI9NLGigaN+nUQc13iHqisq7bra9lnmUSYqbJvegraBOPQ==", + "dev": true + }, + "ua-parser-js": { + "version": "0.7.21", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.21.tgz", + "integrity": "sha512-+O8/qh/Qj8CgC6eYBVBykMrNtp5Gebn4dlGD/kKXVkJNDwyrAwSIqwz8CDf+tsAIWVycKcku6gIXJ0qwx/ZXaQ==", + "dev": true + }, + "unicode-canonical-property-names-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", + "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", + "dev": true + }, + "unicode-match-property-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", + "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", + "dev": true, + "requires": { + "unicode-canonical-property-names-ecmascript": "^1.0.4", + "unicode-property-aliases-ecmascript": "^1.0.4" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz", + "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==", + "dev": true + }, + "unicode-property-aliases-ecmascript": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz", + "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==", + "dev": true + }, + "union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + } + }, + "uniq": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", + "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", + "dev": true + }, + "uniqs": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", + "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", + "dev": true + }, + "unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "dev": true, + "requires": { + "unique-slug": "^2.0.0" + } + }, + "unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4" + } + }, + "universal-analytics": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/universal-analytics/-/universal-analytics-0.4.23.tgz", + "integrity": "sha512-lgMIH7XBI6OgYn1woDEmxhGdj8yDefMKg7GkWdeATAlQZFrMrNyxSkpDzY57iY0/6fdlzTbBV03OawvvzG+q7A==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "request": "^2.88.2", + "uuid": "^3.0.0" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "dev": true + }, + "unquote": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", + "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=", + "dev": true + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true + } + } + }, + "upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "dev": true + }, + "uri-js": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", + "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dev": true, + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, + "dependencies": { + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true + } + } + }, + "url-parse": { + "version": "1.4.7", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz", + "integrity": "sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg==", + "dev": true, + "requires": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true + }, + "util": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", + "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", + "dev": true, + "requires": { + "inherits": "2.0.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + } + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "util-promisify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/util-promisify/-/util-promisify-2.1.0.tgz", + "integrity": "sha1-PCI2R2xNMsX/PEcAKt18E7moKlM=", + "dev": true, + "requires": { + "object.getownpropertydescriptors": "^2.0.3" + } + }, + "util.promisify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", + "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.2", + "has-symbols": "^1.0.1", + "object.getownpropertydescriptors": "^2.1.0" + }, + "dependencies": { + "es-abstract": { + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", + "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + } + } + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "dev": true + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "validate-npm-package-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", + "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", + "dev": true, + "requires": { + "builtins": "^1.0.3" + } + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "dev": true + }, + "vendors": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz", + "integrity": "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==", + "dev": true + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", + "dev": true + }, + "void-elements": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", + "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=", + "dev": true + }, + "watchpack": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", + "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", + "dev": true, + "requires": { + "chokidar": "^3.4.1", + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0", + "watchpack-chokidar2": "^2.0.1" + } + }, + "watchpack-chokidar2": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz", + "integrity": "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==", + "dev": true, + "optional": true, + "requires": { + "chokidar": "^2.1.8" + }, + "dependencies": { + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "optional": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "optional": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true, + "optional": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "optional": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "optional": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": true, + "optional": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "optional": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "optional": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "dev": true, + "optional": true, + "requires": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "optional": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "optional": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "optional": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "optional": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "optional": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "optional": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "optional": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "optional": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, + "wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dev": true, + "requires": { + "minimalistic-assert": "^1.0.0" + } + }, + "wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", + "dev": true, + "requires": { + "defaults": "^1.0.3" + } + }, + "webdriver-js-extender": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/webdriver-js-extender/-/webdriver-js-extender-2.1.0.tgz", + "integrity": "sha512-lcUKrjbBfCK6MNsh7xaY2UAUmZwe+/ib03AjVOpFobX4O7+83BUveSrLfU0Qsyb1DaKJdQRbuU+kM9aZ6QUhiQ==", + "dev": true, + "requires": { + "@types/selenium-webdriver": "^3.0.0", + "selenium-webdriver": "^3.0.1" + } + }, + "webidl-conversions": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", + "dev": true + }, + "webpack": { + "version": "4.44.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.44.1.tgz", + "integrity": "sha512-4UOGAohv/VGUNQJstzEywwNxqX417FnjZgZJpJQegddzPmTvph37eBIRbRTfdySXzVtJXLJfbMN3mMYhM6GdmQ==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/wasm-edit": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "acorn": "^6.4.1", + "ajv": "^6.10.2", + "ajv-keywords": "^3.4.1", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^4.3.0", + "eslint-scope": "^4.0.3", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^2.4.0", + "loader-utils": "^1.2.3", + "memory-fs": "^0.4.1", + "micromatch": "^3.1.10", + "mkdirp": "^0.5.3", + "neo-async": "^2.6.1", + "node-libs-browser": "^2.2.1", + "schema-utils": "^1.0.0", + "tapable": "^1.1.3", + "terser-webpack-plugin": "^1.4.3", + "watchpack": "^1.7.4", + "webpack-sources": "^1.4.1" + }, + "dependencies": { + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "cacache": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", + "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", + "dev": true, + "requires": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } + }, + "chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "dev": true + }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "dev": true, + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "ssri": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", + "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1" + } + }, + "terser": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", + "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", + "dev": true, + "requires": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + } + }, + "terser-webpack-plugin": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz", + "integrity": "sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==", + "dev": true, + "requires": { + "cacache": "^12.0.2", + "find-cache-dir": "^2.1.0", + "is-wsl": "^1.1.0", + "schema-utils": "^1.0.0", + "serialize-javascript": "^4.0.0", + "source-map": "^0.6.1", + "terser": "^4.1.2", + "webpack-sources": "^1.4.0", + "worker-farm": "^1.7.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + } + } + }, + "webpack-dev-middleware": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz", + "integrity": "sha512-1xC42LxbYoqLNAhV6YzTYacicgMZQTqRd27Sim9wn5hJrX3I5nxYy1SxSd4+gjUFsz1dQFj+yEe6zEVmSkeJjw==", + "dev": true, + "requires": { + "memory-fs": "^0.4.1", + "mime": "^2.4.4", + "mkdirp": "^0.5.1", + "range-parser": "^1.2.1", + "webpack-log": "^2.0.0" + }, + "dependencies": { + "memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "dev": true, + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "mime": { + "version": "2.4.7", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.7.tgz", + "integrity": "sha512-dhNd1uA2u397uQk3Nv5LM4lm93WYDUXFn3Fu291FJerns4jyTudqhIWe4W04YLy7Uk1tm1Ore04NpjRvQp/NPA==", + "dev": true + } + } + }, + "webpack-dev-server": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.0.tgz", + "integrity": "sha512-PUxZ+oSTxogFQgkTtFndEtJIPNmml7ExwufBZ9L2/Xyyd5PnOL5UreWe5ZT7IU25DSdykL9p1MLQzmLh2ljSeg==", + "dev": true, + "requires": { + "ansi-html": "0.0.7", + "bonjour": "^3.5.0", + "chokidar": "^2.1.8", + "compression": "^1.7.4", + "connect-history-api-fallback": "^1.6.0", + "debug": "^4.1.1", + "del": "^4.1.1", + "express": "^4.17.1", + "html-entities": "^1.3.1", + "http-proxy-middleware": "0.19.1", + "import-local": "^2.0.0", + "internal-ip": "^4.3.0", + "ip": "^1.1.5", + "is-absolute-url": "^3.0.3", + "killable": "^1.0.1", + "loglevel": "^1.6.8", + "opn": "^5.5.0", + "p-retry": "^3.0.1", + "portfinder": "^1.0.26", + "schema-utils": "^1.0.0", + "selfsigned": "^1.10.7", + "semver": "^6.3.0", + "serve-index": "^1.9.1", + "sockjs": "0.3.20", + "sockjs-client": "1.4.0", + "spdy": "^4.0.2", + "strip-ansi": "^3.0.1", + "supports-color": "^6.1.0", + "url": "^0.11.0", + "webpack-dev-middleware": "^3.7.2", + "webpack-log": "^2.0.0", + "ws": "^6.2.1", + "yargs": "^13.3.2" + }, + "dependencies": { + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "dev": true, + "optional": true, + "requires": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "is-absolute-url": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", + "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==", + "dev": true + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, + "webpack-log": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz", + "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", + "dev": true, + "requires": { + "ansi-colors": "^3.0.0", + "uuid": "^3.3.2" + } + }, + "webpack-merge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.2.tgz", + "integrity": "sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g==", + "dev": true, + "requires": { + "lodash": "^4.17.15" + } + }, + "webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "dev": true, + "requires": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "webpack-subresource-integrity": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/webpack-subresource-integrity/-/webpack-subresource-integrity-1.4.1.tgz", + "integrity": "sha512-XMLFInbGbB1HV7K4vHWANzc1CN0t/c4bBvnlvGxGwV45yE/S/feAXIm8dJsCkzqWtSKnmaEgTp/meyeThxG4Iw==", + "dev": true, + "requires": { + "webpack-sources": "^1.3.0" + } + }, + "websocket-driver": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.6.5.tgz", + "integrity": "sha1-XLJVbOuF9Dc8bYI4qmkchFThOjY=", + "dev": true, + "requires": { + "websocket-extensions": ">=0.1.1" + } + }, + "websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "dev": true + }, + "whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", + "dev": true + }, + "whatwg-url": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.4.0.tgz", + "integrity": "sha512-vwTUFf6V4zhcPkWp/4CQPr1TW9Ml6SF4lVyaIMBdJw5i6qUUJ1QWM4Z6YYVkfka0OUIzVo/0aNtGVGk256IKWw==", + "dev": true, + "requires": { + "lodash.sortby": "^4.7.0", + "tr46": "^2.0.2", + "webidl-conversions": "^6.1.0" + } + }, + "when": { + "version": "3.6.4", + "resolved": "https://registry.npmjs.org/when/-/when-3.6.4.tgz", + "integrity": "sha1-RztRfsFZ4rhQBUl6E5g/CVQS404=", + "dev": true + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "worker-farm": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", + "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", + "dev": true, + "requires": { + "errno": "~0.1.7" + } + }, + "worker-plugin": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/worker-plugin/-/worker-plugin-5.0.0.tgz", + "integrity": "sha512-AXMUstURCxDD6yGam2r4E34aJg6kW85IiaeX72hi+I1cxyaMUtrvVY6sbfpGKAj5e7f68Acl62BjQF5aOOx2IQ==", + "dev": true, + "requires": { + "loader-utils": "^1.1.0" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + } + } + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "ws": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", + "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", + "dev": true, + "requires": { + "async-limiter": "~1.0.0" + } + }, + "xml2js": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", + "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", + "dev": true, + "requires": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + } + }, + "xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "dev": true + }, + "xmlhttprequest-ssl": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz", + "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=", + "dev": true + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true + }, + "y18n": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", + "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "dev": true, + "requires": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + } + }, + "yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + } + } + }, + "yeast": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", + "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=", + "dev": true + }, + "yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true + }, + "zone.js": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.10.3.tgz", + "integrity": "sha512-LXVLVEq0NNOqK/fLJo3d0kfzd4sxwn2/h67/02pjCjfKDxgx1i9QqpvtHD8CrBnSSwMw5+dy11O7FRX5mkO7Cg==" + } + } +} diff --git a/projects/project-3/frontend/package.json b/projects/project-3/frontend/package.json new file mode 100644 index 0000000..7c3a6b3 --- /dev/null +++ b/projects/project-3/frontend/package.json @@ -0,0 +1,46 @@ +{ + "name": "frontend", + "version": "0.0.0", + "scripts": { + "ng": "ng", + "start": "ng serve", + "build": "ng build", + "test": "ng test", + "lint": "ng lint", + "e2e": "ng e2e" + }, + "private": true, + "dependencies": { + "@angular/animations": "~10.2.0", + "@angular/common": "~10.2.0", + "@angular/compiler": "~10.2.0", + "@angular/core": "~10.2.0", + "@angular/forms": "~10.2.0", + "@angular/platform-browser": "~10.2.0", + "@angular/platform-browser-dynamic": "~10.2.0", + "@angular/router": "~10.2.0", + "rxjs": "~6.6.0", + "tslib": "^2.0.0", + "zone.js": "~0.10.2" + }, + "devDependencies": { + "@angular-devkit/build-angular": "~0.1002.0", + "@angular/cli": "~10.2.0", + "@angular/compiler-cli": "~10.2.0", + "@types/node": "^12.11.1", + "@types/jasmine": "~3.5.0", + "@types/jasminewd2": "~2.0.3", + "codelyzer": "^6.0.0", + "jasmine-core": "~3.6.0", + "jasmine-spec-reporter": "~5.0.0", + "karma": "~5.0.0", + "karma-chrome-launcher": "~3.1.0", + "karma-coverage-istanbul-reporter": "~3.0.2", + "karma-jasmine": "~4.0.0", + "karma-jasmine-html-reporter": "^1.5.0", + "protractor": "~7.0.0", + "ts-node": "~8.3.0", + "tslint": "~6.1.0", + "typescript": "~4.0.2" + } +} diff --git a/projects/project-3/frontend/src/app/app-routing.module.ts b/projects/project-3/frontend/src/app/app-routing.module.ts new file mode 100644 index 0000000..d425c6f --- /dev/null +++ b/projects/project-3/frontend/src/app/app-routing.module.ts @@ -0,0 +1,10 @@ +import { NgModule } from '@angular/core'; +import { Routes, RouterModule } from '@angular/router'; + +const routes: Routes = []; + +@NgModule({ + imports: [RouterModule.forRoot(routes)], + exports: [RouterModule] +}) +export class AppRoutingModule { } diff --git a/projects/project-3/frontend/src/app/app.component.html b/projects/project-3/frontend/src/app/app.component.html new file mode 100644 index 0000000..e48d8c1 --- /dev/null +++ b/projects/project-3/frontend/src/app/app.component.html @@ -0,0 +1,534 @@ + + + + + + + + + + + + + + +
+ + +
+ + + + + + + + + + + + {{ title }} app is running! + + + + + +
+ + +

Resources

+

Here are some links to help you get started:

+ + + + +

Next Steps

+

What do you want to do next with your app?

+ + + +
+
+ + + New Component +
+ +
+ + + Angular Material +
+ +
+ + + Add PWA Support +
+ +
+ + + Add Dependency +
+ +
+ + + Run and Watch Tests +
+ +
+ + + Build for Production +
+
+ + +
+
ng generate component xyz
+
ng add @angular/material
+
ng add @angular/pwa
+
ng add _____
+
ng test
+
ng build --prod
+
+ + + + + + + + + + + +
+ + + + + + + + + + + + \ No newline at end of file diff --git a/projects/project-3/frontend/src/app/app.component.scss b/projects/project-3/frontend/src/app/app.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/projects/project-3/frontend/src/app/app.component.spec.ts b/projects/project-3/frontend/src/app/app.component.spec.ts new file mode 100644 index 0000000..04c26ec --- /dev/null +++ b/projects/project-3/frontend/src/app/app.component.spec.ts @@ -0,0 +1,35 @@ +import { TestBed } from '@angular/core/testing'; +import { RouterTestingModule } from '@angular/router/testing'; +import { AppComponent } from './app.component'; + +describe('AppComponent', () => { + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [ + RouterTestingModule + ], + declarations: [ + AppComponent + ], + }).compileComponents(); + }); + + it('should create the app', () => { + const fixture = TestBed.createComponent(AppComponent); + const app = fixture.componentInstance; + expect(app).toBeTruthy(); + }); + + it(`should have as title 'frontend'`, () => { + const fixture = TestBed.createComponent(AppComponent); + const app = fixture.componentInstance; + expect(app.title).toEqual('frontend'); + }); + + it('should render title', () => { + const fixture = TestBed.createComponent(AppComponent); + fixture.detectChanges(); + const compiled = fixture.nativeElement; + expect(compiled.querySelector('.content span').textContent).toContain('frontend app is running!'); + }); +}); diff --git a/projects/project-3/frontend/src/app/app.component.ts b/projects/project-3/frontend/src/app/app.component.ts new file mode 100644 index 0000000..0c5a793 --- /dev/null +++ b/projects/project-3/frontend/src/app/app.component.ts @@ -0,0 +1,10 @@ +import { Component } from '@angular/core'; + +@Component({ + selector: 'app-root', + templateUrl: './app.component.html', + styleUrls: ['./app.component.scss'] +}) +export class AppComponent { + title = 'frontend'; +} diff --git a/projects/project-3/frontend/src/app/app.module.ts b/projects/project-3/frontend/src/app/app.module.ts new file mode 100644 index 0000000..2c3ba29 --- /dev/null +++ b/projects/project-3/frontend/src/app/app.module.ts @@ -0,0 +1,18 @@ +import { BrowserModule } from '@angular/platform-browser'; +import { NgModule } from '@angular/core'; + +import { AppRoutingModule } from './app-routing.module'; +import { AppComponent } from './app.component'; + +@NgModule({ + declarations: [ + AppComponent + ], + imports: [ + BrowserModule, + AppRoutingModule + ], + providers: [], + bootstrap: [AppComponent] +}) +export class AppModule { } diff --git a/projects/project-3/frontend/src/assets/.gitkeep b/projects/project-3/frontend/src/assets/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/projects/project-3/frontend/src/environments/environment.prod.ts b/projects/project-3/frontend/src/environments/environment.prod.ts new file mode 100644 index 0000000..3612073 --- /dev/null +++ b/projects/project-3/frontend/src/environments/environment.prod.ts @@ -0,0 +1,3 @@ +export const environment = { + production: true +}; diff --git a/projects/project-3/frontend/src/environments/environment.ts b/projects/project-3/frontend/src/environments/environment.ts new file mode 100644 index 0000000..7b4f817 --- /dev/null +++ b/projects/project-3/frontend/src/environments/environment.ts @@ -0,0 +1,16 @@ +// This file can be replaced during build by using the `fileReplacements` array. +// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`. +// The list of file replacements can be found in `angular.json`. + +export const environment = { + production: false +}; + +/* + * For easier debugging in development mode, you can import the following file + * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`. + * + * This import should be commented out in production mode because it will have a negative impact + * on performance if an error is thrown. + */ +// import 'zone.js/dist/zone-error'; // Included with Angular CLI. diff --git a/projects/project-3/frontend/src/favicon.ico b/projects/project-3/frontend/src/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..997406ad22c29aae95893fb3d666c30258a09537 GIT binary patch literal 948 zcmV;l155mgP)CBYU7IjCFmI-B}4sMJt3^s9NVg!P0 z6hDQy(L`XWMkB@zOLgN$4KYz;j0zZxq9KKdpZE#5@k0crP^5f9KO};h)ZDQ%ybhht z%t9#h|nu0K(bJ ztIkhEr!*UyrZWQ1k2+YkGqDi8Z<|mIN&$kzpKl{cNP=OQzXHz>vn+c)F)zO|Bou>E z2|-d_=qY#Y+yOu1a}XI?cU}%04)zz%anD(XZC{#~WreV!a$7k2Ug`?&CUEc0EtrkZ zL49MB)h!_K{H(*l_93D5tO0;BUnvYlo+;yss%n^&qjt6fZOa+}+FDO(~2>G z2dx@=JZ?DHP^;b7*Y1as5^uphBsh*s*z&MBd?e@I>-9kU>63PjP&^#5YTOb&x^6Cf z?674rmSHB5Fk!{Gv7rv!?qX#ei_L(XtwVqLX3L}$MI|kJ*w(rhx~tc&L&xP#?cQow zX_|gx$wMr3pRZIIr_;;O|8fAjd;1`nOeu5K(pCu7>^3E&D2OBBq?sYa(%S?GwG&_0-s%_v$L@R!5H_fc)lOb9ZoOO#p`Nn`KU z3LTTBtjwo`7(HA6 z7gmO$yTR!5L>Bsg!X8616{JUngg_@&85%>W=mChTR;x4`P=?PJ~oPuy5 zU-L`C@_!34D21{fD~Y8NVnR3t;aqZI3fIhmgmx}$oc-dKDC6Ap$Gy>a!`A*x2L1v0 WcZ@i?LyX}70000 + + + + Frontend + + + + + + + + diff --git a/projects/project-3/frontend/src/main.ts b/projects/project-3/frontend/src/main.ts new file mode 100644 index 0000000..c7b673c --- /dev/null +++ b/projects/project-3/frontend/src/main.ts @@ -0,0 +1,12 @@ +import { enableProdMode } from '@angular/core'; +import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; + +import { AppModule } from './app/app.module'; +import { environment } from './environments/environment'; + +if (environment.production) { + enableProdMode(); +} + +platformBrowserDynamic().bootstrapModule(AppModule) + .catch(err => console.error(err)); diff --git a/projects/project-3/frontend/src/polyfills.ts b/projects/project-3/frontend/src/polyfills.ts new file mode 100644 index 0000000..03711e5 --- /dev/null +++ b/projects/project-3/frontend/src/polyfills.ts @@ -0,0 +1,63 @@ +/** + * This file includes polyfills needed by Angular and is loaded before the app. + * You can add your own extra polyfills to this file. + * + * This file is divided into 2 sections: + * 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers. + * 2. Application imports. Files imported after ZoneJS that should be loaded before your main + * file. + * + * The current setup is for so-called "evergreen" browsers; the last versions of browsers that + * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera), + * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile. + * + * Learn more in https://angular.io/guide/browser-support + */ + +/*************************************************************************************************** + * BROWSER POLYFILLS + */ + +/** IE10 and IE11 requires the following for NgClass support on SVG elements */ +// import 'classlist.js'; // Run `npm install --save classlist.js`. + +/** + * Web Animations `@angular/platform-browser/animations` + * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari. + * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0). + */ +// import 'web-animations-js'; // Run `npm install --save web-animations-js`. + +/** + * By default, zone.js will patch all possible macroTask and DomEvents + * user can disable parts of macroTask/DomEvents patch by setting following flags + * because those flags need to be set before `zone.js` being loaded, and webpack + * will put import in the top of bundle, so user need to create a separate file + * in this directory (for example: zone-flags.ts), and put the following flags + * into that file, and then add the following code before importing zone.js. + * import './zone-flags'; + * + * The flags allowed in zone-flags.ts are listed here. + * + * The following flags will work for all browsers. + * + * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame + * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick + * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames + * + * in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js + * with the following flag, it will bypass `zone.js` patch for IE/Edge + * + * (window as any).__Zone_enable_cross_context_check = true; + * + */ + +/*************************************************************************************************** + * Zone JS is required by default for Angular itself. + */ +import 'zone.js/dist/zone'; // Included with Angular CLI. + + +/*************************************************************************************************** + * APPLICATION IMPORTS + */ diff --git a/projects/project-3/frontend/src/styles.scss b/projects/project-3/frontend/src/styles.scss new file mode 100644 index 0000000..90d4ee0 --- /dev/null +++ b/projects/project-3/frontend/src/styles.scss @@ -0,0 +1 @@ +/* You can add global styles to this file, and also import other style files */ diff --git a/projects/project-3/frontend/src/test.ts b/projects/project-3/frontend/src/test.ts new file mode 100644 index 0000000..50193eb --- /dev/null +++ b/projects/project-3/frontend/src/test.ts @@ -0,0 +1,25 @@ +// This file is required by karma.conf.js and loads recursively all the .spec and framework files + +import 'zone.js/dist/zone-testing'; +import { getTestBed } from '@angular/core/testing'; +import { + BrowserDynamicTestingModule, + platformBrowserDynamicTesting +} from '@angular/platform-browser-dynamic/testing'; + +declare const require: { + context(path: string, deep?: boolean, filter?: RegExp): { + keys(): string[]; + (id: string): T; + }; +}; + +// First, initialize the Angular testing environment. +getTestBed().initTestEnvironment( + BrowserDynamicTestingModule, + platformBrowserDynamicTesting() +); +// Then we find all the tests. +const context = require.context('./', true, /\.spec\.ts$/); +// And load the modules. +context.keys().map(context); diff --git a/projects/project-3/frontend/tsconfig.app.json b/projects/project-3/frontend/tsconfig.app.json new file mode 100644 index 0000000..82d91dc --- /dev/null +++ b/projects/project-3/frontend/tsconfig.app.json @@ -0,0 +1,15 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "./out-tsc/app", + "types": [] + }, + "files": [ + "src/main.ts", + "src/polyfills.ts" + ], + "include": [ + "src/**/*.d.ts" + ] +} diff --git a/projects/project-3/frontend/tsconfig.json b/projects/project-3/frontend/tsconfig.json new file mode 100644 index 0000000..f69f654 --- /dev/null +++ b/projects/project-3/frontend/tsconfig.json @@ -0,0 +1,20 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "compileOnSave": false, + "compilerOptions": { + "baseUrl": "./", + "outDir": "./dist/out-tsc", + "sourceMap": true, + "declaration": false, + "downlevelIteration": true, + "experimentalDecorators": true, + "moduleResolution": "node", + "importHelpers": true, + "target": "es2015", + "module": "es2020", + "lib": [ + "es2018", + "dom" + ] + } +} diff --git a/projects/project-3/frontend/tsconfig.spec.json b/projects/project-3/frontend/tsconfig.spec.json new file mode 100644 index 0000000..092345b --- /dev/null +++ b/projects/project-3/frontend/tsconfig.spec.json @@ -0,0 +1,18 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "./out-tsc/spec", + "types": [ + "jasmine" + ] + }, + "files": [ + "src/test.ts", + "src/polyfills.ts" + ], + "include": [ + "src/**/*.spec.ts", + "src/**/*.d.ts" + ] +} diff --git a/projects/project-3/frontend/tslint.json b/projects/project-3/frontend/tslint.json new file mode 100644 index 0000000..277c8eb --- /dev/null +++ b/projects/project-3/frontend/tslint.json @@ -0,0 +1,152 @@ +{ + "extends": "tslint:recommended", + "rulesDirectory": [ + "codelyzer" + ], + "rules": { + "align": { + "options": [ + "parameters", + "statements" + ] + }, + "array-type": false, + "arrow-return-shorthand": true, + "curly": true, + "deprecation": { + "severity": "warning" + }, + "eofline": true, + "import-blacklist": [ + true, + "rxjs/Rx" + ], + "import-spacing": true, + "indent": { + "options": [ + "spaces" + ] + }, + "max-classes-per-file": false, + "max-line-length": [ + true, + 140 + ], + "member-ordering": [ + true, + { + "order": [ + "static-field", + "instance-field", + "static-method", + "instance-method" + ] + } + ], + "no-console": [ + true, + "debug", + "info", + "time", + "timeEnd", + "trace" + ], + "no-empty": false, + "no-inferrable-types": [ + true, + "ignore-params" + ], + "no-non-null-assertion": true, + "no-redundant-jsdoc": true, + "no-switch-case-fall-through": true, + "no-var-requires": false, + "object-literal-key-quotes": [ + true, + "as-needed" + ], + "quotemark": [ + true, + "single" + ], + "semicolon": { + "options": [ + "always" + ] + }, + "space-before-function-paren": { + "options": { + "anonymous": "never", + "asyncArrow": "always", + "constructor": "never", + "method": "never", + "named": "never" + } + }, + "typedef": [ + true, + "call-signature" + ], + "typedef-whitespace": { + "options": [ + { + "call-signature": "nospace", + "index-signature": "nospace", + "parameter": "nospace", + "property-declaration": "nospace", + "variable-declaration": "nospace" + }, + { + "call-signature": "onespace", + "index-signature": "onespace", + "parameter": "onespace", + "property-declaration": "onespace", + "variable-declaration": "onespace" + } + ] + }, + "variable-name": { + "options": [ + "ban-keywords", + "check-format", + "allow-pascal-case" + ] + }, + "whitespace": { + "options": [ + "check-branch", + "check-decl", + "check-operator", + "check-separator", + "check-type", + "check-typecast" + ] + }, + "component-class-suffix": true, + "contextual-lifecycle": true, + "directive-class-suffix": true, + "no-conflicting-lifecycle": true, + "no-host-metadata-property": true, + "no-input-rename": true, + "no-inputs-metadata-property": true, + "no-output-native": true, + "no-output-on-prefix": true, + "no-output-rename": true, + "no-outputs-metadata-property": true, + "template-banana-in-box": true, + "template-no-negated-async": true, + "use-lifecycle-interface": true, + "use-pipe-transform-interface": true, + "directive-selector": [ + true, + "attribute", + "app", + "camelCase" + ], + "component-selector": [ + true, + "element", + "app", + "kebab-case" + ] + } +} From b140b1b6bd22d3bb3a519d22a7904d6c1175b671 Mon Sep 17 00:00:00 2001 From: tim-herbst Date: Sat, 19 Dec 2020 10:23:36 +0100 Subject: [PATCH 002/104] add leaflet dependency to project --- projects/project-3/frontend/angular.json | 10 +++++++--- projects/project-3/frontend/package-lock.json | 5 +++++ projects/project-3/frontend/package.json | 1 + projects/project-3/frontend/src/styles.scss | 2 +- 4 files changed, 14 insertions(+), 4 deletions(-) diff --git a/projects/project-3/frontend/angular.json b/projects/project-3/frontend/angular.json index 485de41..beba1d5 100644 --- a/projects/project-3/frontend/angular.json +++ b/projects/project-3/frontend/angular.json @@ -123,6 +123,10 @@ } } } - }}, - "defaultProject": "frontend" -} + } + }, + "defaultProject": "frontend", + "cli": { + "analytics": false + } +} \ No newline at end of file diff --git a/projects/project-3/frontend/package-lock.json b/projects/project-3/frontend/package-lock.json index ff00ba8..c56ee00 100644 --- a/projects/project-3/frontend/package-lock.json +++ b/projects/project-3/frontend/package-lock.json @@ -7068,6 +7068,11 @@ "integrity": "sha512-ZRbnvdg/NxqzC7L9Uyqzf4psi1OM4Cuc+sJAkQPjO6XkQIJTNbfK2Rsmbw8fx1p2mkZdp2FZYo2+LwXYY/uwIA==", "dev": true }, + "leaflet": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/leaflet/-/leaflet-1.7.1.tgz", + "integrity": "sha512-/xwPEBidtg69Q3HlqPdU3DnrXQOvQU/CCHA1tcDQVzOwm91YMYaILjNp7L4Eaw5Z4sOYdbBz6koWyibppd8Zqw==" + }, "less": { "version": "3.13.1", "resolved": "https://registry.npmjs.org/less/-/less-3.13.1.tgz", diff --git a/projects/project-3/frontend/package.json b/projects/project-3/frontend/package.json index 7c3a6b3..ff41de4 100644 --- a/projects/project-3/frontend/package.json +++ b/projects/project-3/frontend/package.json @@ -19,6 +19,7 @@ "@angular/platform-browser": "~10.2.0", "@angular/platform-browser-dynamic": "~10.2.0", "@angular/router": "~10.2.0", + "leaflet": "^1.7.1", "rxjs": "~6.6.0", "tslib": "^2.0.0", "zone.js": "~0.10.2" diff --git a/projects/project-3/frontend/src/styles.scss b/projects/project-3/frontend/src/styles.scss index 90d4ee0..d047302 100644 --- a/projects/project-3/frontend/src/styles.scss +++ b/projects/project-3/frontend/src/styles.scss @@ -1 +1 @@ -/* You can add global styles to this file, and also import other style files */ +@import "~leaflet/dist/leaflet.css"; From 6b0a804aa02524d1a336a42175eebb9939975c4e Mon Sep 17 00:00:00 2001 From: tim-herbst Date: Sat, 19 Dec 2020 10:24:12 +0100 Subject: [PATCH 003/104] add map-component * display london * do it the Schwarz way ;) --- .../frontend/src/app/app.component.html | 535 +----------------- .../project-3/frontend/src/app/app.module.ts | 4 +- .../frontend/src/app/map/map.component.css | 19 + .../src/app/map/map.component.css.map | 1 + .../frontend/src/app/map/map.component.html | 5 + .../frontend/src/app/map/map.component.scss | 18 + .../src/app/map/map.component.spec.ts | 25 + .../frontend/src/app/map/map.component.ts | 28 + projects/project-3/frontend/src/styles.css | 3 + .../project-3/frontend/src/styles.css.map | 1 + 10 files changed, 104 insertions(+), 535 deletions(-) create mode 100644 projects/project-3/frontend/src/app/map/map.component.css create mode 100644 projects/project-3/frontend/src/app/map/map.component.css.map create mode 100644 projects/project-3/frontend/src/app/map/map.component.html create mode 100644 projects/project-3/frontend/src/app/map/map.component.scss create mode 100644 projects/project-3/frontend/src/app/map/map.component.spec.ts create mode 100644 projects/project-3/frontend/src/app/map/map.component.ts create mode 100644 projects/project-3/frontend/src/styles.css create mode 100644 projects/project-3/frontend/src/styles.css.map diff --git a/projects/project-3/frontend/src/app/app.component.html b/projects/project-3/frontend/src/app/app.component.html index e48d8c1..8e220c2 100644 --- a/projects/project-3/frontend/src/app/app.component.html +++ b/projects/project-3/frontend/src/app/app.component.html @@ -1,534 +1 @@ - - - - - - - - - - - - - - -
- - -
- - - - - - - - - - - - {{ title }} app is running! - - - - - -
- - -

Resources

-

Here are some links to help you get started:

- - - - -

Next Steps

-

What do you want to do next with your app?

- - - -
-
- - - New Component -
- -
- - - Angular Material -
- -
- - - Add PWA Support -
- -
- - - Add Dependency -
- -
- - - Run and Watch Tests -
- -
- - - Build for Production -
-
- - -
-
ng generate component xyz
-
ng add @angular/material
-
ng add @angular/pwa
-
ng add _____
-
ng test
-
ng build --prod
-
- - - - - - - - - - - -
- - - - - - - - - - - - \ No newline at end of file + diff --git a/projects/project-3/frontend/src/app/app.module.ts b/projects/project-3/frontend/src/app/app.module.ts index 2c3ba29..2c009a7 100644 --- a/projects/project-3/frontend/src/app/app.module.ts +++ b/projects/project-3/frontend/src/app/app.module.ts @@ -3,10 +3,12 @@ import { NgModule } from '@angular/core'; import { AppRoutingModule } from './app-routing.module'; import { AppComponent } from './app.component'; +import { MapComponent } from './map/map.component'; @NgModule({ declarations: [ - AppComponent + AppComponent, + MapComponent ], imports: [ BrowserModule, diff --git a/projects/project-3/frontend/src/app/map/map.component.css b/projects/project-3/frontend/src/app/map/map.component.css new file mode 100644 index 0000000..045580f --- /dev/null +++ b/projects/project-3/frontend/src/app/map/map.component.css @@ -0,0 +1,19 @@ +.map-container { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + margin: 30px; +} + +.map-frame { + border: 2px solid black; + height: 100%; +} + +#map { + height: 100%; +} + +/*# sourceMappingURL=map.component.css.map */ diff --git a/projects/project-3/frontend/src/app/map/map.component.css.map b/projects/project-3/frontend/src/app/map/map.component.css.map new file mode 100644 index 0000000..ad1d5f7 --- /dev/null +++ b/projects/project-3/frontend/src/app/map/map.component.css.map @@ -0,0 +1 @@ +{"version":3,"sourceRoot":"","sources":["map.component.scss"],"names":[],"mappings":"AACA;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE","file":"map.component.css"} \ No newline at end of file diff --git a/projects/project-3/frontend/src/app/map/map.component.html b/projects/project-3/frontend/src/app/map/map.component.html new file mode 100644 index 0000000..67ad8c0 --- /dev/null +++ b/projects/project-3/frontend/src/app/map/map.component.html @@ -0,0 +1,5 @@ +
+
+
+
+
diff --git a/projects/project-3/frontend/src/app/map/map.component.scss b/projects/project-3/frontend/src/app/map/map.component.scss new file mode 100644 index 0000000..cc0d874 --- /dev/null +++ b/projects/project-3/frontend/src/app/map/map.component.scss @@ -0,0 +1,18 @@ + +.map-container { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + margin: 30px; +} + +.map-frame { + border: 2px solid black; + height: 100%; +} + +#map { + height: 100%; +} diff --git a/projects/project-3/frontend/src/app/map/map.component.spec.ts b/projects/project-3/frontend/src/app/map/map.component.spec.ts new file mode 100644 index 0000000..f163147 --- /dev/null +++ b/projects/project-3/frontend/src/app/map/map.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { MapComponent } from './map.component'; + +describe('MapComponent', () => { + let component: MapComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ MapComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(MapComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/projects/project-3/frontend/src/app/map/map.component.ts b/projects/project-3/frontend/src/app/map/map.component.ts new file mode 100644 index 0000000..d7fe41d --- /dev/null +++ b/projects/project-3/frontend/src/app/map/map.component.ts @@ -0,0 +1,28 @@ +import {AfterViewInit, Component} from '@angular/core'; +import * as L from 'leaflet'; + +@Component({ + selector: 'app-map', + templateUrl: './map.component.html', + styleUrls: ['./map.component.scss'] +}) +export class MapComponent implements AfterViewInit { + private map; + + constructor() { + } + + ngAfterViewInit(): void { + this.initMap(); + } + + private initMap(): void { + this.map = L.map('map').setView([51.509865, -0.118092], 14); + this.map.addLayer(new L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { + attribution: 'Map data OpenStreetMap contributors', + minZoom: 0, + maxZoom: 19 + })); + } + +} diff --git a/projects/project-3/frontend/src/styles.css b/projects/project-3/frontend/src/styles.css new file mode 100644 index 0000000..3dd8a8f --- /dev/null +++ b/projects/project-3/frontend/src/styles.css @@ -0,0 +1,3 @@ +@import "~leaflet/dist/leaflet.css"; + +/*# sourceMappingURL=styles.css.map */ diff --git a/projects/project-3/frontend/src/styles.css.map b/projects/project-3/frontend/src/styles.css.map new file mode 100644 index 0000000..dcc2900 --- /dev/null +++ b/projects/project-3/frontend/src/styles.css.map @@ -0,0 +1 @@ +{"version":3,"sourceRoot":"","sources":["styles.scss"],"names":[],"mappings":"AAAQ","file":"styles.css"} \ No newline at end of file From a72a454f3d1262c2480cb0d69a2b7e0ff9a3f81d Mon Sep 17 00:00:00 2001 From: tim-herbst Date: Sat, 19 Dec 2020 11:07:38 +0100 Subject: [PATCH 004/104] add angular material to project and implement first mat-toolbar for first screen design --- projects/project-3/frontend/angular.json | 2 ++ projects/project-3/frontend/package-lock.json | 25 +++++++++++++++++++ projects/project-3/frontend/package.json | 2 ++ .../project-3/frontend/src/app/app.module.ts | 6 ++++- .../frontend/src/app/map/map.component.html | 6 +++++ projects/project-3/frontend/src/index.html | 4 ++- projects/project-3/frontend/src/styles.css | 8 ++++++ .../project-3/frontend/src/styles.css.map | 2 +- projects/project-3/frontend/src/styles.scss | 3 +++ 9 files changed, 55 insertions(+), 3 deletions(-) diff --git a/projects/project-3/frontend/angular.json b/projects/project-3/frontend/angular.json index beba1d5..4e9d604 100644 --- a/projects/project-3/frontend/angular.json +++ b/projects/project-3/frontend/angular.json @@ -28,6 +28,7 @@ "src/assets" ], "styles": [ + "./node_modules/@angular/material/prebuilt-themes/purple-green.css", "src/styles.scss" ], "scripts": [] @@ -92,6 +93,7 @@ "src/assets" ], "styles": [ + "./node_modules/@angular/material/prebuilt-themes/purple-green.css", "src/styles.scss" ], "scripts": [] diff --git a/projects/project-3/frontend/package-lock.json b/projects/project-3/frontend/package-lock.json index c56ee00..c4e362c 100644 --- a/projects/project-3/frontend/package-lock.json +++ b/projects/project-3/frontend/package-lock.json @@ -242,6 +242,23 @@ "tslib": "^2.0.0" } }, + "@angular/cdk": { + "version": "10.2.7", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-10.2.7.tgz", + "integrity": "sha512-ZQjDfTRTn7JuAKsf3jiIdU2XBaxxGBi/ZWYv5Pb3HCl6B4PISsIE5VWRhkoUogoAB0MiFHpjnWeIqknJEm11YQ==", + "requires": { + "parse5": "^5.0.0", + "tslib": "^2.0.0" + }, + "dependencies": { + "parse5": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", + "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==", + "optional": true + } + } + }, "@angular/cli": { "version": "10.2.1", "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-10.2.1.tgz", @@ -471,6 +488,14 @@ "tslib": "^2.0.0" } }, + "@angular/material": { + "version": "10.2.7", + "resolved": "https://registry.npmjs.org/@angular/material/-/material-10.2.7.tgz", + "integrity": "sha512-uk6JkRrKHaM9VFMzX7pWC83YNLVgXPB3D8U1yjSOafCdWwrRZgUHGr8MPlSILCr3o2nxgg5SsKdWcWwHuXXUZA==", + "requires": { + "tslib": "^2.0.0" + } + }, "@angular/platform-browser": { "version": "10.2.4", "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-10.2.4.tgz", diff --git a/projects/project-3/frontend/package.json b/projects/project-3/frontend/package.json index ff41de4..7e74124 100644 --- a/projects/project-3/frontend/package.json +++ b/projects/project-3/frontend/package.json @@ -12,10 +12,12 @@ "private": true, "dependencies": { "@angular/animations": "~10.2.0", + "@angular/cdk": "^10.2.7", "@angular/common": "~10.2.0", "@angular/compiler": "~10.2.0", "@angular/core": "~10.2.0", "@angular/forms": "~10.2.0", + "@angular/material": "^10.2.7", "@angular/platform-browser": "~10.2.0", "@angular/platform-browser-dynamic": "~10.2.0", "@angular/router": "~10.2.0", diff --git a/projects/project-3/frontend/src/app/app.module.ts b/projects/project-3/frontend/src/app/app.module.ts index 2c009a7..ad8e84e 100644 --- a/projects/project-3/frontend/src/app/app.module.ts +++ b/projects/project-3/frontend/src/app/app.module.ts @@ -4,6 +4,8 @@ import { NgModule } from '@angular/core'; import { AppRoutingModule } from './app-routing.module'; import { AppComponent } from './app.component'; import { MapComponent } from './map/map.component'; +import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; +import {MatToolbarModule} from '@angular/material/toolbar'; @NgModule({ declarations: [ @@ -12,7 +14,9 @@ import { MapComponent } from './map/map.component'; ], imports: [ BrowserModule, - AppRoutingModule + AppRoutingModule, + BrowserAnimationsModule, + MatToolbarModule ], providers: [], bootstrap: [AppComponent] diff --git a/projects/project-3/frontend/src/app/map/map.component.html b/projects/project-3/frontend/src/app/map/map.component.html index 67ad8c0..d3e5aad 100644 --- a/projects/project-3/frontend/src/app/map/map.component.html +++ b/projects/project-3/frontend/src/app/map/map.component.html @@ -1,3 +1,9 @@ +

+ + My Application + +

+
diff --git a/projects/project-3/frontend/src/index.html b/projects/project-3/frontend/src/index.html index 3af61ec..cae196e 100644 --- a/projects/project-3/frontend/src/index.html +++ b/projects/project-3/frontend/src/index.html @@ -6,8 +6,10 @@ + + - + diff --git a/projects/project-3/frontend/src/styles.css b/projects/project-3/frontend/src/styles.css index 3dd8a8f..a2ae038 100644 --- a/projects/project-3/frontend/src/styles.css +++ b/projects/project-3/frontend/src/styles.css @@ -1,3 +1,11 @@ @import "~leaflet/dist/leaflet.css"; +html, body { + height: 100%; +} + +body { + margin: 0; + font-family: Roboto, "Helvetica Neue", sans-serif; +} /*# sourceMappingURL=styles.css.map */ diff --git a/projects/project-3/frontend/src/styles.css.map b/projects/project-3/frontend/src/styles.css.map index dcc2900..752d577 100644 --- a/projects/project-3/frontend/src/styles.css.map +++ b/projects/project-3/frontend/src/styles.css.map @@ -1 +1 @@ -{"version":3,"sourceRoot":"","sources":["styles.scss"],"names":[],"mappings":"AAAQ","file":"styles.css"} \ No newline at end of file +{"version":3,"sourceRoot":"","sources":["styles.scss"],"names":[],"mappings":"AAAQ;AAER;EAAa;;;AACb;EAAO;EAAW","file":"styles.css"} \ No newline at end of file diff --git a/projects/project-3/frontend/src/styles.scss b/projects/project-3/frontend/src/styles.scss index d047302..40f4566 100644 --- a/projects/project-3/frontend/src/styles.scss +++ b/projects/project-3/frontend/src/styles.scss @@ -1 +1,4 @@ @import "~leaflet/dist/leaflet.css"; + +html, body { height: 100%; } +body { margin: 0; font-family: Roboto, "Helvetica Neue", sans-serif; } From ab4ffaab87a0ec879da598dc1c4817c63b7e4951 Mon Sep 17 00:00:00 2001 From: tim-herbst Date: Sat, 19 Dec 2020 11:49:40 +0100 Subject: [PATCH 005/104] add flex module to project --- projects/project-3/frontend/package-lock.json | 8 ++++++++ projects/project-3/frontend/package.json | 1 + projects/project-3/frontend/src/app/app.module.ts | 4 +++- 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/projects/project-3/frontend/package-lock.json b/projects/project-3/frontend/package-lock.json index c4e362c..3ae7f33 100644 --- a/projects/project-3/frontend/package-lock.json +++ b/projects/project-3/frontend/package-lock.json @@ -480,6 +480,14 @@ "tslib": "^2.0.0" } }, + "@angular/flex-layout": { + "version": "11.0.0-beta.33", + "resolved": "https://registry.npmjs.org/@angular/flex-layout/-/flex-layout-11.0.0-beta.33.tgz", + "integrity": "sha512-unfhw3abZuKtdwQicRStHCYGbANPTHYg4WNRQk/RC5Mxq+4WOp4Q8HI7GqRHCGUYDCGUP7w1sU/oDt8f09nM8w==", + "requires": { + "tslib": "^2.0.0" + } + }, "@angular/forms": { "version": "10.2.4", "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-10.2.4.tgz", diff --git a/projects/project-3/frontend/package.json b/projects/project-3/frontend/package.json index 7e74124..557f3c7 100644 --- a/projects/project-3/frontend/package.json +++ b/projects/project-3/frontend/package.json @@ -16,6 +16,7 @@ "@angular/common": "~10.2.0", "@angular/compiler": "~10.2.0", "@angular/core": "~10.2.0", + "@angular/flex-layout": "^11.0.0-beta.33", "@angular/forms": "~10.2.0", "@angular/material": "^10.2.7", "@angular/platform-browser": "~10.2.0", diff --git a/projects/project-3/frontend/src/app/app.module.ts b/projects/project-3/frontend/src/app/app.module.ts index ad8e84e..59f3fbb 100644 --- a/projects/project-3/frontend/src/app/app.module.ts +++ b/projects/project-3/frontend/src/app/app.module.ts @@ -6,6 +6,7 @@ import { AppComponent } from './app.component'; import { MapComponent } from './map/map.component'; import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; import {MatToolbarModule} from '@angular/material/toolbar'; +import {FlexLayoutModule} from '@angular/flex-layout'; @NgModule({ declarations: [ @@ -16,7 +17,8 @@ import {MatToolbarModule} from '@angular/material/toolbar'; BrowserModule, AppRoutingModule, BrowserAnimationsModule, - MatToolbarModule + MatToolbarModule, + FlexLayoutModule ], providers: [], bootstrap: [AppComponent] From 711f3457b6a308a3c06d07498673e7188305309c Mon Sep 17 00:00:00 2001 From: tim-herbst Date: Sat, 19 Dec 2020 11:50:07 +0100 Subject: [PATCH 006/104] align map --- .../project-3/frontend/src/app/map/map.component.css | 12 ++++++------ .../frontend/src/app/map/map.component.css.map | 2 +- .../frontend/src/app/map/map.component.html | 9 ++++----- .../frontend/src/app/map/map.component.scss | 11 +++++------ projects/project-3/frontend/src/styles.css.map | 2 +- projects/project-3/frontend/src/styles.scss | 12 +++++++++--- 6 files changed, 26 insertions(+), 22 deletions(-) diff --git a/projects/project-3/frontend/src/app/map/map.component.css b/projects/project-3/frontend/src/app/map/map.component.css index 045580f..915ce00 100644 --- a/projects/project-3/frontend/src/app/map/map.component.css +++ b/projects/project-3/frontend/src/app/map/map.component.css @@ -1,15 +1,15 @@ +.mat-toolbar { + display: flex; +} + .map-container { - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; margin: 30px; + height: 100%; } .map-frame { border: 2px solid black; - height: 100%; + height: 90%; } #map { diff --git a/projects/project-3/frontend/src/app/map/map.component.css.map b/projects/project-3/frontend/src/app/map/map.component.css.map index ad1d5f7..5745c43 100644 --- a/projects/project-3/frontend/src/app/map/map.component.css.map +++ b/projects/project-3/frontend/src/app/map/map.component.css.map @@ -1 +1 @@ -{"version":3,"sourceRoot":"","sources":["map.component.scss"],"names":[],"mappings":"AACA;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE","file":"map.component.css"} \ No newline at end of file +{"version":3,"sourceRoot":"","sources":["map.component.scss"],"names":[],"mappings":"AAAA;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE","file":"map.component.css"} \ No newline at end of file diff --git a/projects/project-3/frontend/src/app/map/map.component.html b/projects/project-3/frontend/src/app/map/map.component.html index d3e5aad..f271c49 100644 --- a/projects/project-3/frontend/src/app/map/map.component.html +++ b/projects/project-3/frontend/src/app/map/map.component.html @@ -1,11 +1,10 @@ -

- - My Application - -

+ + My Application +
+ diff --git a/projects/project-3/frontend/src/app/map/map.component.scss b/projects/project-3/frontend/src/app/map/map.component.scss index cc0d874..f486c3f 100644 --- a/projects/project-3/frontend/src/app/map/map.component.scss +++ b/projects/project-3/frontend/src/app/map/map.component.scss @@ -1,16 +1,15 @@ +.mat-toolbar { + display: flex; +} .map-container { - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; margin: 30px; + height: 100%; } .map-frame { border: 2px solid black; - height: 100%; + height: 90%; } #map { diff --git a/projects/project-3/frontend/src/styles.css.map b/projects/project-3/frontend/src/styles.css.map index 752d577..4cd67a6 100644 --- a/projects/project-3/frontend/src/styles.css.map +++ b/projects/project-3/frontend/src/styles.css.map @@ -1 +1 @@ -{"version":3,"sourceRoot":"","sources":["styles.scss"],"names":[],"mappings":"AAAQ;AAER;EAAa;;;AACb;EAAO;EAAW","file":"styles.css"} \ No newline at end of file +{"version":3,"sourceRoot":"","sources":["styles.scss"],"names":[],"mappings":"AASQ;AATR;EACE;;;AAGF;EACE;EACA","file":"styles.css"} \ No newline at end of file diff --git a/projects/project-3/frontend/src/styles.scss b/projects/project-3/frontend/src/styles.scss index 40f4566..08196b9 100644 --- a/projects/project-3/frontend/src/styles.scss +++ b/projects/project-3/frontend/src/styles.scss @@ -1,4 +1,10 @@ -@import "~leaflet/dist/leaflet.css"; +html, body { + height: 100%; +} -html, body { height: 100%; } -body { margin: 0; font-family: Roboto, "Helvetica Neue", sans-serif; } +body { + margin: 0; + font-family: Roboto, "Helvetica Neue", sans-serif; +} + +@import "~leaflet/dist/leaflet.css"; From f69c999f02741193f0dd7460034080dce2a1e28c Mon Sep 17 00:00:00 2001 From: tim-herbst Date: Sat, 19 Dec 2020 11:52:27 +0100 Subject: [PATCH 007/104] add MapService to project * refactor current mapinit to service --- .../frontend/src/app/map/map.component.css | 1 - .../src/app/map/map.component.css.map | 2 +- .../frontend/src/app/map/map.component.scss | 1 - .../frontend/src/app/map/map.component.ts | 15 ++++---------- .../src/app/service/map.service.spec.ts | 16 +++++++++++++++ .../frontend/src/app/service/map.service.ts | 20 +++++++++++++++++++ 6 files changed, 41 insertions(+), 14 deletions(-) create mode 100644 projects/project-3/frontend/src/app/service/map.service.spec.ts create mode 100644 projects/project-3/frontend/src/app/service/map.service.ts diff --git a/projects/project-3/frontend/src/app/map/map.component.css b/projects/project-3/frontend/src/app/map/map.component.css index 915ce00..84b2d67 100644 --- a/projects/project-3/frontend/src/app/map/map.component.css +++ b/projects/project-3/frontend/src/app/map/map.component.css @@ -8,7 +8,6 @@ } .map-frame { - border: 2px solid black; height: 90%; } diff --git a/projects/project-3/frontend/src/app/map/map.component.css.map b/projects/project-3/frontend/src/app/map/map.component.css.map index 5745c43..8e10507 100644 --- a/projects/project-3/frontend/src/app/map/map.component.css.map +++ b/projects/project-3/frontend/src/app/map/map.component.css.map @@ -1 +1 @@ -{"version":3,"sourceRoot":"","sources":["map.component.scss"],"names":[],"mappings":"AAAA;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE","file":"map.component.css"} \ No newline at end of file +{"version":3,"sourceRoot":"","sources":["map.component.scss"],"names":[],"mappings":"AAAA;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;;;AAGF;EACE","file":"map.component.css"} \ No newline at end of file diff --git a/projects/project-3/frontend/src/app/map/map.component.scss b/projects/project-3/frontend/src/app/map/map.component.scss index f486c3f..6866a90 100644 --- a/projects/project-3/frontend/src/app/map/map.component.scss +++ b/projects/project-3/frontend/src/app/map/map.component.scss @@ -8,7 +8,6 @@ } .map-frame { - border: 2px solid black; height: 90%; } diff --git a/projects/project-3/frontend/src/app/map/map.component.ts b/projects/project-3/frontend/src/app/map/map.component.ts index d7fe41d..f834d87 100644 --- a/projects/project-3/frontend/src/app/map/map.component.ts +++ b/projects/project-3/frontend/src/app/map/map.component.ts @@ -1,5 +1,6 @@ import {AfterViewInit, Component} from '@angular/core'; -import * as L from 'leaflet'; +import {MapService} from '../service/map.service'; + @Component({ selector: 'app-map', @@ -9,20 +10,12 @@ import * as L from 'leaflet'; export class MapComponent implements AfterViewInit { private map; - constructor() { + constructor(private service: MapService) { } ngAfterViewInit(): void { - this.initMap(); + this.service.initMap(); } - private initMap(): void { - this.map = L.map('map').setView([51.509865, -0.118092], 14); - this.map.addLayer(new L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { - attribution: 'Map data OpenStreetMap contributors', - minZoom: 0, - maxZoom: 19 - })); - } } diff --git a/projects/project-3/frontend/src/app/service/map.service.spec.ts b/projects/project-3/frontend/src/app/service/map.service.spec.ts new file mode 100644 index 0000000..9a1a1ec --- /dev/null +++ b/projects/project-3/frontend/src/app/service/map.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { MapService } from './map.service'; + +describe('MapService', () => { + let service: MapService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(MapService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/projects/project-3/frontend/src/app/service/map.service.ts b/projects/project-3/frontend/src/app/service/map.service.ts new file mode 100644 index 0000000..e4388a9 --- /dev/null +++ b/projects/project-3/frontend/src/app/service/map.service.ts @@ -0,0 +1,20 @@ +import { Injectable } from '@angular/core'; +import * as L from 'leaflet'; + +@Injectable({ + providedIn: 'root' +}) +export class MapService { + private map; + + constructor() { } + + public initMap(): void { + this.map = L.map('map').setView([51.509865, -0.118092], 13); + this.map.addLayer(new L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { + attribution: 'Map data OpenStreetMap contributors', + minZoom: 0, + maxZoom: 19 + })); + } +} From 4e46674c074d6342c427171bbc833b84f1064a11 Mon Sep 17 00:00:00 2001 From: tim-herbst Date: Sat, 19 Dec 2020 13:25:39 +0100 Subject: [PATCH 008/104] add link to wiki in toolbar * adjust margin and size of map-frame * add link to gitlab wiki --- projects/project-3/frontend/.gitignore | 4 ++++ .../project-3/frontend/src/app/app.module.ts | 19 ++++++++++------- .../frontend/src/app/map/map.component.css | 12 ++++++----- .../src/app/map/map.component.css.map | 2 +- .../frontend/src/app/map/map.component.html | 21 +++++++++++++------ .../frontend/src/app/map/map.component.scss | 20 ++++++++++++++---- .../frontend/src/app/map/map.component.ts | 1 - 7 files changed, 55 insertions(+), 24 deletions(-) diff --git a/projects/project-3/frontend/.gitignore b/projects/project-3/frontend/.gitignore index 86d943a..e2a50f4 100644 --- a/projects/project-3/frontend/.gitignore +++ b/projects/project-3/frontend/.gitignore @@ -7,6 +7,10 @@ # Only exists if Bazel was run /bazel-out +# exclude generated css-files +/src/app/map/*.css.map +/src/app/map/*.css + # dependencies /node_modules diff --git a/projects/project-3/frontend/src/app/app.module.ts b/projects/project-3/frontend/src/app/app.module.ts index 59f3fbb..ad12c07 100644 --- a/projects/project-3/frontend/src/app/app.module.ts +++ b/projects/project-3/frontend/src/app/app.module.ts @@ -1,12 +1,14 @@ -import { BrowserModule } from '@angular/platform-browser'; -import { NgModule } from '@angular/core'; +import {BrowserModule} from '@angular/platform-browser'; +import {NgModule} from '@angular/core'; -import { AppRoutingModule } from './app-routing.module'; -import { AppComponent } from './app.component'; -import { MapComponent } from './map/map.component'; -import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; +import {AppRoutingModule} from './app-routing.module'; +import {AppComponent} from './app.component'; +import {MapComponent} from './map/map.component'; +import {BrowserAnimationsModule} from '@angular/platform-browser/animations'; import {MatToolbarModule} from '@angular/material/toolbar'; import {FlexLayoutModule} from '@angular/flex-layout'; +import {MatIconModule} from '@angular/material/icon'; +import {MatButtonModule} from '@angular/material/button'; @NgModule({ declarations: [ @@ -18,9 +20,12 @@ import {FlexLayoutModule} from '@angular/flex-layout'; AppRoutingModule, BrowserAnimationsModule, MatToolbarModule, + MatIconModule, + MatButtonModule, FlexLayoutModule ], providers: [], bootstrap: [AppComponent] }) -export class AppModule { } +export class AppModule { +} diff --git a/projects/project-3/frontend/src/app/map/map.component.css b/projects/project-3/frontend/src/app/map/map.component.css index 84b2d67..928ef2d 100644 --- a/projects/project-3/frontend/src/app/map/map.component.css +++ b/projects/project-3/frontend/src/app/map/map.component.css @@ -1,18 +1,20 @@ -.mat-toolbar { - display: flex; +.toolbar-spacer { + flex: 1 1 auto; } .map-container { - margin: 30px; - height: 100%; + margin: 0; + height: 95%; } .map-frame { - height: 90%; + height: 100%; + width: 100%; } #map { height: 100%; + width: 100%; } /*# sourceMappingURL=map.component.css.map */ diff --git a/projects/project-3/frontend/src/app/map/map.component.css.map b/projects/project-3/frontend/src/app/map/map.component.css.map index 8e10507..9711d7d 100644 --- a/projects/project-3/frontend/src/app/map/map.component.css.map +++ b/projects/project-3/frontend/src/app/map/map.component.css.map @@ -1 +1 @@ -{"version":3,"sourceRoot":"","sources":["map.component.scss"],"names":[],"mappings":"AAAA;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;;;AAGF;EACE","file":"map.component.css"} \ No newline at end of file +{"version":3,"sourceRoot":"","sources":["map.component.scss"],"names":[],"mappings":"AAAA;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA","file":"map.component.css"} \ No newline at end of file diff --git a/projects/project-3/frontend/src/app/map/map.component.html b/projects/project-3/frontend/src/app/map/map.component.html index f271c49..3457e68 100644 --- a/projects/project-3/frontend/src/app/map/map.component.html +++ b/projects/project-3/frontend/src/app/map/map.component.html @@ -1,10 +1,19 @@ - - My Application - +
+ + Bike Stations in London + + + library_books + Wiki + -
-
-
+
+
+
+
+ diff --git a/projects/project-3/frontend/src/app/map/map.component.scss b/projects/project-3/frontend/src/app/map/map.component.scss index 6866a90..cb1057b 100644 --- a/projects/project-3/frontend/src/app/map/map.component.scss +++ b/projects/project-3/frontend/src/app/map/map.component.scss @@ -1,16 +1,28 @@ +.myApp { + margin: 0; + height: 100vh; + width: 100vw; +} + +.toolbar-spacer { + flex: 1 1 auto; +} + .mat-toolbar { - display: flex; + height: 4% } .map-container { - margin: 30px; - height: 100%; + margin: 10px; + height: 94%; } .map-frame { - height: 90%; + height: 100%; + width: 100%; } #map { height: 100%; + width: 100%; } diff --git a/projects/project-3/frontend/src/app/map/map.component.ts b/projects/project-3/frontend/src/app/map/map.component.ts index f834d87..a3ac056 100644 --- a/projects/project-3/frontend/src/app/map/map.component.ts +++ b/projects/project-3/frontend/src/app/map/map.component.ts @@ -8,7 +8,6 @@ import {MapService} from '../service/map.service'; styleUrls: ['./map.component.scss'] }) export class MapComponent implements AfterViewInit { - private map; constructor(private service: MapService) { } From 82c5c3e3c0825fe7ee8fa07c682f68bef9b0d1d6 Mon Sep 17 00:00:00 2001 From: tim-herbst Date: Sat, 19 Dec 2020 15:50:36 +0100 Subject: [PATCH 009/104] add marker asset and make Marker call with dummy data for proof of concept --- projects/project-3/frontend/angular.json | 9 ++- .../project-3/frontend/src/app/app.module.ts | 4 +- .../frontend/src/app/map/map.component.ts | 1 + .../frontend/src/app/service/map.service.ts | 55 +++++++++++++++++- .../frontend/src/assets/bike-point.png | Bin 0 -> 33334 bytes .../frontend/src/environments/environment.ts | 3 +- 6 files changed, 66 insertions(+), 6 deletions(-) create mode 100644 projects/project-3/frontend/src/assets/bike-point.png diff --git a/projects/project-3/frontend/angular.json b/projects/project-3/frontend/angular.json index 4e9d604..f8f4677 100644 --- a/projects/project-3/frontend/angular.json +++ b/projects/project-3/frontend/angular.json @@ -90,7 +90,12 @@ "karmaConfig": "karma.conf.js", "assets": [ "src/favicon.ico", - "src/assets" + "src/assets", + { + "glob": "**/*", + "input": "node_modules/leaflet/dist/images/", + "output": "./assets" + } ], "styles": [ "./node_modules/@angular/material/prebuilt-themes/purple-green.css", @@ -131,4 +136,4 @@ "cli": { "analytics": false } -} \ No newline at end of file +} diff --git a/projects/project-3/frontend/src/app/app.module.ts b/projects/project-3/frontend/src/app/app.module.ts index ad12c07..fb3ca8c 100644 --- a/projects/project-3/frontend/src/app/app.module.ts +++ b/projects/project-3/frontend/src/app/app.module.ts @@ -9,6 +9,7 @@ import {MatToolbarModule} from '@angular/material/toolbar'; import {FlexLayoutModule} from '@angular/flex-layout'; import {MatIconModule} from '@angular/material/icon'; import {MatButtonModule} from '@angular/material/button'; +import {HttpClientModule} from '@angular/common/http'; @NgModule({ declarations: [ @@ -22,7 +23,8 @@ import {MatButtonModule} from '@angular/material/button'; MatToolbarModule, MatIconModule, MatButtonModule, - FlexLayoutModule + FlexLayoutModule, + HttpClientModule ], providers: [], bootstrap: [AppComponent] diff --git a/projects/project-3/frontend/src/app/map/map.component.ts b/projects/project-3/frontend/src/app/map/map.component.ts index a3ac056..3cee918 100644 --- a/projects/project-3/frontend/src/app/map/map.component.ts +++ b/projects/project-3/frontend/src/app/map/map.component.ts @@ -14,6 +14,7 @@ export class MapComponent implements AfterViewInit { ngAfterViewInit(): void { this.service.initMap(); + this.service.makeStationsWithDummyData(); } diff --git a/projects/project-3/frontend/src/app/service/map.service.ts b/projects/project-3/frontend/src/app/service/map.service.ts index e4388a9..3b468b4 100644 --- a/projects/project-3/frontend/src/app/service/map.service.ts +++ b/projects/project-3/frontend/src/app/service/map.service.ts @@ -1,5 +1,33 @@ -import { Injectable } from '@angular/core'; +import {Injectable} from '@angular/core'; import * as L from 'leaflet'; +import {HttpClient} from '@angular/common/http'; +import {environment} from '../../environments/environment'; + +const dummyData = [ + { + id: 'BikePoints_1', + url: '/Place/BikePoints_1', + commonName: 'River Street , Clerkenwell', + placeType: 'BikePoint', + lat: 51.529163, + lon: -0.10997 + }, + { + id: 'BikePoints_2', + url: '/Place/BikePoints_2', + commonName: 'Phillimore Gardens, Kensington', + placeType: 'BikePoint', + lat: 51.499606, + lon: -0.197574 + } +]; + +const createIcon = L.icon({ + iconUrl: '../../assets/bike-point.png', + iconSize: [60, 60], + iconAnchor: [30, 60], + popupAnchor: [0, -53] +}); @Injectable({ providedIn: 'root' @@ -7,7 +35,8 @@ import * as L from 'leaflet'; export class MapService { private map; - constructor() { } + constructor(private client: HttpClient) { + } public initMap(): void { this.map = L.map('map').setView([51.509865, -0.118092], 13); @@ -17,4 +46,26 @@ export class MapService { maxZoom: 19 })); } + + public makeStationsWithDummyData(): void { + for (const station of dummyData) { + L.marker([station.lat, station.lon], {icon: createIcon}).addTo(this.map); + } + } + + public makeStationMarkers(): void { + this.fetchStationGeoData().then((data) => { + for (const station of data.features) { + const lat = station.geometry.coordinates[0]; + const lon = station.geometry.coordinates[1]; + L.marker([lon, lat]).addTo(this.map); + } + }).catch((error) => { + console.log('something went wrong: ' + JSON.stringify(error)); + }); + } + + private async fetchStationGeoData(): Promise { + return await this.client.get(environment.apiUrl).toPromise(); + } } diff --git a/projects/project-3/frontend/src/assets/bike-point.png b/projects/project-3/frontend/src/assets/bike-point.png new file mode 100644 index 0000000000000000000000000000000000000000..94ba92fa765126c145916123be8226dc8b96c1f5 GIT binary patch literal 33334 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 Date: Sat, 19 Dec 2020 16:27:16 +0100 Subject: [PATCH 010/104] add marker-clustering support --- projects/project-3/frontend/package-lock.json | 5 +++++ projects/project-3/frontend/package.json | 1 + .../project-3/frontend/src/app/service/map.service.ts | 10 +++++++++- 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/projects/project-3/frontend/package-lock.json b/projects/project-3/frontend/package-lock.json index 3ae7f33..725a805 100644 --- a/projects/project-3/frontend/package-lock.json +++ b/projects/project-3/frontend/package-lock.json @@ -7106,6 +7106,11 @@ "resolved": "https://registry.npmjs.org/leaflet/-/leaflet-1.7.1.tgz", "integrity": "sha512-/xwPEBidtg69Q3HlqPdU3DnrXQOvQU/CCHA1tcDQVzOwm91YMYaILjNp7L4Eaw5Z4sOYdbBz6koWyibppd8Zqw==" }, + "leaflet.markercluster": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/leaflet.markercluster/-/leaflet.markercluster-1.4.1.tgz", + "integrity": "sha512-ZSEpE/EFApR0bJ1w/dUGwTSUvWlpalKqIzkaYdYB7jaftQA/Y2Jav+eT4CMtEYFj+ZK4mswP13Q2acnPBnhGOw==" + }, "less": { "version": "3.13.1", "resolved": "https://registry.npmjs.org/less/-/less-3.13.1.tgz", diff --git a/projects/project-3/frontend/package.json b/projects/project-3/frontend/package.json index 557f3c7..d88c95d 100644 --- a/projects/project-3/frontend/package.json +++ b/projects/project-3/frontend/package.json @@ -23,6 +23,7 @@ "@angular/platform-browser-dynamic": "~10.2.0", "@angular/router": "~10.2.0", "leaflet": "^1.7.1", + "leaflet.markercluster": "^1.4.1", "rxjs": "~6.6.0", "tslib": "^2.0.0", "zone.js": "~0.10.2" diff --git a/projects/project-3/frontend/src/app/service/map.service.ts b/projects/project-3/frontend/src/app/service/map.service.ts index 3b468b4..6e360b2 100644 --- a/projects/project-3/frontend/src/app/service/map.service.ts +++ b/projects/project-3/frontend/src/app/service/map.service.ts @@ -1,5 +1,6 @@ import {Injectable} from '@angular/core'; import * as L from 'leaflet'; +import 'leaflet.markercluster'; import {HttpClient} from '@angular/common/http'; import {environment} from '../../environments/environment'; @@ -48,9 +49,16 @@ export class MapService { } public makeStationsWithDummyData(): void { + const markerClusters = L.markerClusterGroup({ + spiderflyOnMaxZoom: true, + showCoverageOnHover: true, + zoomToBoundsOnClick: true + }); for (const station of dummyData) { - L.marker([station.lat, station.lon], {icon: createIcon}).addTo(this.map); + const marker = L.marker([station.lat, station.lon], {icon: createIcon}); + markerClusters.addLayer(marker); } + this.map.addLayer(markerClusters); } public makeStationMarkers(): void { From 4fb25b3750752ab979bb604b837057ee47ba7231 Mon Sep 17 00:00:00 2001 From: tim-herbst Date: Sat, 19 Dec 2020 18:50:22 +0100 Subject: [PATCH 011/104] update gitignore to exclude generated css files --- projects/project-3/frontend/.gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/projects/project-3/frontend/.gitignore b/projects/project-3/frontend/.gitignore index e2a50f4..4eebe4b 100644 --- a/projects/project-3/frontend/.gitignore +++ b/projects/project-3/frontend/.gitignore @@ -4,6 +4,8 @@ /dist /tmp /out-tsc +*.css +*.css.map # Only exists if Bazel was run /bazel-out From 18ceed31b10ebd7fa39e6c2411b9a8dad7f50147 Mon Sep 17 00:00:00 2001 From: tim-herbst Date: Sat, 19 Dec 2020 18:52:02 +0100 Subject: [PATCH 012/104] add css import for leaflet.markercluster to finish work on clustering marker --- projects/project-3/frontend/src/styles.scss | 2 ++ 1 file changed, 2 insertions(+) diff --git a/projects/project-3/frontend/src/styles.scss b/projects/project-3/frontend/src/styles.scss index 08196b9..d528429 100644 --- a/projects/project-3/frontend/src/styles.scss +++ b/projects/project-3/frontend/src/styles.scss @@ -8,3 +8,5 @@ body { } @import "~leaflet/dist/leaflet.css"; +@import "~leaflet.markercluster/dist/MarkerCluster.css"; +@import "~leaflet.markercluster/dist/MarkerCluster.Default.css"; From 22cd28e2b3149d7fb97bb4ed40e2264aca92b2cf Mon Sep 17 00:00:00 2001 From: tim-herbst Date: Sat, 19 Dec 2020 18:53:07 +0100 Subject: [PATCH 013/104] add new component to seperate content of marker-popup * ng generate new component * add dummy binding to give component a bike-station --- .../project-3/frontend/src/app/app.module.ts | 4 ++- .../src/app/map/popup/popup.component.html | 1 + .../src/app/map/popup/popup.component.scss | 0 .../src/app/map/popup/popup.component.spec.ts | 25 +++++++++++++++++++ .../src/app/map/popup/popup.component.ts | 23 +++++++++++++++++ .../frontend/src/app/service/map.service.ts | 3 ++- 6 files changed, 54 insertions(+), 2 deletions(-) create mode 100644 projects/project-3/frontend/src/app/map/popup/popup.component.html create mode 100644 projects/project-3/frontend/src/app/map/popup/popup.component.scss create mode 100644 projects/project-3/frontend/src/app/map/popup/popup.component.spec.ts create mode 100644 projects/project-3/frontend/src/app/map/popup/popup.component.ts diff --git a/projects/project-3/frontend/src/app/app.module.ts b/projects/project-3/frontend/src/app/app.module.ts index fb3ca8c..96b18e2 100644 --- a/projects/project-3/frontend/src/app/app.module.ts +++ b/projects/project-3/frontend/src/app/app.module.ts @@ -10,11 +10,13 @@ import {FlexLayoutModule} from '@angular/flex-layout'; import {MatIconModule} from '@angular/material/icon'; import {MatButtonModule} from '@angular/material/button'; import {HttpClientModule} from '@angular/common/http'; +import { PopupComponent } from './map/popup/popup.component'; @NgModule({ declarations: [ AppComponent, - MapComponent + MapComponent, + PopupComponent ], imports: [ BrowserModule, diff --git a/projects/project-3/frontend/src/app/map/popup/popup.component.html b/projects/project-3/frontend/src/app/map/popup/popup.component.html new file mode 100644 index 0000000..ad61498 --- /dev/null +++ b/projects/project-3/frontend/src/app/map/popup/popup.component.html @@ -0,0 +1 @@ +{{station.commonName}} diff --git a/projects/project-3/frontend/src/app/map/popup/popup.component.scss b/projects/project-3/frontend/src/app/map/popup/popup.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/projects/project-3/frontend/src/app/map/popup/popup.component.spec.ts b/projects/project-3/frontend/src/app/map/popup/popup.component.spec.ts new file mode 100644 index 0000000..fb8e171 --- /dev/null +++ b/projects/project-3/frontend/src/app/map/popup/popup.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { PopupComponent } from './popup.component'; + +describe('PopupComponent', () => { + let component: PopupComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ PopupComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(PopupComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/projects/project-3/frontend/src/app/map/popup/popup.component.ts b/projects/project-3/frontend/src/app/map/popup/popup.component.ts new file mode 100644 index 0000000..e3f3a97 --- /dev/null +++ b/projects/project-3/frontend/src/app/map/popup/popup.component.ts @@ -0,0 +1,23 @@ +import {Component, OnInit} from '@angular/core'; +import {BikeStation, IBikeStation} from '../../service/domain/bike-station'; + +@Component({ + selector: 'app-popup', + templateUrl: './popup.component.html', + styleUrls: ['./popup.component.scss'] +}) +export class PopupComponent implements OnInit { + station: IBikeStation; + + constructor() { + } + + ngOnInit(): void { + } + + public bindStation(bikeStation: IBikeStation): void { + this.station = bikeStation; + console.log(this.station); + } + +} diff --git a/projects/project-3/frontend/src/app/service/map.service.ts b/projects/project-3/frontend/src/app/service/map.service.ts index 6e360b2..be18a4e 100644 --- a/projects/project-3/frontend/src/app/service/map.service.ts +++ b/projects/project-3/frontend/src/app/service/map.service.ts @@ -3,6 +3,7 @@ import * as L from 'leaflet'; import 'leaflet.markercluster'; import {HttpClient} from '@angular/common/http'; import {environment} from '../../environments/environment'; +import {PopupComponent} from '../map/popup/popup.component'; const dummyData = [ { @@ -55,7 +56,7 @@ export class MapService { zoomToBoundsOnClick: true }); for (const station of dummyData) { - const marker = L.marker([station.lat, station.lon], {icon: createIcon}); + const marker = L.marker([station.lat, station.lon], {icon: createIcon}).bindPopup(new PopupComponent().bindStation(station)); markerClusters.addLayer(marker); } this.map.addLayer(markerClusters); From 95baf1f9b7a49ce29e56268f796e4b599f0b7db7 Mon Sep 17 00:00:00 2001 From: tim-herbst Date: Sat, 19 Dec 2020 18:53:42 +0100 Subject: [PATCH 014/104] add Bikestation object --- .../src/app/service/domain/bike-station.ts | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 projects/project-3/frontend/src/app/service/domain/bike-station.ts diff --git a/projects/project-3/frontend/src/app/service/domain/bike-station.ts b/projects/project-3/frontend/src/app/service/domain/bike-station.ts new file mode 100644 index 0000000..e0d600f --- /dev/null +++ b/projects/project-3/frontend/src/app/service/domain/bike-station.ts @@ -0,0 +1,20 @@ +export interface IBikeStation { + id?: string; + url?: string; + commonName?: string; + placeType?: string; + lat?: number; + lon?: number; +} + +export class BikeStation implements IBikeStation { + constructor( + public id?: string, + public url?: string, + public commonName?: string, + public placeType?: string, + public lat?: number, + public lon?: number + ) { + } +} From ba0f7b5e8699500bf1bef965c6befa1d4d2412e1 Mon Sep 17 00:00:00 2001 From: tim-herbst Date: Sun, 20 Dec 2020 17:20:32 +0100 Subject: [PATCH 015/104] add routing to project --- .../frontend/src/app/app-routing.module.ts | 15 ++++++++--- .../src/app/map/popup/popup.component.html | 1 - .../src/app/map/popup/popup.component.scss | 0 .../src/app/map/popup/popup.component.spec.ts | 25 ------------------- .../src/app/map/popup/popup.component.ts | 23 ----------------- 5 files changed, 11 insertions(+), 53 deletions(-) delete mode 100644 projects/project-3/frontend/src/app/map/popup/popup.component.html delete mode 100644 projects/project-3/frontend/src/app/map/popup/popup.component.scss delete mode 100644 projects/project-3/frontend/src/app/map/popup/popup.component.spec.ts delete mode 100644 projects/project-3/frontend/src/app/map/popup/popup.component.ts diff --git a/projects/project-3/frontend/src/app/app-routing.module.ts b/projects/project-3/frontend/src/app/app-routing.module.ts index d425c6f..734af2b 100644 --- a/projects/project-3/frontend/src/app/app-routing.module.ts +++ b/projects/project-3/frontend/src/app/app-routing.module.ts @@ -1,10 +1,17 @@ -import { NgModule } from '@angular/core'; -import { Routes, RouterModule } from '@angular/router'; +import {NgModule} from '@angular/core'; +import {RouterModule, Routes} from '@angular/router'; +import {MapComponent} from './map/map.component'; +import {DashboardComponent} from './dashboard/dashboard.component'; -const routes: Routes = []; +const routes: Routes = [ + {path: '', redirectTo: 'map', pathMatch: 'full'}, + {path: 'map', component: MapComponent}, + {path: 'dashboard/:id', component: DashboardComponent} +]; @NgModule({ imports: [RouterModule.forRoot(routes)], exports: [RouterModule] }) -export class AppRoutingModule { } +export class AppRoutingModule { +} diff --git a/projects/project-3/frontend/src/app/map/popup/popup.component.html b/projects/project-3/frontend/src/app/map/popup/popup.component.html deleted file mode 100644 index ad61498..0000000 --- a/projects/project-3/frontend/src/app/map/popup/popup.component.html +++ /dev/null @@ -1 +0,0 @@ -{{station.commonName}} diff --git a/projects/project-3/frontend/src/app/map/popup/popup.component.scss b/projects/project-3/frontend/src/app/map/popup/popup.component.scss deleted file mode 100644 index e69de29..0000000 diff --git a/projects/project-3/frontend/src/app/map/popup/popup.component.spec.ts b/projects/project-3/frontend/src/app/map/popup/popup.component.spec.ts deleted file mode 100644 index fb8e171..0000000 --- a/projects/project-3/frontend/src/app/map/popup/popup.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing'; - -import { PopupComponent } from './popup.component'; - -describe('PopupComponent', () => { - let component: PopupComponent; - let fixture: ComponentFixture; - - beforeEach(async () => { - await TestBed.configureTestingModule({ - declarations: [ PopupComponent ] - }) - .compileComponents(); - }); - - beforeEach(() => { - fixture = TestBed.createComponent(PopupComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/projects/project-3/frontend/src/app/map/popup/popup.component.ts b/projects/project-3/frontend/src/app/map/popup/popup.component.ts deleted file mode 100644 index e3f3a97..0000000 --- a/projects/project-3/frontend/src/app/map/popup/popup.component.ts +++ /dev/null @@ -1,23 +0,0 @@ -import {Component, OnInit} from '@angular/core'; -import {BikeStation, IBikeStation} from '../../service/domain/bike-station'; - -@Component({ - selector: 'app-popup', - templateUrl: './popup.component.html', - styleUrls: ['./popup.component.scss'] -}) -export class PopupComponent implements OnInit { - station: IBikeStation; - - constructor() { - } - - ngOnInit(): void { - } - - public bindStation(bikeStation: IBikeStation): void { - this.station = bikeStation; - console.log(this.station); - } - -} From 3eb35703708ef76fd81e8dd4f5ff7cef1c536c25 Mon Sep 17 00:00:00 2001 From: tim-herbst Date: Sun, 20 Dec 2020 17:24:43 +0100 Subject: [PATCH 016/104] dynamically load all markers from backend * make correct api-call (remove dummy url) * make correct method-invocation in mapcomponent * remove dummy-data * add domain-object for bikestation --- .../frontend/src/app/map/map.component.ts | 2 +- .../src/app/service/domain/bike-station.ts | 14 +++-- .../frontend/src/app/service/map.service.ts | 55 ++++++------------- .../frontend/src/environments/environment.ts | 2 +- 4 files changed, 27 insertions(+), 46 deletions(-) diff --git a/projects/project-3/frontend/src/app/map/map.component.ts b/projects/project-3/frontend/src/app/map/map.component.ts index 3cee918..852ea4c 100644 --- a/projects/project-3/frontend/src/app/map/map.component.ts +++ b/projects/project-3/frontend/src/app/map/map.component.ts @@ -14,7 +14,7 @@ export class MapComponent implements AfterViewInit { ngAfterViewInit(): void { this.service.initMap(); - this.service.makeStationsWithDummyData(); + this.service.makeStationMarkers(); } diff --git a/projects/project-3/frontend/src/app/service/domain/bike-station.ts b/projects/project-3/frontend/src/app/service/domain/bike-station.ts index e0d600f..aeab428 100644 --- a/projects/project-3/frontend/src/app/service/domain/bike-station.ts +++ b/projects/project-3/frontend/src/app/service/domain/bike-station.ts @@ -1,20 +1,24 @@ export interface IBikeStation { id?: string; - url?: string; commonName?: string; - placeType?: string; lat?: number; lon?: number; + status?: BikePointStatus; } export class BikeStation implements IBikeStation { constructor( public id?: string, - public url?: string, public commonName?: string, - public placeType?: string, public lat?: number, - public lon?: number + public lon?: number, + public status?: BikePointStatus ) { } } + +export class BikePointStatus { + NbBikes?: number; + NbEmptyDocks?: number; + NbDocks?: number; +} diff --git a/projects/project-3/frontend/src/app/service/map.service.ts b/projects/project-3/frontend/src/app/service/map.service.ts index be18a4e..7bc423d 100644 --- a/projects/project-3/frontend/src/app/service/map.service.ts +++ b/projects/project-3/frontend/src/app/service/map.service.ts @@ -3,26 +3,8 @@ import * as L from 'leaflet'; import 'leaflet.markercluster'; import {HttpClient} from '@angular/common/http'; import {environment} from '../../environments/environment'; -import {PopupComponent} from '../map/popup/popup.component'; +import {PopUpService} from './pop-up.service'; -const dummyData = [ - { - id: 'BikePoints_1', - url: '/Place/BikePoints_1', - commonName: 'River Street , Clerkenwell', - placeType: 'BikePoint', - lat: 51.529163, - lon: -0.10997 - }, - { - id: 'BikePoints_2', - url: '/Place/BikePoints_2', - commonName: 'Phillimore Gardens, Kensington', - placeType: 'BikePoint', - lat: 51.499606, - lon: -0.197574 - } -]; const createIcon = L.icon({ iconUrl: '../../assets/bike-point.png', @@ -37,11 +19,14 @@ const createIcon = L.icon({ export class MapService { private map; - constructor(private client: HttpClient) { + constructor( + private client: HttpClient, + private popUpService: PopUpService + ) { } public initMap(): void { - this.map = L.map('map').setView([51.509865, -0.118092], 13); + this.map = L.map('map').setView([51.509865, -0.118092], 14); this.map.addLayer(new L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { attribution: 'Map data OpenStreetMap contributors', minZoom: 0, @@ -49,32 +34,24 @@ export class MapService { })); } - public makeStationsWithDummyData(): void { - const markerClusters = L.markerClusterGroup({ - spiderflyOnMaxZoom: true, - showCoverageOnHover: true, - zoomToBoundsOnClick: true - }); - for (const station of dummyData) { - const marker = L.marker([station.lat, station.lon], {icon: createIcon}).bindPopup(new PopupComponent().bindStation(station)); - markerClusters.addLayer(marker); - } - this.map.addLayer(markerClusters); - } - public makeStationMarkers(): void { this.fetchStationGeoData().then((data) => { - for (const station of data.features) { - const lat = station.geometry.coordinates[0]; - const lon = station.geometry.coordinates[1]; - L.marker([lon, lat]).addTo(this.map); + const markerClusters = L.markerClusterGroup({ + spiderflyOnMaxZoom: true, + showCoverageOnHover: true, + zoomToBoundsOnClick: true + }); + for (const station of data) { + const marker = L.marker([station.lat, station.lon], {icon: createIcon}).bindPopup(this.popUpService.makeAvailabilityPopUp(station)); + markerClusters.addLayer(marker); } + this.map.addLayer(markerClusters); }).catch((error) => { console.log('something went wrong: ' + JSON.stringify(error)); }); } private async fetchStationGeoData(): Promise { - return await this.client.get(environment.apiUrl).toPromise(); + return await this.client.get(environment.apiUrl + 'latest/bikepoints/').toPromise(); } } diff --git a/projects/project-3/frontend/src/environments/environment.ts b/projects/project-3/frontend/src/environments/environment.ts index 161da85..8b0a1c5 100644 --- a/projects/project-3/frontend/src/environments/environment.ts +++ b/projects/project-3/frontend/src/environments/environment.ts @@ -4,7 +4,7 @@ export const environment = { production: false, - apiUrl: 'http://dummyUrl:1111' + apiUrl: 'http://localhost:8080/api/' }; /* From 6698381f85eed613115f7dada60bb990834bde10 Mon Sep 17 00:00:00 2001 From: tim-herbst Date: Sun, 20 Dec 2020 17:26:10 +0100 Subject: [PATCH 017/104] add popup-component and dashboard-component for futher implementation * add apex-chart dependency --- projects/project-3/frontend/package-lock.json | 92 ++++++++++++++ projects/project-3/frontend/package.json | 2 + .../frontend/src/app/app.component.html | 2 +- .../project-3/frontend/src/app/app.module.ts | 18 ++- .../app/dashboard/dashboard.component.html | 24 ++++ .../app/dashboard/dashboard.component.scss | 21 ++++ .../app/dashboard/dashboard.component.spec.ts | 40 ++++++ .../src/app/dashboard/dashboard.component.ts | 33 +++++ .../src/app/map/pop-up/pop-up.component.html | 2 + .../src/app/map/pop-up/pop-up.component.scss | 0 .../app/map/pop-up/pop-up.component.spec.ts | 25 ++++ .../src/app/map/pop-up/pop-up.component.ts | 25 ++++ .../src/app/service/pop-up.service.spec.ts | 16 +++ .../src/app/service/pop-up.service.ts | 114 ++++++++++++++++++ 14 files changed, 410 insertions(+), 4 deletions(-) create mode 100644 projects/project-3/frontend/src/app/dashboard/dashboard.component.html create mode 100644 projects/project-3/frontend/src/app/dashboard/dashboard.component.scss create mode 100644 projects/project-3/frontend/src/app/dashboard/dashboard.component.spec.ts create mode 100644 projects/project-3/frontend/src/app/dashboard/dashboard.component.ts create mode 100644 projects/project-3/frontend/src/app/map/pop-up/pop-up.component.html create mode 100644 projects/project-3/frontend/src/app/map/pop-up/pop-up.component.scss create mode 100644 projects/project-3/frontend/src/app/map/pop-up/pop-up.component.spec.ts create mode 100644 projects/project-3/frontend/src/app/map/pop-up/pop-up.component.ts create mode 100644 projects/project-3/frontend/src/app/service/pop-up.service.spec.ts create mode 100644 projects/project-3/frontend/src/app/service/pop-up.service.ts diff --git a/projects/project-3/frontend/package-lock.json b/projects/project-3/frontend/package-lock.json index 725a805..a0a1c6c 100644 --- a/projects/project-3/frontend/package-lock.json +++ b/projects/project-3/frontend/package-lock.json @@ -2145,6 +2145,19 @@ "picomatch": "^2.0.4" } }, + "apexcharts": { + "version": "3.23.0", + "resolved": "https://registry.npmjs.org/apexcharts/-/apexcharts-3.23.0.tgz", + "integrity": "sha512-1mV6qouuopvYR6UFSXi/Ge4jRMe//zyAN3aK05mAs4Iuet8mA0w31Q6OU6syD77bawt9p3YKNOmNF7OO2u9w0g==", + "requires": { + "svg.draggable.js": "^2.2.2", + "svg.easing.js": "^2.0.0", + "svg.filter.js": "^2.0.2", + "svg.pathmorphing.js": "^0.1.3", + "svg.resize.js": "^1.4.3", + "svg.select.js": "^3.0.1" + } + }, "app-root-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-3.0.0.tgz", @@ -7885,6 +7898,21 @@ "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", "dev": true }, + "ng-apexcharts": { + "version": "1.5.6", + "resolved": "https://registry.npmjs.org/ng-apexcharts/-/ng-apexcharts-1.5.6.tgz", + "integrity": "sha512-78vmZvrT9iqfZXE00+T8NTvR+EHV0wo4qqf0Zfu1/2KiwazCU9S5EROcmgqMQ1eCO7Sz4GiR19rLTMdtWL/WmQ==", + "requires": { + "tslib": "^1.10.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, "nice-try": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", @@ -11892,6 +11920,70 @@ "has-flag": "^3.0.0" } }, + "svg.draggable.js": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/svg.draggable.js/-/svg.draggable.js-2.2.2.tgz", + "integrity": "sha512-JzNHBc2fLQMzYCZ90KZHN2ohXL0BQJGQimK1kGk6AvSeibuKcIdDX9Kr0dT9+UJ5O8nYA0RB839Lhvk4CY4MZw==", + "requires": { + "svg.js": "^2.0.1" + } + }, + "svg.easing.js": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/svg.easing.js/-/svg.easing.js-2.0.0.tgz", + "integrity": "sha1-iqmUawqOJ4V6XEChDrpAkeVpHxI=", + "requires": { + "svg.js": ">=2.3.x" + } + }, + "svg.filter.js": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/svg.filter.js/-/svg.filter.js-2.0.2.tgz", + "integrity": "sha1-kQCOFROJ3ZIwd5/L5uLJo2LRwgM=", + "requires": { + "svg.js": "^2.2.5" + } + }, + "svg.js": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/svg.js/-/svg.js-2.7.1.tgz", + "integrity": "sha512-ycbxpizEQktk3FYvn/8BH+6/EuWXg7ZpQREJvgacqn46gIddG24tNNe4Son6omdXCnSOaApnpZw6MPCBA1dODA==" + }, + "svg.pathmorphing.js": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/svg.pathmorphing.js/-/svg.pathmorphing.js-0.1.3.tgz", + "integrity": "sha512-49HWI9X4XQR/JG1qXkSDV8xViuTLIWm/B/7YuQELV5KMOPtXjiwH4XPJvr/ghEDibmLQ9Oc22dpWpG0vUDDNww==", + "requires": { + "svg.js": "^2.4.0" + } + }, + "svg.resize.js": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/svg.resize.js/-/svg.resize.js-1.4.3.tgz", + "integrity": "sha512-9k5sXJuPKp+mVzXNvxz7U0uC9oVMQrrf7cFsETznzUDDm0x8+77dtZkWdMfRlmbkEEYvUn9btKuZ3n41oNA+uw==", + "requires": { + "svg.js": "^2.6.5", + "svg.select.js": "^2.1.2" + }, + "dependencies": { + "svg.select.js": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/svg.select.js/-/svg.select.js-2.1.2.tgz", + "integrity": "sha512-tH6ABEyJsAOVAhwcCjF8mw4crjXSI1aa7j2VQR8ZuJ37H2MBUbyeqYr5nEO7sSN3cy9AR9DUwNg0t/962HlDbQ==", + "requires": { + "svg.js": "^2.2.5" + } + } + } + }, + "svg.select.js": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/svg.select.js/-/svg.select.js-3.0.1.tgz", + "integrity": "sha512-h5IS/hKkuVCbKSieR9uQCj9w+zLHoPh+ce19bBYyqF53g6mnPB8sAtIbe1s9dh2S2fCmYX2xel1Ln3PJBbK4kw==", + "requires": { + "svg.js": "^2.6.5" + } + }, "svgo": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", diff --git a/projects/project-3/frontend/package.json b/projects/project-3/frontend/package.json index d88c95d..5a026d5 100644 --- a/projects/project-3/frontend/package.json +++ b/projects/project-3/frontend/package.json @@ -22,8 +22,10 @@ "@angular/platform-browser": "~10.2.0", "@angular/platform-browser-dynamic": "~10.2.0", "@angular/router": "~10.2.0", + "apexcharts": "^3.23.0", "leaflet": "^1.7.1", "leaflet.markercluster": "^1.4.1", + "ng-apexcharts": "^1.5.6", "rxjs": "~6.6.0", "tslib": "^2.0.0", "zone.js": "~0.10.2" diff --git a/projects/project-3/frontend/src/app/app.component.html b/projects/project-3/frontend/src/app/app.component.html index 8e220c2..0680b43 100644 --- a/projects/project-3/frontend/src/app/app.component.html +++ b/projects/project-3/frontend/src/app/app.component.html @@ -1 +1 @@ - + diff --git a/projects/project-3/frontend/src/app/app.module.ts b/projects/project-3/frontend/src/app/app.module.ts index 96b18e2..722b835 100644 --- a/projects/project-3/frontend/src/app/app.module.ts +++ b/projects/project-3/frontend/src/app/app.module.ts @@ -10,13 +10,20 @@ import {FlexLayoutModule} from '@angular/flex-layout'; import {MatIconModule} from '@angular/material/icon'; import {MatButtonModule} from '@angular/material/button'; import {HttpClientModule} from '@angular/common/http'; -import { PopupComponent } from './map/popup/popup.component'; +import {NgApexchartsModule} from 'ng-apexcharts'; +import {DashboardComponent} from './dashboard/dashboard.component'; +import {MatGridListModule} from '@angular/material/grid-list'; +import {MatCardModule} from '@angular/material/card'; +import {MatMenuModule} from '@angular/material/menu'; +import {LayoutModule} from '@angular/cdk/layout'; +import {PopUpComponent} from './map/pop-up/pop-up.component'; @NgModule({ declarations: [ AppComponent, MapComponent, - PopupComponent + DashboardComponent, + PopUpComponent ], imports: [ BrowserModule, @@ -26,7 +33,12 @@ import { PopupComponent } from './map/popup/popup.component'; MatIconModule, MatButtonModule, FlexLayoutModule, - HttpClientModule + HttpClientModule, + NgApexchartsModule, + MatGridListModule, + MatCardModule, + MatMenuModule, + LayoutModule ], providers: [], bootstrap: [AppComponent] diff --git a/projects/project-3/frontend/src/app/dashboard/dashboard.component.html b/projects/project-3/frontend/src/app/dashboard/dashboard.component.html new file mode 100644 index 0000000..df9e4bf --- /dev/null +++ b/projects/project-3/frontend/src/app/dashboard/dashboard.component.html @@ -0,0 +1,24 @@ +
+

Dashboard

+ + + + + + {{card.title}} + + + + + + + + +
Card Content Here
+
+
+
+
+
diff --git a/projects/project-3/frontend/src/app/dashboard/dashboard.component.scss b/projects/project-3/frontend/src/app/dashboard/dashboard.component.scss new file mode 100644 index 0000000..49a8146 --- /dev/null +++ b/projects/project-3/frontend/src/app/dashboard/dashboard.component.scss @@ -0,0 +1,21 @@ +.grid-container { + margin: 20px; +} + +.dashboard-card { + position: absolute; + top: 15px; + left: 15px; + right: 15px; + bottom: 15px; +} + +.more-button { + position: absolute; + top: 5px; + right: 10px; +} + +.dashboard-card-content { + text-align: center; +} diff --git a/projects/project-3/frontend/src/app/dashboard/dashboard.component.spec.ts b/projects/project-3/frontend/src/app/dashboard/dashboard.component.spec.ts new file mode 100644 index 0000000..980c24f --- /dev/null +++ b/projects/project-3/frontend/src/app/dashboard/dashboard.component.spec.ts @@ -0,0 +1,40 @@ +import { LayoutModule } from '@angular/cdk/layout'; +import { NoopAnimationsModule } from '@angular/platform-browser/animations'; +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; +import { MatButtonModule } from '@angular/material/button'; +import { MatCardModule } from '@angular/material/card'; +import { MatGridListModule } from '@angular/material/grid-list'; +import { MatIconModule } from '@angular/material/icon'; +import { MatMenuModule } from '@angular/material/menu'; + +import { DashboardComponent } from './dashboard.component'; + +describe('DashboardComponent', () => { + let component: DashboardComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [DashboardComponent], + imports: [ + NoopAnimationsModule, + LayoutModule, + MatButtonModule, + MatCardModule, + MatGridListModule, + MatIconModule, + MatMenuModule, + ] + }).compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(DashboardComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should compile', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts b/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts new file mode 100644 index 0000000..964d896 --- /dev/null +++ b/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts @@ -0,0 +1,33 @@ +import { Component } from '@angular/core'; +import { map } from 'rxjs/operators'; +import { Breakpoints, BreakpointObserver } from '@angular/cdk/layout'; + +@Component({ + selector: 'app-dashboard', + templateUrl: './dashboard.component.html', + styleUrls: ['./dashboard.component.scss'] +}) +export class DashboardComponent { + /** Based on the screen size, switch from standard to one column per row */ + cards = this.breakpointObserver.observe(Breakpoints.Handset).pipe( + map(({ matches }) => { + if (matches) { + return [ + { title: 'Card 1', cols: 1, rows: 1 }, + { title: 'Card 2', cols: 1, rows: 1 }, + { title: 'Card 3', cols: 1, rows: 1 }, + { title: 'Card 4', cols: 1, rows: 1 } + ]; + } + + return [ + { title: 'Card 1', cols: 2, rows: 1 }, + { title: 'Card 2', cols: 1, rows: 1 }, + { title: 'Card 3', cols: 1, rows: 2 }, + { title: 'Card 4', cols: 1, rows: 1 } + ]; + }) + ); + + constructor(private breakpointObserver: BreakpointObserver) {} +} diff --git a/projects/project-3/frontend/src/app/map/pop-up/pop-up.component.html b/projects/project-3/frontend/src/app/map/pop-up/pop-up.component.html new file mode 100644 index 0000000..abf4389 --- /dev/null +++ b/projects/project-3/frontend/src/app/map/pop-up/pop-up.component.html @@ -0,0 +1,2 @@ +

{{station.commonName}}


+ diff --git a/projects/project-3/frontend/src/app/map/pop-up/pop-up.component.scss b/projects/project-3/frontend/src/app/map/pop-up/pop-up.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/projects/project-3/frontend/src/app/map/pop-up/pop-up.component.spec.ts b/projects/project-3/frontend/src/app/map/pop-up/pop-up.component.spec.ts new file mode 100644 index 0000000..cd101cb --- /dev/null +++ b/projects/project-3/frontend/src/app/map/pop-up/pop-up.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { PopUpComponent } from './pop-up.component'; + +describe('PopUpComponent', () => { + let component: PopUpComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ PopUpComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(PopUpComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/projects/project-3/frontend/src/app/map/pop-up/pop-up.component.ts b/projects/project-3/frontend/src/app/map/pop-up/pop-up.component.ts new file mode 100644 index 0000000..b363980 --- /dev/null +++ b/projects/project-3/frontend/src/app/map/pop-up/pop-up.component.ts @@ -0,0 +1,25 @@ +import {Component, OnInit} from '@angular/core'; +import {IBikeStation} from '../../service/domain/bike-station'; +import {Router} from '@angular/router'; + +@Component({ + selector: 'app-pop-up', + templateUrl: './pop-up.component.html', + styleUrls: ['./pop-up.component.scss'] +}) +export class PopUpComponent implements OnInit { + text = 'test'; + station: IBikeStation; + + constructor(private router: Router) { + } + + ngOnInit(): void { + this.text = 'test'; + } + + public route(): void { + this.router.navigate(['/dashboard', this.station.id]); + } + +} diff --git a/projects/project-3/frontend/src/app/service/pop-up.service.spec.ts b/projects/project-3/frontend/src/app/service/pop-up.service.spec.ts new file mode 100644 index 0000000..efa3a6a --- /dev/null +++ b/projects/project-3/frontend/src/app/service/pop-up.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { PopUpService } from './pop-up.service'; + +describe('PopUpService', () => { + let service: PopUpService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(PopUpService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/projects/project-3/frontend/src/app/service/pop-up.service.ts b/projects/project-3/frontend/src/app/service/pop-up.service.ts new file mode 100644 index 0000000..0f41fd8 --- /dev/null +++ b/projects/project-3/frontend/src/app/service/pop-up.service.ts @@ -0,0 +1,114 @@ +import {ComponentFactoryResolver, Injectable, Injector} from '@angular/core'; +import {IBikeStation} from './domain/bike-station'; +import { + ApexAxisChartSeries, + ApexChart, + ApexDataLabels, + ApexFill, + ApexLegend, + ApexPlotOptions, + ApexStroke, + ApexTitleSubtitle, + ApexXAxis +} from 'ng-apexcharts'; +import {Router} from '@angular/router'; +import {PopUpComponent} from '../map/pop-up/pop-up.component'; + +export type ChartOptions = { + series: ApexAxisChartSeries; + chart: ApexChart; + dataLabels: ApexDataLabels; + plotOptions: ApexPlotOptions; + xaxis: ApexXAxis; + stroke: ApexStroke; + title: ApexTitleSubtitle; + fill: ApexFill; + legend: ApexLegend; +}; + +@Injectable({ + providedIn: 'root' +}) +export class PopUpService { + public chartOptions: Partial; + + constructor( + private router: Router, + private componentFactoryResolver: ComponentFactoryResolver, + private injector: Injector + ) { + } + + // + + makeAvailabilityPopUp(station: IBikeStation): any { + const factory = this.componentFactoryResolver.resolveComponentFactory(PopUpComponent); + const component = factory.create(this.injector); + + component.instance.station = station; + component.changeDetectorRef.detectChanges(); + + return component.location.nativeElement; + } + + route(station: IBikeStation): void { + this.router.navigate(['/dashboard', station.id]); + } + + bindChartOptionsToGivenStation(station: IBikeStation): void { + this.chartOptions = { + series: [ + { + name: 'wenig vorhanden', + data: [44, 55, 41, 37, 22, 43, 21] + }, + { + name: 'moderat voll', + data: [53, 32, 33, 52, 13, 43, 32] + }, + { + name: 'voll', + data: [12, 17, 11, 9, 15, 11, 20] + } + ], + chart: { + type: 'bar', + height: 350, + stacked: true, + stackType: '100%' + }, + plotOptions: { + bar: { + horizontal: true + } + }, + stroke: { + width: 1, + colors: ['#fff'] + }, + title: { + text: 'Availability of Station: ' + station.commonName + }, + xaxis: { + categories: [] + }, + fill: { + opacity: 1 + }, + legend: { + position: 'top', + horizontalAlign: 'left', + offsetX: 40 + } + }; + } +} From af540c5f0941cd839f3c5623a30723f4c63c15d7 Mon Sep 17 00:00:00 2001 From: tim-herbst Date: Sun, 20 Dec 2020 20:04:09 +0100 Subject: [PATCH 018/104] add chart to popUp-component * bindPopUp on Button-click * add url for prod-deployment --- .../src/app/map/pop-up/pop-up.component.html | 14 ++- .../src/app/map/pop-up/pop-up.component.scss | 11 +++ .../src/app/map/pop-up/pop-up.component.ts | 24 ++++- .../frontend/src/app/service/map.service.ts | 16 ++-- .../src/app/service/pop-up.service.ts | 89 ------------------- .../src/environments/environment.prod.ts | 3 +- 6 files changed, 58 insertions(+), 99 deletions(-) diff --git a/projects/project-3/frontend/src/app/map/pop-up/pop-up.component.html b/projects/project-3/frontend/src/app/map/pop-up/pop-up.component.html index abf4389..3b20d5a 100644 --- a/projects/project-3/frontend/src/app/map/pop-up/pop-up.component.html +++ b/projects/project-3/frontend/src/app/map/pop-up/pop-up.component.html @@ -1,2 +1,12 @@ -

{{station.commonName}}


- +{{station.commonName}}
+{{station.status.NbBikes}}
+{{station.status.NbDocks}}
+
+ +
+ diff --git a/projects/project-3/frontend/src/app/map/pop-up/pop-up.component.scss b/projects/project-3/frontend/src/app/map/pop-up/pop-up.component.scss index e69de29..583b745 100644 --- a/projects/project-3/frontend/src/app/map/pop-up/pop-up.component.scss +++ b/projects/project-3/frontend/src/app/map/pop-up/pop-up.component.scss @@ -0,0 +1,11 @@ +#route-button { + margin: 10px 0 0 0; + padding: 0; +} + +#chart { + padding: 0; + max-width: 400px; + max-height: 400px; + margin: 35px auto; +} diff --git a/projects/project-3/frontend/src/app/map/pop-up/pop-up.component.ts b/projects/project-3/frontend/src/app/map/pop-up/pop-up.component.ts index b363980..f4ddf59 100644 --- a/projects/project-3/frontend/src/app/map/pop-up/pop-up.component.ts +++ b/projects/project-3/frontend/src/app/map/pop-up/pop-up.component.ts @@ -2,24 +2,44 @@ import {Component, OnInit} from '@angular/core'; import {IBikeStation} from '../../service/domain/bike-station'; import {Router} from '@angular/router'; +import {ApexChart, ApexNonAxisChartSeries, ApexPlotOptions} from 'ng-apexcharts'; + +export type ChartOptions = { + series: ApexNonAxisChartSeries; + chart: ApexChart; + labels: string[]; + plotOptions: ApexPlotOptions; +}; + + @Component({ selector: 'app-pop-up', templateUrl: './pop-up.component.html', styleUrls: ['./pop-up.component.scss'] }) export class PopUpComponent implements OnInit { - text = 'test'; station: IBikeStation; + public chartOptions: Partial; constructor(private router: Router) { } ngOnInit(): void { - this.text = 'test'; + const bikes = Math.round((this.station.status.NbBikes / this.station.status.NbDocks) * 100); + this.chartOptions = { + series: [bikes], + chart: { + height: 300, + width: 300, + type: 'radialBar' + }, + labels: ['Availability'] + }; } public route(): void { this.router.navigate(['/dashboard', this.station.id]); } + } diff --git a/projects/project-3/frontend/src/app/service/map.service.ts b/projects/project-3/frontend/src/app/service/map.service.ts index 7bc423d..0875d75 100644 --- a/projects/project-3/frontend/src/app/service/map.service.ts +++ b/projects/project-3/frontend/src/app/service/map.service.ts @@ -10,7 +10,7 @@ const createIcon = L.icon({ iconUrl: '../../assets/bike-point.png', iconSize: [60, 60], iconAnchor: [30, 60], - popupAnchor: [0, -53] + popupAnchor: [-118, -53] }); @Injectable({ @@ -41,16 +41,22 @@ export class MapService { showCoverageOnHover: true, zoomToBoundsOnClick: true }); - for (const station of data) { - const marker = L.marker([station.lat, station.lon], {icon: createIcon}).bindPopup(this.popUpService.makeAvailabilityPopUp(station)); - markerClusters.addLayer(marker); - } this.map.addLayer(markerClusters); + for (const station of data) { + const marker = L.marker([station.lat, station.lon], {icon: createIcon}); + markerClusters.addLayer(marker); + marker.on('click', e => e.target + .bindPopup(this.popUpService.makeAvailabilityPopUp(station), {maxWidth: 'auto'}) + .openPopup() + ); + marker.on('popupclose', e => e.target.unbindPopup()); + } }).catch((error) => { console.log('something went wrong: ' + JSON.stringify(error)); }); } + private async fetchStationGeoData(): Promise { return await this.client.get(environment.apiUrl + 'latest/bikepoints/').toPromise(); } diff --git a/projects/project-3/frontend/src/app/service/pop-up.service.ts b/projects/project-3/frontend/src/app/service/pop-up.service.ts index 0f41fd8..4fc8984 100644 --- a/projects/project-3/frontend/src/app/service/pop-up.service.ts +++ b/projects/project-3/frontend/src/app/service/pop-up.service.ts @@ -1,55 +1,18 @@ import {ComponentFactoryResolver, Injectable, Injector} from '@angular/core'; import {IBikeStation} from './domain/bike-station'; -import { - ApexAxisChartSeries, - ApexChart, - ApexDataLabels, - ApexFill, - ApexLegend, - ApexPlotOptions, - ApexStroke, - ApexTitleSubtitle, - ApexXAxis -} from 'ng-apexcharts'; -import {Router} from '@angular/router'; import {PopUpComponent} from '../map/pop-up/pop-up.component'; -export type ChartOptions = { - series: ApexAxisChartSeries; - chart: ApexChart; - dataLabels: ApexDataLabels; - plotOptions: ApexPlotOptions; - xaxis: ApexXAxis; - stroke: ApexStroke; - title: ApexTitleSubtitle; - fill: ApexFill; - legend: ApexLegend; -}; - @Injectable({ providedIn: 'root' }) export class PopUpService { - public chartOptions: Partial; constructor( - private router: Router, private componentFactoryResolver: ComponentFactoryResolver, private injector: Injector ) { } - // - makeAvailabilityPopUp(station: IBikeStation): any { const factory = this.componentFactoryResolver.resolveComponentFactory(PopUpComponent); const component = factory.create(this.injector); @@ -59,56 +22,4 @@ export class PopUpService { return component.location.nativeElement; } - - route(station: IBikeStation): void { - this.router.navigate(['/dashboard', station.id]); - } - - bindChartOptionsToGivenStation(station: IBikeStation): void { - this.chartOptions = { - series: [ - { - name: 'wenig vorhanden', - data: [44, 55, 41, 37, 22, 43, 21] - }, - { - name: 'moderat voll', - data: [53, 32, 33, 52, 13, 43, 32] - }, - { - name: 'voll', - data: [12, 17, 11, 9, 15, 11, 20] - } - ], - chart: { - type: 'bar', - height: 350, - stacked: true, - stackType: '100%' - }, - plotOptions: { - bar: { - horizontal: true - } - }, - stroke: { - width: 1, - colors: ['#fff'] - }, - title: { - text: 'Availability of Station: ' + station.commonName - }, - xaxis: { - categories: [] - }, - fill: { - opacity: 1 - }, - legend: { - position: 'top', - horizontalAlign: 'left', - offsetX: 40 - } - }; - } } diff --git a/projects/project-3/frontend/src/environments/environment.prod.ts b/projects/project-3/frontend/src/environments/environment.prod.ts index 3612073..e82d631 100644 --- a/projects/project-3/frontend/src/environments/environment.prod.ts +++ b/projects/project-3/frontend/src/environments/environment.prod.ts @@ -1,3 +1,4 @@ export const environment = { - production: true + production: true, + apiUrl: 'https://it-schwarz.net/api/' }; From 1e755566e3483861867f861df2918c16929f050e Mon Sep 17 00:00:00 2001 From: Tim Herbst Date: Tue, 22 Dec 2020 07:54:13 +0100 Subject: [PATCH 019/104] add dependencies for sidenav and datepicker --- projects/project-3/frontend/package-lock.json | 10 ++++++++++ projects/project-3/frontend/package.json | 2 ++ projects/project-3/frontend/src/app/app.module.ts | 8 +++++++- .../domain/{bike-station.ts => map-bike-point.ts} | 0 4 files changed, 19 insertions(+), 1 deletion(-) rename projects/project-3/frontend/src/app/service/domain/{bike-station.ts => map-bike-point.ts} (100%) diff --git a/projects/project-3/frontend/package-lock.json b/projects/project-3/frontend/package-lock.json index a0a1c6c..ccd339e 100644 --- a/projects/project-3/frontend/package-lock.json +++ b/projects/project-3/frontend/package-lock.json @@ -2687,6 +2687,11 @@ "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", "dev": true }, + "bootstrap": { + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.5.3.tgz", + "integrity": "sha512-o9ppKQioXGqhw8Z7mah6KdTYpNQY//tipnkxppWhPbiSWdD+1raYsnhwEZjkTHYbGee4cVQ0Rx65EhOY/HNLcQ==" + }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -6724,6 +6729,11 @@ } } }, + "jquery": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.5.1.tgz", + "integrity": "sha512-XwIBPqcMn57FxfT+Go5pzySnm4KWkT1Tv7gjrpT1srtf8Weynl6R273VJ5GjkRb51IzMp5nbaPjJXMWeju2MKg==" + }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", diff --git a/projects/project-3/frontend/package.json b/projects/project-3/frontend/package.json index 5a026d5..0e4b6a6 100644 --- a/projects/project-3/frontend/package.json +++ b/projects/project-3/frontend/package.json @@ -23,6 +23,8 @@ "@angular/platform-browser-dynamic": "~10.2.0", "@angular/router": "~10.2.0", "apexcharts": "^3.23.0", + "bootstrap": "^4.5.3", + "jquery": "^3.5.1", "leaflet": "^1.7.1", "leaflet.markercluster": "^1.4.1", "ng-apexcharts": "^1.5.6", diff --git a/projects/project-3/frontend/src/app/app.module.ts b/projects/project-3/frontend/src/app/app.module.ts index 722b835..ae285ad 100644 --- a/projects/project-3/frontend/src/app/app.module.ts +++ b/projects/project-3/frontend/src/app/app.module.ts @@ -17,6 +17,9 @@ import {MatCardModule} from '@angular/material/card'; import {MatMenuModule} from '@angular/material/menu'; import {LayoutModule} from '@angular/cdk/layout'; import {PopUpComponent} from './map/pop-up/pop-up.component'; +import {MatSidenavModule} from '@angular/material/sidenav'; +import {MatDatepickerModule} from '@angular/material/datepicker'; +import {MatFormFieldModule} from '@angular/material/form-field'; @NgModule({ declarations: [ @@ -38,7 +41,10 @@ import {PopUpComponent} from './map/pop-up/pop-up.component'; MatGridListModule, MatCardModule, MatMenuModule, - LayoutModule + LayoutModule, + MatSidenavModule, + MatDatepickerModule, + MatFormFieldModule ], providers: [], bootstrap: [AppComponent] diff --git a/projects/project-3/frontend/src/app/service/domain/bike-station.ts b/projects/project-3/frontend/src/app/service/domain/map-bike-point.ts similarity index 100% rename from projects/project-3/frontend/src/app/service/domain/bike-station.ts rename to projects/project-3/frontend/src/app/service/domain/map-bike-point.ts From 7c1612f8da8513ed349412f0f6c1c20f552447d4 Mon Sep 17 00:00:00 2001 From: Tim Herbst Date: Tue, 22 Dec 2020 07:55:07 +0100 Subject: [PATCH 020/104] rename DO to MapBikePoint for introduction of dashboard-common-station --- .../domain/dashboard-common-bike-point.ts | 20 +++++++++++++++++++ .../src/app/service/domain/map-bike-point.ts | 4 ++-- 2 files changed, 22 insertions(+), 2 deletions(-) create mode 100644 projects/project-3/frontend/src/app/service/domain/dashboard-common-bike-point.ts diff --git a/projects/project-3/frontend/src/app/service/domain/dashboard-common-bike-point.ts b/projects/project-3/frontend/src/app/service/domain/dashboard-common-bike-point.ts new file mode 100644 index 0000000..b47a0bb --- /dev/null +++ b/projects/project-3/frontend/src/app/service/domain/dashboard-common-bike-point.ts @@ -0,0 +1,20 @@ +export interface IDashboardCommonBikePoint { + id?: string; + commonName?: string; + lat?: number; + lon?: number; + maxEndDate?: string; + maxStartDate?: string; +} + +export class DashboardCommonBikePoint implements IDashboardCommonBikePoint { + constructor( + public id?: string, + public commonName?: string, + public lat?: number, + public lon?: number, + public maxEndDate?: string, + public maxStartDate?: string + ) { + } +} diff --git a/projects/project-3/frontend/src/app/service/domain/map-bike-point.ts b/projects/project-3/frontend/src/app/service/domain/map-bike-point.ts index aeab428..67a75aa 100644 --- a/projects/project-3/frontend/src/app/service/domain/map-bike-point.ts +++ b/projects/project-3/frontend/src/app/service/domain/map-bike-point.ts @@ -1,4 +1,4 @@ -export interface IBikeStation { +export interface IMapBikePoint { id?: string; commonName?: string; lat?: number; @@ -6,7 +6,7 @@ export interface IBikeStation { status?: BikePointStatus; } -export class BikeStation implements IBikeStation { +export class MapBikePoint implements IMapBikePoint { constructor( public id?: string, public commonName?: string, From 281fb3ae40023a132d7a5b051a58fb8e1ceaf49b Mon Sep 17 00:00:00 2001 From: Tim Herbst Date: Tue, 22 Dec 2020 07:55:20 +0100 Subject: [PATCH 021/104] add dashboard service --- .../src/app/service/dashboard.service.spec.ts | 16 +++++++++++ .../src/app/service/dashboard.service.ts | 27 +++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 projects/project-3/frontend/src/app/service/dashboard.service.spec.ts create mode 100644 projects/project-3/frontend/src/app/service/dashboard.service.ts diff --git a/projects/project-3/frontend/src/app/service/dashboard.service.spec.ts b/projects/project-3/frontend/src/app/service/dashboard.service.spec.ts new file mode 100644 index 0000000..79e72a6 --- /dev/null +++ b/projects/project-3/frontend/src/app/service/dashboard.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { DashboardService } from './dashboard.service'; + +describe('DashboardService', () => { + let service: DashboardService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(DashboardService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/projects/project-3/frontend/src/app/service/dashboard.service.ts b/projects/project-3/frontend/src/app/service/dashboard.service.ts new file mode 100644 index 0000000..23f83ac --- /dev/null +++ b/projects/project-3/frontend/src/app/service/dashboard.service.ts @@ -0,0 +1,27 @@ +import {Injectable} from '@angular/core'; +import {IDashboardCommonBikePoint} from './domain/dashboard-common-bike-point'; +import {HttpClient} from '@angular/common/http'; +import {environment} from '../../environments/environment'; + +@Injectable({ + providedIn: 'root' +}) +export class DashboardService { + public station: IDashboardCommonBikePoint; + + constructor(private client: HttpClient) { + } + + setBikeStation(id: string): void { + this.initialDashboardStationFetch(id).then((data) => { + this.station = data; + console.log(this.station); + }).catch((error) => { + console.log('something went wrong: ' + JSON.stringify(error)); + }); + } + + private async initialDashboardStationFetch(id: string): Promise { + return await this.client.get(environment.apiUrl + 'latest/dashboard/' + id + '/').toPromise(); + } +} From 6581b621fe2e9336b766954787f7be29a2f8fcb4 Mon Sep 17 00:00:00 2001 From: Tim Herbst Date: Tue, 22 Dec 2020 07:55:54 +0100 Subject: [PATCH 022/104] change api-url to it-schwarz due to local-errors --- .../project-3/frontend/src/app/map/pop-up/pop-up.component.ts | 4 ++-- projects/project-3/frontend/src/app/service/pop-up.service.ts | 4 ++-- projects/project-3/frontend/src/environments/environment.ts | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/projects/project-3/frontend/src/app/map/pop-up/pop-up.component.ts b/projects/project-3/frontend/src/app/map/pop-up/pop-up.component.ts index f4ddf59..371813b 100644 --- a/projects/project-3/frontend/src/app/map/pop-up/pop-up.component.ts +++ b/projects/project-3/frontend/src/app/map/pop-up/pop-up.component.ts @@ -1,5 +1,5 @@ import {Component, OnInit} from '@angular/core'; -import {IBikeStation} from '../../service/domain/bike-station'; +import {IMapBikePoint} from '../../service/domain/map-bike-point'; import {Router} from '@angular/router'; import {ApexChart, ApexNonAxisChartSeries, ApexPlotOptions} from 'ng-apexcharts'; @@ -18,7 +18,7 @@ export type ChartOptions = { styleUrls: ['./pop-up.component.scss'] }) export class PopUpComponent implements OnInit { - station: IBikeStation; + station: IMapBikePoint; public chartOptions: Partial; constructor(private router: Router) { diff --git a/projects/project-3/frontend/src/app/service/pop-up.service.ts b/projects/project-3/frontend/src/app/service/pop-up.service.ts index 4fc8984..9ff3161 100644 --- a/projects/project-3/frontend/src/app/service/pop-up.service.ts +++ b/projects/project-3/frontend/src/app/service/pop-up.service.ts @@ -1,5 +1,5 @@ import {ComponentFactoryResolver, Injectable, Injector} from '@angular/core'; -import {IBikeStation} from './domain/bike-station'; +import {IMapBikePoint} from './domain/map-bike-point'; import {PopUpComponent} from '../map/pop-up/pop-up.component'; @Injectable({ @@ -13,7 +13,7 @@ export class PopUpService { ) { } - makeAvailabilityPopUp(station: IBikeStation): any { + makeAvailabilityPopUp(station: IMapBikePoint): any { const factory = this.componentFactoryResolver.resolveComponentFactory(PopUpComponent); const component = factory.create(this.injector); diff --git a/projects/project-3/frontend/src/environments/environment.ts b/projects/project-3/frontend/src/environments/environment.ts index 8b0a1c5..b0c73a0 100644 --- a/projects/project-3/frontend/src/environments/environment.ts +++ b/projects/project-3/frontend/src/environments/environment.ts @@ -4,7 +4,7 @@ export const environment = { production: false, - apiUrl: 'http://localhost:8080/api/' + apiUrl: 'https://it-schwarz.net/api/' }; /* From b3d6ee847352ee32e4bdb5150a739b172431e931 Mon Sep 17 00:00:00 2001 From: Tim Herbst Date: Tue, 22 Dec 2020 07:56:39 +0100 Subject: [PATCH 023/104] start implementation of dashboard-component --- .../app/dashboard/dashboard.component.html | 43 +++++++++---------- .../app/dashboard/dashboard.component.scss | 32 +++++++------- .../src/app/dashboard/dashboard.component.ts | 38 ++++++---------- 3 files changed, 50 insertions(+), 63 deletions(-) diff --git a/projects/project-3/frontend/src/app/dashboard/dashboard.component.html b/projects/project-3/frontend/src/app/dashboard/dashboard.component.html index df9e4bf..8ba2c4c 100644 --- a/projects/project-3/frontend/src/app/dashboard/dashboard.component.html +++ b/projects/project-3/frontend/src/app/dashboard/dashboard.component.html @@ -1,24 +1,21 @@ -
-

Dashboard

- - - - - - {{card.title}} - - - - - - - - -
Card Content Here
-
-
-
-
+ + Bike Stations in London + + + library_books + Wiki + +
+ +
Main
+ + Choose a date + + + + +
+ diff --git a/projects/project-3/frontend/src/app/dashboard/dashboard.component.scss b/projects/project-3/frontend/src/app/dashboard/dashboard.component.scss index 49a8146..b46a059 100644 --- a/projects/project-3/frontend/src/app/dashboard/dashboard.component.scss +++ b/projects/project-3/frontend/src/app/dashboard/dashboard.component.scss @@ -1,21 +1,21 @@ -.grid-container { - margin: 20px; + + +.sidenav-container { + height: 100%; + width: 10vw; + position: fixed; + top: auto; + left: 0; + .sidenav { + background-color: gray; + height: 100%; + } } -.dashboard-card { - position: absolute; - top: 15px; - left: 15px; - right: 15px; - bottom: 15px; +.toolbar-spacer { + flex: 1 1 auto; } -.more-button { - position: absolute; - top: 5px; - right: 10px; -} - -.dashboard-card-content { - text-align: center; +.mat-toolbar { + top: 0; } diff --git a/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts b/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts index 964d896..1f768fb 100644 --- a/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts +++ b/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts @@ -1,33 +1,23 @@ -import { Component } from '@angular/core'; -import { map } from 'rxjs/operators'; -import { Breakpoints, BreakpointObserver } from '@angular/cdk/layout'; +import {Component, OnInit} from '@angular/core'; +import {ActivatedRoute} from '@angular/router'; +import {DashboardService} from '../service/dashboard.service'; @Component({ selector: 'app-dashboard', templateUrl: './dashboard.component.html', styleUrls: ['./dashboard.component.scss'] }) -export class DashboardComponent { - /** Based on the screen size, switch from standard to one column per row */ - cards = this.breakpointObserver.observe(Breakpoints.Handset).pipe( - map(({ matches }) => { - if (matches) { - return [ - { title: 'Card 1', cols: 1, rows: 1 }, - { title: 'Card 2', cols: 1, rows: 1 }, - { title: 'Card 3', cols: 1, rows: 1 }, - { title: 'Card 4', cols: 1, rows: 1 } - ]; - } +export class DashboardComponent implements OnInit { + + constructor( + private route: ActivatedRoute, + public service: DashboardService + ) { + } + + ngOnInit(): void { + this.service.setBikeStation(this.route.snapshot.paramMap.get('id')); + } - return [ - { title: 'Card 1', cols: 2, rows: 1 }, - { title: 'Card 2', cols: 1, rows: 1 }, - { title: 'Card 3', cols: 1, rows: 2 }, - { title: 'Card 4', cols: 1, rows: 1 } - ]; - }) - ); - constructor(private breakpointObserver: BreakpointObserver) {} } From b51e533834fe22c9b0fab999c75f632471cf0c85 Mon Sep 17 00:00:00 2001 From: Tim Herbst Date: Tue, 22 Dec 2020 16:08:00 +0100 Subject: [PATCH 024/104] add necessary imports and adjust overall theme style --- projects/project-3/frontend/src/app/app.module.ts | 9 ++++++++- projects/project-3/frontend/src/styles.scss | 1 + 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/projects/project-3/frontend/src/app/app.module.ts b/projects/project-3/frontend/src/app/app.module.ts index ae285ad..39ea42b 100644 --- a/projects/project-3/frontend/src/app/app.module.ts +++ b/projects/project-3/frontend/src/app/app.module.ts @@ -20,6 +20,9 @@ import {PopUpComponent} from './map/pop-up/pop-up.component'; import {MatSidenavModule} from '@angular/material/sidenav'; import {MatDatepickerModule} from '@angular/material/datepicker'; import {MatFormFieldModule} from '@angular/material/form-field'; +import {MatNativeDateModule} from '@angular/material/core'; +import {FormsModule, ReactiveFormsModule} from '@angular/forms'; +import {MatInputModule} from '@angular/material/input'; @NgModule({ declarations: [ @@ -44,7 +47,11 @@ import {MatFormFieldModule} from '@angular/material/form-field'; LayoutModule, MatSidenavModule, MatDatepickerModule, - MatFormFieldModule + MatFormFieldModule, + MatNativeDateModule, + FormsModule, + ReactiveFormsModule, + MatInputModule ], providers: [], bootstrap: [AppComponent] diff --git a/projects/project-3/frontend/src/styles.scss b/projects/project-3/frontend/src/styles.scss index d528429..de7754d 100644 --- a/projects/project-3/frontend/src/styles.scss +++ b/projects/project-3/frontend/src/styles.scss @@ -7,6 +7,7 @@ body { font-family: Roboto, "Helvetica Neue", sans-serif; } +@import '@angular/material/prebuilt-themes/deeppurple-amber.css'; @import "~leaflet/dist/leaflet.css"; @import "~leaflet.markercluster/dist/MarkerCluster.css"; @import "~leaflet.markercluster/dist/MarkerCluster.Default.css"; From bcdd859be948fcb2ef7177db443340171e19f9be Mon Sep 17 00:00:00 2001 From: Tim Herbst Date: Tue, 22 Dec 2020 16:09:26 +0100 Subject: [PATCH 025/104] adjust api invocation order to eliminate race-condition and easier access to necessary objects * add start-Datepicker * add end-Datepicker * toggle-Sidenav --- .../app/dashboard/dashboard.component.html | 43 ++++++++++++++----- .../app/dashboard/dashboard.component.scss | 43 ++++++++++++------- .../src/app/dashboard/dashboard.component.ts | 24 ++++++++++- .../src/app/service/dashboard.service.ts | 13 +----- 4 files changed, 83 insertions(+), 40 deletions(-) diff --git a/projects/project-3/frontend/src/app/dashboard/dashboard.component.html b/projects/project-3/frontend/src/app/dashboard/dashboard.component.html index 8ba2c4c..11d764e 100644 --- a/projects/project-3/frontend/src/app/dashboard/dashboard.component.html +++ b/projects/project-3/frontend/src/app/dashboard/dashboard.component.html @@ -1,4 +1,9 @@ - + + + Bike Stations in London library_books Wiki + + map + back to map -
- -
Main
- - Choose a date - - + + + + Start der Zeitmessung + + - -
- + + Ende der Zeitmessung + + + + + + +
+ test +
+
+ diff --git a/projects/project-3/frontend/src/app/dashboard/dashboard.component.scss b/projects/project-3/frontend/src/app/dashboard/dashboard.component.scss index b46a059..11259ca 100644 --- a/projects/project-3/frontend/src/app/dashboard/dashboard.component.scss +++ b/projects/project-3/frontend/src/app/dashboard/dashboard.component.scss @@ -1,21 +1,32 @@ - - -.sidenav-container { - height: 100%; - width: 10vw; - position: fixed; - top: auto; - left: 0; - .sidenav { - background-color: gray; - height: 100%; - } -} - .toolbar-spacer { flex: 1 1 auto; } -.mat-toolbar { - top: 0; +.sidenav { + height: 100vh; + width: 20vw; + min-width: 20em; +} + +mat-sidenav-container, mat-sidenav-content, mat-sidenav { + height: 100vh; +} + +.main-area { +} + +.button-back:hover { + background: #5a34a0; +} + +.button-wiki:hover { + background: #5a34a0; +} + +.datepicker-start { + margin-top: 50px; +} + +.datepicker-end { + margin-top: 20px; } diff --git a/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts b/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts index 1f768fb..23d7532 100644 --- a/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts +++ b/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts @@ -1,6 +1,8 @@ import {Component, OnInit} from '@angular/core'; import {ActivatedRoute} from '@angular/router'; import {DashboardService} from '../service/dashboard.service'; +import {IDashboardCommonBikePoint} from '../service/domain/dashboard-common-bike-point'; +import {MatDatepickerInputEvent} from '@angular/material/datepicker'; @Component({ selector: 'app-dashboard', @@ -8,6 +10,12 @@ import {DashboardService} from '../service/dashboard.service'; styleUrls: ['./dashboard.component.scss'] }) export class DashboardComponent implements OnInit { + station: IDashboardCommonBikePoint; + maxStartDate: Date; + maxEndDate: Date; + actualStartDate: Date; + actualEndDate: Date; + constructor( private route: ActivatedRoute, @@ -16,8 +24,22 @@ export class DashboardComponent implements OnInit { } ngOnInit(): void { - this.service.setBikeStation(this.route.snapshot.paramMap.get('id')); + this.service.initialDashboardStationFetch(this.route.snapshot.paramMap.get('id')).then(data => { + this.station = data; + this.maxStartDate = new Date(data.maxStartDate); + this.maxEndDate = new Date(data.maxEndDate); + console.log(data); + }); } + addStartDate(type: string, event: MatDatepickerInputEvent): void { + this.actualStartDate = event.value; + console.log(this.actualStartDate); + } + + addEndDate(type: string, event: MatDatepickerInputEvent): void { + this.actualEndDate = event.value; + console.log(this.actualEndDate); + } } diff --git a/projects/project-3/frontend/src/app/service/dashboard.service.ts b/projects/project-3/frontend/src/app/service/dashboard.service.ts index 23f83ac..3961f0b 100644 --- a/projects/project-3/frontend/src/app/service/dashboard.service.ts +++ b/projects/project-3/frontend/src/app/service/dashboard.service.ts @@ -1,5 +1,4 @@ import {Injectable} from '@angular/core'; -import {IDashboardCommonBikePoint} from './domain/dashboard-common-bike-point'; import {HttpClient} from '@angular/common/http'; import {environment} from '../../environments/environment'; @@ -7,21 +6,11 @@ import {environment} from '../../environments/environment'; providedIn: 'root' }) export class DashboardService { - public station: IDashboardCommonBikePoint; constructor(private client: HttpClient) { } - setBikeStation(id: string): void { - this.initialDashboardStationFetch(id).then((data) => { - this.station = data; - console.log(this.station); - }).catch((error) => { - console.log('something went wrong: ' + JSON.stringify(error)); - }); - } - - private async initialDashboardStationFetch(id: string): Promise { + public async initialDashboardStationFetch(id: string): Promise { return await this.client.get(environment.apiUrl + 'latest/dashboard/' + id + '/').toPromise(); } } From 8dd31f37036eea6e43df77d38efe59be5ca6b599 Mon Sep 17 00:00:00 2001 From: Tim Herbst Date: Tue, 22 Dec 2020 17:05:23 +0100 Subject: [PATCH 026/104] add dashboard-station-to object to fill first table * add flexLayout to display columns --- .../project-3/frontend/src/app/app.module.ts | 4 +- .../app/dashboard/dashboard.component.html | 50 ++++++++++++++++++- .../app/dashboard/dashboard.component.scss | 44 ++++++++++++++-- .../service/domain/dashboard-station-to.ts | 16 ++++++ 4 files changed, 107 insertions(+), 7 deletions(-) create mode 100644 projects/project-3/frontend/src/app/service/domain/dashboard-station-to.ts diff --git a/projects/project-3/frontend/src/app/app.module.ts b/projects/project-3/frontend/src/app/app.module.ts index 39ea42b..a00ca57 100644 --- a/projects/project-3/frontend/src/app/app.module.ts +++ b/projects/project-3/frontend/src/app/app.module.ts @@ -23,6 +23,7 @@ import {MatFormFieldModule} from '@angular/material/form-field'; import {MatNativeDateModule} from '@angular/material/core'; import {FormsModule, ReactiveFormsModule} from '@angular/forms'; import {MatInputModule} from '@angular/material/input'; +import {MatTableModule} from '@angular/material/table'; @NgModule({ declarations: [ @@ -51,7 +52,8 @@ import {MatInputModule} from '@angular/material/input'; MatNativeDateModule, FormsModule, ReactiveFormsModule, - MatInputModule + MatInputModule, + MatTableModule ], providers: [], bootstrap: [AppComponent] diff --git a/projects/project-3/frontend/src/app/dashboard/dashboard.component.html b/projects/project-3/frontend/src/app/dashboard/dashboard.component.html index 11d764e..ca18030 100644 --- a/projects/project-3/frontend/src/app/dashboard/dashboard.component.html +++ b/projects/project-3/frontend/src/app/dashboard/dashboard.component.html @@ -35,8 +35,54 @@ -
- test +
+
+ +
+
+ dashboard-table-from +
+
+ mini-map +
+
+
+
+ dashboard-chart-borrow-duration +
+
+
+
+ dashboard-chart-borrow-time +
diff --git a/projects/project-3/frontend/src/app/dashboard/dashboard.component.scss b/projects/project-3/frontend/src/app/dashboard/dashboard.component.scss index 11259ca..6942257 100644 --- a/projects/project-3/frontend/src/app/dashboard/dashboard.component.scss +++ b/projects/project-3/frontend/src/app/dashboard/dashboard.component.scss @@ -4,7 +4,7 @@ .sidenav { height: 100vh; - width: 20vw; + width: 15vw; min-width: 20em; } @@ -12,9 +12,6 @@ mat-sidenav-container, mat-sidenav-content, mat-sidenav { height: 100vh; } -.main-area { -} - .button-back:hover { background: #5a34a0; } @@ -24,9 +21,48 @@ mat-sidenav-container, mat-sidenav-content, mat-sidenav { } .datepicker-start { + margin: 5px; margin-top: 50px; } .datepicker-end { + margin: 5px; margin-top: 20px; } + +.container-top { + height: 30vh; +} + +.container-middle { + height: 30vh +} + +.container-bottom { + height: 30vh +} + +.dashboard-table-to { + margin: 5px; + background: gray; +} + +.dashboard-table-from { + margin: 5px; + background: aquamarine; +} + +.mini-map { + margin: 5px; + background: blueviolet; +} + +.dashboard-chart-borrow-duration { + margin: 5px; + background: blue; +} + +.dashboard-chart-borrow-time { + margin: 5px; + background: chartreuse; +} diff --git a/projects/project-3/frontend/src/app/service/domain/dashboard-station-to.ts b/projects/project-3/frontend/src/app/service/domain/dashboard-station-to.ts new file mode 100644 index 0000000..ac38740 --- /dev/null +++ b/projects/project-3/frontend/src/app/service/domain/dashboard-station-to.ts @@ -0,0 +1,16 @@ +export interface IDashboardStationTo { + startStationName?: string; + endStationName?: string; + stationNumber?: number; + avgDuration?: number; +} + +export class DashboardStationTo implements IDashboardStationTo { + constructor( + public startStationName?: string, + public endStationName?: string, + public stationNumber?: number, + public avgDuration?: number + ) { + } +} From 678272ef8a38eba128526bfa397da7caebd84466 Mon Sep 17 00:00:00 2001 From: Tim Herbst Date: Tue, 22 Dec 2020 22:49:26 +0100 Subject: [PATCH 027/104] working on dashboard * borrow-duration is fix * to and from is fix * map-load with marker is fix missing: dashboard-chart-borrow-time --- .../app/dashboard/dashboard.component.html | 113 +++++++--- .../app/dashboard/dashboard.component.scss | 22 +- .../src/app/dashboard/dashboard.component.ts | 199 ++++++++++++++++-- .../frontend/src/app/map/map.component.ts | 4 +- .../src/app/service/dashboard.service.ts | 16 +- .../service/domain/dashboard-station-to.ts | 16 -- .../frontend/src/app/service/map.service.ts | 14 +- 7 files changed, 308 insertions(+), 76 deletions(-) delete mode 100644 projects/project-3/frontend/src/app/service/domain/dashboard-station-to.ts diff --git a/projects/project-3/frontend/src/app/dashboard/dashboard.component.html b/projects/project-3/frontend/src/app/dashboard/dashboard.component.html index ca18030..0146f69 100644 --- a/projects/project-3/frontend/src/app/dashboard/dashboard.component.html +++ b/projects/project-3/frontend/src/app/dashboard/dashboard.component.html @@ -18,23 +18,40 @@ - - Start der Zeitmessung - - - - - - Ende der Zeitmessung - - - - +
+ + Enter a range + + + + + + + +
+
+ +
+
+
+
+
+
+
+
+ + + + + + + + + + + + + + + + + +
station of lend destination {{element.endStationName}} number of drives {{element.number}} average Lend duration {{element.avgDuration}}
- dashboard-table-from -
-
- mini-map + + + + + + + + + + + + + + + + + + +
station of lend origin {{element.startStationName}} number of drives {{element.number}} average lend duration {{element.avgDuration}}
+
- dashboard-chart-borrow-duration +
+ +
; + displayedColumnsTo: string[] = ['endStationName', 'number', 'avgDuration']; + displayedColumnsFrom: string[] = ['startStationName', 'number', 'avgDuration']; + stationToSource = new MatTableDataSource(); + stationFromSource = new MatTableDataSource(); + + station: IDashboardCommonBikePoint; maxStartDate: Date; maxEndDate: Date; actualStartDate: Date; actualEndDate: Date; + form: FormGroup; constructor( private route: ActivatedRoute, - public service: DashboardService + private service: DashboardService, + private map: MapService, + private changeDetectorRefs: ChangeDetectorRef, + private fb: FormBuilder ) { + this.durationChartOptions = { + series: [], + chart: { + type: 'bar' + }, + dataLabels: { + enabled: false + }, + noData: { + text: 'Loading...' + } + }; } ngOnInit(): void { - this.service.initialDashboardStationFetch(this.route.snapshot.paramMap.get('id')).then(data => { + this.service.fetch_dashboard_init(this.route.snapshot.paramMap.get('id')).then(data => { this.station = data; this.maxStartDate = new Date(data.maxStartDate); this.maxEndDate = new Date(data.maxEndDate); - console.log(data); + this.init_dashboard(); + }); + + this.form = this.fb.group({ + daterange: new FormGroup({ + start: new FormControl(), + end: new FormControl() + }) }); } - addStartDate(type: string, event: MatDatepickerInputEvent): void { - this.actualStartDate = event.value; - console.log(this.actualStartDate); + init_dashboard(): void { + const initDate = this.maxEndDate.toISOString().substring(0, 10); + this.service.fetch_dashboard_station_to(this.station.id, initDate, initDate).then((source) => { + this.stationToSource = source; + this.changeDetectorRefs.detectChanges(); + }); + this.service.fetch_dashboard_station_from(this.station.id, initDate, initDate).then((source) => { + this.stationFromSource = source; + this.changeDetectorRefs.detectChanges(); + }); + this.service.fetch_dashboard_station_duration(this.station.id, initDate, initDate).then((source) => { + const numbers = []; + const minutesGroup = []; + source.forEach(value => { + numbers.push(value.number); + minutesGroup.push(value.minutesGroup); + }); + + this.durationChartOptions = { + series: [ + { + name: 'borrow-duration', + data: [...numbers] + } + ], + chart: { + type: 'bar', + height: 450 + }, + plotOptions: { + bar: { + horizontal: false, + columnWidth: '55%', + endingShape: 'rounded' + } + }, + dataLabels: { + enabled: false + }, + stroke: { + show: true, + width: 2, + colors: ['transparent'] + }, + xaxis: { + categories: [...minutesGroup] + }, + yaxis: { + title: { + text: 'minutes' + } + }, + fill: { + opacity: 1 + } + }; + }); + this.map.init_map(this.station.lat, this.station.lon, 17); + this.map.draw_dashboard_station_marker(this.station.lat, this.station.lon); } - addEndDate(type: string, event: MatDatepickerInputEvent): void { - this.actualEndDate = event.value; - console.log(this.actualEndDate); - } + onSubmit(): void { + this.actualStartDate = this.form.get('daterange').value.start; + this.actualEndDate = this.form.get('daterange').value.end; + this.service.fetch_dashboard_station_to(this.station.id, this.actualStartDate.toISOString().substring(0, 10), this.actualEndDate.toISOString().substring(0, 10)).then((source) => { + this.stationToSource = source; + this.changeDetectorRefs.detectChanges(); + }); + this.service.fetch_dashboard_station_from(this.station.id, this.actualStartDate.toISOString().substring(0, 10), this.actualStartDate.toISOString().substring(0, 10)).then((source) => { + this.stationFromSource = source; + this.changeDetectorRefs.detectChanges(); + }); + this.service.fetch_dashboard_station_duration(this.station.id, this.actualStartDate.toISOString().substring(0, 10), this.actualStartDate.toISOString().substring(0, 10)).then((source) => { + const numbers = []; + const minutesGroup = []; + source.forEach(value => { + numbers.push(value.number); + minutesGroup.push(value.minutesGroup); + }); + this.durationChartOptions = { + series: [ + { + name: 'borrow-duration', + data: [...numbers] + } + ], + chart: { + type: 'bar', + height: 450 + }, + plotOptions: { + bar: { + horizontal: false, + columnWidth: '55%', + endingShape: 'rounded' + } + }, + dataLabels: { + enabled: false + }, + stroke: { + show: true, + width: 2, + colors: ['transparent'] + }, + xaxis: { + categories: [...minutesGroup] + }, + yaxis: { + title: { + text: 'minutes' + } + }, + fill: { + opacity: 1 + } + }; + }); + } } diff --git a/projects/project-3/frontend/src/app/map/map.component.ts b/projects/project-3/frontend/src/app/map/map.component.ts index 852ea4c..66fdb1f 100644 --- a/projects/project-3/frontend/src/app/map/map.component.ts +++ b/projects/project-3/frontend/src/app/map/map.component.ts @@ -13,8 +13,8 @@ export class MapComponent implements AfterViewInit { } ngAfterViewInit(): void { - this.service.initMap(); - this.service.makeStationMarkers(); + this.service.init_map(51.509865, -0.118092, 14); + this.service.make_station_markers(); } diff --git a/projects/project-3/frontend/src/app/service/dashboard.service.ts b/projects/project-3/frontend/src/app/service/dashboard.service.ts index 3961f0b..39b0e92 100644 --- a/projects/project-3/frontend/src/app/service/dashboard.service.ts +++ b/projects/project-3/frontend/src/app/service/dashboard.service.ts @@ -10,7 +10,19 @@ export class DashboardService { constructor(private client: HttpClient) { } - public async initialDashboardStationFetch(id: string): Promise { - return await this.client.get(environment.apiUrl + 'latest/dashboard/' + id + '/').toPromise(); + public async fetch_dashboard_init(id: string): Promise { + return await this.client.get(environment.apiUrl + `latest/dashboard/${id}/`).toPromise(); + } + + public async fetch_dashboard_station_to(id: string, startDate: string, endDate: string): Promise { + return await this.client.get(environment.apiUrl + `latest/dashboard/${id}/to?start_date=${startDate}&end_date=${endDate}`).toPromise(); + } + + public async fetch_dashboard_station_from(id: string, startDate: string, endDate: string): Promise { + return await this.client.get(environment.apiUrl + `latest/dashboard/${id}/from?start_date=${startDate}&end_date=${endDate}`).toPromise(); + } + + public async fetch_dashboard_station_duration(id: string, startDate: string, endDate: string): Promise { + return await this.client.get(environment.apiUrl + `latest/dashboard/${id}/duration?start_date=${startDate}&end_date=${endDate}`).toPromise(); } } diff --git a/projects/project-3/frontend/src/app/service/domain/dashboard-station-to.ts b/projects/project-3/frontend/src/app/service/domain/dashboard-station-to.ts deleted file mode 100644 index ac38740..0000000 --- a/projects/project-3/frontend/src/app/service/domain/dashboard-station-to.ts +++ /dev/null @@ -1,16 +0,0 @@ -export interface IDashboardStationTo { - startStationName?: string; - endStationName?: string; - stationNumber?: number; - avgDuration?: number; -} - -export class DashboardStationTo implements IDashboardStationTo { - constructor( - public startStationName?: string, - public endStationName?: string, - public stationNumber?: number, - public avgDuration?: number - ) { - } -} diff --git a/projects/project-3/frontend/src/app/service/map.service.ts b/projects/project-3/frontend/src/app/service/map.service.ts index 0875d75..45a6689 100644 --- a/projects/project-3/frontend/src/app/service/map.service.ts +++ b/projects/project-3/frontend/src/app/service/map.service.ts @@ -25,8 +25,8 @@ export class MapService { ) { } - public initMap(): void { - this.map = L.map('map').setView([51.509865, -0.118092], 14); + public init_map(lat: number, lon: number, zoom: number): void { + this.map = L.map('map').setView([lat, lon], zoom); this.map.addLayer(new L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { attribution: 'Map data OpenStreetMap contributors', minZoom: 0, @@ -34,8 +34,8 @@ export class MapService { })); } - public makeStationMarkers(): void { - this.fetchStationGeoData().then((data) => { + public make_station_markers(): void { + this.fetch_station_geo_data().then((data) => { const markerClusters = L.markerClusterGroup({ spiderflyOnMaxZoom: true, showCoverageOnHover: true, @@ -56,8 +56,12 @@ export class MapService { }); } + public draw_dashboard_station_marker(lat: number, lon: number): void { + L.marker([lat, lon], {icon: createIcon}).addTo(this.map); + } - private async fetchStationGeoData(): Promise { + + private async fetch_station_geo_data(): Promise { return await this.client.get(environment.apiUrl + 'latest/bikepoints/').toPromise(); } } From b6dd2ee8252eb6c0ebc42c910e63bd461250a0a7 Mon Sep 17 00:00:00 2001 From: Tim Herbst Date: Tue, 22 Dec 2020 23:07:28 +0100 Subject: [PATCH 028/104] change series and categories matching due to lexicographic sort of minutesGroup --- .../src/app/dashboard/dashboard.component.ts | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts b/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts index 2bb46e7..2815884 100644 --- a/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts +++ b/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts @@ -112,12 +112,11 @@ export class DashboardComponent implements OnInit { numbers.push(value.number); minutesGroup.push(value.minutesGroup); }); - this.durationChartOptions = { series: [ { name: 'borrow-duration', - data: [...numbers] + data: [numbers[0], numbers[4], numbers[1], numbers[2], numbers[3]] } ], chart: { @@ -140,7 +139,7 @@ export class DashboardComponent implements OnInit { colors: ['transparent'] }, xaxis: { - categories: [...minutesGroup] + categories: [minutesGroup[0], minutesGroup[4], minutesGroup[1], minutesGroup[2], minutesGroup[3]] }, yaxis: { title: { @@ -163,23 +162,22 @@ export class DashboardComponent implements OnInit { this.stationToSource = source; this.changeDetectorRefs.detectChanges(); }); - this.service.fetch_dashboard_station_from(this.station.id, this.actualStartDate.toISOString().substring(0, 10), this.actualStartDate.toISOString().substring(0, 10)).then((source) => { + this.service.fetch_dashboard_station_from(this.station.id, this.actualStartDate.toISOString().substring(0, 10), this.actualEndDate.toISOString().substring(0, 10)).then((source) => { this.stationFromSource = source; this.changeDetectorRefs.detectChanges(); }); - this.service.fetch_dashboard_station_duration(this.station.id, this.actualStartDate.toISOString().substring(0, 10), this.actualStartDate.toISOString().substring(0, 10)).then((source) => { + this.service.fetch_dashboard_station_duration(this.station.id, this.actualStartDate.toISOString().substring(0, 10), this.actualEndDate.toISOString().substring(0, 10)).then((source) => { const numbers = []; const minutesGroup = []; source.forEach(value => { numbers.push(value.number); minutesGroup.push(value.minutesGroup); }); - this.durationChartOptions = { series: [ { name: 'borrow-duration', - data: [...numbers] + data: [numbers[0], numbers[4], numbers[1], numbers[2], numbers[3]] } ], chart: { @@ -202,7 +200,7 @@ export class DashboardComponent implements OnInit { colors: ['transparent'] }, xaxis: { - categories: [...minutesGroup] + categories: [minutesGroup[0], minutesGroup[4], minutesGroup[1], minutesGroup[2], minutesGroup[3]] }, yaxis: { title: { From 7904963b3e8bebaec96044c58345469f1254cd71 Mon Sep 17 00:00:00 2001 From: Tim Herbst Date: Tue, 22 Dec 2020 23:09:58 +0100 Subject: [PATCH 029/104] change bar-chart ending shape to flat --- .../frontend/src/app/dashboard/dashboard.component.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts b/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts index 2815884..87ffc96 100644 --- a/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts +++ b/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts @@ -127,7 +127,7 @@ export class DashboardComponent implements OnInit { bar: { horizontal: false, columnWidth: '55%', - endingShape: 'rounded' + endingShape: 'flat' } }, dataLabels: { @@ -188,7 +188,7 @@ export class DashboardComponent implements OnInit { bar: { horizontal: false, columnWidth: '55%', - endingShape: 'rounded' + endingShape: 'flat' } }, dataLabels: { From 575dad8646b23e6f256abe42ec9e814b581f1d00 Mon Sep 17 00:00:00 2001 From: Tim Herbst Date: Wed, 23 Dec 2020 14:31:44 +0100 Subject: [PATCH 030/104] adjust overall style to match common applications --- .../app/dashboard/dashboard.component.html | 94 ++++++++----------- .../app/dashboard/dashboard.component.scss | 31 +++--- 2 files changed, 57 insertions(+), 68 deletions(-) diff --git a/projects/project-3/frontend/src/app/dashboard/dashboard.component.html b/projects/project-3/frontend/src/app/dashboard/dashboard.component.html index 0146f69..62b04c4 100644 --- a/projects/project-3/frontend/src/app/dashboard/dashboard.component.html +++ b/projects/project-3/frontend/src/app/dashboard/dashboard.component.html @@ -36,28 +36,21 @@
- -
-
-
-
+ + +
+ +
+
+
+
-
+
-
- average Lend duration + average lend duration {{element.avgDuration}} @@ -107,43 +100,30 @@
-
-
+ -
- -
-
-
-
-
- dashboard-chart-borrow-time -
+ + Borrow Duration + + +
+ +
+
+
+ diff --git a/projects/project-3/frontend/src/app/dashboard/dashboard.component.scss b/projects/project-3/frontend/src/app/dashboard/dashboard.component.scss index 05ad4d9..239c5aa 100644 --- a/projects/project-3/frontend/src/app/dashboard/dashboard.component.scss +++ b/projects/project-3/frontend/src/app/dashboard/dashboard.component.scss @@ -1,3 +1,7 @@ +mat-sidenav-content { + background: #2f2f2f; +} + .toolbar-spacer { flex: 1 1 auto; } @@ -28,15 +32,28 @@ mat-sidenav-container, mat-sidenav-content, mat-sidenav { margin-top: 100px; } -.containter-map { +.mat-card { + padding: 1em 1em 1em; + margin: 3em; +} +.mat-card-map { + padding: 1px; +} + +.mat-card-header { + display: flex; + justify-content: center; +} + +.container-map { height: 40vh; } -.container-top { +.container-table { height: 20vh; } -.container-middle { +.container-borrow-duration { height: 40vh } @@ -52,14 +69,6 @@ mat-sidenav-container, mat-sidenav-content, mat-sidenav { margin: 5px; } -.mini-map { - margin: 5px; -} - -.dashboard-chart-borrow-duration { - margin: 5px; -} - .dashboard-chart-borrow-time { margin: 5px; background: chartreuse; From d3f40f994c7b267ce7c2cef18edbb804ee0eee64 Mon Sep 17 00:00:00 2001 From: Tim Herbst Date: Wed, 23 Dec 2020 14:33:30 +0100 Subject: [PATCH 031/104] revert fix with apex-chart and fix map-error: map-container already initialized --- .../src/app/dashboard/dashboard.component.ts | 30 +++++++++++++------ .../frontend/src/app/map/map.component.ts | 13 ++++---- .../frontend/src/app/service/map.service.ts | 18 ++++++++--- 3 files changed, 42 insertions(+), 19 deletions(-) diff --git a/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts b/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts index 87ffc96..ff7f928 100644 --- a/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts +++ b/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts @@ -15,6 +15,7 @@ import { ApexNoData, ApexPlotOptions, ApexStroke, + ApexTitleSubtitle, ApexTooltip, ApexXAxis, ApexYAxis, @@ -22,6 +23,7 @@ import { } from 'ng-apexcharts'; export type ChartOptions = { + title: ApexTitleSubtitle series: ApexAxisChartSeries; chart: ApexChart; dataLabels: ApexDataLabels; @@ -66,6 +68,11 @@ export class DashboardComponent implements OnInit { private fb: FormBuilder ) { this.durationChartOptions = { + title: { + text: 'test', + align: 'left', + margin: 10 + }, series: [], chart: { type: 'bar' @@ -115,13 +122,13 @@ export class DashboardComponent implements OnInit { this.durationChartOptions = { series: [ { - name: 'borrow-duration', - data: [numbers[0], numbers[4], numbers[1], numbers[2], numbers[3]] + name: 'amount of drives for given borrow duration', + data: [...numbers] } ], chart: { type: 'bar', - height: 450 + height: 400 }, plotOptions: { bar: { @@ -135,15 +142,20 @@ export class DashboardComponent implements OnInit { }, stroke: { show: true, - width: 2, + width: 4, colors: ['transparent'] }, xaxis: { - categories: [minutesGroup[0], minutesGroup[4], minutesGroup[1], minutesGroup[2], minutesGroup[3]] + categories: [...minutesGroup], + labels: { + formatter: value => { + return value + ' min'; + } + } }, yaxis: { title: { - text: 'minutes' + text: 'amount of drives' } }, fill: { @@ -151,7 +163,7 @@ export class DashboardComponent implements OnInit { } }; }); - this.map.init_map(this.station.lat, this.station.lon, 17); + this.map.draw_dashboard_map(this.station.lat, this.station.lon, 17); this.map.draw_dashboard_station_marker(this.station.lat, this.station.lon); } @@ -177,7 +189,7 @@ export class DashboardComponent implements OnInit { series: [ { name: 'borrow-duration', - data: [numbers[0], numbers[4], numbers[1], numbers[2], numbers[3]] + data: [...numbers] } ], chart: { @@ -200,7 +212,7 @@ export class DashboardComponent implements OnInit { colors: ['transparent'] }, xaxis: { - categories: [minutesGroup[0], minutesGroup[4], minutesGroup[1], minutesGroup[2], minutesGroup[3]] + categories: [...minutesGroup] }, yaxis: { title: { diff --git a/projects/project-3/frontend/src/app/map/map.component.ts b/projects/project-3/frontend/src/app/map/map.component.ts index 66fdb1f..18792cf 100644 --- a/projects/project-3/frontend/src/app/map/map.component.ts +++ b/projects/project-3/frontend/src/app/map/map.component.ts @@ -1,4 +1,4 @@ -import {AfterViewInit, Component} from '@angular/core'; +import {Component, OnInit} from '@angular/core'; import {MapService} from '../service/map.service'; @@ -7,15 +7,16 @@ import {MapService} from '../service/map.service'; templateUrl: './map.component.html', styleUrls: ['./map.component.scss'] }) -export class MapComponent implements AfterViewInit { - +export class MapComponent implements OnInit { constructor(private service: MapService) { } - ngAfterViewInit(): void { + ngOnInit(): void { + this.init_map_view(); + } + + init_map_view(): void { this.service.init_map(51.509865, -0.118092, 14); this.service.make_station_markers(); } - - } diff --git a/projects/project-3/frontend/src/app/service/map.service.ts b/projects/project-3/frontend/src/app/service/map.service.ts index 45a6689..78e31c3 100644 --- a/projects/project-3/frontend/src/app/service/map.service.ts +++ b/projects/project-3/frontend/src/app/service/map.service.ts @@ -1,4 +1,4 @@ -import {Injectable} from '@angular/core'; +import {ChangeDetectorRef, Injectable} from '@angular/core'; import * as L from 'leaflet'; import 'leaflet.markercluster'; import {HttpClient} from '@angular/common/http'; @@ -17,11 +17,12 @@ const createIcon = L.icon({ providedIn: 'root' }) export class MapService { - private map; + public map; + public miniMap; constructor( private client: HttpClient, - private popUpService: PopUpService + private popUpService: PopUpService, ) { } @@ -34,6 +35,15 @@ export class MapService { })); } + public draw_dashboard_map(lat: number, lon: number, zoom: number): void { + this.miniMap = L.map('minimap').setView([lat, lon], zoom); + this.miniMap.addLayer(new L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { + attribution: 'Map data OpenStreetMap contributors', + minZoom: 0, + maxZoom: 19 + })); + } + public make_station_markers(): void { this.fetch_station_geo_data().then((data) => { const markerClusters = L.markerClusterGroup({ @@ -57,7 +67,7 @@ export class MapService { } public draw_dashboard_station_marker(lat: number, lon: number): void { - L.marker([lat, lon], {icon: createIcon}).addTo(this.map); + L.marker([lat, lon], {icon: createIcon}).addTo(this.miniMap); } From b19da0c819c1dee6f4d13784eb557ffcf7a35695 Mon Sep 17 00:00:00 2001 From: Tim Herbst Date: Sat, 26 Dec 2020 11:06:32 +0100 Subject: [PATCH 032/104] rearrange div elements --- .../frontend/src/app/dashboard/dashboard.component.html | 4 ++-- .../frontend/src/app/dashboard/dashboard.component.scss | 8 ++++++-- .../project-3/frontend/src/app/map/map.component.html | 6 +++--- .../project-3/frontend/src/app/map/map.component.scss | 7 +------ 4 files changed, 12 insertions(+), 13 deletions(-) diff --git a/projects/project-3/frontend/src/app/dashboard/dashboard.component.html b/projects/project-3/frontend/src/app/dashboard/dashboard.component.html index 62b04c4..27d9598 100644 --- a/projects/project-3/frontend/src/app/dashboard/dashboard.component.html +++ b/projects/project-3/frontend/src/app/dashboard/dashboard.component.html @@ -102,13 +102,13 @@
- Borrow Duration -
+
-
-
-
+
+
+
diff --git a/projects/project-3/frontend/src/app/map/map.component.scss b/projects/project-3/frontend/src/app/map/map.component.scss index cb1057b..650c573 100644 --- a/projects/project-3/frontend/src/app/map/map.component.scss +++ b/projects/project-3/frontend/src/app/map/map.component.scss @@ -8,13 +8,8 @@ flex: 1 1 auto; } -.mat-toolbar { - height: 4% -} - .map-container { - margin: 10px; - height: 94%; + height: 95%; } .map-frame { From 02ff4267bf3623bb0eace5c4b15176206fed88a6 Mon Sep 17 00:00:00 2001 From: Tim Herbst Date: Sat, 26 Dec 2020 16:26:02 +0100 Subject: [PATCH 033/104] add leaflet.heat plugin --- projects/project-3/frontend/package-lock.json | 5 +++++ projects/project-3/frontend/package.json | 1 + projects/project-3/frontend/src/app/service/map.service.ts | 3 ++- 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/projects/project-3/frontend/package-lock.json b/projects/project-3/frontend/package-lock.json index ccd339e..3c34130 100644 --- a/projects/project-3/frontend/package-lock.json +++ b/projects/project-3/frontend/package-lock.json @@ -7129,6 +7129,11 @@ "resolved": "https://registry.npmjs.org/leaflet/-/leaflet-1.7.1.tgz", "integrity": "sha512-/xwPEBidtg69Q3HlqPdU3DnrXQOvQU/CCHA1tcDQVzOwm91YMYaILjNp7L4Eaw5Z4sOYdbBz6koWyibppd8Zqw==" }, + "leaflet.heat": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/leaflet.heat/-/leaflet.heat-0.2.0.tgz", + "integrity": "sha1-EJ2M9Ybwre5B8Fr/Ax4np3/swik=" + }, "leaflet.markercluster": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/leaflet.markercluster/-/leaflet.markercluster-1.4.1.tgz", diff --git a/projects/project-3/frontend/package.json b/projects/project-3/frontend/package.json index 0e4b6a6..32a9baa 100644 --- a/projects/project-3/frontend/package.json +++ b/projects/project-3/frontend/package.json @@ -26,6 +26,7 @@ "bootstrap": "^4.5.3", "jquery": "^3.5.1", "leaflet": "^1.7.1", + "leaflet.heat": "^0.2.0", "leaflet.markercluster": "^1.4.1", "ng-apexcharts": "^1.5.6", "rxjs": "~6.6.0", diff --git a/projects/project-3/frontend/src/app/service/map.service.ts b/projects/project-3/frontend/src/app/service/map.service.ts index 78e31c3..20ae13b 100644 --- a/projects/project-3/frontend/src/app/service/map.service.ts +++ b/projects/project-3/frontend/src/app/service/map.service.ts @@ -1,6 +1,7 @@ -import {ChangeDetectorRef, Injectable} from '@angular/core'; +import {Injectable} from '@angular/core'; import * as L from 'leaflet'; import 'leaflet.markercluster'; +import 'leaflet.heat/dist/leaflet-heat'; import {HttpClient} from '@angular/common/http'; import {environment} from '../../environments/environment'; import {PopUpService} from './pop-up.service'; From f64fe65ed602701f243e1a840120ff22274c777d Mon Sep 17 00:00:00 2001 From: Tim Herbst Date: Sat, 26 Dec 2020 16:26:27 +0100 Subject: [PATCH 034/104] rearrange dashboard-components --- .../app/dashboard/dashboard.component.html | 117 +++++++++++------- .../app/dashboard/dashboard.component.scss | 74 ++++++----- .../src/app/map/pop-up/pop-up.component.ts | 2 - .../src/app/service/dashboard.service.ts | 14 ++- 4 files changed, 124 insertions(+), 83 deletions(-) diff --git a/projects/project-3/frontend/src/app/dashboard/dashboard.component.html b/projects/project-3/frontend/src/app/dashboard/dashboard.component.html index 27d9598..595172c 100644 --- a/projects/project-3/frontend/src/app/dashboard/dashboard.component.html +++ b/projects/project-3/frontend/src/app/dashboard/dashboard.component.html @@ -1,60 +1,71 @@ - Bike Stations in London library_books - Wiki + Wiki + map - back to map + back to map + - - -
- - Enter a range - - - - - - - -
-
- -
-
- + + +
-
- -
+
+ + +
+ + Enter a range + + + + + + + +
+
+ +
+
+
+
+ + +
+ {{station?.commonName}} +
+ +
+
+
+ + +
+ +
-
-
+
+
@@ -75,9 +86,7 @@
station of lend destination
-
+
@@ -102,13 +111,12 @@
- - + + Borrow Duration -
+
+ [yaxis]="durationChartOptions.yaxis">
+
+ + + Borrow Time + + + +
+ +
+
+
+
diff --git a/projects/project-3/frontend/src/app/dashboard/dashboard.component.scss b/projects/project-3/frontend/src/app/dashboard/dashboard.component.scss index aaeabb7..f5fd85f 100644 --- a/projects/project-3/frontend/src/app/dashboard/dashboard.component.scss +++ b/projects/project-3/frontend/src/app/dashboard/dashboard.component.scss @@ -6,17 +6,7 @@ mat-sidenav-content { flex: 1 1 auto; } -.sidenav { - height: 100vh; - width: 15vw; - min-width: 20em; -} - -mat-sidenav-container, mat-sidenav-content, mat-sidenav { - height: 100vh; -} - -.button-back:hover { +.button-back:hover, .button-wiki:hover { background: #5a34a0; } @@ -24,18 +14,31 @@ mat-sidenav-container, mat-sidenav-content, mat-sidenav { padding: 10px; } -.button-wiki:hover { - background: #5a34a0; +.user-input { + height: 10em; } .datepicker { - margin-top: 100px; + margin-top: 2em; +} + +.submit-date { + padding-bottom: 2em; } .mat-card { padding: 1px 1px 1px; - margin: 2em; + margin: 10px; } + +.example-header-image { + margin-top: 1em; + margin-left: 1em; + margin-bottom: 1em; + background-image: url('../../assets/bike-point.png'); + background-size: cover; +} + .mat-card-map { padding: 1px; } @@ -44,36 +47,43 @@ mat-sidenav-container, mat-sidenav-content, mat-sidenav { margin-top: 1em; } -.mat-card-header { - display: flex; +.chart-header { + display: inline-flex; justify-content: center; } .container-map { - height: 40vh; + height: 40em; + margin: 1em 2em; } .container-table { - height: 20vh; -} - -.container-borrow-duration { - height: 40vh -} - -.container-bottom { - height: 30vh + height: 20em; + margin: 1em 3em; } .dashboard-table-to { - margin: 5px; + margin-right: 1em; } .dashboard-table-from { - margin: 5px; + margin-left: 1em; } -.dashboard-chart-borrow-time { - margin: 5px; - background: chartreuse; +.container-borrow-duration { + height: 40em; + margin: 1em 2em; +} + +.container-borrow-time { + height: 40em; + margin: 1em 2em; +} + +.station-dashboard-borrow-time { + margin: 1em; +} + +.station-dashboard-borrow-duration { + margin: 1em; } diff --git a/projects/project-3/frontend/src/app/map/pop-up/pop-up.component.ts b/projects/project-3/frontend/src/app/map/pop-up/pop-up.component.ts index 371813b..81e2469 100644 --- a/projects/project-3/frontend/src/app/map/pop-up/pop-up.component.ts +++ b/projects/project-3/frontend/src/app/map/pop-up/pop-up.component.ts @@ -40,6 +40,4 @@ export class PopUpComponent implements OnInit { public route(): void { this.router.navigate(['/dashboard', this.station.id]); } - - } diff --git a/projects/project-3/frontend/src/app/service/dashboard.service.ts b/projects/project-3/frontend/src/app/service/dashboard.service.ts index 39b0e92..567ac4b 100644 --- a/projects/project-3/frontend/src/app/service/dashboard.service.ts +++ b/projects/project-3/frontend/src/app/service/dashboard.service.ts @@ -15,14 +15,20 @@ export class DashboardService { } public async fetch_dashboard_station_to(id: string, startDate: string, endDate: string): Promise { - return await this.client.get(environment.apiUrl + `latest/dashboard/${id}/to?start_date=${startDate}&end_date=${endDate}`).toPromise(); + return await this.client.get( + environment.apiUrl + `latest/dashboard/${id}/to?start_date=${startDate}&end_date=${endDate}` + ).toPromise(); } public async fetch_dashboard_station_from(id: string, startDate: string, endDate: string): Promise { - return await this.client.get(environment.apiUrl + `latest/dashboard/${id}/from?start_date=${startDate}&end_date=${endDate}`).toPromise(); + return await this.client.get( + environment.apiUrl + `latest/dashboard/${id}/from?start_date=${startDate}&end_date=${endDate}` + ).toPromise(); } - public async fetch_dashboard_station_duration(id: string, startDate: string, endDate: string): Promise { - return await this.client.get(environment.apiUrl + `latest/dashboard/${id}/duration?start_date=${startDate}&end_date=${endDate}`).toPromise(); + public async fetch_dashboard_station_charts(id: string, startDate: string, endDate: string, type: string): Promise { + return await this.client.get( + environment.apiUrl + `latest/dashboard/${id}/${type}?start_date=${startDate}&end_date=${endDate}` + ).toPromise(); } } From 945642db5a16ff3e93061cc3572d4deabc07c1c3 Mon Sep 17 00:00:00 2001 From: Tim Herbst Date: Sat, 26 Dec 2020 16:27:08 +0100 Subject: [PATCH 035/104] add last chart: burrow-time to dashboard --- .../src/app/dashboard/dashboard.component.ts | 178 ++++++++++++++++-- 1 file changed, 163 insertions(+), 15 deletions(-) diff --git a/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts b/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts index ff7f928..c02273f 100644 --- a/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts +++ b/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts @@ -28,7 +28,7 @@ export type ChartOptions = { chart: ApexChart; dataLabels: ApexDataLabels; plotOptions: ApexPlotOptions; - yaxis: ApexYAxis; + yaxis: ApexYAxis | ApexYAxis[]; xaxis: ApexXAxis; fill: ApexFill; tooltip: ApexTooltip; @@ -37,6 +37,8 @@ export type ChartOptions = { noData: ApexNoData; }; +const chartHeight = 450; + @Component({ selector: 'app-dashboard', templateUrl: './dashboard.component.html', @@ -46,6 +48,7 @@ export type ChartOptions = { export class DashboardComponent implements OnInit { @ViewChild('Station-Dashboard-Borrow-Duration') chart: ChartComponent; public durationChartOptions: Partial; + public timeChartOptions: Partial; displayedColumnsTo: string[] = ['endStationName', 'number', 'avgDuration']; displayedColumnsFrom: string[] = ['startStationName', 'number', 'avgDuration']; stationToSource = new MatTableDataSource(); @@ -68,11 +71,18 @@ export class DashboardComponent implements OnInit { private fb: FormBuilder ) { this.durationChartOptions = { - title: { - text: 'test', - align: 'left', - margin: 10 + series: [], + chart: { + type: 'bar' }, + dataLabels: { + enabled: false + }, + noData: { + text: 'Loading...' + } + }; + this.timeChartOptions = { series: [], chart: { type: 'bar' @@ -112,7 +122,7 @@ export class DashboardComponent implements OnInit { this.stationFromSource = source; this.changeDetectorRefs.detectChanges(); }); - this.service.fetch_dashboard_station_duration(this.station.id, initDate, initDate).then((source) => { + this.service.fetch_dashboard_station_charts(this.station.id, initDate, initDate, 'duration').then((source) => { const numbers = []; const minutesGroup = []; source.forEach(value => { @@ -123,12 +133,12 @@ export class DashboardComponent implements OnInit { series: [ { name: 'amount of drives for given borrow duration', - data: [...numbers] + data: numbers } ], chart: { type: 'bar', - height: 400 + height: chartHeight }, plotOptions: { bar: { @@ -146,7 +156,7 @@ export class DashboardComponent implements OnInit { colors: ['transparent'] }, xaxis: { - categories: [...minutesGroup], + categories: minutesGroup, labels: { formatter: value => { return value + ' min'; @@ -163,6 +173,64 @@ export class DashboardComponent implements OnInit { } }; }); + this.service.fetch_dashboard_station_charts(this.station.id, initDate, initDate, 'time').then((source) => { + const timeFrame = []; + const numbers = []; + const avgDuration = []; + source.forEach(value => { + timeFrame.push(value.timeFrame); + numbers.push(value.number); + avgDuration.push(value.avgDuration); + }); + this.timeChartOptions = { + series: [ + { + name: 'amount of drives', + type: 'bar', + data: numbers + }, + { + name: 'avgDuration', + type: 'line', + data: avgDuration + } + ], + chart: { + type: 'line', + height: chartHeight, + zoom: { + enabled: true + } + }, + dataLabels: { + enabled: false + }, + stroke: { + curve: 'straight' + }, + xaxis: { + categories: timeFrame, + tickAmount: 24 + }, + yaxis: [{ + title: { + text: 'number of drives', + }, + }, { + opposite: true, + title: { + text: 'avgDuration' + } + }], + legend: { + horizontalAlign: 'left' + }, + fill: { + opacity: 1 + } + }; + }); + this.map.draw_dashboard_map(this.station.lat, this.station.lon, 17); this.map.draw_dashboard_station_marker(this.station.lat, this.station.lon); } @@ -170,15 +238,28 @@ export class DashboardComponent implements OnInit { onSubmit(): void { this.actualStartDate = this.form.get('daterange').value.start; this.actualEndDate = this.form.get('daterange').value.end; - this.service.fetch_dashboard_station_to(this.station.id, this.actualStartDate.toISOString().substring(0, 10), this.actualEndDate.toISOString().substring(0, 10)).then((source) => { + this.service.fetch_dashboard_station_to( + this.station.id, + this.actualStartDate.toISOString().substring(0, 10), + this.actualEndDate.toISOString().substring(0, 10) + ).then((source) => { this.stationToSource = source; this.changeDetectorRefs.detectChanges(); }); - this.service.fetch_dashboard_station_from(this.station.id, this.actualStartDate.toISOString().substring(0, 10), this.actualEndDate.toISOString().substring(0, 10)).then((source) => { + this.service.fetch_dashboard_station_from( + this.station.id, + this.actualStartDate.toISOString().substring(0, 10), + this.actualEndDate.toISOString().substring(0, 10) + ).then((source) => { this.stationFromSource = source; this.changeDetectorRefs.detectChanges(); }); - this.service.fetch_dashboard_station_duration(this.station.id, this.actualStartDate.toISOString().substring(0, 10), this.actualEndDate.toISOString().substring(0, 10)).then((source) => { + this.service.fetch_dashboard_station_charts( + this.station.id, + this.actualStartDate.toISOString().substring(0, 10), + this.actualEndDate.toISOString().substring(0, 10), + 'duration' + ).then((source) => { const numbers = []; const minutesGroup = []; source.forEach(value => { @@ -189,12 +270,12 @@ export class DashboardComponent implements OnInit { series: [ { name: 'borrow-duration', - data: [...numbers] + data: numbers } ], chart: { type: 'bar', - height: 450 + height: chartHeight }, plotOptions: { bar: { @@ -212,7 +293,12 @@ export class DashboardComponent implements OnInit { colors: ['transparent'] }, xaxis: { - categories: [...minutesGroup] + categories: minutesGroup, + labels: { + formatter: value => { + return value + ' min'; + } + } }, yaxis: { title: { @@ -224,5 +310,67 @@ export class DashboardComponent implements OnInit { } }; }); + this.service.fetch_dashboard_station_charts( + this.station.id, + this.actualStartDate.toISOString().substring(0, 10), + this.actualEndDate.toISOString().substring(0, 10), + 'time' + ).then((source) => { + const timeFrame = []; + const numbers = []; + const avgDuration = []; + source.forEach(value => { + timeFrame.push(value.timeFrame); + numbers.push(value.number); + avgDuration.push(value.avgDuration); + }); + this.timeChartOptions = { + series: [ + { + name: 'amount of drives', + type: 'bar', + data: numbers + }, + { + name: 'avgDuration', + type: 'line', + data: avgDuration + } + ], + chart: { + type: 'line', + height: chartHeight, + zoom: { + enabled: true + } + }, + dataLabels: { + enabled: false + }, + stroke: { + curve: 'straight' + }, + xaxis: { + categories: timeFrame, + tickAmount: 24 + }, + yaxis: [{ + title: { + text: 'number of drives', + }, + }, { + opposite: true, + title: { + text: 'avgDuration' + } + }], + legend: { + horizontalAlign: 'left' + }, + fill: { + opacity: 1 + } + }; + }); } } From 531c83db97c5a8146218ed45f9d3c7aab62ea953 Mon Sep 17 00:00:00 2001 From: Tim Herbst Date: Sat, 26 Dec 2020 17:09:11 +0100 Subject: [PATCH 036/104] delete generated files --- .../frontend/src/app/map/map.component.css | 20 ------------------- .../src/app/map/map.component.css.map | 1 - 2 files changed, 21 deletions(-) delete mode 100644 projects/project-3/frontend/src/app/map/map.component.css delete mode 100644 projects/project-3/frontend/src/app/map/map.component.css.map diff --git a/projects/project-3/frontend/src/app/map/map.component.css b/projects/project-3/frontend/src/app/map/map.component.css deleted file mode 100644 index 928ef2d..0000000 --- a/projects/project-3/frontend/src/app/map/map.component.css +++ /dev/null @@ -1,20 +0,0 @@ -.toolbar-spacer { - flex: 1 1 auto; -} - -.map-container { - margin: 0; - height: 95%; -} - -.map-frame { - height: 100%; - width: 100%; -} - -#map { - height: 100%; - width: 100%; -} - -/*# sourceMappingURL=map.component.css.map */ diff --git a/projects/project-3/frontend/src/app/map/map.component.css.map b/projects/project-3/frontend/src/app/map/map.component.css.map deleted file mode 100644 index 9711d7d..0000000 --- a/projects/project-3/frontend/src/app/map/map.component.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sourceRoot":"","sources":["map.component.scss"],"names":[],"mappings":"AAAA;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA","file":"map.component.css"} \ No newline at end of file From 7ca560ec2f97db28dbedfc0d8c76f26d03b02fb1 Mon Sep 17 00:00:00 2001 From: Tim Herbst Date: Sat, 26 Dec 2020 17:09:39 +0100 Subject: [PATCH 037/104] adjust gitignore for generated files --- projects/project-3/frontend/.gitignore | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/projects/project-3/frontend/.gitignore b/projects/project-3/frontend/.gitignore index 4eebe4b..d2fd27e 100644 --- a/projects/project-3/frontend/.gitignore +++ b/projects/project-3/frontend/.gitignore @@ -4,15 +4,11 @@ /dist /tmp /out-tsc -*.css -*.css.map +**/*.css +**/*.css.map # Only exists if Bazel was run /bazel-out -# exclude generated css-files -/src/app/map/*.css.map -/src/app/map/*.css - # dependencies /node_modules @@ -38,7 +34,7 @@ speed-measure-plugin*.json .history/* # misc -/.sass-cache +**/.sass-cache /connect.lock /coverage /libpeerconnection.log From e8e6b3bb9cf04f72763d2beca8513860f037d0c0 Mon Sep 17 00:00:00 2001 From: Tim Herbst Date: Sat, 26 Dec 2020 19:27:51 +0100 Subject: [PATCH 038/104] synchron call for maps and overlay * implement heatmap * adjust pupupAnchor for new popup-component --- .../frontend/src/app/map/map.component.ts | 9 ++-- .../frontend/src/app/service/map.service.ts | 47 ++++++++++++++----- 2 files changed, 41 insertions(+), 15 deletions(-) diff --git a/projects/project-3/frontend/src/app/map/map.component.ts b/projects/project-3/frontend/src/app/map/map.component.ts index 18792cf..255dae7 100644 --- a/projects/project-3/frontend/src/app/map/map.component.ts +++ b/projects/project-3/frontend/src/app/map/map.component.ts @@ -12,11 +12,12 @@ export class MapComponent implements OnInit { } ngOnInit(): void { - this.init_map_view(); + this.initMapView(); } - init_map_view(): void { - this.service.init_map(51.509865, -0.118092, 14); - this.service.make_station_markers(); + async initMapView(): Promise { + this.service.initMap(51.509865, -0.118092, 14); + await this.service.makeStationMarkers(); + this.service.drawHeatmap(); } } diff --git a/projects/project-3/frontend/src/app/service/map.service.ts b/projects/project-3/frontend/src/app/service/map.service.ts index 20ae13b..29d5f64 100644 --- a/projects/project-3/frontend/src/app/service/map.service.ts +++ b/projects/project-3/frontend/src/app/service/map.service.ts @@ -5,13 +5,14 @@ import 'leaflet.heat/dist/leaflet-heat'; import {HttpClient} from '@angular/common/http'; import {environment} from '../../environments/environment'; import {PopUpService} from './pop-up.service'; +import {BikePointStatus, IMapBikePoint} from './domain/map-bike-point'; const createIcon = L.icon({ iconUrl: '../../assets/bike-point.png', - iconSize: [60, 60], - iconAnchor: [30, 60], - popupAnchor: [-118, -53] + iconSize: [40, 40], + iconAnchor: [18, 40], + popupAnchor: [0, -39] }); @Injectable({ @@ -20,14 +21,17 @@ const createIcon = L.icon({ export class MapService { public map; public miniMap; + bikePoints: Array = []; + mapOverlays: any = {}; constructor( private client: HttpClient, private popUpService: PopUpService, ) { + } - public init_map(lat: number, lon: number, zoom: number): void { + public initMap(lat: number, lon: number, zoom: number): void { this.map = L.map('map').setView([lat, lon], zoom); this.map.addLayer(new L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { attribution: 'Map data OpenStreetMap contributors', @@ -36,7 +40,7 @@ export class MapService { })); } - public draw_dashboard_map(lat: number, lon: number, zoom: number): void { + public drawDashboardMap(lat: number, lon: number, zoom: number): void { this.miniMap = L.map('minimap').setView([lat, lon], zoom); this.miniMap.addLayer(new L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { attribution: 'Map data OpenStreetMap contributors', @@ -45,13 +49,15 @@ export class MapService { })); } - public make_station_markers(): void { - this.fetch_station_geo_data().then((data) => { + public makeStationMarkers(): Promise { + return this.fetchStationGeoData().then((data) => { + this.bikePoints = data; const markerClusters = L.markerClusterGroup({ spiderflyOnMaxZoom: true, showCoverageOnHover: true, zoomToBoundsOnClick: true }); + this.mapOverlays.Bikepoints = markerClusters; this.map.addLayer(markerClusters); for (const station of data) { const marker = L.marker([station.lat, station.lon], {icon: createIcon}); @@ -63,16 +69,35 @@ export class MapService { marker.on('popupclose', e => e.target.unbindPopup()); } }).catch((error) => { - console.log('something went wrong: ' + JSON.stringify(error)); + console.log(error); }); } - public draw_dashboard_station_marker(lat: number, lon: number): void { + public drawHeatmap(): void { + const heatPoints = this.bikePoints.map(bikePoint => ({ + lat: bikePoint.lat, + lon: bikePoint.lon, + intensity: this.getIntensity(bikePoint.status) + })); + const heatLayer = L.heatLayer(heatPoints, { + max: 1.0, + minOpacity: 0.2, + radius: 100 + }); + this.mapOverlays.Heatmap = heatLayer; + L.control.layers(null, this.mapOverlays).addTo(this.map); + } + + public drawDashboardStationMarker(lat: number, lon: number): void { L.marker([lat, lon], {icon: createIcon}).addTo(this.miniMap); } + private getIntensity(status: BikePointStatus): number { + const percentage = Math.round((status.NbBikes / status.NbDocks) * 100); + return (percentage / 100); + } - private async fetch_station_geo_data(): Promise { - return await this.client.get(environment.apiUrl + 'latest/bikepoints/').toPromise(); + private fetchStationGeoData(): Promise { + return this.client.get(environment.apiUrl + 'latest/bikepoints/').toPromise(); } } From 7372a1bc8722ca0b9703daa8bb19d8e8425c92c3 Mon Sep 17 00:00:00 2001 From: Tim Herbst Date: Sat, 26 Dec 2020 19:28:10 +0100 Subject: [PATCH 039/104] remove kebab-case --- .../src/app/dashboard/dashboard.component.ts | 24 +++++++++---------- .../src/app/service/dashboard.service.ts | 8 +++---- 2 files changed, 15 insertions(+), 17 deletions(-) diff --git a/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts b/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts index c02273f..0663fc1 100644 --- a/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts +++ b/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts @@ -54,7 +54,6 @@ export class DashboardComponent implements OnInit { stationToSource = new MatTableDataSource(); stationFromSource = new MatTableDataSource(); - station: IDashboardCommonBikePoint; maxStartDate: Date; maxEndDate: Date; @@ -62,7 +61,6 @@ export class DashboardComponent implements OnInit { actualEndDate: Date; form: FormGroup; - constructor( private route: ActivatedRoute, private service: DashboardService, @@ -97,7 +95,7 @@ export class DashboardComponent implements OnInit { } ngOnInit(): void { - this.service.fetch_dashboard_init(this.route.snapshot.paramMap.get('id')).then(data => { + this.service.fetchDashboardInit(this.route.snapshot.paramMap.get('id')).then(data => { this.station = data; this.maxStartDate = new Date(data.maxStartDate); this.maxEndDate = new Date(data.maxEndDate); @@ -114,15 +112,15 @@ export class DashboardComponent implements OnInit { init_dashboard(): void { const initDate = this.maxEndDate.toISOString().substring(0, 10); - this.service.fetch_dashboard_station_to(this.station.id, initDate, initDate).then((source) => { + this.service.fetchDashboardStationTo(this.station.id, initDate, initDate).then((source) => { this.stationToSource = source; this.changeDetectorRefs.detectChanges(); }); - this.service.fetch_dashboard_station_from(this.station.id, initDate, initDate).then((source) => { + this.service.fetchDashboardStationFrom(this.station.id, initDate, initDate).then((source) => { this.stationFromSource = source; this.changeDetectorRefs.detectChanges(); }); - this.service.fetch_dashboard_station_charts(this.station.id, initDate, initDate, 'duration').then((source) => { + this.service.fetchDashboardStationCharts(this.station.id, initDate, initDate, 'duration').then((source) => { const numbers = []; const minutesGroup = []; source.forEach(value => { @@ -173,7 +171,7 @@ export class DashboardComponent implements OnInit { } }; }); - this.service.fetch_dashboard_station_charts(this.station.id, initDate, initDate, 'time').then((source) => { + this.service.fetchDashboardStationCharts(this.station.id, initDate, initDate, 'time').then((source) => { const timeFrame = []; const numbers = []; const avgDuration = []; @@ -231,14 +229,14 @@ export class DashboardComponent implements OnInit { }; }); - this.map.draw_dashboard_map(this.station.lat, this.station.lon, 17); - this.map.draw_dashboard_station_marker(this.station.lat, this.station.lon); + this.map.drawDashboardMap(this.station.lat, this.station.lon, 17); + this.map.drawDashboardStationMarker(this.station.lat, this.station.lon); } onSubmit(): void { this.actualStartDate = this.form.get('daterange').value.start; this.actualEndDate = this.form.get('daterange').value.end; - this.service.fetch_dashboard_station_to( + this.service.fetchDashboardStationTo( this.station.id, this.actualStartDate.toISOString().substring(0, 10), this.actualEndDate.toISOString().substring(0, 10) @@ -246,7 +244,7 @@ export class DashboardComponent implements OnInit { this.stationToSource = source; this.changeDetectorRefs.detectChanges(); }); - this.service.fetch_dashboard_station_from( + this.service.fetchDashboardStationFrom( this.station.id, this.actualStartDate.toISOString().substring(0, 10), this.actualEndDate.toISOString().substring(0, 10) @@ -254,7 +252,7 @@ export class DashboardComponent implements OnInit { this.stationFromSource = source; this.changeDetectorRefs.detectChanges(); }); - this.service.fetch_dashboard_station_charts( + this.service.fetchDashboardStationCharts( this.station.id, this.actualStartDate.toISOString().substring(0, 10), this.actualEndDate.toISOString().substring(0, 10), @@ -310,7 +308,7 @@ export class DashboardComponent implements OnInit { } }; }); - this.service.fetch_dashboard_station_charts( + this.service.fetchDashboardStationCharts( this.station.id, this.actualStartDate.toISOString().substring(0, 10), this.actualEndDate.toISOString().substring(0, 10), diff --git a/projects/project-3/frontend/src/app/service/dashboard.service.ts b/projects/project-3/frontend/src/app/service/dashboard.service.ts index 567ac4b..9ae86f1 100644 --- a/projects/project-3/frontend/src/app/service/dashboard.service.ts +++ b/projects/project-3/frontend/src/app/service/dashboard.service.ts @@ -10,23 +10,23 @@ export class DashboardService { constructor(private client: HttpClient) { } - public async fetch_dashboard_init(id: string): Promise { + public async fetchDashboardInit(id: string): Promise { return await this.client.get(environment.apiUrl + `latest/dashboard/${id}/`).toPromise(); } - public async fetch_dashboard_station_to(id: string, startDate: string, endDate: string): Promise { + public async fetchDashboardStationTo(id: string, startDate: string, endDate: string): Promise { return await this.client.get( environment.apiUrl + `latest/dashboard/${id}/to?start_date=${startDate}&end_date=${endDate}` ).toPromise(); } - public async fetch_dashboard_station_from(id: string, startDate: string, endDate: string): Promise { + public async fetchDashboardStationFrom(id: string, startDate: string, endDate: string): Promise { return await this.client.get( environment.apiUrl + `latest/dashboard/${id}/from?start_date=${startDate}&end_date=${endDate}` ).toPromise(); } - public async fetch_dashboard_station_charts(id: string, startDate: string, endDate: string, type: string): Promise { + public async fetchDashboardStationCharts(id: string, startDate: string, endDate: string, type: string): Promise { return await this.client.get( environment.apiUrl + `latest/dashboard/${id}/${type}?start_date=${startDate}&end_date=${endDate}` ).toPromise(); From 59399fcc751b5a72c2e60c906eee1fc24072c4ce Mon Sep 17 00:00:00 2001 From: Tim Herbst Date: Sat, 26 Dec 2020 19:28:28 +0100 Subject: [PATCH 040/104] add final chart for popup-component --- .../src/app/map/pop-up/pop-up.component.html | 42 +++++--- .../src/app/map/pop-up/pop-up.component.scss | 13 ++- .../src/app/map/pop-up/pop-up.component.ts | 95 +++++++++++++++++-- 3 files changed, 123 insertions(+), 27 deletions(-) diff --git a/projects/project-3/frontend/src/app/map/pop-up/pop-up.component.html b/projects/project-3/frontend/src/app/map/pop-up/pop-up.component.html index 3b20d5a..2e0da50 100644 --- a/projects/project-3/frontend/src/app/map/pop-up/pop-up.component.html +++ b/projects/project-3/frontend/src/app/map/pop-up/pop-up.component.html @@ -1,12 +1,30 @@ -{{station.commonName}}
-{{station.status.NbBikes}}
-{{station.status.NbDocks}}
-
- -
- + + + + {{station?.commonName}} + + + +
+ +
+
+ +
+
+ + +
diff --git a/projects/project-3/frontend/src/app/map/pop-up/pop-up.component.scss b/projects/project-3/frontend/src/app/map/pop-up/pop-up.component.scss index 583b745..e1f3364 100644 --- a/projects/project-3/frontend/src/app/map/pop-up/pop-up.component.scss +++ b/projects/project-3/frontend/src/app/map/pop-up/pop-up.component.scss @@ -3,9 +3,12 @@ padding: 0; } -#chart { - padding: 0; - max-width: 400px; - max-height: 400px; - margin: 35px auto; +.mat-card { + width: 30em; +} + +#route-button { + padding: 0 10px; + background-color: #017bfe; + color: white; } diff --git a/projects/project-3/frontend/src/app/map/pop-up/pop-up.component.ts b/projects/project-3/frontend/src/app/map/pop-up/pop-up.component.ts index 81e2469..1c65de9 100644 --- a/projects/project-3/frontend/src/app/map/pop-up/pop-up.component.ts +++ b/projects/project-3/frontend/src/app/map/pop-up/pop-up.component.ts @@ -1,14 +1,33 @@ import {Component, OnInit} from '@angular/core'; import {IMapBikePoint} from '../../service/domain/map-bike-point'; import {Router} from '@angular/router'; - -import {ApexChart, ApexNonAxisChartSeries, ApexPlotOptions} from 'ng-apexcharts'; +import { + ApexAxisChartSeries, + ApexChart, + ApexDataLabels, + ApexFill, + ApexLegend, + ApexPlotOptions, + ApexStroke, + ApexTitleSubtitle, + ApexTooltip, + ApexXAxis, + ApexYAxis +} from 'ng-apexcharts'; export type ChartOptions = { - series: ApexNonAxisChartSeries; + series: ApexAxisChartSeries; chart: ApexChart; - labels: string[]; + colors: string[]; + dataLabels: ApexDataLabels; plotOptions: ApexPlotOptions; + xaxis: ApexXAxis; + yaxis: ApexYAxis; + stroke: ApexStroke; + title: ApexTitleSubtitle; + tooltip: ApexTooltip; + fill: ApexFill; + legend: ApexLegend; }; @@ -25,15 +44,71 @@ export class PopUpComponent implements OnInit { } ngOnInit(): void { - const bikes = Math.round((this.station.status.NbBikes / this.station.status.NbDocks) * 100); + const NbBlockedDocks = this.station.status.NbDocks - this.station.status.NbBikes - this.station.status.NbEmptyDocks; this.chartOptions = { - series: [bikes], + series: [ + { + name: 'Bikes', + data: [this.station.status.NbBikes] + }, + { + name: 'Empty docks', + data: [this.station.status.NbEmptyDocks] + }, + { + name: 'Blocked docks', + data: [NbBlockedDocks] + } + ], + colors: ['#51ca49', '#8f8e8e', '#f00'], chart: { - height: 300, - width: 300, - type: 'radialBar' + type: 'bar', + height: 125, + stacked: true, + toolbar: { + show: false + } }, - labels: ['Availability'] + plotOptions: { + bar: { + horizontal: true + } + }, + stroke: { + show: false + }, + xaxis: { + labels: { + show: false + }, + axisBorder: { + show: false + }, + axisTicks: { + show: false + } + }, + yaxis: { + show: false, + title: { + text: undefined + }, + axisBorder: { + show: false + }, + min: 0, + max: this.station.status.NbDocks + }, + tooltip: { + enabled: false, + }, + fill: { + opacity: 1 + }, + legend: { + position: 'bottom', + horizontalAlign: 'right' + } }; } From 570b397173ba2a584adb5030384d3a65e6ffd864 Mon Sep 17 00:00:00 2001 From: Tim Herbst Date: Sat, 26 Dec 2020 20:23:29 +0100 Subject: [PATCH 041/104] set IMapBikePoint to get status for meta-inf --- .../app/dashboard/dashboard.component.html | 8 +++-- .../src/app/dashboard/dashboard.component.ts | 30 ++++++++++++------- .../src/app/service/dashboard.service.ts | 20 ++++++++----- 3 files changed, 36 insertions(+), 22 deletions(-) diff --git a/projects/project-3/frontend/src/app/dashboard/dashboard.component.html b/projects/project-3/frontend/src/app/dashboard/dashboard.component.html index 595172c..5a35c56 100644 --- a/projects/project-3/frontend/src/app/dashboard/dashboard.component.html +++ b/projects/project-3/frontend/src/app/dashboard/dashboard.component.html @@ -18,7 +18,7 @@
-
+
@@ -45,9 +45,11 @@
- {{station?.commonName}} + {{bikePoint?.commonName}}
- + +

{{bikePoint?.status.NbBikes}}

+
diff --git a/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts b/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts index 0663fc1..8553585 100644 --- a/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts +++ b/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts @@ -21,6 +21,7 @@ import { ApexYAxis, ChartComponent } from 'ng-apexcharts'; +import {IMapBikePoint} from '../service/domain/map-bike-point'; export type ChartOptions = { title: ApexTitleSubtitle @@ -61,6 +62,8 @@ export class DashboardComponent implements OnInit { actualEndDate: Date; form: FormGroup; + bikePoint: IMapBikePoint; + constructor( private route: ActivatedRoute, private service: DashboardService, @@ -95,22 +98,26 @@ export class DashboardComponent implements OnInit { } ngOnInit(): void { - this.service.fetchDashboardInit(this.route.snapshot.paramMap.get('id')).then(data => { - this.station = data; - this.maxStartDate = new Date(data.maxStartDate); - this.maxEndDate = new Date(data.maxEndDate); - this.init_dashboard(); - }); - this.form = this.fb.group({ daterange: new FormGroup({ start: new FormControl(), end: new FormControl() }) }); + + this.service.fetchDashboardInit(this.route.snapshot.paramMap.get('id')).then(data => { + this.station = data; + this.maxStartDate = new Date(data.maxStartDate); + this.maxEndDate = new Date(data.maxEndDate); + this.initDashboard(); + }); + + this.service.fetchBikePointForStatus(this.route.snapshot.paramMap.get('id')).then(data => { + this.bikePoint = data; + }); } - init_dashboard(): void { + initDashboard(): void { const initDate = this.maxEndDate.toISOString().substring(0, 10); this.service.fetchDashboardStationTo(this.station.id, initDate, initDate).then((source) => { this.stationToSource = source; @@ -208,7 +215,8 @@ export class DashboardComponent implements OnInit { }, xaxis: { categories: timeFrame, - tickAmount: 24 + tickAmount: 24, + tickPlacement: 'between' }, yaxis: [{ title: { @@ -228,7 +236,6 @@ export class DashboardComponent implements OnInit { } }; }); - this.map.drawDashboardMap(this.station.lat, this.station.lon, 17); this.map.drawDashboardStationMarker(this.station.lat, this.station.lon); } @@ -350,7 +357,8 @@ export class DashboardComponent implements OnInit { }, xaxis: { categories: timeFrame, - tickAmount: 24 + tickAmount: 24, + tickPlacement: 'between' }, yaxis: [{ title: { diff --git a/projects/project-3/frontend/src/app/service/dashboard.service.ts b/projects/project-3/frontend/src/app/service/dashboard.service.ts index 9ae86f1..047b8da 100644 --- a/projects/project-3/frontend/src/app/service/dashboard.service.ts +++ b/projects/project-3/frontend/src/app/service/dashboard.service.ts @@ -10,24 +10,28 @@ export class DashboardService { constructor(private client: HttpClient) { } - public async fetchDashboardInit(id: string): Promise { - return await this.client.get(environment.apiUrl + `latest/dashboard/${id}/`).toPromise(); + public fetchDashboardInit(id: string): Promise { + return this.client.get(environment.apiUrl + `latest/dashboard/${id}/`).toPromise(); } - public async fetchDashboardStationTo(id: string, startDate: string, endDate: string): Promise { - return await this.client.get( + public fetchBikePointForStatus(id: string): Promise { + return this.client.get(environment.apiUrl + `latest/bikepoints/${id}/`).toPromise(); + } + + public fetchDashboardStationTo(id: string, startDate: string, endDate: string): Promise { + return this.client.get( environment.apiUrl + `latest/dashboard/${id}/to?start_date=${startDate}&end_date=${endDate}` ).toPromise(); } - public async fetchDashboardStationFrom(id: string, startDate: string, endDate: string): Promise { - return await this.client.get( + public fetchDashboardStationFrom(id: string, startDate: string, endDate: string): Promise { + return this.client.get( environment.apiUrl + `latest/dashboard/${id}/from?start_date=${startDate}&end_date=${endDate}` ).toPromise(); } - public async fetchDashboardStationCharts(id: string, startDate: string, endDate: string, type: string): Promise { - return await this.client.get( + public fetchDashboardStationCharts(id: string, startDate: string, endDate: string, type: string): Promise { + return this.client.get( environment.apiUrl + `latest/dashboard/${id}/${type}?start_date=${startDate}&end_date=${endDate}` ).toPromise(); } From 44da56f823fa9d6abb06bb3c13125a925f7ea560 Mon Sep 17 00:00:00 2001 From: Marcel Schwarz Date: Sat, 26 Dec 2020 20:26:23 +0100 Subject: [PATCH 042/104] Add prod flag to ng build in package.json --- projects/project-3/frontend/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/project-3/frontend/package.json b/projects/project-3/frontend/package.json index 32a9baa..8cad135 100644 --- a/projects/project-3/frontend/package.json +++ b/projects/project-3/frontend/package.json @@ -4,7 +4,7 @@ "scripts": { "ng": "ng", "start": "ng serve", - "build": "ng build", + "build": "ng build --prod", "test": "ng test", "lint": "ng lint", "e2e": "ng e2e" From 13f06a0ce58aac2f60bc3d9a207bde2990ba7758 Mon Sep 17 00:00:00 2001 From: Marcel Schwarz Date: Sat, 26 Dec 2020 21:26:29 +0100 Subject: [PATCH 043/104] Possibly fix for heatmap --- .../frontend/src/app/service/map.service.ts | 34 ++++++++++++++++--- 1 file changed, 29 insertions(+), 5 deletions(-) diff --git a/projects/project-3/frontend/src/app/service/map.service.ts b/projects/project-3/frontend/src/app/service/map.service.ts index 29d5f64..b1509af 100644 --- a/projects/project-3/frontend/src/app/service/map.service.ts +++ b/projects/project-3/frontend/src/app/service/map.service.ts @@ -74,17 +74,41 @@ export class MapService { } public drawHeatmap(): void { + // PLS LOOK AT THIS - START const heatPoints = this.bikePoints.map(bikePoint => ({ lat: bikePoint.lat, lon: bikePoint.lon, intensity: this.getIntensity(bikePoint.status) })); - const heatLayer = L.heatLayer(heatPoints, { - max: 1.0, - minOpacity: 0.2, - radius: 100 + + this.mapOverlays.Heatmap = L.heatLayer(heatPoints, { + max: 0.3, + radius: 90 }); - this.mapOverlays.Heatmap = heatLayer; + + const heatPointsBla = this.bikePoints.map(bikePoint => ([ + bikePoint.lat, + bikePoint.lon, + this.getIntensity(bikePoint.status) + ])); + + this.mapOverlays.Heatmap2 = L.heatLayer(heatPointsBla, { + max: 0.3, + radius: 90 + }); + + const heatPointsBla2 = this.bikePoints.map(bikePoint => ([ + bikePoint.lat, + bikePoint.lon, + bikePoint.status.NbBikes + ])); + + this.mapOverlays.Heatmap3 = L.heatLayer(heatPointsBla2, { + max: 5, + radius: 90 + }); + // PLS LOOK AT THIS - END + L.control.layers(null, this.mapOverlays).addTo(this.map); } From f1f82b9dd11e62ad8ecc009071630c3c16fc1a6c Mon Sep 17 00:00:00 2001 From: Tim Herbst Date: Sun, 27 Dec 2020 11:31:03 +0100 Subject: [PATCH 044/104] add routerLink to mat-table to later route to given Station * adjust color to match bootstrap blue --- .../src/app/dashboard/dashboard.component.html | 10 +++++++--- .../src/app/dashboard/dashboard.component.scss | 4 ++++ .../src/app/dashboard/dashboard.component.ts | 13 +++++-------- 3 files changed, 16 insertions(+), 11 deletions(-) diff --git a/projects/project-3/frontend/src/app/dashboard/dashboard.component.html b/projects/project-3/frontend/src/app/dashboard/dashboard.component.html index 5a35c56..11c914f 100644 --- a/projects/project-3/frontend/src/app/dashboard/dashboard.component.html +++ b/projects/project-3/frontend/src/app/dashboard/dashboard.component.html @@ -48,7 +48,7 @@ {{bikePoint?.commonName}} -

{{bikePoint?.status.NbBikes}}

+

{{bikePoint?.status.NbBikes}}

@@ -71,7 +71,8 @@
station of lend origin
- + @@ -92,7 +93,8 @@
station of lend destination {{element.endStationName}} {{element.endStationName}}
- + @@ -121,6 +123,7 @@
Date: Sun, 27 Dec 2020 11:44:34 +0100 Subject: [PATCH 045/104] change dashboard user-input alignment --- .../app/dashboard/dashboard.component.html | 70 ++++++++++--------- .../app/dashboard/dashboard.component.scss | 2 + .../src/app/dashboard/dashboard.component.ts | 2 + 3 files changed, 41 insertions(+), 33 deletions(-) diff --git a/projects/project-3/frontend/src/app/dashboard/dashboard.component.html b/projects/project-3/frontend/src/app/dashboard/dashboard.component.html index 11c914f..736ad2a 100644 --- a/projects/project-3/frontend/src/app/dashboard/dashboard.component.html +++ b/projects/project-3/frontend/src/app/dashboard/dashboard.component.html @@ -18,39 +18,43 @@
-
- - - - - Enter a range - - - - - - - - -
- -
-
-
-
- - -
- {{bikePoint?.commonName}} -
- -

{{bikePoint?.status.NbBikes}}

-
-
+
+
+
+ + +
+ {{bikePoint?.commonName}} +
+ +

{{bikePoint?.status.NbBikes}}

+
+
+
+
+ + +
+ + Enter a range + + + + + + + + +
+ +
+
+
+
diff --git a/projects/project-3/frontend/src/app/dashboard/dashboard.component.scss b/projects/project-3/frontend/src/app/dashboard/dashboard.component.scss index 2e06df3..ac8afd9 100644 --- a/projects/project-3/frontend/src/app/dashboard/dashboard.component.scss +++ b/projects/project-3/frontend/src/app/dashboard/dashboard.component.scss @@ -24,6 +24,8 @@ a { .datepicker { margin-top: 2em; + margin-left: 1em; + margin-right: 1em } .submit-date { diff --git a/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts b/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts index 7191ebe..a7e698d 100644 --- a/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts +++ b/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts @@ -140,6 +140,7 @@ export class DashboardComponent implements OnInit { type: 'bar', height: chartHeight }, + colors: ['#017bfe'], plotOptions: { bar: { horizontal: false, @@ -202,6 +203,7 @@ export class DashboardComponent implements OnInit { enabled: true } }, + colors: ['#017bfe', '#51ca49'], dataLabels: { enabled: false }, From 5358bb21db45f1f3edf9bebe364957ea8b712fdc Mon Sep 17 00:00:00 2001 From: Tim Herbst Date: Sun, 27 Dec 2020 13:59:09 +0100 Subject: [PATCH 046/104] add Chart for Availability to Dashboard --- .../app/dashboard/dashboard.component.html | 29 +++++-- .../src/app/dashboard/dashboard.component.ts | 87 +++++++++++++++++++ 2 files changed, 109 insertions(+), 7 deletions(-) diff --git a/projects/project-3/frontend/src/app/dashboard/dashboard.component.html b/projects/project-3/frontend/src/app/dashboard/dashboard.component.html index 736ad2a..acb397a 100644 --- a/projects/project-3/frontend/src/app/dashboard/dashboard.component.html +++ b/projects/project-3/frontend/src/app/dashboard/dashboard.component.html @@ -18,16 +18,33 @@
-
+
-
+
{{bikePoint?.commonName}}
-

{{bikePoint?.status.NbBikes}}

+
+
+ +
+
@@ -65,8 +82,6 @@
- -
@@ -76,7 +91,7 @@
+ [routerLink]="['/dashboard/', element.id]">{{element.endStationName}} @@ -98,7 +113,7 @@ + [routerLink]="['/dashboard/', element.id]"> {{element.startStationName}} diff --git a/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts b/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts index a7e698d..a1faa14 100644 --- a/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts +++ b/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts @@ -51,6 +51,7 @@ export class DashboardComponent implements OnInit { @ViewChild('Station-Dashboard-Borrow-Duration') chart: ChartComponent; public durationChartOptions: Partial; public timeChartOptions: Partial; + public bikePointChartOptions: Partial; displayedColumnsTo: string[] = ['endStationName', 'number', 'avgDuration']; displayedColumnsFrom: string[] = ['startStationName', 'number', 'avgDuration']; stationToSource = new MatTableDataSource(); @@ -90,6 +91,15 @@ export class DashboardComponent implements OnInit { text: 'Loading...' } }; + this.bikePointChartOptions = { + series: [], + chart: { + type: 'bar' + }, + noData: { + text: 'Loading...' + } + }; } ngOnInit(): void { @@ -109,6 +119,83 @@ export class DashboardComponent implements OnInit { this.service.fetchBikePointForStatus(this.route.snapshot.paramMap.get('id')).then(data => { this.bikePoint = data; + const NbBlockedDocks = data.status.NbDocks - data.status.NbBikes - data.status.NbEmptyDocks; + this.bikePointChartOptions = { + series: [ + { + name: 'Bikes', + data: [data.status.NbBikes] + }, + { + name: 'Empty docks', + data: [data.status.NbEmptyDocks] + }, + { + name: 'Blocked docks', + data: [NbBlockedDocks] + } + ], + colors: ['#51ca49', '#8f8e8e', '#f00'], + chart: { + type: 'bar', + height: 180, + stacked: true, + toolbar: { + show: false + } + }, + plotOptions: { + bar: { + horizontal: true, + dataLabels: { + position: 'center' + } + } + }, + dataLabels: { + enabled: true, + style: { + fontSize: '20px', + colors: ['#fff'] + } + }, + stroke: { + show: false + }, + xaxis: { + labels: { + show: false + }, + axisBorder: { + show: false + }, + axisTicks: { + show: false + } + }, + yaxis: { + show: false, + title: { + text: undefined + }, + axisBorder: { + show: false + }, + min: 0, + max: data.status.NbDocks + }, + tooltip: { + enabled: false, + }, + fill: { + opacity: 1 + }, + legend: { + position: 'bottom', + horizontalAlign: 'right', + fontSize: '14px' + } + }; }); } From 4503274a2e5a07ce4baa5aa26f5ac32ce7ba9f06 Mon Sep 17 00:00:00 2001 From: Tim Herbst Date: Sun, 27 Dec 2020 14:10:47 +0100 Subject: [PATCH 047/104] add new theme.scss to make design like one pour --- projects/project-3/frontend/angular.json | 6 +- projects/project-3/frontend/src/theme.scss | 246 +++++++++++++++++++++ 2 files changed, 250 insertions(+), 2 deletions(-) create mode 100644 projects/project-3/frontend/src/theme.scss diff --git a/projects/project-3/frontend/angular.json b/projects/project-3/frontend/angular.json index f8f4677..e4905a7 100644 --- a/projects/project-3/frontend/angular.json +++ b/projects/project-3/frontend/angular.json @@ -29,7 +29,8 @@ ], "styles": [ "./node_modules/@angular/material/prebuilt-themes/purple-green.css", - "src/styles.scss" + "src/styles.scss", + "src/theme.scss" ], "scripts": [] }, @@ -99,7 +100,8 @@ ], "styles": [ "./node_modules/@angular/material/prebuilt-themes/purple-green.css", - "src/styles.scss" + "src/styles.scss", + "src/theme.scss" ], "scripts": [] } diff --git a/projects/project-3/frontend/src/theme.scss b/projects/project-3/frontend/src/theme.scss new file mode 100644 index 0000000..3e8b0af --- /dev/null +++ b/projects/project-3/frontend/src/theme.scss @@ -0,0 +1,246 @@ +/** +* Generated theme by Material Theme Generator +* https://materialtheme.arcsine.dev +*/ + +@import '~@angular/material/theming'; +// Include the common styles for Angular Material. We include this here so that you only +// have to load a single css file for Angular Material in your app. + +// Fonts +@import 'https://fonts.googleapis.com/css?family=Material+Icons'; +@import url('https://fonts.googleapis.com/css?family=Roboto:300,400,500'); + +$fontConfig: ( + display-4: mat-typography-level(112px, 112px, 300, 'Roboto', -0.0134em), + display-3: mat-typography-level(56px, 56px, 400, 'Roboto', -0.0089em), + display-2: mat-typography-level(45px, 48px, 400, 'Roboto', 0.0000em), + display-1: mat-typography-level(34px, 40px, 400, 'Roboto', 0.0074em), + headline: mat-typography-level(24px, 32px, 400, 'Roboto', 0.0000em), + title: mat-typography-level(20px, 32px, 500, 'Roboto', 0.0075em), + subheading-2: mat-typography-level(16px, 28px, 400, 'Roboto', 0.0094em), + subheading-1: mat-typography-level(15px, 24px, 500, 'Roboto', 0.0067em), + body-2: mat-typography-level(14px, 24px, 500, 'Roboto', 0.0179em), + body-1: mat-typography-level(14px, 20px, 400, 'Roboto', 0.0179em), + button: mat-typography-level(14px, 14px, 500, 'Roboto', 0.0893em), + caption: mat-typography-level(12px, 20px, 400, 'Roboto', 0.0333em), + input: mat-typography-level(inherit, 1.125, 400, 'Roboto', 1.5px) +); + +// Foreground Elements + +// Light Theme Text +$dark-text: #000000; +$dark-primary-text: rgba($dark-text, 0.87); +$dark-accent-text: rgba($dark-primary-text, 0.54); +$dark-disabled-text: rgba($dark-primary-text, 0.38); +$dark-dividers: rgba($dark-primary-text, 0.12); +$dark-focused: rgba($dark-primary-text, 0.12); + +$mat-light-theme-foreground: ( + base: black, + divider: $dark-dividers, + dividers: $dark-dividers, + disabled: $dark-disabled-text, + disabled-button: rgba($dark-text, 0.26), + disabled-text: $dark-disabled-text, + elevation: black, + secondary-text: $dark-accent-text, + hint-text: $dark-disabled-text, + accent-text: $dark-accent-text, + icon: $dark-accent-text, + icons: $dark-accent-text, + text: $dark-primary-text, + slider-min: $dark-primary-text, + slider-off: rgba($dark-text, 0.26), + slider-off-active: $dark-disabled-text, +); + +// Dark Theme text +$light-text: #ffffff; +$light-primary-text: $light-text; +$light-accent-text: rgba($light-primary-text, 0.7); +$light-disabled-text: rgba($light-primary-text, 0.5); +$light-dividers: rgba($light-primary-text, 0.12); +$light-focused: rgba($light-primary-text, 0.12); + +$mat-dark-theme-foreground: ( + base: $light-text, + divider: $light-dividers, + dividers: $light-dividers, + disabled: $light-disabled-text, + disabled-button: rgba($light-text, 0.3), + disabled-text: $light-disabled-text, + elevation: black, + hint-text: $light-disabled-text, + secondary-text: $light-accent-text, + accent-text: $light-accent-text, + icon: $light-text, + icons: $light-text, + text: $light-text, + slider-min: $light-text, + slider-off: rgba($light-text, 0.3), + slider-off-active: rgba($light-text, 0.3), +); + +// Background config +// Light bg +$light-background: #fafafa; +$light-bg-darker-5: darken($light-background, 5%); +$light-bg-darker-10: darken($light-background, 10%); +$light-bg-darker-20: darken($light-background, 20%); +$light-bg-darker-30: darken($light-background, 30%); +$light-bg-lighter-5: lighten($light-background, 5%); +$dark-bg-tooltip: lighten(#2c2c2c, 20%); +$dark-bg-alpha-4: rgba(#2c2c2c, 0.04); +$dark-bg-alpha-12: rgba(#2c2c2c, 0.12); + +$mat-light-theme-background: ( + background: $light-background, + status-bar: $light-bg-darker-20, + app-bar: $light-bg-darker-5, + hover: $dark-bg-alpha-4, + card: $light-bg-lighter-5, + dialog: $light-bg-lighter-5, + tooltip: $dark-bg-tooltip, + disabled-button: $dark-bg-alpha-12, + raised-button: $light-bg-lighter-5, + focused-button: $dark-focused, + selected-button: $light-bg-darker-20, + selected-disabled-button: $light-bg-darker-30, + disabled-button-toggle: $light-bg-darker-10, + unselected-chip: $light-bg-darker-10, + disabled-list-option: $light-bg-darker-10, +); + +// Dark bg +$dark-background: #2c2c2c; +$dark-bg-lighter-5: lighten($dark-background, 5%); +$dark-bg-lighter-10: lighten($dark-background, 10%); +$dark-bg-lighter-20: lighten($dark-background, 20%); +$dark-bg-lighter-30: lighten($dark-background, 30%); +$light-bg-alpha-4: rgba(#fafafa, 0.04); +$light-bg-alpha-12: rgba(#fafafa, 0.12); + +// Background palette for dark themes. +$mat-dark-theme-background: ( + background: $dark-background, + status-bar: $dark-bg-lighter-20, + app-bar: $dark-bg-lighter-5, + hover: $light-bg-alpha-4, + card: $dark-bg-lighter-5, + dialog: $dark-bg-lighter-5, + tooltip: $dark-bg-lighter-20, + disabled-button: $light-bg-alpha-12, + raised-button: $dark-bg-lighter-5, + focused-button: $light-focused, + selected-button: $dark-bg-lighter-20, + selected-disabled-button: $dark-bg-lighter-30, + disabled-button-toggle: $dark-bg-lighter-10, + unselected-chip: $dark-bg-lighter-20, + disabled-list-option: $dark-bg-lighter-10, +); + +// Compute font config +@include mat-core($fontConfig); + +// Theme Config + +body { + --primary-color: #017bfe; + --primary-lighter-color: #b3d7ff; + --primary-darker-color: #015efe; + --text-primary-color: #{$light-primary-text}; + --text-primary-lighter-color: #{$dark-primary-text}; + --text-primary-darker-color: #{$light-primary-text}; +} + +$mat-primary: ( + main: #017bfe, + lighter: #b3d7ff, + darker: #015efe, + 200: #017bfe, // For slide toggle, + contrast : ( + main: $light-primary-text, + lighter: $dark-primary-text, + darker: $light-primary-text, + ) +); +$theme-primary: mat-palette($mat-primary, main, lighter, darker); + +body { + --accent-color: #797979; + --accent-lighter-color: #d7d7d7; + --accent-darker-color: #5c5c5c; + --text-accent-color: #{$light-primary-text}; + --text-accent-lighter-color: #{$dark-primary-text}; + --text-accent-darker-color: #{$light-primary-text}; +} + +$mat-accent: ( + main: #797979, + lighter: #d7d7d7, + darker: #5c5c5c, + 200: #797979, // For slide toggle, + contrast : ( + main: $light-primary-text, + lighter: $dark-primary-text, + darker: $light-primary-text, + ) +); +$theme-accent: mat-palette($mat-accent, main, lighter, darker); + +body { + --warn-color: #ff0000; + --warn-lighter-color: #ffb3b3; + --warn-darker-color: #ff0000; + --text-warn-color: #{$light-primary-text}; + --text-warn-lighter-color: #{$dark-primary-text}; + --text-warn-darker-color: #{$light-primary-text}; +} + +$mat-warn: ( + main: #ff0000, + lighter: #ffb3b3, + darker: #ff0000, + 200: #ff0000, // For slide toggle, + contrast : ( + main: $light-primary-text, + lighter: $dark-primary-text, + darker: $light-primary-text, + ) +); +$theme-warn: mat-palette($mat-warn, main, lighter, darker);; + +$theme: mat-light-theme($theme-primary, $theme-accent, $theme-warn); +$altTheme: mat-dark-theme($theme-primary, $theme-accent, $theme-warn); + +// Theme Init +@include angular-material-theme($theme); + +.theme-alternate { + @include angular-material-theme($altTheme); +} + +// Specific component overrides, pieces that are not in line with the general theming + +// Handle buttons appropriately, with respect to line-height +.mat-raised-button, .mat-stroked-button, .mat-flat-button { + padding: 0 1.15em; + margin: 0 .65em; + min-width: 3em; + line-height: 36.4px +} + +.mat-standard-chip { + padding: .5em .85em; + min-height: 2.5em; +} + +.material-icons { + font-size: 24px; + font-family: 'Material Icons', 'Material Icons'; + .mat-badge-content { + font-family: 'Roboto'; + } +} From cff34ac31d742fe0d71904c9a4a8749a19c5d492 Mon Sep 17 00:00:00 2001 From: Tim Herbst Date: Sun, 27 Dec 2020 14:20:14 +0100 Subject: [PATCH 048/104] replace marker-asset to match color-theme --- .../frontend/src/app/service/map.service.ts | 6 +++--- .../frontend/src/assets/bike-point.png | Bin 33334 -> 10575 bytes 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/projects/project-3/frontend/src/app/service/map.service.ts b/projects/project-3/frontend/src/app/service/map.service.ts index b1509af..c9ab6ef 100644 --- a/projects/project-3/frontend/src/app/service/map.service.ts +++ b/projects/project-3/frontend/src/app/service/map.service.ts @@ -10,9 +10,9 @@ import {BikePointStatus, IMapBikePoint} from './domain/map-bike-point'; const createIcon = L.icon({ iconUrl: '../../assets/bike-point.png', - iconSize: [40, 40], - iconAnchor: [18, 40], - popupAnchor: [0, -39] + iconSize: [45, 45], + iconAnchor: [21, 40], + popupAnchor: [1, -35] }); @Injectable({ diff --git a/projects/project-3/frontend/src/assets/bike-point.png b/projects/project-3/frontend/src/assets/bike-point.png index 94ba92fa765126c145916123be8226dc8b96c1f5..7cc26618bb0f3eaab18fb4c9eecaf70b5043adf4 100644 GIT binary patch literal 10575 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¥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 literal 33334 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 Date: Sun, 27 Dec 2020 15:25:07 +0100 Subject: [PATCH 049/104] add accidents layer with clustering --- .../app/dashboard/dashboard.component.scss | 2 +- .../frontend/src/app/map/map.component.scss | 4 + .../frontend/src/app/map/map.component.ts | 3 +- .../frontend/src/app/service/map.service.ts | 85 +++++++++++-------- 4 files changed, 57 insertions(+), 37 deletions(-) diff --git a/projects/project-3/frontend/src/app/dashboard/dashboard.component.scss b/projects/project-3/frontend/src/app/dashboard/dashboard.component.scss index ac8afd9..d078d2f 100644 --- a/projects/project-3/frontend/src/app/dashboard/dashboard.component.scss +++ b/projects/project-3/frontend/src/app/dashboard/dashboard.component.scss @@ -11,7 +11,7 @@ a { } .button-back:hover, .button-wiki:hover { - background: #5a34a0; + background: #086ed2; } #submit-date-span { diff --git a/projects/project-3/frontend/src/app/map/map.component.scss b/projects/project-3/frontend/src/app/map/map.component.scss index 650c573..ccfddca 100644 --- a/projects/project-3/frontend/src/app/map/map.component.scss +++ b/projects/project-3/frontend/src/app/map/map.component.scss @@ -8,6 +8,10 @@ flex: 1 1 auto; } +.button-wiki:hover { + background: #086ed2; +} + .map-container { height: 95%; } diff --git a/projects/project-3/frontend/src/app/map/map.component.ts b/projects/project-3/frontend/src/app/map/map.component.ts index 255dae7..68b7d60 100644 --- a/projects/project-3/frontend/src/app/map/map.component.ts +++ b/projects/project-3/frontend/src/app/map/map.component.ts @@ -17,7 +17,8 @@ export class MapComponent implements OnInit { async initMapView(): Promise { this.service.initMap(51.509865, -0.118092, 14); - await this.service.makeStationMarkers(); + await this.service.drawStationMarkers(); this.service.drawHeatmap(); + this.service.drawAccidents(); } } diff --git a/projects/project-3/frontend/src/app/service/map.service.ts b/projects/project-3/frontend/src/app/service/map.service.ts index c9ab6ef..324be31 100644 --- a/projects/project-3/frontend/src/app/service/map.service.ts +++ b/projects/project-3/frontend/src/app/service/map.service.ts @@ -5,7 +5,7 @@ import 'leaflet.heat/dist/leaflet-heat'; import {HttpClient} from '@angular/common/http'; import {environment} from '../../environments/environment'; import {PopUpService} from './pop-up.service'; -import {BikePointStatus, IMapBikePoint} from './domain/map-bike-point'; +import {IMapBikePoint} from './domain/map-bike-point'; const createIcon = L.icon({ @@ -36,7 +36,8 @@ export class MapService { this.map.addLayer(new L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { attribution: 'Map data OpenStreetMap contributors', minZoom: 0, - maxZoom: 19 + maxZoom: 19, + preferCanvas: true })); } @@ -49,8 +50,8 @@ export class MapService { })); } - public makeStationMarkers(): Promise { - return this.fetchStationGeoData().then((data) => { + public drawStationMarkers(): Promise { + return this.fetchBikePointGeoData().then((data) => { this.bikePoints = data; const markerClusters = L.markerClusterGroup({ spiderflyOnMaxZoom: true, @@ -74,54 +75,68 @@ export class MapService { } public drawHeatmap(): void { - // PLS LOOK AT THIS - START - const heatPoints = this.bikePoints.map(bikePoint => ({ - lat: bikePoint.lat, - lon: bikePoint.lon, - intensity: this.getIntensity(bikePoint.status) - })); - - this.mapOverlays.Heatmap = L.heatLayer(heatPoints, { - max: 0.3, - radius: 90 - }); - - const heatPointsBla = this.bikePoints.map(bikePoint => ([ - bikePoint.lat, - bikePoint.lon, - this.getIntensity(bikePoint.status) - ])); - - this.mapOverlays.Heatmap2 = L.heatLayer(heatPointsBla, { - max: 0.3, - radius: 90 - }); - - const heatPointsBla2 = this.bikePoints.map(bikePoint => ([ + const heatPoints = this.bikePoints.map(bikePoint => ([ bikePoint.lat, bikePoint.lon, bikePoint.status.NbBikes ])); - this.mapOverlays.Heatmap3 = L.heatLayer(heatPointsBla2, { + this.mapOverlays.Heatmap = L.heatLayer(heatPoints, { max: 5, radius: 90 }); - // PLS LOOK AT THIS - END + } - L.control.layers(null, this.mapOverlays).addTo(this.map); + public drawAccidents(): void { + this.fetchAccidentGeoData().then(data => { + const accidents = []; + const myRenderer = L.canvas({padding: 0.5}); + const accidentCluster = L.markerClusterGroup({ + spiderflyOnMaxZoom: true, + showCoverageOnHover: true, + zoomToBoundsOnClick: true + }); + for (const accident of data) { + const severityColor = this.getAccidentColor(accident.severity); + const accidentMarker = L.circle([accident.lat, accident.lon], { + renderer: myRenderer, + color: severityColor, + fillColor: severityColor, + fillOpacity: 0.5, + radis: 25 + }); + accidentCluster.addLayer(accidentMarker); + } + this.mapOverlays.Accidents = accidentCluster; + this.drawMapControl(); + }); + } + + public getAccidentColor(severity: string): string { + switch (severity) { + case 'Slight': + return 'yellow'; + case 'Serious': + return 'orange'; + case 'Fatal': + return 'red'; + } } public drawDashboardStationMarker(lat: number, lon: number): void { L.marker([lat, lon], {icon: createIcon}).addTo(this.miniMap); } - private getIntensity(status: BikePointStatus): number { - const percentage = Math.round((status.NbBikes / status.NbDocks) * 100); - return (percentage / 100); + private drawMapControl(): void { + L.control.layers(null, this.mapOverlays, {position: 'bottomright'}).addTo(this.map); + L.control.scale({position: 'bottomleft'}).addTo(this.map); } - private fetchStationGeoData(): Promise { + private fetchBikePointGeoData(): Promise { return this.client.get(environment.apiUrl + 'latest/bikepoints/').toPromise(); } + + private fetchAccidentGeoData(): Promise { + return this.client.get(environment.apiUrl + 'latest/accidents/').toPromise(); + } } From b4848577460721504bd0f17860baefa4d6c3060e Mon Sep 17 00:00:00 2001 From: Tim Herbst Date: Sun, 27 Dec 2020 15:35:13 +0100 Subject: [PATCH 050/104] rename funcs for better understanding --- .../frontend/src/app/dashboard/dashboard.component.ts | 2 +- projects/project-3/frontend/src/app/service/map.service.ts | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts b/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts index a1faa14..1c97bdf 100644 --- a/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts +++ b/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts @@ -320,7 +320,7 @@ export class DashboardComponent implements OnInit { } }; }); - this.map.drawDashboardMap(this.station.lat, this.station.lon, 17); + this.map.initDashboardMap(this.station.lat, this.station.lon, 17); this.map.drawDashboardStationMarker(this.station.lat, this.station.lon); } diff --git a/projects/project-3/frontend/src/app/service/map.service.ts b/projects/project-3/frontend/src/app/service/map.service.ts index 324be31..26738d7 100644 --- a/projects/project-3/frontend/src/app/service/map.service.ts +++ b/projects/project-3/frontend/src/app/service/map.service.ts @@ -41,7 +41,7 @@ export class MapService { })); } - public drawDashboardMap(lat: number, lon: number, zoom: number): void { + public initDashboardMap(lat: number, lon: number, zoom: number): void { this.miniMap = L.map('minimap').setView([lat, lon], zoom); this.miniMap.addLayer(new L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { attribution: 'Map data OpenStreetMap contributors', @@ -89,7 +89,6 @@ export class MapService { public drawAccidents(): void { this.fetchAccidentGeoData().then(data => { - const accidents = []; const myRenderer = L.canvas({padding: 0.5}); const accidentCluster = L.markerClusterGroup({ spiderflyOnMaxZoom: true, From 9afb135d9162f956a62e3fbb9182ae1e8e5a8c2b Mon Sep 17 00:00:00 2001 From: Tim Herbst Date: Sun, 27 Dec 2020 15:46:43 +0100 Subject: [PATCH 051/104] add panTo-method to center view on marker-click --- .../project-3/frontend/src/app/service/map.service.ts | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/projects/project-3/frontend/src/app/service/map.service.ts b/projects/project-3/frontend/src/app/service/map.service.ts index 26738d7..d49ed23 100644 --- a/projects/project-3/frontend/src/app/service/map.service.ts +++ b/projects/project-3/frontend/src/app/service/map.service.ts @@ -63,10 +63,11 @@ export class MapService { for (const station of data) { const marker = L.marker([station.lat, station.lon], {icon: createIcon}); markerClusters.addLayer(marker); - marker.on('click', e => e.target - .bindPopup(this.popUpService.makeAvailabilityPopUp(station), {maxWidth: 'auto'}) - .openPopup() - ); + marker.on('click', e => { + e.target.bindPopup(this.popUpService.makeAvailabilityPopUp(station), {maxWidth: 'auto'}) + .openPopup(); + this.map.panTo(e.target.getLatLng()); + }); marker.on('popupclose', e => e.target.unbindPopup()); } }).catch((error) => { From 46c5d2192af79daf2e0ea6b231e6c36fbc622d9a Mon Sep 17 00:00:00 2001 From: Tim Herbst Date: Sun, 27 Dec 2020 17:47:04 +0100 Subject: [PATCH 052/104] correct api-call for accidents * possible map-fix with height/width * adjust flex-layout dependency --- projects/project-3/frontend/package-lock.json | 6 +++--- projects/project-3/frontend/package.json | 2 +- .../frontend/src/app/dashboard/dashboard.component.scss | 4 ++++ projects/project-3/frontend/src/app/map/map.component.scss | 3 +-- projects/project-3/frontend/src/app/service/map.service.ts | 2 +- 5 files changed, 10 insertions(+), 7 deletions(-) diff --git a/projects/project-3/frontend/package-lock.json b/projects/project-3/frontend/package-lock.json index 3c34130..6565771 100644 --- a/projects/project-3/frontend/package-lock.json +++ b/projects/project-3/frontend/package-lock.json @@ -481,9 +481,9 @@ } }, "@angular/flex-layout": { - "version": "11.0.0-beta.33", - "resolved": "https://registry.npmjs.org/@angular/flex-layout/-/flex-layout-11.0.0-beta.33.tgz", - "integrity": "sha512-unfhw3abZuKtdwQicRStHCYGbANPTHYg4WNRQk/RC5Mxq+4WOp4Q8HI7GqRHCGUYDCGUP7w1sU/oDt8f09nM8w==", + "version": "10.0.0-beta.32", + "resolved": "https://registry.npmjs.org/@angular/flex-layout/-/flex-layout-10.0.0-beta.32.tgz", + "integrity": "sha512-JvuY4dUoy5jyCTIrFiq7n30Znakh1pD3nbg0h0hs2r3t1OiDQb0ZSI1wcumosG/vYHsuJQTuNhbfaIZzA1x8nA==", "requires": { "tslib": "^2.0.0" } diff --git a/projects/project-3/frontend/package.json b/projects/project-3/frontend/package.json index 8cad135..52b0abd 100644 --- a/projects/project-3/frontend/package.json +++ b/projects/project-3/frontend/package.json @@ -16,7 +16,7 @@ "@angular/common": "~10.2.0", "@angular/compiler": "~10.2.0", "@angular/core": "~10.2.0", - "@angular/flex-layout": "^11.0.0-beta.33", + "@angular/flex-layout": "^10.0.0-beta.32", "@angular/forms": "~10.2.0", "@angular/material": "^10.2.7", "@angular/platform-browser": "~10.2.0", diff --git a/projects/project-3/frontend/src/app/dashboard/dashboard.component.scss b/projects/project-3/frontend/src/app/dashboard/dashboard.component.scss index d078d2f..ee6593f 100644 --- a/projects/project-3/frontend/src/app/dashboard/dashboard.component.scss +++ b/projects/project-3/frontend/src/app/dashboard/dashboard.component.scss @@ -14,6 +14,10 @@ a { background: #086ed2; } +#chart { + margin-right: 16px; +} + #submit-date-span { padding: 10px; } diff --git a/projects/project-3/frontend/src/app/map/map.component.scss b/projects/project-3/frontend/src/app/map/map.component.scss index ccfddca..857c089 100644 --- a/projects/project-3/frontend/src/app/map/map.component.scss +++ b/projects/project-3/frontend/src/app/map/map.component.scss @@ -1,7 +1,6 @@ .myApp { margin: 0; - height: 100vh; - width: 100vw; + height: 100%; } .toolbar-spacer { diff --git a/projects/project-3/frontend/src/app/service/map.service.ts b/projects/project-3/frontend/src/app/service/map.service.ts index d49ed23..c8a85fb 100644 --- a/projects/project-3/frontend/src/app/service/map.service.ts +++ b/projects/project-3/frontend/src/app/service/map.service.ts @@ -137,6 +137,6 @@ export class MapService { } private fetchAccidentGeoData(): Promise { - return this.client.get(environment.apiUrl + 'latest/accidents/').toPromise(); + return this.client.get(environment.apiUrl + 'latest/accidents/2019').toPromise(); } } From 3b0889862c095b742e6ac5321a3fb826240433e2 Mon Sep 17 00:00:00 2001 From: Tim Herbst Date: Sun, 27 Dec 2020 20:19:46 +0100 Subject: [PATCH 053/104] adjust drawAccidents to display accidents without clustering --- .../frontend/src/app/service/map.service.ts | 12 ++++-------- projects/project-3/frontend/src/styles.css | 11 ----------- projects/project-3/frontend/src/styles.css.map | 1 - projects/project-3/frontend/src/styles.scss | 1 - 4 files changed, 4 insertions(+), 21 deletions(-) delete mode 100644 projects/project-3/frontend/src/styles.css delete mode 100644 projects/project-3/frontend/src/styles.css.map diff --git a/projects/project-3/frontend/src/app/service/map.service.ts b/projects/project-3/frontend/src/app/service/map.service.ts index c8a85fb..9422ba6 100644 --- a/projects/project-3/frontend/src/app/service/map.service.ts +++ b/projects/project-3/frontend/src/app/service/map.service.ts @@ -91,11 +91,7 @@ export class MapService { public drawAccidents(): void { this.fetchAccidentGeoData().then(data => { const myRenderer = L.canvas({padding: 0.5}); - const accidentCluster = L.markerClusterGroup({ - spiderflyOnMaxZoom: true, - showCoverageOnHover: true, - zoomToBoundsOnClick: true - }); + const accidents = []; for (const accident of data) { const severityColor = this.getAccidentColor(accident.severity); const accidentMarker = L.circle([accident.lat, accident.lon], { @@ -103,11 +99,11 @@ export class MapService { color: severityColor, fillColor: severityColor, fillOpacity: 0.5, - radis: 25 + radius: 30 }); - accidentCluster.addLayer(accidentMarker); + accidents.push(accidentMarker); } - this.mapOverlays.Accidents = accidentCluster; + this.mapOverlays.Accidents = L.layerGroup(accidents); this.drawMapControl(); }); } diff --git a/projects/project-3/frontend/src/styles.css b/projects/project-3/frontend/src/styles.css deleted file mode 100644 index a2ae038..0000000 --- a/projects/project-3/frontend/src/styles.css +++ /dev/null @@ -1,11 +0,0 @@ -@import "~leaflet/dist/leaflet.css"; -html, body { - height: 100%; -} - -body { - margin: 0; - font-family: Roboto, "Helvetica Neue", sans-serif; -} - -/*# sourceMappingURL=styles.css.map */ diff --git a/projects/project-3/frontend/src/styles.css.map b/projects/project-3/frontend/src/styles.css.map deleted file mode 100644 index 4cd67a6..0000000 --- a/projects/project-3/frontend/src/styles.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sourceRoot":"","sources":["styles.scss"],"names":[],"mappings":"AASQ;AATR;EACE;;;AAGF;EACE;EACA","file":"styles.css"} \ No newline at end of file diff --git a/projects/project-3/frontend/src/styles.scss b/projects/project-3/frontend/src/styles.scss index de7754d..d528429 100644 --- a/projects/project-3/frontend/src/styles.scss +++ b/projects/project-3/frontend/src/styles.scss @@ -7,7 +7,6 @@ body { font-family: Roboto, "Helvetica Neue", sans-serif; } -@import '@angular/material/prebuilt-themes/deeppurple-amber.css'; @import "~leaflet/dist/leaflet.css"; @import "~leaflet.markercluster/dist/MarkerCluster.css"; @import "~leaflet.markercluster/dist/MarkerCluster.Default.css"; From 42735b4c9028e84040c8638726b149257b7d2fde Mon Sep 17 00:00:00 2001 From: Tim Herbst Date: Sun, 27 Dec 2020 20:25:06 +0100 Subject: [PATCH 054/104] update peer-dependencies to get rid of warnings --- projects/project-3/frontend/angular.json | 3 +++ projects/project-3/frontend/package-lock.json | 17 +++++++++++------ projects/project-3/frontend/package.json | 5 +++-- 3 files changed, 17 insertions(+), 8 deletions(-) diff --git a/projects/project-3/frontend/angular.json b/projects/project-3/frontend/angular.json index e4905a7..eb25a50 100644 --- a/projects/project-3/frontend/angular.json +++ b/projects/project-3/frontend/angular.json @@ -18,6 +18,9 @@ "builder": "@angular-devkit/build-angular:browser", "options": { "outputPath": "dist/frontend", + "allowedCommonJsDependencies": [ + "apexcharts" + ], "index": "src/index.html", "main": "src/main.ts", "polyfills": "src/polyfills.ts", diff --git a/projects/project-3/frontend/package-lock.json b/projects/project-3/frontend/package-lock.json index 6565771..484f971 100644 --- a/projects/project-3/frontend/package-lock.json +++ b/projects/project-3/frontend/package-lock.json @@ -2688,9 +2688,9 @@ "dev": true }, "bootstrap": { - "version": "4.5.3", - "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.5.3.tgz", - "integrity": "sha512-o9ppKQioXGqhw8Z7mah6KdTYpNQY//tipnkxppWhPbiSWdD+1raYsnhwEZjkTHYbGee4cVQ0Rx65EhOY/HNLcQ==" + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-3.4.1.tgz", + "integrity": "sha512-yN5oZVmRCwe5aKwzRj6736nSmKDX7pLYwsXiCj/EYmo16hODaBiT4En5btW/jhBF/seV+XMx3aYwukYC3A49DA==" }, "brace-expansion": { "version": "1.1.11", @@ -7125,9 +7125,9 @@ "dev": true }, "leaflet": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/leaflet/-/leaflet-1.7.1.tgz", - "integrity": "sha512-/xwPEBidtg69Q3HlqPdU3DnrXQOvQU/CCHA1tcDQVzOwm91YMYaILjNp7L4Eaw5Z4sOYdbBz6koWyibppd8Zqw==" + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/leaflet/-/leaflet-1.3.4.tgz", + "integrity": "sha512-FYL1LGFdj6v+2Ifpw+AcFIuIOqjNggfoLUwuwQv6+3sS21Za7Wvapq+LhbSE4NDXrEj6eYnW3y7LsaBICpyXtw==" }, "leaflet.heat": { "version": "0.2.0", @@ -8923,6 +8923,11 @@ "ts-pnp": "^1.1.6" } }, + "popper.js": { + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.14.3.tgz", + "integrity": "sha1-FDj5jQRqz3tNeM1QK/QYrGTU8JU=" + }, "portfinder": { "version": "1.0.28", "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", diff --git a/projects/project-3/frontend/package.json b/projects/project-3/frontend/package.json index 52b0abd..2fe1c2b 100644 --- a/projects/project-3/frontend/package.json +++ b/projects/project-3/frontend/package.json @@ -23,12 +23,13 @@ "@angular/platform-browser-dynamic": "~10.2.0", "@angular/router": "~10.2.0", "apexcharts": "^3.23.0", - "bootstrap": "^4.5.3", + "bootstrap": "^3.4.1", "jquery": "^3.5.1", - "leaflet": "^1.7.1", + "leaflet": "~1.3.1", "leaflet.heat": "^0.2.0", "leaflet.markercluster": "^1.4.1", "ng-apexcharts": "^1.5.6", + "popper.js": "^1.14.3", "rxjs": "~6.6.0", "tslib": "^2.0.0", "zone.js": "~0.10.2" From 8a69ffe29edbc37dd913aaf4e37fe3fe5017d0f2 Mon Sep 17 00:00:00 2001 From: Tim Herbst Date: Mon, 28 Dec 2020 10:50:58 +0100 Subject: [PATCH 055/104] add fix to solve scrollbar-problem --- .../frontend/src/app/map/map.component.scss | 12 +++--------- projects/project-3/frontend/src/styles.scss | 3 ++- 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/projects/project-3/frontend/src/app/map/map.component.scss b/projects/project-3/frontend/src/app/map/map.component.scss index 857c089..3dc307d 100644 --- a/projects/project-3/frontend/src/app/map/map.component.scss +++ b/projects/project-3/frontend/src/app/map/map.component.scss @@ -11,16 +11,10 @@ background: #086ed2; } -.map-container { - height: 95%; -} - -.map-frame { - height: 100%; - width: 100%; +.mat-toolbar { + height: 5vh; } #map { - height: 100%; - width: 100%; + height: 95vh; } diff --git a/projects/project-3/frontend/src/styles.scss b/projects/project-3/frontend/src/styles.scss index d528429..117d188 100644 --- a/projects/project-3/frontend/src/styles.scss +++ b/projects/project-3/frontend/src/styles.scss @@ -1,9 +1,10 @@ html, body { - height: 100%; + height: 100vh; } body { margin: 0; + padding: 0; font-family: Roboto, "Helvetica Neue", sans-serif; } From 3600f3a6e363f5065227f4be1d8d79a61577e1c1 Mon Sep 17 00:00:00 2001 From: Tim Herbst Date: Mon, 28 Dec 2020 11:13:42 +0100 Subject: [PATCH 056/104] rearrange user-input card and add auto-refresh component --- .../project-3/frontend/src/app/app.module.ts | 4 +- .../app/dashboard/dashboard.component.html | 103 ++++++++---------- .../app/dashboard/dashboard.component.scss | 22 +--- .../auto-refresh/auto-refresh.component.html | 1 + .../auto-refresh/auto-refresh.component.scss | 0 .../auto-refresh.component.spec.ts | 25 +++++ .../auto-refresh/auto-refresh.component.ts | 15 +++ 7 files changed, 95 insertions(+), 75 deletions(-) create mode 100644 projects/project-3/frontend/src/app/map/auto-refresh/auto-refresh.component.html create mode 100644 projects/project-3/frontend/src/app/map/auto-refresh/auto-refresh.component.scss create mode 100644 projects/project-3/frontend/src/app/map/auto-refresh/auto-refresh.component.spec.ts create mode 100644 projects/project-3/frontend/src/app/map/auto-refresh/auto-refresh.component.ts diff --git a/projects/project-3/frontend/src/app/app.module.ts b/projects/project-3/frontend/src/app/app.module.ts index a00ca57..eb91b13 100644 --- a/projects/project-3/frontend/src/app/app.module.ts +++ b/projects/project-3/frontend/src/app/app.module.ts @@ -24,13 +24,15 @@ import {MatNativeDateModule} from '@angular/material/core'; import {FormsModule, ReactiveFormsModule} from '@angular/forms'; import {MatInputModule} from '@angular/material/input'; import {MatTableModule} from '@angular/material/table'; +import {AutoRefreshComponent} from './map/auto-refresh/auto-refresh.component'; @NgModule({ declarations: [ AppComponent, MapComponent, DashboardComponent, - PopUpComponent + PopUpComponent, + AutoRefreshComponent ], imports: [ BrowserModule, diff --git a/projects/project-3/frontend/src/app/dashboard/dashboard.component.html b/projects/project-3/frontend/src/app/dashboard/dashboard.component.html index acb397a..43907e5 100644 --- a/projects/project-3/frontend/src/app/dashboard/dashboard.component.html +++ b/projects/project-3/frontend/src/app/dashboard/dashboard.component.html @@ -19,63 +19,54 @@
-
-
- - -
- {{bikePoint?.commonName}} -
- -
-
- -
-
-
-
-
-
- - -
- - Enter a range - - - - - - - - -
- -
-
-
-
-
+ + +
+ {{bikePoint?.commonName}} +
+ +
+
+ + Enter a range + + + + + + + + +
+ +
+
+
+
+ +
+
+
+
- - +
diff --git a/projects/project-3/frontend/src/app/dashboard/dashboard.component.scss b/projects/project-3/frontend/src/app/dashboard/dashboard.component.scss index ee6593f..b0639ea 100644 --- a/projects/project-3/frontend/src/app/dashboard/dashboard.component.scss +++ b/projects/project-3/frontend/src/app/dashboard/dashboard.component.scss @@ -14,28 +14,14 @@ a { background: #086ed2; } +.submit-date { + margin-bottom: 15px; +} + #chart { margin-right: 16px; } -#submit-date-span { - padding: 10px; -} - -.user-input { - height: 10em; -} - -.datepicker { - margin-top: 2em; - margin-left: 1em; - margin-right: 1em -} - -.submit-date { - padding-bottom: 2em; -} - .mat-card { padding: 1px 1px 1px; margin: 10px; diff --git a/projects/project-3/frontend/src/app/map/auto-refresh/auto-refresh.component.html b/projects/project-3/frontend/src/app/map/auto-refresh/auto-refresh.component.html new file mode 100644 index 0000000..4f5dd3b --- /dev/null +++ b/projects/project-3/frontend/src/app/map/auto-refresh/auto-refresh.component.html @@ -0,0 +1 @@ +

auto-refresh works!

diff --git a/projects/project-3/frontend/src/app/map/auto-refresh/auto-refresh.component.scss b/projects/project-3/frontend/src/app/map/auto-refresh/auto-refresh.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/projects/project-3/frontend/src/app/map/auto-refresh/auto-refresh.component.spec.ts b/projects/project-3/frontend/src/app/map/auto-refresh/auto-refresh.component.spec.ts new file mode 100644 index 0000000..16695ab --- /dev/null +++ b/projects/project-3/frontend/src/app/map/auto-refresh/auto-refresh.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { AutoRefreshComponent } from './auto-refresh.component'; + +describe('AutoRefreshComponent', () => { + let component: AutoRefreshComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ AutoRefreshComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(AutoRefreshComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/projects/project-3/frontend/src/app/map/auto-refresh/auto-refresh.component.ts b/projects/project-3/frontend/src/app/map/auto-refresh/auto-refresh.component.ts new file mode 100644 index 0000000..8ea2a6c --- /dev/null +++ b/projects/project-3/frontend/src/app/map/auto-refresh/auto-refresh.component.ts @@ -0,0 +1,15 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-auto-refresh', + templateUrl: './auto-refresh.component.html', + styleUrls: ['./auto-refresh.component.scss'] +}) +export class AutoRefreshComponent implements OnInit { + + constructor() { } + + ngOnInit(): void { + } + +} From 1b82cd6b8ffe7c1d2031b5f42f21e7347a8b5a0e Mon Sep 17 00:00:00 2001 From: Tim Herbst Date: Mon, 28 Dec 2020 11:45:53 +0100 Subject: [PATCH 057/104] add station-link navigation in tables and add default start value in range-picker --- .../app/dashboard/dashboard.component.html | 4 +- .../src/app/dashboard/dashboard.component.ts | 181 ++++++++++-------- .../frontend/src/app/service/map.service.ts | 4 + 3 files changed, 102 insertions(+), 87 deletions(-) diff --git a/projects/project-3/frontend/src/app/dashboard/dashboard.component.html b/projects/project-3/frontend/src/app/dashboard/dashboard.component.html index 43907e5..2e451a9 100644 --- a/projects/project-3/frontend/src/app/dashboard/dashboard.component.html +++ b/projects/project-3/frontend/src/app/dashboard/dashboard.component.html @@ -82,7 +82,7 @@
+ [routerLink]="['/dashboard/', element.stationId]">{{element.stationName}} @@ -104,7 +104,7 @@ + [routerLink]="['/dashboard/', element.stationId]"> {{element.stationName}} diff --git a/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts b/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts index 1c97bdf..e5d2c1d 100644 --- a/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts +++ b/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts @@ -1,10 +1,11 @@ import {ChangeDetectionStrategy, ChangeDetectorRef, Component, OnInit, ViewChild} from '@angular/core'; -import {ActivatedRoute} from '@angular/router'; +import {ActivatedRoute, Router} from '@angular/router'; import {DashboardService} from '../service/dashboard.service'; import {IDashboardCommonBikePoint} from '../service/domain/dashboard-common-bike-point'; import {MatTableDataSource} from '@angular/material/table'; import {FormBuilder, FormControl, FormGroup} from '@angular/forms'; import {MapService} from '../service/map.service'; +import 'humanize-duration/humanize-duration'; import { ApexAxisChartSeries, @@ -68,6 +69,7 @@ export class DashboardComponent implements OnInit { constructor( private route: ActivatedRoute, + private router: Router, private service: DashboardService, private map: MapService, private changeDetectorRefs: ChangeDetectorRef, @@ -109,98 +111,103 @@ export class DashboardComponent implements OnInit { end: new FormControl() }) }); + this.changeDetectorRefs.detectChanges(); + this.route.params.subscribe(params => { + this.service.fetchDashboardInit(params.id).then(data => { + this.station = data; + this.maxStartDate = new Date(data.maxStartDate); + this.maxEndDate = new Date(data.maxEndDate); + this.initDashboard(); + }); - this.service.fetchDashboardInit(this.route.snapshot.paramMap.get('id')).then(data => { - this.station = data; - this.maxStartDate = new Date(data.maxStartDate); - this.maxEndDate = new Date(data.maxEndDate); - this.initDashboard(); - }); - - this.service.fetchBikePointForStatus(this.route.snapshot.paramMap.get('id')).then(data => { - this.bikePoint = data; - const NbBlockedDocks = data.status.NbDocks - data.status.NbBikes - data.status.NbEmptyDocks; - this.bikePointChartOptions = { - series: [ - { - name: 'Bikes', - data: [data.status.NbBikes] - }, - { - name: 'Empty docks', - data: [data.status.NbEmptyDocks] - }, - { - name: 'Blocked docks', - data: [NbBlockedDocks] - } - ], - colors: ['#51ca49', '#8f8e8e', '#f00'], - chart: { - type: 'bar', - height: 180, - stacked: true, - toolbar: { - show: false - } - }, - plotOptions: { - bar: { - horizontal: true, - dataLabels: { - position: 'center' + this.service.fetchBikePointForStatus(params.id).then(data => { + this.bikePoint = data; + const NbBlockedDocks = data.status.NbDocks - data.status.NbBikes - data.status.NbEmptyDocks; + this.bikePointChartOptions = { + series: [ + { + name: 'Bikes', + data: [data.status.NbBikes] + }, + { + name: 'Empty docks', + data: [data.status.NbEmptyDocks] + }, + { + name: 'Blocked docks', + data: [NbBlockedDocks] } + ], + colors: ['#51ca49', '#8f8e8e', '#f00'], + chart: { + type: 'bar', + height: 180, + stacked: true, + toolbar: { + show: false + } + }, + plotOptions: { + bar: { + horizontal: true, + dataLabels: { + position: 'center' + } + } + }, + dataLabels: { + enabled: true, + style: { + fontSize: '20px', + colors: ['#fff'] + } + }, + stroke: { + show: false + }, + xaxis: { + labels: { + show: false + }, + axisBorder: { + show: false + }, + axisTicks: { + show: false + } + }, + yaxis: { + show: false, + title: { + text: undefined + }, + axisBorder: { + show: false + }, + min: 0, + max: data.status.NbDocks + }, + tooltip: { + enabled: false, + }, + fill: { + opacity: 1 + }, + legend: { + position: 'bottom', + horizontalAlign: 'right', + fontSize: '14px' } - }, - dataLabels: { - enabled: true, - style: { - fontSize: '20px', - colors: ['#fff'] - } - }, - stroke: { - show: false - }, - xaxis: { - labels: { - show: false - }, - axisBorder: { - show: false - }, - axisTicks: { - show: false - } - }, - yaxis: { - show: false, - title: { - text: undefined - }, - axisBorder: { - show: false - }, - min: 0, - max: data.status.NbDocks - }, - tooltip: { - enabled: false, - }, - fill: { - opacity: 1 - }, - legend: { - position: 'bottom', - horizontalAlign: 'right', - fontSize: '14px' - } - }; + }; + }); }); + } initDashboard(): void { const initDate = this.maxEndDate.toISOString().substring(0, 10); + this.form.get('daterange').get('start').setValue(initDate); + this.form.get('daterange').get('end').setValue(initDate); this.service.fetchDashboardStationTo(this.station.id, initDate, initDate).then((source) => { this.stationToSource = source; this.changeDetectorRefs.detectChanges(); @@ -465,4 +472,8 @@ export class DashboardComponent implements OnInit { }; }); } + + routeToStation(stationId: string): void { + this.router.navigate(['/dashboard', stationId]); + } } diff --git a/projects/project-3/frontend/src/app/service/map.service.ts b/projects/project-3/frontend/src/app/service/map.service.ts index 9422ba6..b99fb7c 100644 --- a/projects/project-3/frontend/src/app/service/map.service.ts +++ b/projects/project-3/frontend/src/app/service/map.service.ts @@ -42,6 +42,10 @@ export class MapService { } public initDashboardMap(lat: number, lon: number, zoom: number): void { + if(this.miniMap) { + this.miniMap.off(); + this.miniMap.remove(); + } this.miniMap = L.map('minimap').setView([lat, lon], zoom); this.miniMap.addLayer(new L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { attribution: 'Map data OpenStreetMap contributors', From 3f3dd14e8fb84fdb4e6198b38124763ef192663c Mon Sep 17 00:00:00 2001 From: Tim Herbst Date: Mon, 28 Dec 2020 11:58:22 +0100 Subject: [PATCH 058/104] humanize seconds in table --- projects/project-3/frontend/package-lock.json | 5 +++++ projects/project-3/frontend/package.json | 1 + .../frontend/src/app/dashboard/dashboard.component.html | 4 ++-- .../frontend/src/app/dashboard/dashboard.component.ts | 7 ++++--- 4 files changed, 12 insertions(+), 5 deletions(-) diff --git a/projects/project-3/frontend/package-lock.json b/projects/project-3/frontend/package-lock.json index 484f971..d0fee32 100644 --- a/projects/project-3/frontend/package-lock.json +++ b/projects/project-3/frontend/package-lock.json @@ -10761,6 +10761,11 @@ "ajv-keywords": "^3.5.2" } }, + "seconds-to-human-time": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/seconds-to-human-time/-/seconds-to-human-time-1.0.0.tgz", + "integrity": "sha512-ojOSaCcU8nkmR3tC/5GPIwmBAH4go7q1iyWRZhxB+tIKbR3rO3dDW5L73ZVRmAMNbK2AY1otz4QXCTxZXUHcXg==" + }, "select-hose": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", diff --git a/projects/project-3/frontend/package.json b/projects/project-3/frontend/package.json index 2fe1c2b..c344448 100644 --- a/projects/project-3/frontend/package.json +++ b/projects/project-3/frontend/package.json @@ -31,6 +31,7 @@ "ng-apexcharts": "^1.5.6", "popper.js": "^1.14.3", "rxjs": "~6.6.0", + "seconds-to-human-time": "^1.0.0", "tslib": "^2.0.0", "zone.js": "~0.10.2" }, diff --git a/projects/project-3/frontend/src/app/dashboard/dashboard.component.html b/projects/project-3/frontend/src/app/dashboard/dashboard.component.html index 2e451a9..44d91a0 100644 --- a/projects/project-3/frontend/src/app/dashboard/dashboard.component.html +++ b/projects/project-3/frontend/src/app/dashboard/dashboard.component.html @@ -92,7 +92,7 @@ - + @@ -114,7 +114,7 @@ - + diff --git a/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts b/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts index e5d2c1d..df95fd4 100644 --- a/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts +++ b/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts @@ -5,7 +5,8 @@ import {IDashboardCommonBikePoint} from '../service/domain/dashboard-common-bike import {MatTableDataSource} from '@angular/material/table'; import {FormBuilder, FormControl, FormGroup} from '@angular/forms'; import {MapService} from '../service/map.service'; -import 'humanize-duration/humanize-duration'; +import stht from "seconds-to-human-time"; + import { ApexAxisChartSeries, @@ -473,7 +474,7 @@ export class DashboardComponent implements OnInit { }); } - routeToStation(stationId: string): void { - this.router.navigate(['/dashboard', stationId]); + humanizeAvgDuration(avgDuration: number): string { + return stht(avgDuration); } } From 1b19013b0abb794221053a26a406e5e42ff4ff19 Mon Sep 17 00:00:00 2001 From: tim-herbst Date: Tue, 29 Dec 2020 10:01:09 +0100 Subject: [PATCH 059/104] WIP: import mat-slide toggle --- projects/project-3/frontend/src/app/app.module.ts | 4 +++- .../map/auto-refresh/auto-refresh.component.html | 4 +++- .../map/auto-refresh/auto-refresh.component.ts | 10 ++++++++-- .../frontend/src/app/map/map.component.html | 4 ++++ .../frontend/src/app/map/map.component.ts | 14 ++++++++++++++ .../frontend/src/app/service/map.service.ts | 15 ++++++++++++++- 6 files changed, 46 insertions(+), 5 deletions(-) diff --git a/projects/project-3/frontend/src/app/app.module.ts b/projects/project-3/frontend/src/app/app.module.ts index eb91b13..d73a8f4 100644 --- a/projects/project-3/frontend/src/app/app.module.ts +++ b/projects/project-3/frontend/src/app/app.module.ts @@ -25,6 +25,7 @@ import {FormsModule, ReactiveFormsModule} from '@angular/forms'; import {MatInputModule} from '@angular/material/input'; import {MatTableModule} from '@angular/material/table'; import {AutoRefreshComponent} from './map/auto-refresh/auto-refresh.component'; +import {MatSlideToggleModule} from '@angular/material/slide-toggle'; @NgModule({ declarations: [ @@ -55,7 +56,8 @@ import {AutoRefreshComponent} from './map/auto-refresh/auto-refresh.component'; FormsModule, ReactiveFormsModule, MatInputModule, - MatTableModule + MatTableModule, + MatSlideToggleModule ], providers: [], bootstrap: [AppComponent] diff --git a/projects/project-3/frontend/src/app/map/auto-refresh/auto-refresh.component.html b/projects/project-3/frontend/src/app/map/auto-refresh/auto-refresh.component.html index 4f5dd3b..09568c6 100644 --- a/projects/project-3/frontend/src/app/map/auto-refresh/auto-refresh.component.html +++ b/projects/project-3/frontend/src/app/map/auto-refresh/auto-refresh.component.html @@ -1 +1,3 @@ -

auto-refresh works!

+
+ auto refresh +
diff --git a/projects/project-3/frontend/src/app/map/auto-refresh/auto-refresh.component.ts b/projects/project-3/frontend/src/app/map/auto-refresh/auto-refresh.component.ts index 8ea2a6c..8ec16dc 100644 --- a/projects/project-3/frontend/src/app/map/auto-refresh/auto-refresh.component.ts +++ b/projects/project-3/frontend/src/app/map/auto-refresh/auto-refresh.component.ts @@ -1,4 +1,4 @@ -import { Component, OnInit } from '@angular/core'; +import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core'; @Component({ selector: 'app-auto-refresh', @@ -6,10 +6,16 @@ import { Component, OnInit } from '@angular/core'; styleUrls: ['./auto-refresh.component.scss'] }) export class AutoRefreshComponent implements OnInit { + isChecked: boolean; + @Input() isFlagActive: boolean; + @Output() sendData = new EventEmitter(); - constructor() { } + constructor() { + console.log('is Active? ' + this.isFlagActive); + } ngOnInit(): void { } + } diff --git a/projects/project-3/frontend/src/app/map/map.component.html b/projects/project-3/frontend/src/app/map/map.component.html index 721766a..7ad5bf8 100644 --- a/projects/project-3/frontend/src/app/map/map.component.html +++ b/projects/project-3/frontend/src/app/map/map.component.html @@ -2,6 +2,10 @@ Bike Stations in London + diff --git a/projects/project-3/frontend/src/app/map/map.component.ts b/projects/project-3/frontend/src/app/map/map.component.ts index 68b7d60..a8435f0 100644 --- a/projects/project-3/frontend/src/app/map/map.component.ts +++ b/projects/project-3/frontend/src/app/map/map.component.ts @@ -1,5 +1,6 @@ import {Component, OnInit} from '@angular/core'; import {MapService} from '../service/map.service'; +import {BehaviorSubject, Observable, of, Subject} from 'rxjs'; @Component({ @@ -8,11 +9,20 @@ import {MapService} from '../service/map.service'; styleUrls: ['./map.component.scss'] }) export class MapComponent implements OnInit { + isRefreshActive = false; + + constructor(private service: MapService) { + } ngOnInit(): void { this.initMapView(); + this.service.getAutoRefreshFlag().subscribe(isChecked => { + this.isRefreshActive = isChecked; + console.log(isChecked); + }); + console.log(this.isRefreshActive); } async initMapView(): Promise { @@ -21,4 +31,8 @@ export class MapComponent implements OnInit { this.service.drawHeatmap(); this.service.drawAccidents(); } + + autoRefresh(isActive: boolean): void { + this.service.setAutoRefreshFlag(isActive); + } } diff --git a/projects/project-3/frontend/src/app/service/map.service.ts b/projects/project-3/frontend/src/app/service/map.service.ts index b99fb7c..041aef3 100644 --- a/projects/project-3/frontend/src/app/service/map.service.ts +++ b/projects/project-3/frontend/src/app/service/map.service.ts @@ -6,6 +6,7 @@ import {HttpClient} from '@angular/common/http'; import {environment} from '../../environments/environment'; import {PopUpService} from './pop-up.service'; import {IMapBikePoint} from './domain/map-bike-point'; +import {Observable, Subject} from 'rxjs'; const createIcon = L.icon({ @@ -19,6 +20,9 @@ const createIcon = L.icon({ providedIn: 'root' }) export class MapService { + isAutoRefreshActive: boolean; + isAutoRefreshActive$: Subject; + public map; public miniMap; bikePoints: Array = []; @@ -28,7 +32,16 @@ export class MapService { private client: HttpClient, private popUpService: PopUpService, ) { + this.isAutoRefreshActive$ = new Subject(); + } + public setAutoRefreshFlag(isActive: boolean): void { + this.isAutoRefreshActive = isActive; + this.isAutoRefreshActive$.next(isActive); + } + + public getAutoRefreshFlag(): Observable { + return this.isAutoRefreshActive$.asObservable(); } public initMap(lat: number, lon: number, zoom: number): void { @@ -42,7 +55,7 @@ export class MapService { } public initDashboardMap(lat: number, lon: number, zoom: number): void { - if(this.miniMap) { + if (this.miniMap) { this.miniMap.off(); this.miniMap.remove(); } From a597343b0c16a22d4a82407a06b9d659f3a12bbf Mon Sep 17 00:00:00 2001 From: tim-herbst Date: Tue, 29 Dec 2020 11:07:51 +0100 Subject: [PATCH 060/104] adjust tooltip in borrow-time to display average duration formatted with minutes --- .../app/dashboard/dashboard.component.html | 1 + .../src/app/dashboard/dashboard.component.ts | 54 ++++++++++++------- 2 files changed, 37 insertions(+), 18 deletions(-) diff --git a/projects/project-3/frontend/src/app/dashboard/dashboard.component.html b/projects/project-3/frontend/src/app/dashboard/dashboard.component.html index 44d91a0..d19a4cf 100644 --- a/projects/project-3/frontend/src/app/dashboard/dashboard.component.html +++ b/projects/project-3/frontend/src/app/dashboard/dashboard.component.html @@ -159,6 +159,7 @@ [chart]="timeChartOptions.chart" [colors]="timeChartOptions.colors" [dataLabels]="timeChartOptions.dataLabels" + [tooltip]="timeChartOptions.tooltip" [fill]="timeChartOptions.fill" [series]="timeChartOptions.series" [stroke]="timeChartOptions.stroke" diff --git a/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts b/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts index df95fd4..6b3b689 100644 --- a/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts +++ b/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts @@ -5,7 +5,7 @@ import {IDashboardCommonBikePoint} from '../service/domain/dashboard-common-bike import {MatTableDataSource} from '@angular/material/table'; import {FormBuilder, FormControl, FormGroup} from '@angular/forms'; import {MapService} from '../service/map.service'; -import stht from "seconds-to-human-time"; +import stht from 'seconds-to-human-time'; import { @@ -227,7 +227,7 @@ export class DashboardComponent implements OnInit { this.durationChartOptions = { series: [ { - name: 'amount of drives for given borrow duration', + name: 'amount of drives', data: numbers } ], @@ -276,7 +276,7 @@ export class DashboardComponent implements OnInit { source.forEach(value => { timeFrame.push(value.timeFrame); numbers.push(value.number); - avgDuration.push(value.avgDuration); + avgDuration.push(Math.round(value.avgDuration / 60)); }); this.timeChartOptions = { series: [ @@ -286,16 +286,23 @@ export class DashboardComponent implements OnInit { data: numbers }, { - name: 'avgDuration', + name: 'average Duration', type: 'line', data: avgDuration } ], + tooltip: { + enabled: true, + shared: true, + x: { + show: true + } + }, chart: { type: 'line', height: chartHeight, zoom: { - enabled: true + enabled: true, } }, colors: ['#017bfe', '#51ca49'], @@ -308,18 +315,24 @@ export class DashboardComponent implements OnInit { xaxis: { categories: timeFrame, tickAmount: 24, - tickPlacement: 'between' + tickPlacement: 'between', + type: 'category' }, yaxis: [{ title: { - text: 'number of drives', + text: 'amount of drives', }, }, { - opposite: true, - title: { - text: 'avgDuration' + opposite: true, + title: { + text: 'average Duration' + }, + labels: { + formatter: (val: number): string => { + return val + ' min'; + } } - }], + }], legend: { horizontalAlign: 'left' }, @@ -366,7 +379,7 @@ export class DashboardComponent implements OnInit { this.durationChartOptions = { series: [ { - name: 'borrow-duration', + name: 'amount of drives for given borrow duration', data: numbers } ], @@ -400,7 +413,7 @@ export class DashboardComponent implements OnInit { }, yaxis: { title: { - text: 'minutes' + text: 'amount of drives' } }, fill: { @@ -420,7 +433,7 @@ export class DashboardComponent implements OnInit { source.forEach(value => { timeFrame.push(value.timeFrame); numbers.push(value.number); - avgDuration.push(value.avgDuration); + avgDuration.push(Math.round(value.avgDuration / 60)); }); this.timeChartOptions = { series: [ @@ -430,7 +443,7 @@ export class DashboardComponent implements OnInit { data: numbers }, { - name: 'avgDuration', + name: 'average Duration', type: 'line', data: avgDuration } @@ -439,7 +452,7 @@ export class DashboardComponent implements OnInit { type: 'line', height: chartHeight, zoom: { - enabled: true + enabled: true, } }, colors: ['#017bfe', '#51ca49'], @@ -456,12 +469,17 @@ export class DashboardComponent implements OnInit { }, yaxis: [{ title: { - text: 'number of drives', + text: 'amount of drives', }, }, { opposite: true, title: { - text: 'avgDuration' + text: 'average Duration' + }, + labels: { + formatter: (val: number): string => { + return val + ' min'; + } } }], legend: { From bba88ac1aac53881ae54c7e73cf1c7acabfffb9f Mon Sep 17 00:00:00 2001 From: tim-herbst Date: Tue, 29 Dec 2020 14:36:59 +0100 Subject: [PATCH 061/104] WIP: add dynamic generation of marker if check-box in table is pressed * fix: both use the same array -> delete if uncheck --- .../project-3/frontend/src/app/app.module.ts | 4 +- .../app/dashboard/dashboard.component.html | 25 +++- .../app/dashboard/dashboard.component.scss | 7 +- .../src/app/dashboard/dashboard.component.ts | 121 ++++++++++++++++-- .../frontend/src/app/map/map.component.ts | 3 +- .../domain/dashboard-common-bike-point.ts | 2 + .../frontend/src/app/service/map.service.ts | 24 +++- .../frontend/src/assets/bike-point-black.png | Bin 0 -> 52368 bytes .../{bike-point.png => bike-point-blue.png} | Bin .../frontend/src/assets/bike-point-gray.png | Bin 0 -> 74973 bytes .../frontend/src/assets/bike-point-green.png | Bin 0 -> 79724 bytes .../frontend/src/assets/bike-point-orange.png | Bin 0 -> 72972 bytes .../frontend/src/assets/bike-point-purple.png | Bin 0 -> 87586 bytes .../frontend/src/assets/bike-point-red.png | Bin 0 -> 77432 bytes 14 files changed, 160 insertions(+), 26 deletions(-) create mode 100644 projects/project-3/frontend/src/assets/bike-point-black.png rename projects/project-3/frontend/src/assets/{bike-point.png => bike-point-blue.png} (100%) create mode 100644 projects/project-3/frontend/src/assets/bike-point-gray.png create mode 100644 projects/project-3/frontend/src/assets/bike-point-green.png create mode 100644 projects/project-3/frontend/src/assets/bike-point-orange.png create mode 100644 projects/project-3/frontend/src/assets/bike-point-purple.png create mode 100644 projects/project-3/frontend/src/assets/bike-point-red.png diff --git a/projects/project-3/frontend/src/app/app.module.ts b/projects/project-3/frontend/src/app/app.module.ts index d73a8f4..3cbe2e4 100644 --- a/projects/project-3/frontend/src/app/app.module.ts +++ b/projects/project-3/frontend/src/app/app.module.ts @@ -26,6 +26,7 @@ import {MatInputModule} from '@angular/material/input'; import {MatTableModule} from '@angular/material/table'; import {AutoRefreshComponent} from './map/auto-refresh/auto-refresh.component'; import {MatSlideToggleModule} from '@angular/material/slide-toggle'; +import {MatCheckboxModule} from '@angular/material/checkbox'; @NgModule({ declarations: [ @@ -57,7 +58,8 @@ import {MatSlideToggleModule} from '@angular/material/slide-toggle'; ReactiveFormsModule, MatInputModule, MatTableModule, - MatSlideToggleModule + MatSlideToggleModule, + MatCheckboxModule ], providers: [], bootstrap: [AppComponent] diff --git a/projects/project-3/frontend/src/app/dashboard/dashboard.component.html b/projects/project-3/frontend/src/app/dashboard/dashboard.component.html index d19a4cf..dd8c780 100644 --- a/projects/project-3/frontend/src/app/dashboard/dashboard.component.html +++ b/projects/project-3/frontend/src/app/dashboard/dashboard.component.html @@ -75,13 +75,22 @@ -
station of lend origin {{element.startStationName}} {{element.startStationName}} station of lend destination {{element.endStationName}} station of lend origin {{element.startStationName}} station of lend destination {{element.endStationName}} station of lend origin {{element.startStationName}} average lend duration {{element.avgDuration}} {{humanizeAvgDuration(element.avgDuration)}}
average lend duration {{element.avgDuration}} {{humanizeAvgDuration(element.avgDuration)}}
+ + + + - @@ -101,9 +110,19 @@
+ + + station of lend destination{{element.stationName}}
+ + + + - diff --git a/projects/project-3/frontend/src/app/dashboard/dashboard.component.scss b/projects/project-3/frontend/src/app/dashboard/dashboard.component.scss index b0639ea..e5b76b6 100644 --- a/projects/project-3/frontend/src/app/dashboard/dashboard.component.scss +++ b/projects/project-3/frontend/src/app/dashboard/dashboard.component.scss @@ -6,12 +6,9 @@ mat-sidenav-content { flex: 1 1 auto; } -a { - color: #017bfe; -} - .button-back:hover, .button-wiki:hover { background: #086ed2; + } .submit-date { @@ -31,7 +28,7 @@ a { margin-top: 1em; margin-left: 1em; margin-bottom: 1em; - background-image: url('../../assets/bike-point.png'); + background-image: url('../../assets/bike-point-blue.png'); background-size: cover; } diff --git a/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts b/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts index 6b3b689..755f893 100644 --- a/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts +++ b/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts @@ -24,6 +24,8 @@ import { ChartComponent } from 'ng-apexcharts'; import {IMapBikePoint} from '../service/domain/map-bike-point'; +import {SelectionModel} from '@angular/cdk/collections'; +import {MatCheckboxChange} from '@angular/material/checkbox'; export type ChartOptions = { title: ApexTitleSubtitle @@ -54,10 +56,12 @@ export class DashboardComponent implements OnInit { public durationChartOptions: Partial; public timeChartOptions: Partial; public bikePointChartOptions: Partial; - displayedColumnsTo: string[] = ['endStationName', 'number', 'avgDuration']; - displayedColumnsFrom: string[] = ['startStationName', 'number', 'avgDuration']; - stationToSource = new MatTableDataSource(); + displayedColumnsTo: string[] = ['select', 'endStationName', 'number', 'avgDuration']; + displayedColumnsFrom: string[] = ['select', 'startStationName', 'number', 'avgDuration']; + stationToSource = new MatTableDataSource(); + selectionTo = new SelectionModel(true, []); stationFromSource = new MatTableDataSource(); + selectionFrom = new SelectionModel(true, []); station: IDashboardCommonBikePoint; maxStartDate: Date; @@ -67,6 +71,7 @@ export class DashboardComponent implements OnInit { form: FormGroup; bikePoint: IMapBikePoint; + bikePointWithColor = []; constructor( private route: ActivatedRoute, @@ -205,15 +210,15 @@ export class DashboardComponent implements OnInit { } - initDashboard(): void { + async initDashboard(): Promise { const initDate = this.maxEndDate.toISOString().substring(0, 10); this.form.get('daterange').get('start').setValue(initDate); this.form.get('daterange').get('end').setValue(initDate); - this.service.fetchDashboardStationTo(this.station.id, initDate, initDate).then((source) => { + await this.service.fetchDashboardStationTo(this.station.id, initDate, initDate).then((source) => { this.stationToSource = source; this.changeDetectorRefs.detectChanges(); }); - this.service.fetchDashboardStationFrom(this.station.id, initDate, initDate).then((source) => { + await this.service.fetchDashboardStationFrom(this.station.id, initDate, initDate).then((source) => { this.stationFromSource = source; this.changeDetectorRefs.detectChanges(); }); @@ -323,16 +328,16 @@ export class DashboardComponent implements OnInit { text: 'amount of drives', }, }, { - opposite: true, - title: { - text: 'average Duration' - }, + opposite: true, + title: { + text: 'average Duration' + }, labels: { formatter: (val: number): string => { return val + ' min'; } } - }], + }], legend: { horizontalAlign: 'left' }, @@ -495,4 +500,98 @@ export class DashboardComponent implements OnInit { humanizeAvgDuration(avgDuration: number): string { return stht(avgDuration); } + + isToAllSelected(): boolean { + const numSelected = this.selectionTo.selected.length; + const numRows = this.stationToSource.data.length; + return numSelected === numRows; + } + + isFromAllSelected(): boolean { + const numSelected = this.selectionFrom.selected.length; + const numRows = this.stationFromSource.data.length; + return numSelected === numRows; + } + + checkboxLabelTo(row?: any): string { + if (!row) { + return `${this.isToAllSelected() ? 'select' : 'deselect'} all`; + } + return `${this.selectionTo.isSelected(row) ? 'deselect' : 'select'} row ${row.position + 1}`; + } + + checkboxLabelFrom(row?: any): string { + if (!row) { + return `${this.isFromAllSelected() ? 'select' : 'deselect'} all`; + } + return `${this.selectionFrom.isSelected(row) ? 'deselect' : 'select'} row ${row.position + 1}`; + } + + selectRowTo(selection: MatCheckboxChange, row): void { + this.selectionTo.toggle(row); + this.selectionTo.selected.forEach(point => { + if (point.stationId === row.stationId) { + point.color = this.getColorTo(row); + } + this.bikePointWithColor.push(point); + }); + this.map.drawTableStationMarker(this.bikePointWithColor); + } + + selectRowFrom(selection: MatCheckboxChange, row): void { + this.selectionFrom.toggle(row); + this.selectionFrom.selected.forEach(point => { + if (point.stationId === row.stationId) { + point.color = this.getColorFrom(row); + } + this.bikePointWithColor.push(point); + }); + this.map.drawTableStationMarker(this.bikePointWithColor); + } + + getColorTo(value): string { + switch (value.stationName) { + case this.stationToSource[0].stationName: + if (this.stationToSource[0].stationName === this.station.commonName) { + return 'blue'; + } else { + return 'black'; + } + case this.stationToSource[1].stationName: + if (this.stationToSource[1].stationName === this.station.commonName) { + return 'blue'; + } else { + return 'red'; + } + case this.stationToSource[2].stationName: + if (this.stationToSource[2].stationName === this.station.commonName) { + return 'blue'; + } else { + return 'green'; + } + } + } + + getColorFrom(value): string { + switch (value.stationName) { + case this.stationFromSource[0].stationName: + if (this.stationFromSource[0].stationName === this.station.commonName) { + return 'blue'; + } else { + return 'orange'; + } + case this.stationFromSource[1].stationName: + if (this.stationFromSource[1].stationName === this.station.commonName) { + return 'blue'; + } else { + return 'purple'; + } + case this.stationFromSource[2].stationName: + if (this.stationFromSource[2].stationName === this.station.commonName) { + return 'blue'; + } else { + return 'gray'; + } + } + } } diff --git a/projects/project-3/frontend/src/app/map/map.component.ts b/projects/project-3/frontend/src/app/map/map.component.ts index a8435f0..4aaa2ab 100644 --- a/projects/project-3/frontend/src/app/map/map.component.ts +++ b/projects/project-3/frontend/src/app/map/map.component.ts @@ -1,6 +1,5 @@ import {Component, OnInit} from '@angular/core'; import {MapService} from '../service/map.service'; -import {BehaviorSubject, Observable, of, Subject} from 'rxjs'; @Component({ @@ -25,7 +24,7 @@ export class MapComponent implements OnInit { console.log(this.isRefreshActive); } - async initMapView(): Promise { + async initMapView(): Promise { this.service.initMap(51.509865, -0.118092, 14); await this.service.drawStationMarkers(); this.service.drawHeatmap(); diff --git a/projects/project-3/frontend/src/app/service/domain/dashboard-common-bike-point.ts b/projects/project-3/frontend/src/app/service/domain/dashboard-common-bike-point.ts index b47a0bb..3d9508b 100644 --- a/projects/project-3/frontend/src/app/service/domain/dashboard-common-bike-point.ts +++ b/projects/project-3/frontend/src/app/service/domain/dashboard-common-bike-point.ts @@ -1,5 +1,6 @@ export interface IDashboardCommonBikePoint { id?: string; + color?: string; commonName?: string; lat?: number; lon?: number; @@ -10,6 +11,7 @@ export interface IDashboardCommonBikePoint { export class DashboardCommonBikePoint implements IDashboardCommonBikePoint { constructor( public id?: string, + public color?: string, public commonName?: string, public lat?: number, public lon?: number, diff --git a/projects/project-3/frontend/src/app/service/map.service.ts b/projects/project-3/frontend/src/app/service/map.service.ts index 041aef3..186bfba 100644 --- a/projects/project-3/frontend/src/app/service/map.service.ts +++ b/projects/project-3/frontend/src/app/service/map.service.ts @@ -9,8 +9,8 @@ import {IMapBikePoint} from './domain/map-bike-point'; import {Observable, Subject} from 'rxjs'; -const createIcon = L.icon({ - iconUrl: '../../assets/bike-point.png', +const createIcon = color => L.icon({ + iconUrl: `../../assets/bike-point-${color}.png`, iconSize: [45, 45], iconAnchor: [21, 40], popupAnchor: [1, -35] @@ -27,6 +27,9 @@ export class MapService { public miniMap; bikePoints: Array = []; mapOverlays: any = {}; + miniMapMarker: L.layerGroup; + markerLayer = []; + dashBoardMarker = L.marker; constructor( private client: HttpClient, @@ -78,7 +81,7 @@ export class MapService { this.mapOverlays.Bikepoints = markerClusters; this.map.addLayer(markerClusters); for (const station of data) { - const marker = L.marker([station.lat, station.lon], {icon: createIcon}); + const marker = L.marker([station.lat, station.lon], {icon: createIcon('blue')}); markerClusters.addLayer(marker); marker.on('click', e => { e.target.bindPopup(this.popUpService.makeAvailabilityPopUp(station), {maxWidth: 'auto'}) @@ -137,7 +140,20 @@ export class MapService { } public drawDashboardStationMarker(lat: number, lon: number): void { - L.marker([lat, lon], {icon: createIcon}).addTo(this.miniMap); + this.dashBoardMarker = L.marker([lat, lon], {icon: createIcon('blue')}).addTo(this.miniMap); + } + + public drawTableStationMarker(bikePoints: any[]): void { + if (this.markerLayer) { + this.markerLayer.forEach(marker => { + this.miniMap.removeLayer(marker); + }); + } + for (const point of bikePoints) { + const marker = L.marker([point.stationLat, point.stationLon], {icon: createIcon(point.color)}).addTo(this.miniMap); + this.markerLayer.push(marker); + this.miniMap.fitBounds(L.featureGroup([...this.markerLayer, this.dashBoardMarker]).getBounds()); + } } private drawMapControl(): void { diff --git a/projects/project-3/frontend/src/assets/bike-point-black.png b/projects/project-3/frontend/src/assets/bike-point-black.png new file mode 100644 index 0000000000000000000000000000000000000000..3998fd4a4d839bd5e724a036cc53f79801b5c47b GIT binary patch literal 52368 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ΠQtGtz8y@(|^RRk?| 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%0D-;kA%^w(n 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 N(Y$e`=(5c}{|8Z;4B7wy literal 0 HcmV?d00001 diff --git a/projects/project-3/frontend/src/assets/bike-point-purple.png b/projects/project-3/frontend/src/assets/bike-point-purple.png new file mode 100644 index 0000000000000000000000000000000000000000..b0779d59466d7f72a0389314ed3d73bbad10813b GIT binary patch literal 87586 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�iE~yuxZQr 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 W6w35YS)Kxa?kQ<07TvLY`hNf=bHh{s literal 0 HcmV?d00001 diff --git a/projects/project-3/frontend/src/assets/bike-point-red.png b/projects/project-3/frontend/src/assets/bike-point-red.png new file mode 100644 index 0000000000000000000000000000000000000000..636a1e9ec6222afb3a022724eb4e86b7b7b16480 GIT binary patch literal 77432 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%0Doy_$tTI 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 Date: Tue, 29 Dec 2020 14:48:19 +0100 Subject: [PATCH 062/104] fix display Issue on miniMap * future considerations: reduce massive boilerplate code due to different tableSources --- .../src/app/dashboard/dashboard.component.ts | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts b/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts index 755f893..2b09ee5 100644 --- a/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts +++ b/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts @@ -533,9 +533,11 @@ export class DashboardComponent implements OnInit { if (point.stationId === row.stationId) { point.color = this.getColorTo(row); } - this.bikePointWithColor.push(point); }); - this.map.drawTableStationMarker(this.bikePointWithColor); + const markerToDisplay = []; + markerToDisplay.push(...this.selectionTo.selected); + markerToDisplay.push(...this.selectionFrom.selected); + this.map.drawTableStationMarker(markerToDisplay); } selectRowFrom(selection: MatCheckboxChange, row): void { @@ -544,9 +546,11 @@ export class DashboardComponent implements OnInit { if (point.stationId === row.stationId) { point.color = this.getColorFrom(row); } - this.bikePointWithColor.push(point); }); - this.map.drawTableStationMarker(this.bikePointWithColor); + const markerToDisplay = []; + markerToDisplay.push(...this.selectionFrom.selected); + markerToDisplay.push(...this.selectionTo.selected); + this.map.drawTableStationMarker(markerToDisplay); } getColorTo(value): string { From 5e71b3c0948cd1c5869ced3f7dec66a36960c75d Mon Sep 17 00:00:00 2001 From: tim-herbst Date: Tue, 29 Dec 2020 15:06:50 +0100 Subject: [PATCH 063/104] adjust datepicker format --- .../src/app/dashboard/dashboard.component.ts | 28 ++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts b/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts index 2b09ee5..5ec4e78 100644 --- a/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts +++ b/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts @@ -26,6 +26,8 @@ import { import {IMapBikePoint} from '../service/domain/map-bike-point'; import {SelectionModel} from '@angular/cdk/collections'; import {MatCheckboxChange} from '@angular/material/checkbox'; +import {DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE, NativeDateAdapter} from '@angular/material/core'; +import {formatDate} from '@angular/common'; export type ChartOptions = { title: ApexTitleSubtitle @@ -43,13 +45,37 @@ export type ChartOptions = { noData: ApexNoData; }; +export const PICK_FORMATS = { + parse: {dateInput: {month: 'short', year: 'numeric', day: 'numeric'}}, + display: { + dateInput: 'input', + monthYearLabel: {year: 'numeric', month: 'numeric'}, + dateA11yLabel: {year: 'numeric', month: 'numeric', day: 'numeric'}, + monthYearA11yLabel: {year: 'numeric', month: 'long'} + } +}; + +class PickDateAdapter extends NativeDateAdapter { + format(date: Date, displayFormat: Object): string { + if (displayFormat === 'input') { + return formatDate(date, 'dd-MM-yyyy', this.locale); + } else { + return date.toDateString(); + } + } +} + const chartHeight = 460; @Component({ selector: 'app-dashboard', templateUrl: './dashboard.component.html', styleUrls: ['./dashboard.component.scss'], - changeDetection: ChangeDetectionStrategy.Default + changeDetection: ChangeDetectionStrategy.Default, + providers: [ + {provide: DateAdapter, useClass: PickDateAdapter}, + {provide: MAT_DATE_FORMATS, useValue: PICK_FORMATS} + ] }) export class DashboardComponent implements OnInit { @ViewChild('Station-Dashboard-Borrow-Duration') chart: ChartComponent; From 8de1c8cfc326e617de05ea1354cff936b4a3dfe0 Mon Sep 17 00:00:00 2001 From: tim-herbst Date: Wed, 30 Dec 2020 12:12:39 +0100 Subject: [PATCH 064/104] finish work on auto-refresh * remove stupidy * implement it the marcel way * fix control-duplicates --- projects/project-3/frontend/package-lock.json | 16238 +++++++++++++++- projects/project-3/frontend/package.json | 2 +- .../src/app/dashboard/dashboard.component.ts | 1 - .../auto-refresh/auto-refresh.component.html | 2 +- .../auto-refresh/auto-refresh.component.scss | 3 + .../auto-refresh/auto-refresh.component.ts | 27 +- .../frontend/src/app/map/map.component.html | 5 +- .../frontend/src/app/map/map.component.ts | 11 - .../frontend/src/app/service/map.service.ts | 24 +- 9 files changed, 16255 insertions(+), 58 deletions(-) diff --git a/projects/project-3/frontend/package-lock.json b/projects/project-3/frontend/package-lock.json index d0fee32..4d06410 100644 --- a/projects/project-3/frontend/package-lock.json +++ b/projects/project-3/frontend/package-lock.json @@ -1,8 +1,16204 @@ { "name": "frontend", "version": "0.0.0", - "lockfileVersion": 1, + "lockfileVersion": 2, "requires": true, + "packages": { + "": { + "version": "0.0.0", + "dependencies": { + "@angular/animations": "~10.2.0", + "@angular/cdk": "^10.2.7", + "@angular/common": "~10.2.0", + "@angular/compiler": "~10.2.0", + "@angular/core": "~10.2.0", + "@angular/flex-layout": "^10.0.0-beta.32", + "@angular/forms": "~10.2.0", + "@angular/material": "^10.2.7", + "@angular/platform-browser": "~10.2.0", + "@angular/platform-browser-dynamic": "~10.2.0", + "@angular/router": "~10.2.0", + "apexcharts": "^3.23.0", + "bootstrap": "^3.4.1", + "jquery": "^3.5.1", + "leaflet": "~1.3.1", + "leaflet.heat": "^0.2.0", + "leaflet.markercluster": "^1.4.1", + "ng-apexcharts": "^1.5.6", + "popper.js": "^1.14.3", + "rxjs": "~6.6.0", + "seconds-to-human-time": "^1.0.0", + "tslib": "^2.0.0", + "zone.js": "~0.10.2" + }, + "devDependencies": { + "@angular-devkit/build-angular": "~0.1002.0", + "@angular/cli": "~10.2.0", + "@angular/compiler-cli": "~10.2.0", + "@types/jasmine": "~3.5.0", + "@types/jasminewd2": "~2.0.3", + "@types/node": "^12.11.1", + "codelyzer": "^6.0.0", + "jasmine-core": "~3.6.0", + "jasmine-spec-reporter": "~5.0.0", + "karma": "~5.0.0", + "karma-chrome-launcher": "~3.1.0", + "karma-coverage-istanbul-reporter": "~3.0.2", + "karma-jasmine": "~4.0.0", + "karma-jasmine-html-reporter": "^1.5.0", + "protractor": "~7.0.0", + "ts-node": "~8.3.0", + "tslint": "~6.1.0", + "typescript": "~4.0.2" + } + }, + "node_modules/@angular-devkit/architect": { + "version": "0.1002.1", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1002.1.tgz", + "integrity": "sha512-vP27xCe++p3zm+zwSDXDm9/rsM71Q4MYidLLi0MQfo8wxsWS/4mWXycCBoMwDkvW44SPJ4Ds1/F46bb3/xRDvA==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "10.2.1", + "rxjs": "6.6.2" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 6.11.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular-devkit/architect/node_modules/rxjs": { + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.2.tgz", + "integrity": "sha512-BHdBMVoWC2sL26w//BCu3YzKT4s2jip/WhwsGEDmeKYBhKDZeYezVUnHatYB7L85v5xs0BAQmg6BEYJEKxBabg==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/@angular-devkit/architect/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/@angular-devkit/build-angular": { + "version": "0.1002.1", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-0.1002.1.tgz", + "integrity": "sha512-z5asIOrkxandGT2NgVH3B5uiV0ncURfHpXer/E8q1q5pwY2pCCmvqF2f7tMWrR6j+1Q/Dy1jrpXTWdOUlUCFqw==", + "dev": true, + "dependencies": { + "@angular-devkit/architect": "0.1002.1", + "@angular-devkit/build-optimizer": "0.1002.1", + "@angular-devkit/build-webpack": "0.1002.1", + "@angular-devkit/core": "10.2.1", + "@babel/core": "7.11.1", + "@babel/generator": "7.11.0", + "@babel/plugin-transform-runtime": "7.11.0", + "@babel/preset-env": "7.11.0", + "@babel/runtime": "7.11.2", + "@babel/template": "7.10.4", + "@jsdevtools/coverage-istanbul-loader": "3.0.5", + "@ngtools/webpack": "10.2.1", + "autoprefixer": "9.8.6", + "babel-loader": "8.1.0", + "browserslist": "^4.9.1", + "cacache": "15.0.5", + "caniuse-lite": "^1.0.30001032", + "circular-dependency-plugin": "5.2.0", + "copy-webpack-plugin": "6.0.3", + "core-js": "3.6.4", + "css-loader": "4.2.2", + "cssnano": "4.1.10", + "file-loader": "6.0.0", + "find-cache-dir": "3.3.1", + "glob": "7.1.6", + "jest-worker": "26.3.0", + "karma-source-map-support": "1.4.0", + "less-loader": "6.2.0", + "license-webpack-plugin": "2.3.0", + "loader-utils": "2.0.0", + "mini-css-extract-plugin": "0.10.0", + "minimatch": "3.0.4", + "open": "7.2.0", + "parse5": "6.0.1", + "parse5-htmlparser2-tree-adapter": "6.0.1", + "pnp-webpack-plugin": "1.6.4", + "postcss": "7.0.32", + "postcss-import": "12.0.1", + "postcss-loader": "3.0.0", + "raw-loader": "4.0.1", + "regenerator-runtime": "0.13.7", + "resolve-url-loader": "3.1.2", + "rimraf": "3.0.2", + "rollup": "2.26.5", + "rxjs": "6.6.2", + "sass": "1.26.10", + "sass-loader": "10.0.1", + "semver": "7.3.2", + "source-map": "0.7.3", + "source-map-loader": "1.0.2", + "source-map-support": "0.5.19", + "speed-measure-webpack-plugin": "1.3.3", + "style-loader": "1.2.1", + "stylus": "0.54.8", + "stylus-loader": "3.0.2", + "terser": "5.3.0", + "terser-webpack-plugin": "4.1.0", + "tree-kill": "1.2.2", + "webpack": "4.44.1", + "webpack-dev-middleware": "3.7.2", + "webpack-dev-server": "3.11.0", + "webpack-merge": "4.2.2", + "webpack-sources": "1.4.3", + "webpack-subresource-integrity": "1.4.1", + "worker-plugin": "5.0.0" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 6.11.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/rxjs": { + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.2.tgz", + "integrity": "sha512-BHdBMVoWC2sL26w//BCu3YzKT4s2jip/WhwsGEDmeKYBhKDZeYezVUnHatYB7L85v5xs0BAQmg6BEYJEKxBabg==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/@angular-devkit/build-optimizer": { + "version": "0.1002.1", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.1002.1.tgz", + "integrity": "sha512-9TLbHVGlux/b/eAubiyd3MNS5xog+8MDABG/Y4vWQInWZVNfcSUY7fycbvlCAXLguSVUvjYP2AoPBGPow4mIMw==", + "dev": true, + "dependencies": { + "loader-utils": "2.0.0", + "source-map": "0.7.3", + "tslib": "2.0.1", + "typescript": "4.0.2", + "webpack-sources": "1.4.3" + }, + "bin": { + "build-optimizer": "src/build-optimizer/cli.js" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 6.11.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular-devkit/build-optimizer/node_modules/tslib": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.1.tgz", + "integrity": "sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ==", + "dev": true + }, + "node_modules/@angular-devkit/build-optimizer/node_modules/typescript": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.0.2.tgz", + "integrity": "sha512-e4ERvRV2wb+rRZ/IQeb3jm2VxBsirQLpQhdxplZ2MEzGvDkkMmPglecnNDfSUBivMjP93vRbngYYDQqQ/78bcQ==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/@angular-devkit/build-webpack": { + "version": "0.1002.1", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1002.1.tgz", + "integrity": "sha512-RgTIgwGoHY+fBUEwZGhYrAi2RqqvLe5eHAPxRIG33nydZ6KLxD4XozqmCEx7EJwDws+HFiOhlAYoW12QhimK7w==", + "dev": true, + "dependencies": { + "@angular-devkit/architect": "0.1002.1", + "@angular-devkit/core": "10.2.1", + "rxjs": "6.6.2" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 6.11.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular-devkit/build-webpack/node_modules/rxjs": { + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.2.tgz", + "integrity": "sha512-BHdBMVoWC2sL26w//BCu3YzKT4s2jip/WhwsGEDmeKYBhKDZeYezVUnHatYB7L85v5xs0BAQmg6BEYJEKxBabg==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/@angular-devkit/build-webpack/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/@angular-devkit/core": { + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-10.2.1.tgz", + "integrity": "sha512-dzlF9Gl7KNt9sPYT2HYq6ySZYwKzkyYR5mrBj3DZOD0OQsoc21LvLkWAHNSL2iYGdHJQS1oJDNs8iRYxYIOY3w==", + "dev": true, + "dependencies": { + "ajv": "6.12.4", + "fast-json-stable-stringify": "2.1.0", + "magic-string": "0.25.7", + "rxjs": "6.6.2", + "source-map": "0.7.3" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 6.11.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular-devkit/core/node_modules/rxjs": { + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.2.tgz", + "integrity": "sha512-BHdBMVoWC2sL26w//BCu3YzKT4s2jip/WhwsGEDmeKYBhKDZeYezVUnHatYB7L85v5xs0BAQmg6BEYJEKxBabg==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/@angular-devkit/core/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/@angular-devkit/schematics": { + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-10.2.1.tgz", + "integrity": "sha512-0oMhB1eM7hg5Xf4U7r193zrNTGyxfzl2okBsLJPuVmkb3KCBGQOyHYmU5HjDNadPc5iCFc+Xo2+DSDvXGuLmaA==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "10.2.1", + "ora": "5.0.0", + "rxjs": "6.6.2" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 6.11.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular-devkit/schematics/node_modules/rxjs": { + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.2.tgz", + "integrity": "sha512-BHdBMVoWC2sL26w//BCu3YzKT4s2jip/WhwsGEDmeKYBhKDZeYezVUnHatYB7L85v5xs0BAQmg6BEYJEKxBabg==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/@angular-devkit/schematics/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/@angular/animations": { + "version": "10.2.4", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-10.2.4.tgz", + "integrity": "sha512-ovlfHxY1C6yH6SdfWIG1WqB77GHfuJ4i3jItvf0qFSvbOHG8OOzrSOR6EVRJYTnre4r4pQ3V8cDFy3igBlWXUw==", + "dependencies": { + "tslib": "^2.0.0" + } + }, + "node_modules/@angular/cdk": { + "version": "10.2.7", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-10.2.7.tgz", + "integrity": "sha512-ZQjDfTRTn7JuAKsf3jiIdU2XBaxxGBi/ZWYv5Pb3HCl6B4PISsIE5VWRhkoUogoAB0MiFHpjnWeIqknJEm11YQ==", + "dependencies": { + "parse5": "^5.0.0", + "tslib": "^2.0.0" + }, + "optionalDependencies": { + "parse5": "^5.0.0" + } + }, + "node_modules/@angular/cdk/node_modules/parse5": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", + "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==", + "optional": true + }, + "node_modules/@angular/cli": { + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-10.2.1.tgz", + "integrity": "sha512-9u/IVZqESiNX7qsLDW31MPBFUJUqvc+zqq+ekEtjRopq32RQpAGFWfvRZCR6GyJd06gzUWcYeYKkpl1XFNBXUg==", + "dev": true, + "dependencies": { + "@angular-devkit/architect": "0.1002.1", + "@angular-devkit/core": "10.2.1", + "@angular-devkit/schematics": "10.2.1", + "@schematics/angular": "10.2.1", + "@schematics/update": "0.1002.1", + "@yarnpkg/lockfile": "1.1.0", + "ansi-colors": "4.1.1", + "debug": "4.1.1", + "ini": "1.3.6", + "inquirer": "7.3.3", + "npm-package-arg": "8.0.1", + "npm-pick-manifest": "6.1.0", + "open": "7.2.0", + "pacote": "9.5.12", + "read-package-tree": "5.3.1", + "rimraf": "3.0.2", + "semver": "7.3.2", + "symbol-observable": "1.2.0", + "universal-analytics": "0.4.23", + "uuid": "8.3.0" + }, + "bin": { + "ng": "bin/ng" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 6.11.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular/cli/node_modules/ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@angular/cli/node_modules/debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/@angular/cli/node_modules/uuid": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.0.tgz", + "integrity": "sha512-fX6Z5o4m6XsXBdli9g7DtWgAx+osMsRRZFKma1mIUsLCz6vRvv+pz5VNbyu9UEDzpMWulZfvpgb/cmDXVulYFQ==", + "dev": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@angular/common": { + "version": "10.2.4", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-10.2.4.tgz", + "integrity": "sha512-bBfsLJNDQaC2OI1mReDJuSZ/uBb7Pf3HVpRmlQKNIPllIxqX1hLH8I3Plodrns9m32JMJ6FMsQthcP0KMdRCJA==", + "dependencies": { + "tslib": "^2.0.0" + } + }, + "node_modules/@angular/compiler": { + "version": "10.2.4", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-10.2.4.tgz", + "integrity": "sha512-xkpDQJt9047eT+HPEoJoJ7TVN+yXIFL0EcYP9pE+jG/f7H8re6Nwf2sBXa91dyCYBanXGMRbivbXIjqLGOfzbA==", + "dependencies": { + "tslib": "^2.0.0" + } + }, + "node_modules/@angular/compiler-cli": { + "version": "10.2.4", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-10.2.4.tgz", + "integrity": "sha512-gpw7Px6c2EaVUiDrU4PLaxf5zk8oJ72Yq62YZ8k4Jd7Vhl39Bhx9a9/I3GFQzZ8X6W/VJMWfZRs3E7bm1krRkw==", + "dev": true, + "dependencies": { + "canonical-path": "1.0.0", + "chokidar": "^3.0.0", + "convert-source-map": "^1.5.1", + "dependency-graph": "^0.7.2", + "fs-extra": "4.0.2", + "magic-string": "^0.25.0", + "minimist": "^1.2.0", + "reflect-metadata": "^0.1.2", + "semver": "^6.3.0", + "source-map": "^0.6.1", + "sourcemap-codec": "^1.4.8", + "tslib": "^2.0.0", + "yargs": "^16.1.1" + }, + "bin": { + "ivy-ngcc": "ngcc/main-ivy-ngcc.js", + "ng-xi18n": "src/extract_i18n.js", + "ngc": "src/main.js", + "ngcc": "ngcc/main-ngcc.js" + }, + "engines": { + "node": ">=10.0" + } + }, + "node_modules/@angular/compiler-cli/node_modules/ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@angular/compiler-cli/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@angular/compiler-cli/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/@angular/compiler-cli/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@angular/compiler-cli/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@angular/compiler-cli/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/@angular/compiler-cli/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@angular/compiler-cli/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@angular/compiler-cli/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@angular/compiler-cli/node_modules/string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@angular/compiler-cli/node_modules/strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@angular/compiler-cli/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@angular/compiler-cli/node_modules/y18n": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.5.tgz", + "integrity": "sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/@angular/compiler-cli/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@angular/compiler-cli/node_modules/yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/@angular/core": { + "version": "10.2.4", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-10.2.4.tgz", + "integrity": "sha512-5xpAvmZwD9nZ8eWx10urjibqEeePGEiFXVMEn3IaJWgfdOcMmeSoioW9JUllT3w85+DlNVWbRbhz0YfE9a4jyw==", + "dependencies": { + "tslib": "^2.0.0" + } + }, + "node_modules/@angular/flex-layout": { + "version": "10.0.0-beta.32", + "resolved": "https://registry.npmjs.org/@angular/flex-layout/-/flex-layout-10.0.0-beta.32.tgz", + "integrity": "sha512-JvuY4dUoy5jyCTIrFiq7n30Znakh1pD3nbg0h0hs2r3t1OiDQb0ZSI1wcumosG/vYHsuJQTuNhbfaIZzA1x8nA==", + "dependencies": { + "tslib": "^2.0.0" + } + }, + "node_modules/@angular/forms": { + "version": "10.2.4", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-10.2.4.tgz", + "integrity": "sha512-nrag/3+sjclH5mYqgM9UKzjotMGDCYBlPMqLt2Mj8rIxtAPRxfKmzAhxf4lRw3RTzMvOLM0rBRJagpi5glyLEw==", + "dependencies": { + "tslib": "^2.0.0" + } + }, + "node_modules/@angular/material": { + "version": "10.2.7", + "resolved": "https://registry.npmjs.org/@angular/material/-/material-10.2.7.tgz", + "integrity": "sha512-uk6JkRrKHaM9VFMzX7pWC83YNLVgXPB3D8U1yjSOafCdWwrRZgUHGr8MPlSILCr3o2nxgg5SsKdWcWwHuXXUZA==", + "dependencies": { + "tslib": "^2.0.0" + } + }, + "node_modules/@angular/platform-browser": { + "version": "10.2.4", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-10.2.4.tgz", + "integrity": "sha512-gYewLxoTnxOxX3XXK959YiDaw8CEnksKIbK6RYuofIcB8dTL9AlS9/l22xdGifTXTkFjs8noO6i/WT5hCt49Ww==", + "dependencies": { + "tslib": "^2.0.0" + } + }, + "node_modules/@angular/platform-browser-dynamic": { + "version": "10.2.4", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-10.2.4.tgz", + "integrity": "sha512-+oON9ujv9EOC3yJVgnV/vy3262dpMKBFlQ+dHcr5rfk2WpsnyJ26R+Nhkaug9FEdmSo9w+GqowF5bodrtTOTlA==", + "dependencies": { + "tslib": "^2.0.0" + } + }, + "node_modules/@angular/router": { + "version": "10.2.4", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-10.2.4.tgz", + "integrity": "sha512-y3xMwZHWS84fbm3FoU8vTAeXaTuPd4ZfmZ3dhkG9c1tkVq/jCmc6pkqNxjv3L1iPenKrvt2bFhh+wCs+bcUPhw==", + "dependencies": { + "tslib": "^2.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.10.4" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.12.7.tgz", + "integrity": "sha512-YaxPMGs/XIWtYqrdEOZOCPsVWfEoriXopnsz3/i7apYPXQ3698UFhS6dVT1KN5qOsWmVgw/FOrmQgpRaZayGsw==", + "dev": true + }, + "node_modules/@babel/core": { + "version": "7.11.1", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.11.1.tgz", + "integrity": "sha512-XqF7F6FWQdKGGWAzGELL+aCO1p+lRY5Tj5/tbT3St1G8NaH70jhhDIKknIZaDans0OQBG5wRAldROLHSt44BgQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.11.0", + "@babel/helper-module-transforms": "^7.11.0", + "@babel/helpers": "^7.10.4", + "@babel/parser": "^7.11.1", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.11.0", + "@babel/types": "^7.11.0", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.2", + "lodash": "^4.17.19", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/@babel/core/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/generator": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.11.0.tgz", + "integrity": "sha512-fEm3Uzw7Mc9Xi//qU20cBKatTfs2aOtKqmvy/Vm7RkJEGFQ4xc9myCfbXxqK//ZS8MR/ciOHw6meGASJuKmDfQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.11.0", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "node_modules/@babel/generator/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.10.tgz", + "integrity": "sha512-XplmVbC1n+KY6jL8/fgLVXXUauDIB+lD5+GsQEh6F6GBF1dq1qy4DP4yXWzDKcoqXB3X58t61e85Fitoww4JVQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.12.10" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz", + "integrity": "sha512-L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg==", + "dev": true, + "dependencies": { + "@babel/helper-explode-assignable-expression": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.12.5.tgz", + "integrity": "sha512-+qH6NrscMolUlzOYngSBMIOQpKUGPPsc61Bu5W10mg84LxZ7cmvnBHzARKbDoFxVvqqAbj6Tg6N7bSrWSPXMyw==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.12.5", + "@babel/helper-validator-option": "^7.12.1", + "browserslist": "^4.14.5", + "semver": "^5.5.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.12.1.tgz", + "integrity": "sha512-hkL++rWeta/OVOBTRJc9a5Azh5mt5WgZUGAKMD8JM141YsE08K//bp1unBBieO6rUKkIPyUE0USQ30jAy3Sk1w==", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-member-expression-to-functions": "^7.12.1", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/helper-replace-supers": "^7.12.1", + "@babel/helper-split-export-declaration": "^7.10.4" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.7.tgz", + "integrity": "sha512-idnutvQPdpbduutvi3JVfEgcVIHooQnhvhx0Nk9isOINOIGYkZea1Pk2JlJRiUnMefrlvr0vkByATBY/mB4vjQ==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "regexpu-core": "^4.7.1" + } + }, + "node_modules/@babel/helper-define-map": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz", + "integrity": "sha512-fMw4kgFB720aQFXSVaXr79pjjcW5puTCM16+rECJ/plGS+zByelE8l9nCpV1GibxTnFVmUuYG9U8wYfQHdzOEQ==", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.10.4", + "@babel/types": "^7.10.5", + "lodash": "^4.17.19" + } + }, + "node_modules/@babel/helper-explode-assignable-expression": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.12.1.tgz", + "integrity": "sha512-dmUwH8XmlrUpVqgtZ737tK88v07l840z9j3OEhCLwKTkjlvKpfqXVIZ0wpK3aeOxspwGrf/5AP5qLx4rO3w5rA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.12.1" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.11.tgz", + "integrity": "sha512-AtQKjtYNolKNi6nNNVLQ27CP6D9oFR6bq/HPYSizlzbp7uC1M59XJe8L+0uXjbIaZaUJF99ruHqVGiKXU/7ybA==", + "dev": true, + "dependencies": { + "@babel/helper-get-function-arity": "^7.12.10", + "@babel/template": "^7.12.7", + "@babel/types": "^7.12.11" + } + }, + "node_modules/@babel/helper-function-name/node_modules/@babel/template": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.7.tgz", + "integrity": "sha512-GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.12.7", + "@babel/types": "^7.12.7" + } + }, + "node_modules/@babel/helper-get-function-arity": { + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.10.tgz", + "integrity": "sha512-mm0n5BPjR06wh9mPQaDdXWDoll/j5UpCAPl1x8fS71GHm7HA6Ua2V4ylG1Ju8lvcTOietbPNNPaSilKj+pj+Ag==", + "dev": true, + "dependencies": { + "@babel/types": "^7.12.10" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz", + "integrity": "sha512-wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.10.4" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.7.tgz", + "integrity": "sha512-DCsuPyeWxeHgh1Dus7APn7iza42i/qXqiFPWyBDdOFtvS581JQePsc1F/nD+fHrcswhLlRc2UpYS1NwERxZhHw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.12.7" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz", + "integrity": "sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.12.5" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz", + "integrity": "sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-replace-supers": "^7.12.1", + "@babel/helper-simple-access": "^7.12.1", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/helper-validator-identifier": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.1", + "@babel/types": "^7.12.1", + "lodash": "^4.17.19" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.10.tgz", + "integrity": "sha512-4tpbU0SrSTjjt65UMWSrUOPZTsgvPgGG4S8QSTNHacKzpS51IVWGDj0yCwyeZND/i+LSN2g/O63jEXEWm49sYQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.12.10" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.12.1.tgz", + "integrity": "sha512-9d0KQCRM8clMPcDwo8SevNs+/9a8yWVVmaE80FGJcEP8N1qToREmWEGnBn8BUlJhYRFz6fqxeRL1sl5Ogsed7A==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-wrap-function": "^7.10.4", + "@babel/types": "^7.12.1" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.11.tgz", + "integrity": "sha512-q+w1cqmhL7R0FNzth/PLLp2N+scXEK/L2AHbXUyydxp828F4FEa5WcVoqui9vFRiHDQErj9Zof8azP32uGVTRA==", + "dev": true, + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.12.7", + "@babel/helper-optimise-call-expression": "^7.12.10", + "@babel/traverse": "^7.12.10", + "@babel/types": "^7.12.11" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz", + "integrity": "sha512-OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.12.1" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz", + "integrity": "sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.12.1" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.11.tgz", + "integrity": "sha512-LsIVN8j48gHgwzfocYUSkO/hjYAOJqlpJEc7tGXcIm4cubjVUf8LGW6eWRyxEu7gA25q02p0rQUWoCI33HNS5g==", + "dev": true, + "dependencies": { + "@babel/types": "^7.12.11" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", + "dev": true + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.11.tgz", + "integrity": "sha512-TBFCyj939mFSdeX7U7DDj32WtzYY7fDcalgq8v3fBZMNOJQNn7nOYzMaUCiPxPYfCup69mtIpqlKgMZLvQ8Xhw==", + "dev": true + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.12.3", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.12.3.tgz", + "integrity": "sha512-Cvb8IuJDln3rs6tzjW3Y8UeelAOdnpB8xtQ4sme2MSZ9wOxrbThporC0y/EtE16VAtoyEfLM404Xr1e0OOp+ow==", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "node_modules/@babel/helpers": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.5.tgz", + "integrity": "sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA==", + "dev": true, + "dependencies": { + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.5", + "@babel/types": "^7.12.5" + } + }, + "node_modules/@babel/highlight": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.10.4", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.11.tgz", + "integrity": "sha512-N3UxG+uuF4CMYoNj8AhnbAcJF0PiuJ9KHuy1lQmkYsxTer/MAH9UBNHsBoAX/4s6NvlDD047No8mYVGGzLL4hg==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-proposal-async-generator-functions": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.12.1.tgz", + "integrity": "sha512-d+/o30tJxFxrA1lhzJqiUcEJdI6jKlNregCv5bASeGf2Q4MXmnwH7viDo7nhx1/ohf09oaH8j1GVYG/e3Yqk6A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-remap-async-to-generator": "^7.12.1", + "@babel/plugin-syntax-async-generators": "^7.8.0" + } + }, + "node_modules/@babel/plugin-proposal-class-properties": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.12.1.tgz", + "integrity": "sha512-cKp3dlQsFsEs5CWKnN7BnSHOd0EOW8EKpEjkoz1pO2E5KzIDNV9Ros1b0CnmbVgAGXJubOYVBOGCT1OmJwOI7w==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-proposal-dynamic-import": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.12.1.tgz", + "integrity": "sha512-a4rhUSZFuq5W8/OO8H7BL5zspjnc1FLd9hlOxIK/f7qG4a0qsqk8uvF/ywgBA8/OmjsapjpvaEOYItfGG1qIvQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-dynamic-import": "^7.8.0" + } + }, + "node_modules/@babel/plugin-proposal-export-namespace-from": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.1.tgz", + "integrity": "sha512-6CThGf0irEkzujYS5LQcjBx8j/4aQGiVv7J9+2f7pGfxqyKh3WnmVJYW3hdrQjyksErMGBPQrCnHfOtna+WLbw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + } + }, + "node_modules/@babel/plugin-proposal-json-strings": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.12.1.tgz", + "integrity": "sha512-GoLDUi6U9ZLzlSda2Df++VSqDJg3CG+dR0+iWsv6XRw1rEq+zwt4DirM9yrxW6XWaTpmai1cWJLMfM8qQJf+yw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.0" + } + }, + "node_modules/@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.12.1.tgz", + "integrity": "sha512-k8ZmVv0JU+4gcUGeCDZOGd0lCIamU/sMtIiX3UWnUc5yzgq6YUGyEolNYD+MLYKfSzgECPcqetVcJP9Afe/aCA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + } + }, + "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.12.1.tgz", + "integrity": "sha512-nZY0ESiaQDI1y96+jk6VxMOaL4LPo/QDHBqL+SF3/vl6dHkTwHlOI8L4ZwuRBHgakRBw5zsVylel7QPbbGuYgg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" + } + }, + "node_modules/@babel/plugin-proposal-numeric-separator": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.7.tgz", + "integrity": "sha512-8c+uy0qmnRTeukiGsjLGy6uVs/TFjJchGXUeBqlG4VWYOdJWkhhVPdQ3uHwbmalfJwv2JsV0qffXP4asRfL2SQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + } + }, + "node_modules/@babel/plugin-proposal-object-rest-spread": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz", + "integrity": "sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-transform-parameters": "^7.12.1" + } + }, + "node_modules/@babel/plugin-proposal-optional-catch-binding": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.12.1.tgz", + "integrity": "sha512-hFvIjgprh9mMw5v42sJWLI1lzU5L2sznP805zeT6rySVRA0Y18StRhDqhSxlap0oVgItRsB6WSROp4YnJTJz0g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" + } + }, + "node_modules/@babel/plugin-proposal-optional-chaining": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.12.7.tgz", + "integrity": "sha512-4ovylXZ0PWmwoOvhU2vhnzVNnm88/Sm9nx7V8BPgMvAzn5zDou3/Awy0EjglyubVHasJj+XCEkr/r1X3P5elCA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1", + "@babel/plugin-syntax-optional-chaining": "^7.8.0" + } + }, + "node_modules/@babel/plugin-proposal-private-methods": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.12.1.tgz", + "integrity": "sha512-mwZ1phvH7/NHK6Kf8LP7MYDogGV+DKB1mryFOEwx5EBNQrosvIczzZFTUmWaeujd5xT6G1ELYWUz3CutMhjE1w==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-proposal-unicode-property-regex": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.1.tgz", + "integrity": "sha512-MYq+l+PvHuw/rKUz1at/vb6nCnQ2gmJBNaM62z0OgH7B2W1D9pvkpYtlti9bGtizNIU1K3zm4bZF9F91efVY0w==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.1.tgz", + "integrity": "sha512-U40A76x5gTwmESz+qiqssqmeEsKvcSyvtgktrm0uzcARAmM9I1jR221f6Oq+GmHrcD+LvZDag1UTOTe2fL3TeA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.1.tgz", + "integrity": "sha512-i7ooMZFS+a/Om0crxZodrTzNEPJHZrlMVGMTEpFAj6rYY/bKCddB0Dk/YxfPuYXOopuhKk/e1jV6h+WUU9XN3A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.12.1.tgz", + "integrity": "sha512-5QB50qyN44fzzz4/qxDPQMBCTHgxg3n0xRBLJUmBlLoU/sFvxVWGZF/ZUfMVDQuJUKXaBhbupxIzIfZ6Fwk/0A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.12.1.tgz", + "integrity": "sha512-SDtqoEcarK1DFlRJ1hHRY5HvJUj5kX4qmtpMAm2QnhOlyuMC4TMdCRgW6WXpv93rZeYNeLP22y8Aq2dbcDRM1A==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-remap-async-to-generator": "^7.12.1" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.1.tgz", + "integrity": "sha512-5OpxfuYnSgPalRpo8EWGPzIYf0lHBWORCkj5M0oLBwHdlux9Ri36QqGW3/LR13RSVOAoUUMzoPI/jpE4ABcHoA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.11.tgz", + "integrity": "sha512-atR1Rxc3hM+VPg/NvNvfYw0npQEAcHuJ+MGZnFn6h3bo+1U3BWXMdFMlvVRApBTWKQMX7SOwRJZA5FBF/JQbvA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.12.1.tgz", + "integrity": "sha512-/74xkA7bVdzQTBeSUhLLJgYIcxw/dpEpCdRDiHgPJ3Mv6uC11UhjpOhl72CgqbBCmt1qtssCyB2xnJm1+PFjog==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-define-map": "^7.10.4", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-replace-supers": "^7.12.1", + "@babel/helper-split-export-declaration": "^7.10.4", + "globals": "^11.1.0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.12.1.tgz", + "integrity": "sha512-vVUOYpPWB7BkgUWPo4C44mUQHpTZXakEqFjbv8rQMg7TC6S6ZhGZ3otQcRH6u7+adSlE5i0sp63eMC/XGffrzg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.12.1.tgz", + "integrity": "sha512-fRMYFKuzi/rSiYb2uRLiUENJOKq4Gnl+6qOv5f8z0TZXg3llUwUhsNNwrwaT/6dUhJTzNpBr+CUvEWBtfNY1cw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.1.tgz", + "integrity": "sha512-B2pXeRKoLszfEW7J4Hg9LoFaWEbr/kzo3teWHmtFCszjRNa/b40f9mfeqZsIDLLt/FjwQ6pz/Gdlwy85xNckBA==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.1.tgz", + "integrity": "sha512-iRght0T0HztAb/CazveUpUQrZY+aGKKaWXMJ4uf9YJtqxSUe09j3wteztCUDRHs+SRAL7yMuFqUsLoAKKzgXjw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.1.tgz", + "integrity": "sha512-7tqwy2bv48q+c1EHbXK0Zx3KXd2RVQp6OC7PbwFNt/dPTAV3Lu5sWtWuAj8owr5wqtWnqHfl2/mJlUmqkChKug==", + "dev": true, + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.12.1.tgz", + "integrity": "sha512-Zaeq10naAsuHo7heQvyV0ptj4dlZJwZgNAtBYBnu5nNKJoW62m0zKcIEyVECrUKErkUkg6ajMy4ZfnVZciSBhg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.1.tgz", + "integrity": "sha512-JF3UgJUILoFrFMEnOJLJkRHSk6LUSXLmEFsA23aR2O5CSLUxbeUX1IZ1YQ7Sn0aXb601Ncwjx73a+FVqgcljVw==", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.1.tgz", + "integrity": "sha512-+PxVGA+2Ag6uGgL0A5f+9rklOnnMccwEBzwYFL3EUaKuiyVnUipyXncFcfjSkbimLrODoqki1U9XxZzTvfN7IQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.1.tgz", + "integrity": "sha512-1sxePl6z9ad0gFMB9KqmYofk34flq62aqMt9NqliS/7hPEpURUCMbyHXrMPlo282iY7nAvUB1aQd5mg79UD9Jg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.12.1.tgz", + "integrity": "sha512-tDW8hMkzad5oDtzsB70HIQQRBiTKrhfgwC/KkJeGsaNFTdWhKNt/BiE8c5yj19XiGyrxpbkOfH87qkNg1YGlOQ==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.12.1.tgz", + "integrity": "sha512-dY789wq6l0uLY8py9c1B48V8mVL5gZh/+PQ5ZPrylPYsnAvnEMjqsUXkuoDVPeVK+0VyGar+D08107LzDQ6pag==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-simple-access": "^7.12.1", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.12.1.tgz", + "integrity": "sha512-Hn7cVvOavVh8yvW6fLwveFqSnd7rbQN3zJvoPNyNaQSvgfKmDBO9U1YL9+PCXGRlZD9tNdWTy5ACKqMuzyn32Q==", + "dev": true, + "dependencies": { + "@babel/helper-hoist-variables": "^7.10.4", + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-validator-identifier": "^7.10.4", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.12.1.tgz", + "integrity": "sha512-aEIubCS0KHKM0zUos5fIoQm+AZUMt1ZvMpqz0/H5qAQ7vWylr9+PLYurT+Ic7ID/bKLd4q8hDovaG3Zch2uz5Q==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.1.tgz", + "integrity": "sha512-tB43uQ62RHcoDp9v2Nsf+dSM8sbNodbEicbQNA53zHz8pWUhsgHSJCGpt7daXxRydjb0KnfmB+ChXOv3oADp1Q==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.12.1" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.1.tgz", + "integrity": "sha512-+eW/VLcUL5L9IvJH7rT1sT0CzkdUTvPrXC2PXTn/7z7tXLBuKvezYbGdxD5WMRoyvyaujOq2fWoKl869heKjhw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.1.tgz", + "integrity": "sha512-AvypiGJH9hsquNUn+RXVcBdeE3KHPZexWRdimhuV59cSoOt5kFBmqlByorAeUlGG2CJWd0U+4ZtNKga/TB0cAw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-replace-supers": "^7.12.1" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.12.1.tgz", + "integrity": "sha512-xq9C5EQhdPK23ZeCdMxl8bbRnAgHFrw5EOC3KJUsSylZqdkCaFEXxGSBuTSObOpiiHHNyb82es8M1QYgfQGfNg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.1.tgz", + "integrity": "sha512-6MTCR/mZ1MQS+AwZLplX4cEySjCpnIF26ToWo942nqn8hXSm7McaHQNeGx/pt7suI1TWOWMfa/NgBhiqSnX0cQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.1.tgz", + "integrity": "sha512-gYrHqs5itw6i4PflFX3OdBPMQdPbF4bj2REIUxlMRUFk0/ZOAIpDFuViuxPjUL7YC8UPnf+XG7/utJvqXdPKng==", + "dev": true, + "dependencies": { + "regenerator-transform": "^0.14.2" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.1.tgz", + "integrity": "sha512-pOnUfhyPKvZpVyBHhSBoX8vfA09b7r00Pmm1sH+29ae2hMTKVmSp4Ztsr8KBKjLjx17H0eJqaRC3bR2iThM54A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-runtime": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.11.0.tgz", + "integrity": "sha512-LFEsP+t3wkYBlis8w6/kmnd6Kb1dxTd+wGJ8MlxTGzQo//ehtqlVL4S9DNUa53+dtPSQobN2CXx4d81FqC58cw==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "resolve": "^1.8.1", + "semver": "^5.5.1" + } + }, + "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.1.tgz", + "integrity": "sha512-GFZS3c/MhX1OusqB1MZ1ct2xRzX5ppQh2JU1h2Pnfk88HtFTM+TWQqJNfwkmxtPQtb/s1tk87oENfXJlx7rSDw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.12.1.tgz", + "integrity": "sha512-vuLp8CP0BE18zVYjsEBZ5xoCecMK6LBMMxYzJnh01rxQRvhNhH1csMMmBfNo5tGpGO+NhdSNW2mzIvBu3K1fng==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.7.tgz", + "integrity": "sha512-VEiqZL5N/QvDbdjfYQBhruN0HYjSPjC4XkeqW4ny/jNtH9gcbgaqBIXYEZCNnESMAGs0/K/R7oFGMhOyu/eIxg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.12.1.tgz", + "integrity": "sha512-b4Zx3KHi+taXB1dVRBhVJtEPi9h1THCeKmae2qP0YdUHIFhVjtpqqNfxeVAa1xeHVhAy4SbHxEwx5cltAu5apw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.10.tgz", + "integrity": "sha512-JQ6H8Rnsogh//ijxspCjc21YPd3VLVoYtAwv3zQmqAt8YGYUtdo5usNhdl4b9/Vir2kPFZl6n1h0PfUz4hJhaA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.1.tgz", + "integrity": "sha512-I8gNHJLIc7GdApm7wkVnStWssPNbSRMPtgHdmH3sRM1zopz09UWPS4x5V4n1yz/MIWTVnJ9sp6IkuXdWM4w+2Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.1.tgz", + "integrity": "sha512-SqH4ClNngh/zGwHZOOQMTD+e8FGWexILV+ePMyiDJttAWRh5dhDL8rcl5lSgU3Huiq6Zn6pWTMvdPAb21Dwdyg==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.11.0.tgz", + "integrity": "sha512-2u1/k7rG/gTh02dylX2kL3S0IJNF+J6bfDSp4DI2Ma8QN6Y9x9pmAax59fsCk6QUQG0yqH47yJWA+u1I1LccAg==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.11.0", + "@babel/helper-compilation-targets": "^7.10.4", + "@babel/helper-module-imports": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-proposal-async-generator-functions": "^7.10.4", + "@babel/plugin-proposal-class-properties": "^7.10.4", + "@babel/plugin-proposal-dynamic-import": "^7.10.4", + "@babel/plugin-proposal-export-namespace-from": "^7.10.4", + "@babel/plugin-proposal-json-strings": "^7.10.4", + "@babel/plugin-proposal-logical-assignment-operators": "^7.11.0", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.10.4", + "@babel/plugin-proposal-numeric-separator": "^7.10.4", + "@babel/plugin-proposal-object-rest-spread": "^7.11.0", + "@babel/plugin-proposal-optional-catch-binding": "^7.10.4", + "@babel/plugin-proposal-optional-chaining": "^7.11.0", + "@babel/plugin-proposal-private-methods": "^7.10.4", + "@babel/plugin-proposal-unicode-property-regex": "^7.10.4", + "@babel/plugin-syntax-async-generators": "^7.8.0", + "@babel/plugin-syntax-class-properties": "^7.10.4", + "@babel/plugin-syntax-dynamic-import": "^7.8.0", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.0", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.0", + "@babel/plugin-syntax-top-level-await": "^7.10.4", + "@babel/plugin-transform-arrow-functions": "^7.10.4", + "@babel/plugin-transform-async-to-generator": "^7.10.4", + "@babel/plugin-transform-block-scoped-functions": "^7.10.4", + "@babel/plugin-transform-block-scoping": "^7.10.4", + "@babel/plugin-transform-classes": "^7.10.4", + "@babel/plugin-transform-computed-properties": "^7.10.4", + "@babel/plugin-transform-destructuring": "^7.10.4", + "@babel/plugin-transform-dotall-regex": "^7.10.4", + "@babel/plugin-transform-duplicate-keys": "^7.10.4", + "@babel/plugin-transform-exponentiation-operator": "^7.10.4", + "@babel/plugin-transform-for-of": "^7.10.4", + "@babel/plugin-transform-function-name": "^7.10.4", + "@babel/plugin-transform-literals": "^7.10.4", + "@babel/plugin-transform-member-expression-literals": "^7.10.4", + "@babel/plugin-transform-modules-amd": "^7.10.4", + "@babel/plugin-transform-modules-commonjs": "^7.10.4", + "@babel/plugin-transform-modules-systemjs": "^7.10.4", + "@babel/plugin-transform-modules-umd": "^7.10.4", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.10.4", + "@babel/plugin-transform-new-target": "^7.10.4", + "@babel/plugin-transform-object-super": "^7.10.4", + "@babel/plugin-transform-parameters": "^7.10.4", + "@babel/plugin-transform-property-literals": "^7.10.4", + "@babel/plugin-transform-regenerator": "^7.10.4", + "@babel/plugin-transform-reserved-words": "^7.10.4", + "@babel/plugin-transform-shorthand-properties": "^7.10.4", + "@babel/plugin-transform-spread": "^7.11.0", + "@babel/plugin-transform-sticky-regex": "^7.10.4", + "@babel/plugin-transform-template-literals": "^7.10.4", + "@babel/plugin-transform-typeof-symbol": "^7.10.4", + "@babel/plugin-transform-unicode-escapes": "^7.10.4", + "@babel/plugin-transform-unicode-regex": "^7.10.4", + "@babel/preset-modules": "^0.1.3", + "@babel/types": "^7.11.0", + "browserslist": "^4.12.0", + "core-js-compat": "^3.6.2", + "invariant": "^2.2.2", + "levenary": "^1.1.1", + "semver": "^5.5.0" + } + }, + "node_modules/@babel/preset-env/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.4.tgz", + "integrity": "sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + } + }, + "node_modules/@babel/runtime": { + "version": "7.11.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.11.2.tgz", + "integrity": "sha512-TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw==", + "dev": true, + "dependencies": { + "regenerator-runtime": "^0.13.4" + } + }, + "node_modules/@babel/template": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", + "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "node_modules/@babel/traverse": { + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.10.tgz", + "integrity": "sha512-6aEtf0IeRgbYWzta29lePeYSk+YAFIC3kyqESeft8o5CkFlYIMX+EQDDWEiAQ9LHOA3d0oHdgrSsID/CKqXJlg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.10", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/parser": "^7.12.10", + "@babel/types": "^7.12.10", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.19" + } + }, + "node_modules/@babel/traverse/node_modules/@babel/generator": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.11.tgz", + "integrity": "sha512-Ggg6WPOJtSi8yYQvLVjG8F/TlpWDlKx0OpS4Kt+xMQPs5OaGYWy+v1A+1TvxI6sAMGZpKWWoAQ1DaeQbImlItA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.12.11", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "node_modules/@babel/traverse/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/types": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.11.tgz", + "integrity": "sha512-ukA9SQtKThINm++CX1CwmliMrE54J6nIYB5XTwL5f/CLFW9owfls+YSU8tVW15RQ2w+a3fSbPjC6HdQNtWZkiA==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz", + "integrity": "sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jsdevtools/coverage-istanbul-loader": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@jsdevtools/coverage-istanbul-loader/-/coverage-istanbul-loader-3.0.5.tgz", + "integrity": "sha512-EUCPEkaRPvmHjWAAZkWMT7JDzpw7FKB00WTISaiXsbNOd5hCHg77XLA8sLYLFDo1zepYLo2w7GstN8YBqRXZfA==", + "dev": true, + "dependencies": { + "convert-source-map": "^1.7.0", + "istanbul-lib-instrument": "^4.0.3", + "loader-utils": "^2.0.0", + "merge-source-map": "^1.1.0", + "schema-utils": "^2.7.0" + } + }, + "node_modules/@ngtools/webpack": { + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-10.2.1.tgz", + "integrity": "sha512-RKJSoQufHHpLpsGWUas3WEYtFhnCXmf5GiYCEv8d36ITNRKHhQv38FHLq1aen8Jd7F0b3eZFX5JmGvb7JJmVVg==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "10.2.1", + "enhanced-resolve": "4.3.0", + "webpack-sources": "1.4.3" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 6.11.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz", + "integrity": "sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.3", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz", + "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz", + "integrity": "sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.3", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@npmcli/move-file": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.0.1.tgz", + "integrity": "sha512-Uv6h1sT+0DrblvIrolFtbvM1FgWm+/sy4B3pvLp67Zys+thcukzS5ekn7HsZFGpWP4Q3fYJCljbWQE/XivMRLw==", + "dev": true, + "dependencies": { + "mkdirp": "^1.0.4" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@npmcli/move-file/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@schematics/angular": { + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-10.2.1.tgz", + "integrity": "sha512-hmhZ6zPJshP1ATYc/EzJPwaFas0D+T6eeWEFyHAgIV2GmNdJNyBdKHQtizGRQBpfWvBdI4/krvX+a71VnkU8oA==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "10.2.1", + "@angular-devkit/schematics": "10.2.1", + "jsonc-parser": "2.3.0" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 6.11.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@schematics/update": { + "version": "0.1002.1", + "resolved": "https://registry.npmjs.org/@schematics/update/-/update-0.1002.1.tgz", + "integrity": "sha512-RbC01VKb9q7Db5rpbrQLBOVkIzv3TPWMjRUSgg/LlLFEDVO3LPn5nX9bYnb6E0HeIqUW+zAU5Qaz9ob/Py06LA==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "10.2.1", + "@angular-devkit/schematics": "10.2.1", + "@yarnpkg/lockfile": "1.1.0", + "ini": "1.3.6", + "npm-package-arg": "^8.0.0", + "pacote": "9.5.12", + "semver": "7.3.2", + "semver-intersect": "1.4.0" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 6.11.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@types/glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==", + "dev": true, + "dependencies": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "node_modules/@types/jasmine": { + "version": "3.5.14", + "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-3.5.14.tgz", + "integrity": "sha512-Fkgk536sHPqcOtd+Ow+WiUNuk0TSo/BntKkF8wSvcd6M2FvPjeXcUE6Oz/bwDZiUZEaXLslAgw00Q94Pnx6T4w==", + "dev": true + }, + "node_modules/@types/jasminewd2": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@types/jasminewd2/-/jasminewd2-2.0.8.tgz", + "integrity": "sha512-d9p31r7Nxk0ZH0U39PTH0hiDlJ+qNVGjlt1ucOoTUptxb2v+Y5VMnsxfwN+i3hK4yQnqBi3FMmoMFcd1JHDxdg==", + "dev": true, + "dependencies": { + "@types/jasmine": "*" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.6.tgz", + "integrity": "sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw==", + "dev": true + }, + "node_modules/@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, + "node_modules/@types/node": { + "version": "12.19.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.19.9.tgz", + "integrity": "sha512-yj0DOaQeUrk3nJ0bd3Y5PeDRJ6W0r+kilosLA+dzF3dola/o9hxhMSg2sFvVcA2UHS5JSOsZp4S0c1OEXc4m1Q==", + "dev": true + }, + "node_modules/@types/q": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz", + "integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==", + "dev": true + }, + "node_modules/@types/selenium-webdriver": { + "version": "3.0.17", + "resolved": "https://registry.npmjs.org/@types/selenium-webdriver/-/selenium-webdriver-3.0.17.tgz", + "integrity": "sha512-tGomyEuzSC1H28y2zlW6XPCaDaXFaD6soTdb4GNdmte2qfHtrKqhy0ZFs4r/1hpazCfEZqeTSRLvSasmEx89uw==", + "dev": true + }, + "node_modules/@types/source-list-map": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz", + "integrity": "sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==", + "dev": true + }, + "node_modules/@types/webpack-sources": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-0.1.8.tgz", + "integrity": "sha512-JHB2/xZlXOjzjBB6fMOpH1eQAfsrpqVVIbneE0Rok16WXwFaznaI5vfg75U5WgGJm7V9W1c4xeRQDjX/zwvghA==", + "dev": true, + "dependencies": { + "@types/node": "*", + "@types/source-list-map": "*", + "source-map": "^0.6.1" + } + }, + "node_modules/@types/webpack-sources/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", + "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", + "dev": true, + "dependencies": { + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz", + "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", + "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", + "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-code-frame": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz", + "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==", + "dev": true, + "dependencies": { + "@webassemblyjs/wast-printer": "1.9.0" + } + }, + "node_modules/@webassemblyjs/helper-fsm": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz", + "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-module-context": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz", + "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.9.0" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", + "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", + "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", + "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", + "dev": true, + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", + "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", + "dev": true, + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", + "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==", + "dev": true + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", + "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/helper-wasm-section": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-opt": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "@webassemblyjs/wast-printer": "1.9.0" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", + "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", + "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", + "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" + } + }, + "node_modules/@webassemblyjs/wast-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz", + "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/floating-point-hex-parser": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-code-frame": "1.9.0", + "@webassemblyjs/helper-fsm": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", + "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "node_modules/@yarnpkg/lockfile": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", + "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", + "dev": true + }, + "node_modules/abab": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", + "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", + "dev": true + }, + "node_modules/accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "dev": true, + "dependencies": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", + "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/adjust-sourcemap-loader": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-3.0.0.tgz", + "integrity": "sha512-YBrGyT2/uVQ/c6Rr+t6ZJXniY03YtHGMJQYal368burRGYKqhx9qGTWqcBU5s1CwYY9E/ri63RYyG1IacMZtqw==", + "dev": true, + "dependencies": { + "loader-utils": "^2.0.0", + "regex-parser": "^2.2.11" + }, + "engines": { + "node": ">=8.9" + } + }, + "node_modules/adm-zip": { + "version": "0.4.16", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz", + "integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==", + "dev": true, + "engines": { + "node": ">=0.3.0" + } + }, + "node_modules/after": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", + "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=", + "dev": true + }, + "node_modules/agent-base": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", + "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", + "dev": true, + "dependencies": { + "es6-promisify": "^5.0.0" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/agentkeepalive": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-3.5.2.tgz", + "integrity": "sha512-e0L/HNe6qkQ7H19kTlRRqUibEAwDK5AFk6y3PtMsuut2VAH6+Q4xZml1tNDJD7kSAyqmbG/K08K5WEJYtUrSlQ==", + "dev": true, + "dependencies": { + "humanize-ms": "^1.2.1" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "6.12.4", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.4.tgz", + "integrity": "sha512-eienB2c9qVQs2KWexhkrdMLVDoIQCz5KSeLxwg9Lzk4DOfBtIK9PQwwufcsn1jjGuf9WZmqPMbGxOzfcuphJCQ==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "node_modules/ajv-errors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", + "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", + "dev": true + }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true + }, + "node_modules/alphanum-sort": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", + "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", + "dev": true + }, + "node_modules/ansi-colors": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", + "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", + "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", + "dev": true, + "dependencies": { + "type-fest": "^0.11.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-html": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", + "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=", + "dev": true, + "engines": [ + "node >= 0.8.0" + ], + "bin": { + "ansi-html": "bin/ansi-html" + } + }, + "node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/apexcharts": { + "version": "3.23.0", + "resolved": "https://registry.npmjs.org/apexcharts/-/apexcharts-3.23.0.tgz", + "integrity": "sha512-1mV6qouuopvYR6UFSXi/Ge4jRMe//zyAN3aK05mAs4Iuet8mA0w31Q6OU6syD77bawt9p3YKNOmNF7OO2u9w0g==", + "dependencies": { + "svg.draggable.js": "^2.2.2", + "svg.easing.js": "^2.0.0", + "svg.filter.js": "^2.0.2", + "svg.pathmorphing.js": "^0.1.3", + "svg.resize.js": "^1.4.3", + "svg.select.js": "^3.0.1" + } + }, + "node_modules/app-root-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-3.0.0.tgz", + "integrity": "sha512-qMcx+Gy2UZynHjOHOIXPNvpf+9cjvk3cWrBBK7zg4gH9+clobJRb9NGzcT7mQTcV/6Gm/1WelUtqxVXnNlrwcw==", + "dev": true, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true + }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/aria-query": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-3.0.0.tgz", + "integrity": "sha1-ZbP8wcoRVajJrmTW7uKX8V1RM8w=", + "dev": true, + "dependencies": { + "ast-types-flow": "0.0.7", + "commander": "^2.11.0" + } + }, + "node_modules/arity-n": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/arity-n/-/arity-n-1.0.4.tgz", + "integrity": "sha1-2edrEXM+CFacCEeuezmyhgswt0U=", + "dev": true + }, + "node_modules/arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", + "dev": true + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arraybuffer.slice": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz", + "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==", + "dev": true + }, + "node_modules/arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", + "dev": true + }, + "node_modules/asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "dev": true, + "dependencies": { + "safer-buffer": "~2.1.0" + } + }, + "node_modules/asn1.js": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", + "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", + "dev": true, + "dependencies": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/asn1.js/node_modules/bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + }, + "node_modules/assert": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", + "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", + "dev": true, + "dependencies": { + "object-assign": "^4.1.1", + "util": "0.10.3" + } + }, + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/assert/node_modules/inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", + "dev": true + }, + "node_modules/assert/node_modules/util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "dev": true, + "dependencies": { + "inherits": "2.0.1" + } + }, + "node_modules/assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ast-types-flow": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", + "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=", + "dev": true + }, + "node_modules/async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "dev": true, + "dependencies": { + "lodash": "^4.17.14" + } + }, + "node_modules/async-each": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", + "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", + "dev": true + }, + "node_modules/async-limiter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", + "dev": true + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "node_modules/atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true, + "bin": { + "atob": "bin/atob.js" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/autoprefixer": { + "version": "9.8.6", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.6.tgz", + "integrity": "sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg==", + "dev": true, + "dependencies": { + "browserslist": "^4.12.0", + "caniuse-lite": "^1.0.30001109", + "colorette": "^1.2.1", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "postcss": "^7.0.32", + "postcss-value-parser": "^4.1.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + } + }, + "node_modules/aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/aws4": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", + "dev": true + }, + "node_modules/axobject-query": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.0.2.tgz", + "integrity": "sha512-MCeek8ZH7hKyO1rWUbKNQBbl4l2eY0ntk7OGi+q0RlafrCnfPxC06WZA+uebCfmYp4mNU9jRBP1AhGyf8+W3ww==", + "dev": true, + "dependencies": { + "ast-types-flow": "0.0.7" + } + }, + "node_modules/babel-loader": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.1.0.tgz", + "integrity": "sha512-7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw==", + "dev": true, + "dependencies": { + "find-cache-dir": "^2.1.0", + "loader-utils": "^1.4.0", + "mkdirp": "^0.5.3", + "pify": "^4.0.1", + "schema-utils": "^2.6.5" + }, + "engines": { + "node": ">= 6.9" + } + }, + "node_modules/babel-loader/node_modules/find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "dev": true, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/babel-loader/node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/babel-loader/node_modules/loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "dev": true, + "dependencies": { + "object.assign": "^4.1.0" + } + }, + "node_modules/backo2": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", + "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=", + "dev": true + }, + "node_modules/balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "node_modules/base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "dependencies": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base64-arraybuffer": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz", + "integrity": "sha1-mBjHngWbE1X5fgQooBfIOOkLqBI=", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true + }, + "node_modules/base64id": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", + "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", + "dev": true, + "engines": { + "node": "^4.5.0 || >= 5.9" + } + }, + "node_modules/batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", + "dev": true + }, + "node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dev": true, + "dependencies": { + "tweetnacl": "^0.14.3" + } + }, + "node_modules/better-assert": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", + "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=", + "dev": true, + "dependencies": { + "callsite": "1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", + "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dev": true, + "optional": true, + "dependencies": { + "file-uri-to-path": "1.0.0" + } + }, + "node_modules/blob": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz", + "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==", + "dev": true + }, + "node_modules/blocking-proxy": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/blocking-proxy/-/blocking-proxy-1.0.1.tgz", + "integrity": "sha512-KE8NFMZr3mN2E0HcvCgRtX7DjhiIQrwle+nSVJVC/yqFb9+xznHl2ZcoBp2L9qzkI4t4cBFJ1efXF8Dwi132RA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "blocking-proxy": "built/lib/bin.js" + }, + "engines": { + "node": ">=6.9.x" + } + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, + "node_modules/bn.js": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.3.tgz", + "integrity": "sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ==", + "dev": true + }, + "node_modules/body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "dev": true, + "dependencies": { + "bytes": "3.1.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/body-parser/node_modules/bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/bonjour": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", + "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", + "dev": true, + "dependencies": { + "array-flatten": "^2.1.0", + "deep-equal": "^1.0.1", + "dns-equal": "^1.0.0", + "dns-txt": "^2.0.2", + "multicast-dns": "^6.0.1", + "multicast-dns-service-types": "^1.1.0" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", + "dev": true + }, + "node_modules/bootstrap": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-3.4.1.tgz", + "integrity": "sha512-yN5oZVmRCwe5aKwzRj6736nSmKDX7pLYwsXiCj/EYmo16hODaBiT4En5btW/jhBF/seV+XMx3aYwukYC3A49DA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", + "dev": true + }, + "node_modules/browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dev": true, + "dependencies": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "dev": true, + "dependencies": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "node_modules/browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "dev": true, + "dependencies": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/browserify-rsa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", + "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", + "dev": true, + "dependencies": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + } + }, + "node_modules/browserify-sign": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", + "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", + "dev": true, + "dependencies": { + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.3", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + } + }, + "node_modules/browserify-sign/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/browserify-sign/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + }, + "node_modules/browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "dev": true, + "dependencies": { + "pako": "~1.0.5" + } + }, + "node_modules/browserslist": { + "version": "4.16.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.0.tgz", + "integrity": "sha512-/j6k8R0p3nxOC6kx5JGAxsnhc9ixaWJfYc+TNTzxg6+ARaESAvQGV7h0uNOB4t+pLQJZWzcrMxXOxjgsCj3dqQ==", + "dev": true, + "dependencies": { + "caniuse-lite": "^1.0.30001165", + "colorette": "^1.2.1", + "electron-to-chromium": "^1.3.621", + "escalade": "^3.1.1", + "node-releases": "^1.1.67" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/browserstack": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/browserstack/-/browserstack-1.6.1.tgz", + "integrity": "sha512-GxtFjpIaKdbAyzHfFDKixKO8IBT7wR3NjbzrGc78nNs/Ciys9wU3/nBtsqsWv5nDSrdI5tz0peKuzCPuNXNUiw==", + "dev": true, + "dependencies": { + "https-proxy-agent": "^2.2.1" + } + }, + "node_modules/buffer": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "dev": true, + "dependencies": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "node_modules/buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "dev": true + }, + "node_modules/buffer-indexof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", + "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", + "dev": true + }, + "node_modules/buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", + "dev": true + }, + "node_modules/builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", + "dev": true + }, + "node_modules/builtins": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", + "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=", + "dev": true + }, + "node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cacache": { + "version": "15.0.5", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.0.5.tgz", + "integrity": "sha512-lloiL22n7sOjEEXdL8NAjTgv9a1u43xICE9/203qonkZUCj5X1UEWIdf2/Y0d6QcCtMzbKQyhrcDbdvlZTs/+A==", + "dev": true, + "dependencies": { + "@npmcli/move-file": "^1.0.1", + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "infer-owner": "^1.0.4", + "lru-cache": "^6.0.0", + "minipass": "^3.1.1", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^1.0.3", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^8.0.0", + "tar": "^6.0.2", + "unique-filename": "^1.1.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/cacache/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "dependencies": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/call-bind": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.0.tgz", + "integrity": "sha512-AEXsYIyyDY3MCzbwdhzG3Jx1R0J2wetQyUynn6dYHAO+bg8l1k7jwZtRv4ryryFs7EP+NDlikJlVe59jr0cM2w==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.0" + } + }, + "node_modules/caller-callsite": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", + "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", + "dev": true, + "dependencies": { + "callsites": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/caller-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", + "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", + "dev": true, + "dependencies": { + "caller-callsite": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/callsite": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", + "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/callsites": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", + "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/camelcase": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", + "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "dev": true, + "dependencies": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001168", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001168.tgz", + "integrity": "sha512-P2zmX7swIXKu+GMMR01TWa4csIKELTNnZKc+f1CjebmZJQtTAEXmpQSoKVJVVcvPGAA0TEYTOUp3VehavZSFPQ==", + "dev": true + }, + "node_modules/canonical-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/canonical-path/-/canonical-path-1.0.0.tgz", + "integrity": "sha512-feylzsbDxi1gPZ1IjystzIQZagYYLvfKrSuygUCgf7z6x790VEzze5QEkdSV1U58RA7Hi0+v6fv4K54atOzATg==", + "dev": true + }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, + "node_modules/chokidar": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.3.tgz", + "integrity": "sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ==", + "dev": true, + "dependencies": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.1.2", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.5.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.1.2" + } + }, + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz", + "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/chrome-trace-event/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/circular-dependency-plugin": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/circular-dependency-plugin/-/circular-dependency-plugin-5.2.0.tgz", + "integrity": "sha512-7p4Kn/gffhQaavNfyDFg7LS5S/UT1JAjyGd4UqR2+jzoYF02eDkj0Ec3+48TsIa4zghjLY87nQHIh/ecK9qLdw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "dependencies": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-spinners": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.5.0.tgz", + "integrity": "sha512-PC+AmIuK04E6aeSs/pUccSujsTzBhu4HzC2dL+CfJB/Jcc2qTRbEwZQDfIUpt2Xl8BodYBEq8w4fc0kU2I9DjQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "dependencies": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + } + }, + "node_modules/cliui/node_modules/ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/cliui/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/coa": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", + "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", + "dev": true, + "dependencies": { + "@types/q": "^1.5.1", + "chalk": "^2.4.1", + "q": "^1.1.2" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/codelyzer": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/codelyzer/-/codelyzer-6.0.1.tgz", + "integrity": "sha512-cOyGQgMdhnRYtW2xrJUNrNYDjEgwQ+BrE2y93Bwz3h4DJ6vJRLfupemU5N3pbYsUlBHJf0u1j1UGk+NLW4d97g==", + "dev": true, + "dependencies": { + "@angular/compiler": "9.0.0", + "@angular/core": "9.0.0", + "app-root-path": "^3.0.0", + "aria-query": "^3.0.0", + "axobject-query": "2.0.2", + "css-selector-tokenizer": "^0.7.1", + "cssauron": "^1.4.0", + "damerau-levenshtein": "^1.0.4", + "rxjs": "^6.5.3", + "semver-dsl": "^1.0.1", + "source-map": "^0.5.7", + "sprintf-js": "^1.1.2", + "tslib": "^1.10.0", + "zone.js": "~0.10.3" + } + }, + "node_modules/codelyzer/node_modules/@angular/compiler": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-9.0.0.tgz", + "integrity": "sha512-ctjwuntPfZZT2mNj2NDIVu51t9cvbhl/16epc5xEwyzyDt76pX9UgwvY+MbXrf/C/FWwdtmNtfP698BKI+9leQ==", + "dev": true + }, + "node_modules/codelyzer/node_modules/@angular/core": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-9.0.0.tgz", + "integrity": "sha512-6Pxgsrf0qF9iFFqmIcWmjJGkkCaCm6V5QNnxMy2KloO3SDq6QuMVRbN9RtC8Urmo25LP+eZ6ZgYqFYpdD8Hd9w==", + "dev": true + }, + "node_modules/codelyzer/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/codelyzer/node_modules/sprintf-js": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", + "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", + "dev": true + }, + "node_modules/codelyzer/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "dependencies": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/color": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/color/-/color-3.1.3.tgz", + "integrity": "sha512-xgXAcTHa2HeFCGLE9Xs/R82hujGtu9Jd9x4NW3T34+OMs7VoPsjwzRczKHvTAHeJwWFwX5j15+MgAppE8ztObQ==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.1", + "color-string": "^1.5.4" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "node_modules/color-string": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.4.tgz", + "integrity": "sha512-57yF5yt8Xa3czSEW1jfQDE79Idk0+AkN/4KWad6tbdxUmAs3MvjxlWSWD4deYytcRfoZ9nhKyFl1kj5tBvidbw==", + "dev": true, + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "node_modules/colorette": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz", + "integrity": "sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==", + "dev": true + }, + "node_modules/colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "dev": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, + "node_modules/component-bind": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", + "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=", + "dev": true + }, + "node_modules/component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true + }, + "node_modules/component-inherit": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", + "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=", + "dev": true + }, + "node_modules/compose-function": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/compose-function/-/compose-function-3.0.3.tgz", + "integrity": "sha1-ntZ18TzFRQHTCVCkhv9qe6OrGF8=", + "dev": true, + "dependencies": { + "arity-n": "^1.0.4" + } + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dev": true, + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dev": true, + "dependencies": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "engines": [ + "node >= 0.8" + ], + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/connect": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", + "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "finalhandler": "1.1.2", + "parseurl": "~1.3.3", + "utils-merge": "1.0.1" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/connect-history-api-fallback": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/connect/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/connect/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", + "dev": true + }, + "node_modules/constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", + "dev": true + }, + "node_modules/content-disposition": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", + "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", + "dev": true, + "dependencies": { + "safe-buffer": "5.1.2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.1" + } + }, + "node_modules/cookie": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", + "dev": true + }, + "node_modules/copy-anything": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.1.tgz", + "integrity": "sha512-lA57e7viQHOdPQcrytv5jFeudZZOXuyk47lZym279FiDQ8jeZomXiGuVf6ffMKkJ+3TIai3J1J3yi6M+/4U35g==", + "dev": true, + "dependencies": { + "is-what": "^3.7.1" + } + }, + "node_modules/copy-concurrently": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", + "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", + "dev": true, + "dependencies": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + } + }, + "node_modules/copy-concurrently/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/copy-webpack-plugin": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-6.0.3.tgz", + "integrity": "sha512-q5m6Vz4elsuyVEIUXr7wJdIdePWTubsqVbEMvf1WQnHGv0Q+9yPRu7MtYFPt+GBOXRav9lvIINifTQ1vSCs+eA==", + "dev": true, + "dependencies": { + "cacache": "^15.0.4", + "fast-glob": "^3.2.4", + "find-cache-dir": "^3.3.1", + "glob-parent": "^5.1.1", + "globby": "^11.0.1", + "loader-utils": "^2.0.0", + "normalize-path": "^3.0.0", + "p-limit": "^3.0.1", + "schema-utils": "^2.7.0", + "serialize-javascript": "^4.0.0", + "webpack-sources": "^1.4.3" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/copy-webpack-plugin/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/core-js": { + "version": "3.6.4", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.4.tgz", + "integrity": "sha512-4paDGScNgZP2IXXilaffL9X7968RuvwlkK3xWtZRVqgd8SYNiVKRJvkFd1aqqEuPfN7E68ZHEp9hDj6lHj4Hyw==", + "dev": true + }, + "node_modules/core-js-compat": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.8.1.tgz", + "integrity": "sha512-a16TLmy9NVD1rkjUGbwuyWkiDoN0FDpAwrfLONvHFQx0D9k7J9y0srwMT8QP/Z6HE3MIFaVynEeYwZwPX1o5RQ==", + "dev": true, + "dependencies": { + "browserslist": "^4.15.0", + "semver": "7.0.0" + } + }, + "node_modules/core-js-compat/node_modules/semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "node_modules/cosmiconfig": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", + "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", + "dev": true, + "dependencies": { + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "dev": true, + "dependencies": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + } + }, + "node_modules/create-ecdh/node_modules/bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + }, + "node_modules/create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dev": true, + "dependencies": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "node_modules/create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dev": true, + "dependencies": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "node_modules/cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/cross-spawn/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "dev": true, + "dependencies": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + }, + "engines": { + "node": "*" + } + }, + "node_modules/css": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz", + "integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "source-map": "^0.6.1", + "source-map-resolve": "^0.5.2", + "urix": "^0.1.0" + } + }, + "node_modules/css-color-names": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", + "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/css-declaration-sorter": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz", + "integrity": "sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==", + "dev": true, + "dependencies": { + "postcss": "^7.0.1", + "timsort": "^0.3.0" + }, + "engines": { + "node": ">4" + } + }, + "node_modules/css-loader": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-4.2.2.tgz", + "integrity": "sha512-omVGsTkZPVwVRpckeUnLshPp12KsmMSLqYxs12+RzM9jRR5Y+Idn/tBffjXRvOE+qW7if24cuceFJqYR5FmGBg==", + "dev": true, + "dependencies": { + "camelcase": "^6.0.0", + "cssesc": "^3.0.0", + "icss-utils": "^4.1.1", + "loader-utils": "^2.0.0", + "postcss": "^7.0.32", + "postcss-modules-extract-imports": "^2.0.0", + "postcss-modules-local-by-default": "^3.0.3", + "postcss-modules-scope": "^2.2.0", + "postcss-modules-values": "^3.0.0", + "postcss-value-parser": "^4.1.0", + "schema-utils": "^2.7.0", + "semver": "^7.3.2" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/css-parse": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/css-parse/-/css-parse-2.0.0.tgz", + "integrity": "sha1-pGjuZnwW2BzPBcWMONKpfHgNv9Q=", + "dev": true, + "dependencies": { + "css": "^2.0.0" + } + }, + "node_modules/css-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", + "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^3.2.1", + "domutils": "^1.7.0", + "nth-check": "^1.0.2" + } + }, + "node_modules/css-select-base-adapter": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", + "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==", + "dev": true + }, + "node_modules/css-selector-tokenizer": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.3.tgz", + "integrity": "sha512-jWQv3oCEL5kMErj4wRnK/OPoBi0D+P1FR2cDCKYPaMeD2eW3/mttav8HT4hT1CKopiJI/psEULjkClhvJo4Lvg==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "fastparse": "^1.1.2" + } + }, + "node_modules/css-tree": { + "version": "1.0.0-alpha.37", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", + "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", + "dev": true, + "dependencies": { + "mdn-data": "2.0.4", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/css-tree/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/css-what": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", + "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/css/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cssauron": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/cssauron/-/cssauron-1.4.0.tgz", + "integrity": "sha1-pmAt/34EqDBtwNuaVR6S6LVmKtg=", + "dev": true, + "dependencies": { + "through": "X.X.X" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssnano": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.10.tgz", + "integrity": "sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ==", + "dev": true, + "dependencies": { + "cosmiconfig": "^5.0.0", + "cssnano-preset-default": "^4.0.7", + "is-resolvable": "^1.0.0", + "postcss": "^7.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/cssnano-preset-default": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz", + "integrity": "sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA==", + "dev": true, + "dependencies": { + "css-declaration-sorter": "^4.0.1", + "cssnano-util-raw-cache": "^4.0.1", + "postcss": "^7.0.0", + "postcss-calc": "^7.0.1", + "postcss-colormin": "^4.0.3", + "postcss-convert-values": "^4.0.1", + "postcss-discard-comments": "^4.0.2", + "postcss-discard-duplicates": "^4.0.2", + "postcss-discard-empty": "^4.0.1", + "postcss-discard-overridden": "^4.0.1", + "postcss-merge-longhand": "^4.0.11", + "postcss-merge-rules": "^4.0.3", + "postcss-minify-font-values": "^4.0.2", + "postcss-minify-gradients": "^4.0.2", + "postcss-minify-params": "^4.0.2", + "postcss-minify-selectors": "^4.0.2", + "postcss-normalize-charset": "^4.0.1", + "postcss-normalize-display-values": "^4.0.2", + "postcss-normalize-positions": "^4.0.2", + "postcss-normalize-repeat-style": "^4.0.2", + "postcss-normalize-string": "^4.0.2", + "postcss-normalize-timing-functions": "^4.0.2", + "postcss-normalize-unicode": "^4.0.1", + "postcss-normalize-url": "^4.0.1", + "postcss-normalize-whitespace": "^4.0.2", + "postcss-ordered-values": "^4.1.2", + "postcss-reduce-initial": "^4.0.3", + "postcss-reduce-transforms": "^4.0.2", + "postcss-svgo": "^4.0.2", + "postcss-unique-selectors": "^4.0.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/cssnano-util-get-arguments": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz", + "integrity": "sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/cssnano-util-get-match": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz", + "integrity": "sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/cssnano-util-raw-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz", + "integrity": "sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==", + "dev": true, + "dependencies": { + "postcss": "^7.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/cssnano-util-same-parent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz", + "integrity": "sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "dev": true, + "dependencies": { + "css-tree": "^1.1.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/csso/node_modules/css-tree": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.2.tgz", + "integrity": "sha512-wCoWush5Aeo48GLhfHPbmvZs59Z+M7k5+B1xDnXbdWNcEF423DoFdqSWE0PM5aNk5nI5cp1q7ms36zGApY/sKQ==", + "dev": true, + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/csso/node_modules/mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", + "dev": true + }, + "node_modules/csso/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/custom-event": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", + "integrity": "sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU=", + "dev": true + }, + "node_modules/cyclist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", + "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", + "dev": true + }, + "node_modules/d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "dev": true, + "dependencies": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + }, + "node_modules/damerau-levenshtein": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz", + "integrity": "sha512-JVrozIeElnj3QzfUIt8tB8YMluBJom4Vw9qTPpjGYQ9fYlB3D/rb6OordUxf3xeFB35LKWs0xqcO5U6ySvBtug==", + "dev": true + }, + "node_modules/dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/data-urls": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", + "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "dev": true, + "dependencies": { + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/date-format": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-3.0.0.tgz", + "integrity": "sha512-eyTcpKOcamdhWJXj56DpQMo1ylSQpcGtGKXcU0Tb97+K56/CF5amAqqqNj0+KvA0iw2ynxtHWFsPDSClCxe48w==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/debuglog": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz", + "integrity": "sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/deep-equal": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", + "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", + "dev": true, + "dependencies": { + "is-arguments": "^1.0.4", + "is-date-object": "^1.0.1", + "is-regex": "^1.0.4", + "object-is": "^1.0.1", + "object-keys": "^1.1.1", + "regexp.prototype.flags": "^1.2.0" + } + }, + "node_modules/default-gateway": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", + "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==", + "dev": true, + "dependencies": { + "execa": "^1.0.0", + "ip-regex": "^2.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/defaults": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "dev": true, + "dependencies": { + "clone": "^1.0.2" + } + }, + "node_modules/defaults/node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "dependencies": { + "object-keys": "^1.0.12" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/del": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", + "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", + "dev": true, + "dependencies": { + "@types/glob": "^7.1.1", + "globby": "^6.1.0", + "is-path-cwd": "^2.0.0", + "is-path-in-cwd": "^2.0.0", + "p-map": "^2.0.0", + "pify": "^4.0.1", + "rimraf": "^2.6.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/del/node_modules/array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, + "dependencies": { + "array-uniq": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/del/node_modules/globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "dev": true, + "dependencies": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/del/node_modules/globby/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/del/node_modules/p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/del/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/dependency-graph": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.7.2.tgz", + "integrity": "sha512-KqtH4/EZdtdfWX0p6MGP9jljvxSY6msy/pRUD4jgNwVpv3v1QmNLlsB3LDSSUg79BRVSn7jI1QPRtArGABovAQ==", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/des.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", + "dev": true + }, + "node_modules/detect-node": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz", + "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==", + "dev": true + }, + "node_modules/dezalgo": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz", + "integrity": "sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY=", + "dev": true, + "dependencies": { + "asap": "^2.0.0", + "wrappy": "1" + } + }, + "node_modules/di": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", + "integrity": "sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw=", + "dev": true + }, + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "dev": true, + "dependencies": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + } + }, + "node_modules/diffie-hellman/node_modules/bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=", + "dev": true + }, + "node_modules/dns-packet": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz", + "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==", + "dev": true, + "dependencies": { + "ip": "^1.1.0", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/dns-txt": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", + "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", + "dev": true, + "dependencies": { + "buffer-indexof": "^1.0.0" + } + }, + "node_modules/dom-serialize": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", + "integrity": "sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs=", + "dev": true, + "dependencies": { + "custom-event": "~1.0.0", + "ent": "~2.2.0", + "extend": "^3.0.0", + "void-elements": "^2.0.0" + } + }, + "node_modules/dom-serializer": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", + "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "dev": true, + "dependencies": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + } + }, + "node_modules/dom-serializer/node_modules/domelementtype": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.1.0.tgz", + "integrity": "sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w==", + "dev": true + }, + "node_modules/domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", + "dev": true, + "engines": { + "node": ">=0.4", + "npm": ">=1.2" + } + }, + "node_modules/domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", + "dev": true + }, + "node_modules/domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "dev": true, + "dependencies": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "node_modules/dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dev": true, + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "node_modules/ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "dev": true, + "dependencies": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "dev": true + }, + "node_modules/electron-to-chromium": { + "version": "1.3.629", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.629.tgz", + "integrity": "sha512-iSPPJtPvHrMAvYOt+9cdbDmTasPqwnwz4lkP8Dn200gDNUBQOLQ96xUsWXBwXslAo5XxdoXAoQQ3RAy4uao9IQ==", + "dev": true + }, + "node_modules/elliptic": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", + "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", + "dev": true, + "dependencies": { + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" + } + }, + "node_modules/elliptic/node_modules/bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "dev": true, + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/engine.io": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.4.2.tgz", + "integrity": "sha512-b4Q85dFkGw+TqgytGPrGgACRUhsdKc9S9ErRAXpPGy/CXKs4tYoHDkvIRdsseAF7NjfVwjRFIn6KTnbw7LwJZg==", + "dev": true, + "dependencies": { + "accepts": "~1.3.4", + "base64id": "2.0.0", + "cookie": "0.3.1", + "debug": "~4.1.0", + "engine.io-parser": "~2.2.0", + "ws": "^7.1.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/engine.io-client": { + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.4.4.tgz", + "integrity": "sha512-iU4CRr38Fecj8HoZEnFtm2EiKGbYZcPn3cHxqNGl/tmdWRf60KhK+9vE0JeSjgnlS/0oynEfLgKbT9ALpim0sQ==", + "dev": true, + "dependencies": { + "component-emitter": "~1.3.0", + "component-inherit": "0.0.3", + "debug": "~3.1.0", + "engine.io-parser": "~2.2.0", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "parseqs": "0.0.6", + "parseuri": "0.0.6", + "ws": "~6.1.0", + "xmlhttprequest-ssl": "~1.5.4", + "yeast": "0.1.2" + } + }, + "node_modules/engine.io-client/node_modules/debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/engine.io-client/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/engine.io-client/node_modules/parseqs": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.6.tgz", + "integrity": "sha512-jeAGzMDbfSHHA091hr0r31eYfTig+29g3GKKE/PPbEQ65X0lmMwlEoqmhzu0iztID5uJpZsFlUPDP8ThPL7M8w==", + "dev": true + }, + "node_modules/engine.io-client/node_modules/parseuri": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.6.tgz", + "integrity": "sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow==", + "dev": true + }, + "node_modules/engine.io-client/node_modules/ws": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.1.4.tgz", + "integrity": "sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA==", + "dev": true, + "dependencies": { + "async-limiter": "~1.0.0" + } + }, + "node_modules/engine.io-parser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.2.1.tgz", + "integrity": "sha512-x+dN/fBH8Ro8TFwJ+rkB2AmuVw9Yu2mockR/p3W8f8YtExwFgDvBDi0GWyb4ZLkpahtDGZgtr3zLovanJghPqg==", + "dev": true, + "dependencies": { + "after": "0.8.2", + "arraybuffer.slice": "~0.0.7", + "base64-arraybuffer": "0.1.4", + "blob": "0.0.5", + "has-binary2": "~1.0.2" + } + }, + "node_modules/engine.io/node_modules/cookie": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", + "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/engine.io/node_modules/debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/engine.io/node_modules/ws": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.1.tgz", + "integrity": "sha512-pTsP8UAfhy3sk1lSk/O/s4tjD0CRwvMnzvwr4OKGX7ZvqZtUyx4KIJB5JWbkykPoc55tixMGgTNoh3k4FkNGFQ==", + "dev": true, + "engines": { + "node": ">=8.3.0" + } + }, + "node_modules/enhanced-resolve": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz", + "integrity": "sha512-3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.5.0", + "tapable": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/ent": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", + "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=", + "dev": true + }, + "node_modules/entities": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", + "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", + "dev": true + }, + "node_modules/err-code": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz", + "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=", + "dev": true + }, + "node_modules/errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "dev": true, + "dependencies": { + "prr": "~1.0.1" + }, + "bin": { + "errno": "cli.js" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.18.0-next.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz", + "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==", + "dev": true, + "dependencies": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-negative-zero": "^2.0.0", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es5-ext": { + "version": "0.10.53", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", + "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", + "dev": true, + "dependencies": { + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.3", + "next-tick": "~1.0.0" + } + }, + "node_modules/es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "dev": true, + "dependencies": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "node_modules/es6-promise": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", + "dev": true + }, + "node_modules/es6-promisify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", + "dev": true, + "dependencies": { + "es6-promise": "^4.0.3" + } + }, + "node_modules/es6-symbol": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", + "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "dev": true, + "dependencies": { + "d": "^1.0.1", + "ext": "^1.1.2" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "dev": true + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint-scope": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", + "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", + "dev": true, + "dependencies": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + }, + "node_modules/events": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz", + "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==", + "dev": true, + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/eventsource": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz", + "integrity": "sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ==", + "dev": true, + "dependencies": { + "original": "^1.0.0" + }, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dev": true, + "dependencies": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "dependencies": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "dependencies": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/expand-brackets/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/express": { + "version": "4.17.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", + "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", + "dev": true, + "dependencies": { + "accepts": "~1.3.7", + "array-flatten": "1.1.1", + "body-parser": "1.19.0", + "content-disposition": "0.5.3", + "content-type": "~1.0.4", + "cookie": "0.4.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.5", + "qs": "6.7.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.1.2", + "send": "0.17.1", + "serve-static": "1.14.1", + "setprototypeof": "1.1.1", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", + "dev": true + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/ext": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", + "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==", + "dev": true, + "dependencies": { + "type": "^2.0.0" + } + }, + "node_modules/ext/node_modules/type": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/type/-/type-2.1.0.tgz", + "integrity": "sha512-G9absDWvhAWCV2gmF1zKud3OyC61nZDwWvBL2DApaVFogI07CprggiQAOOjvp2NRjYWFzPyu7vwtDrQFq8jeSA==", + "dev": true + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extend-shallow/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "dependencies": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/external-editor/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "dependencies": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true, + "engines": [ + "node >=0.6.0" + ] + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz", + "integrity": "sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.0", + "merge2": "^1.3.0", + "micromatch": "^4.0.2", + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fastparse": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", + "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.9.0.tgz", + "integrity": "sha512-i7FVWL8HhVY+CTkwFxkN2mk3h+787ixS5S63eb78diVRc1MCssarHq3W5cj0av7YDSwmaV928RNag+U1etRQ7w==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/faye-websocket": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", + "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", + "dev": true, + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/figgy-pudding": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", + "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", + "dev": true + }, + "node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/file-loader": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.0.0.tgz", + "integrity": "sha512-/aMOAYEFXDdjG0wytpTL5YQLfZnnTmLNjn+AIrJ/6HVnTfDqLsVKUUwkDf4I4kgex36BvjuXEn/TX9B/1ESyqQ==", + "dev": true, + "dependencies": { + "loader-utils": "^2.0.0", + "schema-utils": "^2.6.5" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true, + "optional": true + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/find-cache-dir": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", + "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", + "dev": true, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-cache-dir/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-cache-dir/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-cache-dir/node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-cache-dir/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-cache-dir/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-cache-dir/node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-cache-dir/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/flatted": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", + "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", + "dev": true + }, + "node_modules/flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + } + }, + "node_modules/follow-redirects": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.1.tgz", + "integrity": "sha512-SSG5xmZh1mkPGyKzjZP8zLjltIfpW32Y5QpdNJyjcfGxK3qo3NDDkZOZSFiGn1A6SclQxY9GzEwAHQ3dmYRWpg==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "dependencies": { + "map-cache": "^0.2.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "node_modules/fs-extra": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.2.tgz", + "integrity": "sha1-+RcExT0bRh+JNFKwwwfZmXZHq2s=", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/fs-write-stream-atomic": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/genfun": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/genfun/-/genfun-5.0.0.tgz", + "integrity": "sha512-KGDOARWVga7+rnB3z9Sd2Letx515owfk0hSxHGuqjANb1M+x2bGZGqHLiozPsYMdM2OubeMni/Hpwmjq6qIUhA==", + "dev": true + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.0.2.tgz", + "integrity": "sha512-aeX0vrFm21ILl3+JpFFRNe9aUvp6VFZb2/CTbgLb8j75kOhvoNYjt9d8KA/tJG4gSo8nzEDedRl0h7vDmBYRVg==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, + "node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0" + } + }, + "node_modules/glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/glob-parent": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/globby": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.1.tgz", + "integrity": "sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.1.1", + "ignore": "^5.1.4", + "merge2": "^1.3.0", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "dev": true + }, + "node_modules/handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", + "dev": true + }, + "node_modules/har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "dev": true, + "dependencies": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-binary2": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz", + "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==", + "dev": true, + "dependencies": { + "isarray": "2.0.1" + } + }, + "node_modules/has-binary2/node_modules/isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", + "dev": true + }, + "node_modules/has-cors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", + "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=", + "dev": true + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "dependencies": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "dependencies": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/hash-base/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/hash-base/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + }, + "node_modules/hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "node_modules/hex-color-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz", + "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==", + "dev": true + }, + "node_modules/hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "dev": true, + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/hosted-git-info": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.7.tgz", + "integrity": "sha512-fWqc0IcuXs+BmE9orLDyVykAG9GJtGLGuZAAqgcckPgv5xad4AcXGIv8galtQvlwutxSlaMcdw7BUtq2EIvqCQ==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "node_modules/hsl-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz", + "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=", + "dev": true + }, + "node_modules/hsla-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz", + "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=", + "dev": true + }, + "node_modules/html-comment-regex": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz", + "integrity": "sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==", + "dev": true + }, + "node_modules/html-entities": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.4.0.tgz", + "integrity": "sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA==", + "dev": true + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "node_modules/http-cache-semantics": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", + "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==", + "dev": true + }, + "node_modules/http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", + "dev": true + }, + "node_modules/http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "dev": true, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/http-errors/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dev": true, + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-proxy-agent": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz", + "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", + "dev": true, + "dependencies": { + "agent-base": "4", + "debug": "3.1.0" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/http-proxy-agent/node_modules/debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/http-proxy-agent/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/http-proxy-middleware": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz", + "integrity": "sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==", + "dev": true, + "dependencies": { + "http-proxy": "^1.17.0", + "is-glob": "^4.0.0", + "lodash": "^4.17.11", + "micromatch": "^3.1.10" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/http-proxy-middleware/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/http-proxy-middleware/node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/http-proxy-middleware/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/http-proxy-middleware/node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/http-proxy-middleware/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/http-proxy-middleware/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/http-proxy-middleware/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/http-proxy-middleware/node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + }, + "engines": { + "node": ">=0.8", + "npm": ">=1.3.7" + } + }, + "node_modules/https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", + "dev": true + }, + "node_modules/https-proxy-agent": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", + "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", + "dev": true, + "dependencies": { + "agent-base": "^4.3.0", + "debug": "^3.1.0" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/https-proxy-agent/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", + "dev": true, + "dependencies": { + "ms": "^2.0.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz", + "integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/icss-utils": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz", + "integrity": "sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA==", + "dev": true, + "dependencies": { + "postcss": "^7.0.14" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true + }, + "node_modules/iferr": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", + "dev": true + }, + "node_modules/ignore": { + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", + "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/ignore-walk": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz", + "integrity": "sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==", + "dev": true, + "dependencies": { + "minimatch": "^3.0.4" + } + }, + "node_modules/image-size": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", + "dev": true, + "optional": true, + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=", + "dev": true + }, + "node_modules/import-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz", + "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", + "dev": true, + "dependencies": { + "import-from": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", + "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", + "dev": true, + "dependencies": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/import-from": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz", + "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", + "dev": true, + "dependencies": { + "resolve-from": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/import-local": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", + "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", + "dev": true, + "dependencies": { + "pkg-dir": "^3.0.0", + "resolve-cwd": "^2.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/indexes-of": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", + "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", + "dev": true + }, + "node_modules/indexof": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", + "dev": true + }, + "node_modules/infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "dev": true + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/ini": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.6.tgz", + "integrity": "sha512-IZUoxEjNjubzrmvzZU4lKP7OnYmX72XRl3sqkfJhBKweKi5rnGi5+IUdlj/H1M+Ip5JQ1WzaDMOBRY90Ajc5jg==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/inquirer": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", + "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", + "dev": true, + "dependencies": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.19", + "mute-stream": "0.0.8", + "run-async": "^2.4.0", + "rxjs": "^6.6.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/inquirer/node_modules/ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/inquirer/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/inquirer/node_modules/chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/inquirer/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/inquirer/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/inquirer/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/inquirer/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/inquirer/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/inquirer/node_modules/string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/inquirer/node_modules/strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/inquirer/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/internal-ip": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", + "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==", + "dev": true, + "dependencies": { + "default-gateway": "^4.2.0", + "ipaddr.js": "^1.9.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/ip": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", + "dev": true + }, + "node_modules/ip-regex": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", + "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-absolute-url": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", + "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-arguments": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz", + "integrity": "sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "node_modules/is-callable": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz", + "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-color-stop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz", + "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=", + "dev": true, + "dependencies": { + "css-color-names": "^0.0.4", + "hex-color-regex": "^1.1.0", + "hsl-regex": "^1.0.0", + "hsla-regex": "^1.0.0", + "rgb-regex": "^1.0.1", + "rgba-regex": "^1.0.0" + } + }, + "node_modules/is-core-module": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", + "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + } + }, + "node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-date-object": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-descriptor/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", + "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-docker": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.1.1.tgz", + "integrity": "sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", + "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-path-in-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", + "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", + "dev": true, + "dependencies": { + "is-path-inside": "^2.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-path-inside": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", + "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", + "dev": true, + "dependencies": { + "path-is-inside": "^1.0.2" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-regex": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", + "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-resolvable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", + "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", + "dev": true + }, + "node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-svg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-3.0.0.tgz", + "integrity": "sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ==", + "dev": true, + "dependencies": { + "html-comment-regex": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "node_modules/is-what": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.12.0.tgz", + "integrity": "sha512-2ilQz5/f/o9V7WRWJQmpFYNmQFZ9iM+OXRonZKcYgTkCzjb949Vi4h282PD1UfmgHk666rcWonbRJ++KI41VGw==", + "dev": true + }, + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "node_modules/isbinaryfile": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.6.tgz", + "integrity": "sha512-ORrEy+SNVqUhrCaal4hA4fBzhggQQ+BaLntyPOdoEiwlKZW9BZiJXjg3RMiruE4tPEI3pyVPpySHQF/dKWperg==", + "dev": true, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", + "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", + "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", + "dev": true, + "dependencies": { + "@babel/core": "^7.7.5", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.0.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report/node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/istanbul-lib-report/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz", + "integrity": "sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^2.0.5", + "make-dir": "^2.1.0", + "rimraf": "^2.6.3", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/istanbul-lib-coverage": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz", + "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-reports": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz", + "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==", + "dev": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jasmine": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-2.8.0.tgz", + "integrity": "sha1-awicChFXax8W3xG4AUbZHU6Lij4=", + "dev": true, + "dependencies": { + "exit": "^0.1.2", + "glob": "^7.0.6", + "jasmine-core": "~2.8.0" + }, + "bin": { + "jasmine": "bin/jasmine.js" + } + }, + "node_modules/jasmine-core": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-3.6.0.tgz", + "integrity": "sha512-8uQYa7zJN8hq9z+g8z1bqCfdC8eoDAeVnM5sfqs7KHv9/ifoJ500m018fpFc7RDaO6SWCLCXwo/wPSNcdYTgcw==", + "dev": true + }, + "node_modules/jasmine-spec-reporter": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/jasmine-spec-reporter/-/jasmine-spec-reporter-5.0.2.tgz", + "integrity": "sha512-6gP1LbVgJ+d7PKksQBc2H0oDGNRQI3gKUsWlswKaQ2fif9X5gzhQcgM5+kiJGCQVurOG09jqNhk7payggyp5+g==", + "dev": true, + "dependencies": { + "colors": "1.4.0" + } + }, + "node_modules/jasmine/node_modules/jasmine-core": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.8.0.tgz", + "integrity": "sha1-vMl5rh+f0FcB5F5S5l06XWPxok4=", + "dev": true + }, + "node_modules/jasminewd2": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/jasminewd2/-/jasminewd2-2.2.0.tgz", + "integrity": "sha1-43zwsX8ZnM4jvqcbIDk5Uka07E4=", + "dev": true, + "engines": { + "node": ">= 6.9.x" + } + }, + "node_modules/jest-worker": { + "version": "26.3.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.3.0.tgz", + "integrity": "sha512-Vmpn2F6IASefL+DVBhPzI2J9/GJUsqzomdeN+P+dK8/jKxbh8R3BtFnx3FIta7wYlPU62cpJMJQo4kuOowcMnw==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jquery": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.5.1.tgz", + "integrity": "sha512-XwIBPqcMn57FxfT+Go5pzySnm4KWkT1Tv7gjrpT1srtf8Weynl6R273VJ5GjkRb51IzMp5nbaPjJXMWeju2MKg==" + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, + "node_modules/json3": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz", + "integrity": "sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==", + "dev": true + }, + "node_modules/json5": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", + "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonc-parser": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-2.3.0.tgz", + "integrity": "sha512-b0EBt8SWFNnixVdvoR2ZtEGa9ZqLhbJnOjezn+WP+8kspFm+PFYDN8Z4Bc7pRlDjvuVcADSUkroIuTWWn/YiIA==", + "dev": true + }, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", + "dev": true, + "engines": [ + "node >= 0.2.0" + ] + }, + "node_modules/JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "dev": true, + "dependencies": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + }, + "bin": { + "JSONStream": "bin.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "node_modules/jszip": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.5.0.tgz", + "integrity": "sha512-WRtu7TPCmYePR1nazfrtuF216cIVon/3GWOvHS9QR5bIwSbnxtdpma6un3jyGGNhHsKCSzn5Ypk+EkDRvTGiFA==", + "dev": true, + "dependencies": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "set-immediate-shim": "~1.0.1" + } + }, + "node_modules/karma": { + "version": "5.0.9", + "resolved": "https://registry.npmjs.org/karma/-/karma-5.0.9.tgz", + "integrity": "sha512-dUA5z7Lo7G4FRSe1ZAXqOINEEWxmCjDBbfRBmU/wYlSMwxUQJP/tEEP90yJt3Uqo03s9rCgVnxtlfq+uDhxSPg==", + "dev": true, + "dependencies": { + "body-parser": "^1.19.0", + "braces": "^3.0.2", + "chokidar": "^3.0.0", + "colors": "^1.4.0", + "connect": "^3.7.0", + "di": "^0.0.1", + "dom-serialize": "^2.2.1", + "flatted": "^2.0.2", + "glob": "^7.1.6", + "graceful-fs": "^4.2.4", + "http-proxy": "^1.18.1", + "isbinaryfile": "^4.0.6", + "lodash": "^4.17.15", + "log4js": "^6.2.1", + "mime": "^2.4.5", + "minimatch": "^3.0.4", + "qjobs": "^1.2.0", + "range-parser": "^1.2.1", + "rimraf": "^3.0.2", + "socket.io": "^2.3.0", + "source-map": "^0.6.1", + "tmp": "0.2.1", + "ua-parser-js": "0.7.21", + "yargs": "^15.3.1" + }, + "bin": { + "karma": "bin/karma" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/karma-chrome-launcher": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.1.0.tgz", + "integrity": "sha512-3dPs/n7vgz1rxxtynpzZTvb9y/GIaW8xjAwcIGttLbycqoFtI7yo1NGnQi6oFTherRE+GIhCAHZC4vEqWGhNvg==", + "dev": true, + "dependencies": { + "which": "^1.2.1" + } + }, + "node_modules/karma-coverage-istanbul-reporter": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/karma-coverage-istanbul-reporter/-/karma-coverage-istanbul-reporter-3.0.3.tgz", + "integrity": "sha512-wE4VFhG/QZv2Y4CdAYWDbMmcAHeS926ZIji4z+FkB2aF/EposRb6DP6G5ncT/wXhqUfAb/d7kZrNKPonbvsATw==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^3.0.6", + "istanbul-reports": "^3.0.2", + "minimatch": "^3.0.4" + } + }, + "node_modules/karma-jasmine": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-4.0.1.tgz", + "integrity": "sha512-h8XDAhTiZjJKzfkoO1laMH+zfNlra+dEQHUAjpn5JV1zCPtOIVWGQjLBrqhnzQa/hrU2XrZwSyBa6XjEBzfXzw==", + "dev": true, + "dependencies": { + "jasmine-core": "^3.6.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/karma-jasmine-html-reporter": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-1.5.4.tgz", + "integrity": "sha512-PtilRLno5O6wH3lDihRnz0Ba8oSn0YUJqKjjux1peoYGwo0AQqrWRbdWk/RLzcGlb+onTyXAnHl6M+Hu3UxG/Q==", + "dev": true + }, + "node_modules/karma-source-map-support": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.4.0.tgz", + "integrity": "sha512-RsBECncGO17KAoJCYXjv+ckIz+Ii9NCi+9enk+rq6XC81ezYkb4/RHE6CTXdA7IOJqoF3wcaLfVG0CPmE5ca6A==", + "dev": true, + "dependencies": { + "source-map-support": "^0.5.5" + } + }, + "node_modules/karma/node_modules/ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/karma/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/karma/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/karma/node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/karma/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/karma/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/karma/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/karma/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/karma/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/karma/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/karma/node_modules/mime": { + "version": "2.4.7", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.7.tgz", + "integrity": "sha512-dhNd1uA2u397uQk3Nv5LM4lm93WYDUXFn3Fu291FJerns4jyTudqhIWe4W04YLy7Uk1tm1Ore04NpjRvQp/NPA==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/karma/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/karma/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/karma/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/karma/node_modules/string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/karma/node_modules/strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/karma/node_modules/tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "dev": true, + "dependencies": { + "rimraf": "^3.0.0" + }, + "engines": { + "node": ">=8.17.0" + } + }, + "node_modules/karma/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/karma/node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/karma/node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/killable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", + "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==", + "dev": true + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/klona": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.4.tgz", + "integrity": "sha512-ZRbnvdg/NxqzC7L9Uyqzf4psi1OM4Cuc+sJAkQPjO6XkQIJTNbfK2Rsmbw8fx1p2mkZdp2FZYo2+LwXYY/uwIA==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/leaflet": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/leaflet/-/leaflet-1.3.4.tgz", + "integrity": "sha512-FYL1LGFdj6v+2Ifpw+AcFIuIOqjNggfoLUwuwQv6+3sS21Za7Wvapq+LhbSE4NDXrEj6eYnW3y7LsaBICpyXtw==" + }, + "node_modules/leaflet.heat": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/leaflet.heat/-/leaflet.heat-0.2.0.tgz", + "integrity": "sha1-EJ2M9Ybwre5B8Fr/Ax4np3/swik=" + }, + "node_modules/leaflet.markercluster": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/leaflet.markercluster/-/leaflet.markercluster-1.4.1.tgz", + "integrity": "sha512-ZSEpE/EFApR0bJ1w/dUGwTSUvWlpalKqIzkaYdYB7jaftQA/Y2Jav+eT4CMtEYFj+ZK4mswP13Q2acnPBnhGOw==" + }, + "node_modules/less": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/less/-/less-3.13.1.tgz", + "integrity": "sha512-SwA1aQXGUvp+P5XdZslUOhhLnClSLIjWvJhmd+Vgib5BFIr9lMNlQwmwUNOjXThF/A0x+MCYYPeWEfeWiLRnTw==", + "dev": true, + "dependencies": { + "copy-anything": "^2.0.1", + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "make-dir": "^2.1.0", + "mime": "^1.4.1", + "native-request": "^1.0.5", + "source-map": "~0.6.0", + "tslib": "^1.10.0" + }, + "bin": { + "lessc": "bin/lessc" + }, + "engines": { + "node": ">=6" + }, + "optionalDependencies": { + "image-size": "~0.5.0", + "native-request": "^1.0.5", + "source-map": "~0.6.0" + } + }, + "node_modules/less-loader": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-6.2.0.tgz", + "integrity": "sha512-Cl5h95/Pz/PWub/tCBgT1oNMFeH1WTD33piG80jn5jr12T4XbxZcjThwNXDQ7AG649WEynuIzO4b0+2Tn9Qolg==", + "dev": true, + "dependencies": { + "clone": "^2.1.2", + "less": "^3.11.3", + "loader-utils": "^2.0.0", + "schema-utils": "^2.7.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/less/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/less/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/levenary": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/levenary/-/levenary-1.1.1.tgz", + "integrity": "sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ==", + "dev": true, + "dependencies": { + "leven": "^3.1.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/license-webpack-plugin": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-2.3.0.tgz", + "integrity": "sha512-JK/DXrtN6UeYQSgkg5q1+pgJ8aiKPL9tnz9Wzw+Ikkf+8mJxG56x6t8O+OH/tAeF/5NREnelTEMyFtbJNkjH4w==", + "dev": true, + "dependencies": { + "@types/webpack-sources": "^0.1.5", + "webpack-sources": "^1.2.0" + } + }, + "node_modules/lie": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "dev": true, + "dependencies": { + "immediate": "~3.0.5" + } + }, + "node_modules/loader-runner": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", + "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", + "dev": true, + "engines": { + "node": ">=4.3.0 <5.0.0 || >=5.10" + } + }, + "node_modules/loader-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", + "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/lodash": { + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", + "dev": true + }, + "node_modules/lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", + "dev": true + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "dev": true + }, + "node_modules/lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", + "dev": true + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", + "dev": true + }, + "node_modules/log-symbols": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz", + "integrity": "sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/log-symbols/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/log-symbols/node_modules/chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/log-symbols/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/log-symbols/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/log-symbols/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/log-symbols/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/log4js": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.3.0.tgz", + "integrity": "sha512-Mc8jNuSFImQUIateBFwdOQcmC6Q5maU0VVvdC2R6XMb66/VnT+7WS4D/0EeNMZu1YODmJe5NIn2XftCzEocUgw==", + "dev": true, + "dependencies": { + "date-format": "^3.0.0", + "debug": "^4.1.1", + "flatted": "^2.0.1", + "rfdc": "^1.1.4", + "streamroller": "^2.2.4" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/loglevel": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.7.1.tgz", + "integrity": "sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw==", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/magic-string": { + "version": "0.25.7", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", + "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", + "dev": true, + "dependencies": { + "sourcemap-codec": "^1.4.4" + } + }, + "node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "node_modules/make-fetch-happen": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-5.0.2.tgz", + "integrity": "sha512-07JHC0r1ykIoruKO8ifMXu+xEU8qOXDFETylktdug6vJDACnP+HKevOu3PXyNPzFyTSlz8vrBYlBO1JZRe8Cag==", + "dev": true, + "dependencies": { + "agentkeepalive": "^3.4.1", + "cacache": "^12.0.0", + "http-cache-semantics": "^3.8.1", + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^2.2.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "node-fetch-npm": "^2.0.2", + "promise-retry": "^1.1.1", + "socks-proxy-agent": "^4.0.0", + "ssri": "^6.0.0" + } + }, + "node_modules/make-fetch-happen/node_modules/cacache": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", + "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", + "dev": true, + "dependencies": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } + }, + "node_modules/make-fetch-happen/node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, + "node_modules/make-fetch-happen/node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/make-fetch-happen/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/make-fetch-happen/node_modules/ssri": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", + "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "dev": true, + "dependencies": { + "figgy-pudding": "^3.5.1" + } + }, + "node_modules/make-fetch-happen/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "dependencies": { + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dev": true, + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/mdn-data": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", + "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==", + "dev": true + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memory-fs": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", + "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", + "dev": true, + "dependencies": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + }, + "engines": { + "node": ">=4.3.0 <5.0.0 || >=5.10" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", + "dev": true + }, + "node_modules/merge-source-map": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", + "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", + "dev": true, + "dependencies": { + "source-map": "^0.6.1" + } + }, + "node_modules/merge-source-map/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "dev": true, + "dependencies": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dev": true, + "dependencies": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "bin": { + "miller-rabin": "bin/miller-rabin" + } + }, + "node_modules/miller-rabin/node_modules/bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", + "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.27", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", + "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", + "dev": true, + "dependencies": { + "mime-db": "1.44.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/mini-css-extract-plugin": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.10.0.tgz", + "integrity": "sha512-QgKgJBjaJhxVPwrLNqqwNS0AGkuQQ31Hp4xGXEK/P7wehEg6qmNtReHKai3zRXqY60wGVWLYcOMJK2b98aGc3A==", + "dev": true, + "dependencies": { + "loader-utils": "^1.1.0", + "normalize-url": "1.9.1", + "schema-utils": "^1.0.0", + "webpack-sources": "^1.1.0" + }, + "engines": { + "node": ">= 6.9.0" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/normalize-url": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", + "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", + "dev": true, + "dependencies": { + "object-assign": "^4.0.1", + "prepend-http": "^1.0.0", + "query-string": "^4.1.0", + "sort-keys": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "dependencies": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", + "dev": true + }, + "node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "node_modules/minipass": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", + "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/mississippi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", + "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", + "dev": true, + "dependencies": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, + "dependencies": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mixin-deep/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", + "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", + "dev": true, + "dependencies": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + } + }, + "node_modules/move-concurrently/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/multicast-dns": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", + "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", + "dev": true, + "dependencies": { + "dns-packet": "^1.3.1", + "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" + } + }, + "node_modules/multicast-dns-service-types": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", + "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", + "dev": true + }, + "node_modules/mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true + }, + "node_modules/nan": { + "version": "2.14.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", + "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==", + "dev": true, + "optional": true + }, + "node_modules/nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/native-request": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/native-request/-/native-request-1.0.8.tgz", + "integrity": "sha512-vU2JojJVelUGp6jRcLwToPoWGxSx23z/0iX+I77J3Ht17rf2INGjrhOoQnjVo60nQd8wVsgzKkPfRXBiVdD2ag==", + "dev": true, + "optional": true + }, + "node_modules/negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "node_modules/next-tick": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", + "dev": true + }, + "node_modules/ng-apexcharts": { + "version": "1.5.6", + "resolved": "https://registry.npmjs.org/ng-apexcharts/-/ng-apexcharts-1.5.6.tgz", + "integrity": "sha512-78vmZvrT9iqfZXE00+T8NTvR+EHV0wo4qqf0Zfu1/2KiwazCU9S5EROcmgqMQ1eCO7Sz4GiR19rLTMdtWL/WmQ==", + "dependencies": { + "tslib": "^1.10.0" + } + }, + "node_modules/ng-apexcharts/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "node_modules/node-fetch-npm": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/node-fetch-npm/-/node-fetch-npm-2.0.4.tgz", + "integrity": "sha512-iOuIQDWDyjhv9qSDrj9aq/klt6F9z1p2otB3AV7v3zBDcL/x+OfGsvGQZZCcMZbUf4Ujw1xGNQkjvGnVT22cKg==", + "dev": true, + "dependencies": { + "encoding": "^0.1.11", + "json-parse-better-errors": "^1.0.0", + "safe-buffer": "^5.1.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/node-forge": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", + "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==", + "dev": true, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/node-libs-browser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", + "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", + "dev": true, + "dependencies": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.1", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "^1.0.1" + } + }, + "node_modules/node-libs-browser/node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + }, + "node_modules/node-releases": { + "version": "1.1.67", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.67.tgz", + "integrity": "sha512-V5QF9noGFl3EymEwUYzO+3NTDpGfQB4ve6Qfnzf3UNydMhjQRVPR1DZTuvWiLzaFJYw2fmDwAfnRNEVb64hSIg==", + "dev": true + }, + "node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/normalize-package-data/node_modules/hosted-git-info": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", + "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", + "dev": true + }, + "node_modules/normalize-package-data/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz", + "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/npm-bundled": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.1.tgz", + "integrity": "sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA==", + "dev": true, + "dependencies": { + "npm-normalize-package-bin": "^1.0.1" + } + }, + "node_modules/npm-install-checks": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-4.0.0.tgz", + "integrity": "sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w==", + "dev": true, + "dependencies": { + "semver": "^7.1.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm-normalize-package-bin": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", + "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", + "dev": true + }, + "node_modules/npm-package-arg": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.0.1.tgz", + "integrity": "sha512-/h5Fm6a/exByzFSTm7jAyHbgOqErl9qSNJDQF32Si/ZzgwT2TERVxRxn3Jurw1wflgyVVAxnFR4fRHPM7y1ClQ==", + "dev": true, + "dependencies": { + "hosted-git-info": "^3.0.2", + "semver": "^7.0.0", + "validate-npm-package-name": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm-packlist": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz", + "integrity": "sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==", + "dev": true, + "dependencies": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1", + "npm-normalize-package-bin": "^1.0.1" + } + }, + "node_modules/npm-pick-manifest": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-6.1.0.tgz", + "integrity": "sha512-ygs4k6f54ZxJXrzT0x34NybRlLeZ4+6nECAIbr2i0foTnijtS1TJiyzpqtuUAJOps/hO0tNDr8fRV5g+BtRlTw==", + "dev": true, + "dependencies": { + "npm-install-checks": "^4.0.0", + "npm-package-arg": "^8.0.0", + "semver": "^7.0.0" + } + }, + "node_modules/npm-registry-fetch": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-4.0.7.tgz", + "integrity": "sha512-cny9v0+Mq6Tjz+e0erFAB+RYJ/AVGzkjnISiobqP8OWj9c9FLoZZu8/SPSKJWE17F1tk4018wfjV+ZbIbqC7fQ==", + "dev": true, + "dependencies": { + "bluebird": "^3.5.1", + "figgy-pudding": "^3.4.1", + "JSONStream": "^1.3.4", + "lru-cache": "^5.1.1", + "make-fetch-happen": "^5.0.0", + "npm-package-arg": "^6.1.0", + "safe-buffer": "^5.2.0" + } + }, + "node_modules/npm-registry-fetch/node_modules/hosted-git-info": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", + "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", + "dev": true + }, + "node_modules/npm-registry-fetch/node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/npm-registry-fetch/node_modules/npm-package-arg": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.1.tgz", + "integrity": "sha512-qBpssaL3IOZWi5vEKUKW0cO7kzLeT+EQO9W8RsLOZf76KF9E/K9+wH0C7t06HXPpaH8WH5xF1MExLuCwbTqRUg==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.7.1", + "osenv": "^0.1.5", + "semver": "^5.6.0", + "validate-npm-package-name": "^3.0.0" + } + }, + "node_modules/npm-registry-fetch/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + }, + "node_modules/npm-registry-fetch/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/npm-registry-fetch/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, + "dependencies": { + "path-key": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/nth-check": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", + "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", + "dev": true, + "dependencies": { + "boolbase": "~1.0.0" + } + }, + "node_modules/num2fraction": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", + "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", + "dev": true + }, + "node_modules/oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-component": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", + "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=", + "dev": true + }, + "node_modules/object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "dependencies": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz", + "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==", + "dev": true + }, + "node_modules/object-is": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.4.tgz", + "integrity": "sha512-1ZvAZ4wlF7IyPVOcE1Omikt7UpaFlOQq0HlSti+ZvDH3UiD2brwGMwDbyV43jao2bKJ+4+WdPJHSd7kgzKYVqg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "dependencies": { + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.getownpropertydescriptors": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.1.tgz", + "integrity": "sha512-6DtXgZ/lIZ9hqx4GtZETobXLR/ZLaa0aqV0kzbn80Rf8Z2e/XFnhA0I7p07N2wH8bBBltr2xQPi6sbKWAY2Eng==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.values": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.2.tgz", + "integrity": "sha512-MYC0jvJopr8EK6dPBiO8Nb9mvjdypOachO5REGk6MXzujbBrAisKo3HmdEI6kZDL6fC31Mwee/5YbtMebixeag==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1", + "has": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "dev": true + }, + "node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "dev": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/open": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/open/-/open-7.2.0.tgz", + "integrity": "sha512-4HeyhxCvBTI5uBePsAdi55C5fmqnWZ2e2MlmvWi5KW5tdH5rxoiv/aMtbeVxKZc3eWkT1GymMnLG8XC4Rq4TDQ==", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/opn": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", + "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==", + "dev": true, + "dependencies": { + "is-wsl": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/opn/node_modules/is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/ora": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.0.0.tgz", + "integrity": "sha512-s26qdWqke2kjN/wC4dy+IQPBIMWBJlSU/0JZhk30ZDBLelW25rv66yutUWARMigpGPzcXHb+Nac5pNhN/WsARw==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.4.0", + "is-interactive": "^1.0.0", + "log-symbols": "^4.0.0", + "mute-stream": "0.0.8", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ora/node_modules/ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ora/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ora/node_modules/chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ora/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/ora/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/ora/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ora/node_modules/strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ora/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/original": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz", + "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==", + "dev": true, + "dependencies": { + "url-parse": "^1.4.3" + } + }, + "node_modules/os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", + "dev": true + }, + "node_modules/os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "dev": true, + "dependencies": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/p-retry": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz", + "integrity": "sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==", + "dev": true, + "dependencies": { + "retry": "^0.12.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pacote": { + "version": "9.5.12", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-9.5.12.tgz", + "integrity": "sha512-BUIj/4kKbwWg4RtnBncXPJd15piFSVNpTzY0rysSr3VnMowTYgkGKcaHrbReepAkjTr8lH2CVWRi58Spg2CicQ==", + "dev": true, + "dependencies": { + "bluebird": "^3.5.3", + "cacache": "^12.0.2", + "chownr": "^1.1.2", + "figgy-pudding": "^3.5.1", + "get-stream": "^4.1.0", + "glob": "^7.1.3", + "infer-owner": "^1.0.4", + "lru-cache": "^5.1.1", + "make-fetch-happen": "^5.0.0", + "minimatch": "^3.0.4", + "minipass": "^2.3.5", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "normalize-package-data": "^2.4.0", + "npm-normalize-package-bin": "^1.0.0", + "npm-package-arg": "^6.1.0", + "npm-packlist": "^1.1.12", + "npm-pick-manifest": "^3.0.0", + "npm-registry-fetch": "^4.0.0", + "osenv": "^0.1.5", + "promise-inflight": "^1.0.1", + "promise-retry": "^1.1.1", + "protoduck": "^5.0.1", + "rimraf": "^2.6.2", + "safe-buffer": "^5.1.2", + "semver": "^5.6.0", + "ssri": "^6.0.1", + "tar": "^4.4.10", + "unique-filename": "^1.1.1", + "which": "^1.3.1" + } + }, + "node_modules/pacote/node_modules/cacache": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", + "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", + "dev": true, + "dependencies": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } + }, + "node_modules/pacote/node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, + "node_modules/pacote/node_modules/fs-minipass": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", + "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", + "dev": true, + "dependencies": { + "minipass": "^2.6.0" + } + }, + "node_modules/pacote/node_modules/hosted-git-info": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", + "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", + "dev": true + }, + "node_modules/pacote/node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/pacote/node_modules/minipass": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", + "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "node_modules/pacote/node_modules/minizlib": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", + "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", + "dev": true, + "dependencies": { + "minipass": "^2.9.0" + } + }, + "node_modules/pacote/node_modules/npm-package-arg": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.1.tgz", + "integrity": "sha512-qBpssaL3IOZWi5vEKUKW0cO7kzLeT+EQO9W8RsLOZf76KF9E/K9+wH0C7t06HXPpaH8WH5xF1MExLuCwbTqRUg==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.7.1", + "osenv": "^0.1.5", + "semver": "^5.6.0", + "validate-npm-package-name": "^3.0.0" + } + }, + "node_modules/pacote/node_modules/npm-pick-manifest": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-3.0.2.tgz", + "integrity": "sha512-wNprTNg+X5nf+tDi+hbjdHhM4bX+mKqv6XmPh7B5eG+QY9VARfQPfCEH013H5GqfNj6ee8Ij2fg8yk0mzps1Vw==", + "dev": true, + "dependencies": { + "figgy-pudding": "^3.5.1", + "npm-package-arg": "^6.0.0", + "semver": "^5.4.1" + } + }, + "node_modules/pacote/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/pacote/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/pacote/node_modules/ssri": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", + "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "dev": true, + "dependencies": { + "figgy-pudding": "^3.5.1" + } + }, + "node_modules/pacote/node_modules/tar": { + "version": "4.4.13", + "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz", + "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==", + "dev": true, + "dependencies": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.8.6", + "minizlib": "^1.2.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.3" + }, + "engines": { + "node": ">=4.5" + } + }, + "node_modules/pacote/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "dev": true + }, + "node_modules/parallel-transform": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", + "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", + "dev": true, + "dependencies": { + "cyclist": "^1.0.1", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + } + }, + "node_modules/parse-asn1": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", + "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", + "dev": true, + "dependencies": { + "asn1.js": "^5.2.0", + "browserify-aes": "^1.0.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true + }, + "node_modules/parse5-htmlparser2-tree-adapter": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", + "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", + "dev": true, + "dependencies": { + "parse5": "^6.0.1" + } + }, + "node_modules/parseqs": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", + "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", + "dev": true, + "dependencies": { + "better-assert": "~1.0.0" + } + }, + "node_modules/parseuri": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", + "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", + "dev": true, + "dependencies": { + "better-assert": "~1.0.0" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", + "dev": true + }, + "node_modules/path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, + "node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "dev": true + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", + "dev": true + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/pbkdf2": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", + "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==", + "dev": true, + "dependencies": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "dev": true, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "dependencies": { + "pinkie": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "dependencies": { + "find-up": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pnp-webpack-plugin": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz", + "integrity": "sha512-7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg==", + "dev": true, + "dependencies": { + "ts-pnp": "^1.1.6" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/popper.js": { + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.14.3.tgz", + "integrity": "sha1-FDj5jQRqz3tNeM1QK/QYrGTU8JU=" + }, + "node_modules/portfinder": { + "version": "1.0.28", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", + "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", + "dev": true, + "dependencies": { + "async": "^2.6.2", + "debug": "^3.1.1", + "mkdirp": "^0.5.5" + }, + "engines": { + "node": ">= 0.12.0" + } + }, + "node_modules/portfinder/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss": { + "version": "7.0.32", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.32.tgz", + "integrity": "sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw==", + "dev": true, + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-calc": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.5.tgz", + "integrity": "sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg==", + "dev": true, + "dependencies": { + "postcss": "^7.0.27", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.0.2" + } + }, + "node_modules/postcss-colormin": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz", + "integrity": "sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==", + "dev": true, + "dependencies": { + "browserslist": "^4.0.0", + "color": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-colormin/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-convert-values": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz", + "integrity": "sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==", + "dev": true, + "dependencies": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-convert-values/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-discard-comments": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz", + "integrity": "sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==", + "dev": true, + "dependencies": { + "postcss": "^7.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-discard-duplicates": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz", + "integrity": "sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==", + "dev": true, + "dependencies": { + "postcss": "^7.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-discard-empty": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz", + "integrity": "sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==", + "dev": true, + "dependencies": { + "postcss": "^7.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-discard-overridden": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz", + "integrity": "sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==", + "dev": true, + "dependencies": { + "postcss": "^7.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-import": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-12.0.1.tgz", + "integrity": "sha512-3Gti33dmCjyKBgimqGxL3vcV8w9+bsHwO5UrBawp796+jdardbcFl4RP5w/76BwNL7aGzpKstIfF9I+kdE8pTw==", + "dev": true, + "dependencies": { + "postcss": "^7.0.1", + "postcss-value-parser": "^3.2.3", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-import/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-load-config": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.2.tgz", + "integrity": "sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw==", + "dev": true, + "dependencies": { + "cosmiconfig": "^5.0.0", + "import-cwd": "^2.0.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/postcss-loader": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-3.0.0.tgz", + "integrity": "sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA==", + "dev": true, + "dependencies": { + "loader-utils": "^1.1.0", + "postcss": "^7.0.0", + "postcss-load-config": "^2.0.0", + "schema-utils": "^1.0.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/postcss-loader/node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/postcss-loader/node_modules/loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/postcss-loader/node_modules/schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "dependencies": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/postcss-merge-longhand": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz", + "integrity": "sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==", + "dev": true, + "dependencies": { + "css-color-names": "0.0.4", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "stylehacks": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-merge-longhand/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-merge-rules": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz", + "integrity": "sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==", + "dev": true, + "dependencies": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "cssnano-util-same-parent": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0", + "vendors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-merge-rules/node_modules/postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "dev": true, + "dependencies": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/postcss-minify-font-values": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz", + "integrity": "sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==", + "dev": true, + "dependencies": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-minify-font-values/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-minify-gradients": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz", + "integrity": "sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==", + "dev": true, + "dependencies": { + "cssnano-util-get-arguments": "^4.0.0", + "is-color-stop": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-minify-gradients/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-minify-params": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz", + "integrity": "sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==", + "dev": true, + "dependencies": { + "alphanum-sort": "^1.0.0", + "browserslist": "^4.0.0", + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "uniqs": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-minify-params/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-minify-selectors": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz", + "integrity": "sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==", + "dev": true, + "dependencies": { + "alphanum-sort": "^1.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-minify-selectors/node_modules/postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "dev": true, + "dependencies": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/postcss-modules-extract-imports": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz", + "integrity": "sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ==", + "dev": true, + "dependencies": { + "postcss": "^7.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz", + "integrity": "sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw==", + "dev": true, + "dependencies": { + "icss-utils": "^4.1.1", + "postcss": "^7.0.32", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/postcss-modules-scope": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz", + "integrity": "sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ==", + "dev": true, + "dependencies": { + "postcss": "^7.0.6", + "postcss-selector-parser": "^6.0.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/postcss-modules-values": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz", + "integrity": "sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg==", + "dev": true, + "dependencies": { + "icss-utils": "^4.0.0", + "postcss": "^7.0.6" + } + }, + "node_modules/postcss-normalize-charset": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz", + "integrity": "sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==", + "dev": true, + "dependencies": { + "postcss": "^7.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-display-values": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz", + "integrity": "sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==", + "dev": true, + "dependencies": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-display-values/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-normalize-positions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz", + "integrity": "sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==", + "dev": true, + "dependencies": { + "cssnano-util-get-arguments": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-positions/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-normalize-repeat-style": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz", + "integrity": "sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==", + "dev": true, + "dependencies": { + "cssnano-util-get-arguments": "^4.0.0", + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-repeat-style/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-normalize-string": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz", + "integrity": "sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==", + "dev": true, + "dependencies": { + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-string/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-normalize-timing-functions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz", + "integrity": "sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==", + "dev": true, + "dependencies": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-timing-functions/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-normalize-unicode": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz", + "integrity": "sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==", + "dev": true, + "dependencies": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-unicode/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-normalize-url": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz", + "integrity": "sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==", + "dev": true, + "dependencies": { + "is-absolute-url": "^2.0.0", + "normalize-url": "^3.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-url/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-normalize-whitespace": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz", + "integrity": "sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==", + "dev": true, + "dependencies": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-whitespace/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-ordered-values": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz", + "integrity": "sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==", + "dev": true, + "dependencies": { + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-ordered-values/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-reduce-initial": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz", + "integrity": "sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==", + "dev": true, + "dependencies": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-reduce-transforms": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz", + "integrity": "sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==", + "dev": true, + "dependencies": { + "cssnano-util-get-match": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-reduce-transforms/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz", + "integrity": "sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-svgo": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.2.tgz", + "integrity": "sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw==", + "dev": true, + "dependencies": { + "is-svg": "^3.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "svgo": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-svgo/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-unique-selectors": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz", + "integrity": "sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==", + "dev": true, + "dependencies": { + "alphanum-sort": "^1.0.0", + "postcss": "^7.0.0", + "uniqs": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", + "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", + "dev": true + }, + "node_modules/postcss/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "node_modules/promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", + "dev": true + }, + "node_modules/promise-retry": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-1.1.1.tgz", + "integrity": "sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=", + "dev": true, + "dependencies": { + "err-code": "^1.0.0", + "retry": "^0.10.0" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/promise-retry/node_modules/retry": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", + "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/protoduck": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/protoduck/-/protoduck-5.0.1.tgz", + "integrity": "sha512-WxoCeDCoCBY55BMvj4cAEjdVUFGRWed9ZxPlqTKYyw1nDDTQ4pqmnIMAGfJlg7Dx35uB/M+PHJPTmGOvaCaPTg==", + "dev": true, + "dependencies": { + "genfun": "^5.0.0" + } + }, + "node_modules/protractor": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/protractor/-/protractor-7.0.0.tgz", + "integrity": "sha512-UqkFjivi4GcvUQYzqGYNe0mLzfn5jiLmO8w9nMhQoJRLhy2grJonpga2IWhI6yJO30LibWXJJtA4MOIZD2GgZw==", + "dev": true, + "dependencies": { + "@types/q": "^0.0.32", + "@types/selenium-webdriver": "^3.0.0", + "blocking-proxy": "^1.0.0", + "browserstack": "^1.5.1", + "chalk": "^1.1.3", + "glob": "^7.0.3", + "jasmine": "2.8.0", + "jasminewd2": "^2.1.0", + "q": "1.4.1", + "saucelabs": "^1.5.0", + "selenium-webdriver": "3.6.0", + "source-map-support": "~0.4.0", + "webdriver-js-extender": "2.1.0", + "webdriver-manager": "^12.1.7", + "yargs": "^15.3.1" + }, + "bin": { + "protractor": "bin/protractor", + "webdriver-manager": "bin/webdriver-manager" + }, + "engines": { + "node": ">=10.13.x" + } + }, + "node_modules/protractor/node_modules/@types/q": { + "version": "0.0.32", + "resolved": "https://registry.npmjs.org/@types/q/-/q-0.0.32.tgz", + "integrity": "sha1-vShOV8hPEyXacCur/IKlMoGQwMU=", + "dev": true + }, + "node_modules/protractor/node_modules/ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/protractor/node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/protractor/node_modules/array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, + "dependencies": { + "array-uniq": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/protractor/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/protractor/node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "dependencies": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/protractor/node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/protractor/node_modules/cliui/node_modules/strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/protractor/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/protractor/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/protractor/node_modules/del": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", + "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", + "dev": true, + "dependencies": { + "globby": "^5.0.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "rimraf": "^2.2.8" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/protractor/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/protractor/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/protractor/node_modules/globby": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", + "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", + "dev": true, + "dependencies": { + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/protractor/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/protractor/node_modules/is-path-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", + "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/protractor/node_modules/is-path-in-cwd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", + "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", + "dev": true, + "dependencies": { + "is-path-inside": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/protractor/node_modules/is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "dev": true, + "dependencies": { + "path-is-inside": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/protractor/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/protractor/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/protractor/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/protractor/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/protractor/node_modules/q": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz", + "integrity": "sha1-VXBbzZPF82c1MMLCy8DCs63cKG4=", + "dev": true, + "engines": { + "node": ">=0.6.0", + "teleport": ">=0.2.0" + } + }, + "node_modules/protractor/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/protractor/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/protractor/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/protractor/node_modules/source-map-support": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "dev": true, + "dependencies": { + "source-map": "^0.5.6" + } + }, + "node_modules/protractor/node_modules/string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/protractor/node_modules/string-width/node_modules/strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/protractor/node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/protractor/node_modules/webdriver-manager": { + "version": "12.1.7", + "resolved": "https://registry.npmjs.org/webdriver-manager/-/webdriver-manager-12.1.7.tgz", + "integrity": "sha512-XINj6b8CYuUYC93SG3xPkxlyUc3IJbD6Vvo75CVGuG9uzsefDzWQrhz0Lq8vbPxtb4d63CZdYophF8k8Or/YiA==", + "dev": true, + "dependencies": { + "adm-zip": "^0.4.9", + "chalk": "^1.1.1", + "del": "^2.2.0", + "glob": "^7.0.3", + "ini": "^1.3.4", + "minimist": "^1.2.0", + "q": "^1.4.1", + "request": "^2.87.0", + "rimraf": "^2.5.2", + "semver": "^5.3.0", + "xml2js": "^0.4.17" + }, + "bin": { + "webdriver-manager": "bin/webdriver-manager" + }, + "engines": { + "node": ">=6.9.x" + } + }, + "node_modules/protractor/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/protractor/node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/protractor/node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/protractor/node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/protractor/node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", + "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", + "dev": true, + "dependencies": { + "forwarded": "~0.1.2", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "dev": true + }, + "node_modules/psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", + "dev": true + }, + "node_modules/public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "dev": true, + "dependencies": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/public-encrypt/node_modules/bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "dev": true, + "dependencies": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + } + }, + "node_modules/pumpify/node_modules/pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", + "dev": true, + "engines": { + "node": ">=0.6.0", + "teleport": ">=0.2.0" + } + }, + "node_modules/qjobs": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz", + "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==", + "dev": true, + "engines": { + "node": ">=0.9" + } + }, + "node_modules/qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/query-string": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", + "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", + "dev": true, + "dependencies": { + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "dev": true, + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "dev": true, + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "dev": true, + "dependencies": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", + "dev": true, + "dependencies": { + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/raw-loader": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-4.0.1.tgz", + "integrity": "sha512-baolhQBSi3iNh1cglJjA0mYzga+wePk7vdEX//1dTFd+v4TsQlQE0jitJSNF1OIP82rdYulH7otaVmdlDaJ64A==", + "dev": true, + "dependencies": { + "loader-utils": "^2.0.0", + "schema-utils": "^2.6.5" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=", + "dev": true, + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/read-cache/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-package-json": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.1.2.tgz", + "integrity": "sha512-D1KmuLQr6ZSJS0tW8hf3WGpRlwszJOXZ3E8Yd/DNRaM5d+1wVRZdHlpGBLAuovjr28LbWvjpWkBHMxpRGGjzNA==", + "dev": true, + "dependencies": { + "glob": "^7.1.1", + "json-parse-even-better-errors": "^2.3.0", + "normalize-package-data": "^2.0.0", + "npm-normalize-package-bin": "^1.0.0" + } + }, + "node_modules/read-package-tree": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/read-package-tree/-/read-package-tree-5.3.1.tgz", + "integrity": "sha512-mLUDsD5JVtlZxjSlPPx1RETkNjjvQYuweKwNVt1Sn8kP5Jh44pvYuUHCp6xSVDZWbNxVxG5lyZJ921aJH61sTw==", + "dev": true, + "dependencies": { + "read-package-json": "^2.0.0", + "readdir-scoped-modules": "^1.0.0", + "util-promisify": "^2.1.0" + } + }, + "node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readdir-scoped-modules": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz", + "integrity": "sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==", + "dev": true, + "dependencies": { + "debuglog": "^1.0.1", + "dezalgo": "^1.0.0", + "graceful-fs": "^4.1.2", + "once": "^1.3.0" + } + }, + "node_modules/readdirp": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", + "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/reflect-metadata": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", + "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==", + "dev": true + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "node_modules/regenerate-unicode-properties": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", + "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.13.7", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", + "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==", + "dev": true + }, + "node_modules/regenerator-transform": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", + "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "dependencies": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regex-parser": { + "version": "2.2.11", + "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.11.tgz", + "integrity": "sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q==", + "dev": true + }, + "node_modules/regexp.prototype.flags": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz", + "integrity": "sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/regexp.prototype.flags/node_modules/es-abstract": { + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", + "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", + "dev": true, + "dependencies": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/regexpu-core": { + "version": "4.7.1", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.1.tgz", + "integrity": "sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^8.2.0", + "regjsgen": "^0.5.1", + "regjsparser": "^0.6.4", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsgen": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", + "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==", + "dev": true + }, + "node_modules/regjsparser": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz", + "integrity": "sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==", + "dev": true, + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true + }, + "node_modules/repeat-element": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "dev": true, + "dependencies": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/request/node_modules/qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "dev": true + }, + "node_modules/resolve": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", + "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", + "dev": true, + "dependencies": { + "is-core-module": "^2.1.0", + "path-parse": "^1.0.6" + } + }, + "node_modules/resolve-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", + "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", + "dev": true, + "dependencies": { + "resolve-from": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, + "node_modules/resolve-url-loader": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-3.1.2.tgz", + "integrity": "sha512-QEb4A76c8Mi7I3xNKXlRKQSlLBwjUV/ULFMP+G7n3/7tJZ8MG5wsZ3ucxP1Jz8Vevn6fnJsxDx9cIls+utGzPQ==", + "dev": true, + "dependencies": { + "adjust-sourcemap-loader": "3.0.0", + "camelcase": "5.3.1", + "compose-function": "3.0.3", + "convert-source-map": "1.7.0", + "es6-iterator": "2.0.3", + "loader-utils": "1.2.3", + "postcss": "7.0.21", + "rework": "1.0.1", + "rework-visit": "1.0.0", + "source-map": "0.6.1" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/resolve-url-loader/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/resolve-url-loader/node_modules/emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/resolve-url-loader/node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/resolve-url-loader/node_modules/loader-utils": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", + "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^2.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/resolve-url-loader/node_modules/postcss": { + "version": "7.0.21", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.21.tgz", + "integrity": "sha512-uIFtJElxJo29QC753JzhidoAhvp/e/Exezkdhfmt8AymWT6/5B7W1WmponYWkHk2eg6sONyTch0A3nkMPun3SQ==", + "dev": true, + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/resolve-url-loader/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-url-loader/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rework": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/rework/-/rework-1.0.1.tgz", + "integrity": "sha1-MIBqhBNCtUUQqkEQhQzUhTQUSqc=", + "dev": true, + "dependencies": { + "convert-source-map": "^0.3.3", + "css": "^2.0.0" + } + }, + "node_modules/rework-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/rework-visit/-/rework-visit-1.0.0.tgz", + "integrity": "sha1-mUWygD8hni96ygCtuLyfZA+ELJo=", + "dev": true + }, + "node_modules/rework/node_modules/convert-source-map": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-0.3.5.tgz", + "integrity": "sha1-8dgClQr33SYxof6+BZZVDIarMZA=", + "dev": true + }, + "node_modules/rfdc": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.1.4.tgz", + "integrity": "sha512-5C9HXdzK8EAqN7JDif30jqsBzavB7wLpaubisuQIGHWf2gUXSpzy6ArX/+Da8RjFpagWsCn+pIgxTMAmKw9Zug==", + "dev": true + }, + "node_modules/rgb-regex": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz", + "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=", + "dev": true + }, + "node_modules/rgba-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz", + "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=", + "dev": true + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dev": true, + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "node_modules/rollup": { + "version": "2.26.5", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.26.5.tgz", + "integrity": "sha512-rCyFG3ZtQdnn9YwfuAVH0l/Om34BdO5lwCA0W6Hq+bNB21dVEBbCRxhaHOmu1G7OBFDWytbzAC104u7rxHwGjA==", + "dev": true, + "dependencies": { + "fsevents": "~2.1.2" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=10.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.1.2" + } + }, + "node_modules/run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/run-parallel": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.10.tgz", + "integrity": "sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw==", + "dev": true + }, + "node_modules/run-queue": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", + "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", + "dev": true, + "dependencies": { + "aproba": "^1.1.1" + } + }, + "node_modules/rxjs": { + "version": "6.6.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", + "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/rxjs/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "dependencies": { + "ret": "~0.1.10" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/sass": { + "version": "1.26.10", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.26.10.tgz", + "integrity": "sha512-bzN0uvmzfsTvjz0qwccN1sPm2HxxpNI/Xa+7PlUEMS+nQvbyuEK7Y0qFqxlPHhiNHb1Ze8WQJtU31olMObkAMw==", + "dev": true, + "dependencies": { + "chokidar": ">=2.0.0 <4.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/sass-loader": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-10.0.1.tgz", + "integrity": "sha512-b2PSldKVTS3JcFPHSrEXh3BeAfR7XknGiGCAO5aHruR3Pf3kqLP3Gb2ypXLglRrAzgZkloNxLZ7GXEGDX0hBUQ==", + "dev": true, + "dependencies": { + "klona": "^2.0.3", + "loader-utils": "^2.0.0", + "neo-async": "^2.6.2", + "schema-utils": "^2.7.0", + "semver": "^7.3.2" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/saucelabs": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/saucelabs/-/saucelabs-1.5.0.tgz", + "integrity": "sha512-jlX3FGdWvYf4Q3LFfFWS1QvPg3IGCGWxIc8QBFdPTbpTJnt/v17FHXYVAn7C8sHf1yUXo2c7yIM0isDryfYtHQ==", + "dev": true, + "dependencies": { + "https-proxy-agent": "^2.2.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true + }, + "node_modules/schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 8.9.0" + } + }, + "node_modules/seconds-to-human-time": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/seconds-to-human-time/-/seconds-to-human-time-1.0.0.tgz", + "integrity": "sha512-ojOSaCcU8nkmR3tC/5GPIwmBAH4go7q1iyWRZhxB+tIKbR3rO3dDW5L73ZVRmAMNbK2AY1otz4QXCTxZXUHcXg==" + }, + "node_modules/select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", + "dev": true + }, + "node_modules/selenium-webdriver": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-3.6.0.tgz", + "integrity": "sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q==", + "dev": true, + "dependencies": { + "jszip": "^3.1.3", + "rimraf": "^2.5.4", + "tmp": "0.0.30", + "xml2js": "^0.4.17" + }, + "engines": { + "node": ">= 6.9.0" + } + }, + "node_modules/selenium-webdriver/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/selenium-webdriver/node_modules/tmp": { + "version": "0.0.30", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.30.tgz", + "integrity": "sha1-ckGdSovn1s51FI/YsyTlk6cRwu0=", + "dev": true, + "dependencies": { + "os-tmpdir": "~1.0.1" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/selfsigned": { + "version": "1.10.8", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.8.tgz", + "integrity": "sha512-2P4PtieJeEwVgTU9QEcwIRDQ/mXJLX8/+I3ur+Pg16nS8oNbrGxEso9NyYWy8NAmXiNl4dlAp5MwoNeCWzON4w==", + "dev": true, + "dependencies": { + "node-forge": "^0.10.0" + } + }, + "node_modules/semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver-dsl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/semver-dsl/-/semver-dsl-1.0.1.tgz", + "integrity": "sha1-02eN5VVeimH2Ke7QJTZq5fJzQKA=", + "dev": true, + "dependencies": { + "semver": "^5.3.0" + } + }, + "node_modules/semver-dsl/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/semver-intersect": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/semver-intersect/-/semver-intersect-1.4.0.tgz", + "integrity": "sha512-d8fvGg5ycKAq0+I6nfWeCx6ffaWJCsBYU0H2Rq56+/zFePYfT8mXkB3tWBSjR5BerkHNZ5eTPIk1/LBYas35xQ==", + "dev": true, + "dependencies": { + "semver": "^5.0.0" + } + }, + "node_modules/semver-intersect/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.7.2", + "mime": "1.6.0", + "ms": "2.1.1", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + }, + "node_modules/serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "dev": true, + "dependencies": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-index/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/serve-index/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "dev": true, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "node_modules/serve-index/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/serve-index/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + }, + "node_modules/serve-static": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", + "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", + "dev": true, + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "node_modules/set-immediate-shim": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", + "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/set-value/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", + "dev": true + }, + "node_modules/setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", + "dev": true + }, + "node_modules/sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" + } + }, + "node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", + "dev": true + }, + "node_modules/simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", + "dev": true, + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, + "node_modules/simple-swizzle/node_modules/is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "dev": true + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/smart-buffer": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.1.0.tgz", + "integrity": "sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw==", + "dev": true, + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "dependencies": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "dependencies": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "dependencies": { + "kind-of": "^3.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/snapdragon/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/snapdragon/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/socket.io": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.3.0.tgz", + "integrity": "sha512-2A892lrj0GcgR/9Qk81EaY2gYhCBxurV0PfmmESO6p27QPrUK1J3zdns+5QPqvUYK2q657nSj0guoIil9+7eFg==", + "dev": true, + "dependencies": { + "debug": "~4.1.0", + "engine.io": "~3.4.0", + "has-binary2": "~1.0.2", + "socket.io-adapter": "~1.1.0", + "socket.io-client": "2.3.0", + "socket.io-parser": "~3.4.0" + } + }, + "node_modules/socket.io-adapter": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz", + "integrity": "sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g==", + "dev": true + }, + "node_modules/socket.io-client": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.3.0.tgz", + "integrity": "sha512-cEQQf24gET3rfhxZ2jJ5xzAOo/xhZwK+mOqtGRg5IowZsMgwvHwnf/mCRapAAkadhM26y+iydgwsXGObBB5ZdA==", + "dev": true, + "dependencies": { + "backo2": "1.0.2", + "base64-arraybuffer": "0.1.5", + "component-bind": "1.0.0", + "component-emitter": "1.2.1", + "debug": "~4.1.0", + "engine.io-client": "~3.4.0", + "has-binary2": "~1.0.2", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "object-component": "0.0.3", + "parseqs": "0.0.5", + "parseuri": "0.0.5", + "socket.io-parser": "~3.3.0", + "to-array": "0.1.4" + } + }, + "node_modules/socket.io-client/node_modules/base64-arraybuffer": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", + "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/socket.io-client/node_modules/component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, + "node_modules/socket.io-client/node_modules/debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/socket.io-client/node_modules/isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", + "dev": true + }, + "node_modules/socket.io-client/node_modules/socket.io-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.1.tgz", + "integrity": "sha512-1QLvVAe8dTz+mKmZ07Swxt+LAo4Y1ff50rlyoEx00TQmDFVQYPfcqGvIDJLGaBdhdNCecXtyKpD+EgKGcmmbuQ==", + "dev": true, + "dependencies": { + "component-emitter": "~1.3.0", + "debug": "~3.1.0", + "isarray": "2.0.1" + } + }, + "node_modules/socket.io-client/node_modules/socket.io-parser/node_modules/component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true + }, + "node_modules/socket.io-client/node_modules/socket.io-parser/node_modules/debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/socket.io-client/node_modules/socket.io-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/socket.io-parser": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.4.1.tgz", + "integrity": "sha512-11hMgzL+WCLWf1uFtHSNvliI++tcRUWdoeYuwIl+Axvwy9z2gQM+7nJyN3STj1tLj5JyIUH8/gpDGxzAlDdi0A==", + "dev": true, + "dependencies": { + "component-emitter": "1.2.1", + "debug": "~4.1.0", + "isarray": "2.0.1" + } + }, + "node_modules/socket.io-parser/node_modules/component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, + "node_modules/socket.io-parser/node_modules/debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/socket.io-parser/node_modules/isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", + "dev": true + }, + "node_modules/socket.io/node_modules/debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/sockjs": { + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.20.tgz", + "integrity": "sha512-SpmVOVpdq0DJc0qArhF3E5xsxvaiqGNb73XfgBpK1y3UD5gs8DSo8aCTsuT5pX8rssdc2NDIzANwP9eCAiSdTA==", + "dev": true, + "dependencies": { + "faye-websocket": "^0.10.0", + "uuid": "^3.4.0", + "websocket-driver": "0.6.5" + } + }, + "node_modules/sockjs-client": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.4.0.tgz", + "integrity": "sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g==", + "dev": true, + "dependencies": { + "debug": "^3.2.5", + "eventsource": "^1.0.7", + "faye-websocket": "~0.11.1", + "inherits": "^2.0.3", + "json3": "^3.3.2", + "url-parse": "^1.4.3" + } + }, + "node_modules/sockjs-client/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/sockjs-client/node_modules/faye-websocket": { + "version": "0.11.3", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz", + "integrity": "sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==", + "dev": true, + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/socks": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.3.3.tgz", + "integrity": "sha512-o5t52PCNtVdiOvzMry7wU4aOqYWL0PeCXRWBEiJow4/i/wr+wpsJQ9awEu1EonLIqsfGd5qSgDdxEOvCdmBEpA==", + "dev": true, + "dependencies": { + "ip": "1.1.5", + "smart-buffer": "^4.1.0" + }, + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks-proxy-agent": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz", + "integrity": "sha512-NT6syHhI9LmuEMSK6Kd2V7gNv5KFZoLE7V5udWmn0de+3Mkj3UMA/AJPLyeNUVmElCurSHtUdM3ETpR3z770Wg==", + "dev": true, + "dependencies": { + "agent-base": "~4.2.1", + "socks": "~2.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/socks-proxy-agent/node_modules/agent-base": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz", + "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==", + "dev": true, + "dependencies": { + "es6-promisify": "^5.0.0" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/sort-keys": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", + "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", + "dev": true, + "dependencies": { + "is-plain-obj": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", + "dev": true + }, + "node_modules/source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/source-map-loader": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-1.0.2.tgz", + "integrity": "sha512-oX8d6ndRjN+tVyjj6PlXSyFPhDdVAPsZA30nD3/II8g4uOv8fCz0DMn5sy8KtVbDfKQxOpGwGJnK3xIW3tauDw==", + "dev": true, + "dependencies": { + "data-urls": "^2.0.0", + "iconv-lite": "^0.6.2", + "loader-utils": "^2.0.0", + "schema-utils": "^2.7.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/source-map-loader/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "dev": true, + "dependencies": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "dev": true + }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "dev": true + }, + "node_modules/spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "dev": true, + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz", + "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==", + "dev": true + }, + "node_modules/spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "dev": true, + "dependencies": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "dev": true, + "dependencies": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + } + }, + "node_modules/spdy-transport/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/speed-measure-webpack-plugin": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/speed-measure-webpack-plugin/-/speed-measure-webpack-plugin-1.3.3.tgz", + "integrity": "sha512-2ljD4Ch/rz2zG3HsLsnPfp23osuPBS0qPuz9sGpkNXTN1Ic4M+W9xB8l8rS8ob2cO4b1L+WTJw/0AJwWYVgcxQ==", + "dev": true, + "dependencies": { + "chalk": "^2.0.1" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "dependencies": { + "extend-shallow": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "node_modules/sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "dev": true, + "dependencies": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "bin": { + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ssri": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.0.tgz", + "integrity": "sha512-aq/pz989nxVYwn16Tsbj1TqFpD5LLrQxHf5zaHuieFV+R0Bbr4y8qUsOA45hXT/N4/9UNXTarBjnjVmjSOVaAA==", + "dev": true, + "dependencies": { + "minipass": "^3.1.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "dev": true + }, + "node_modules/static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "dependencies": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/stream-browserify": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", + "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", + "dev": true, + "dependencies": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + } + }, + "node_modules/stream-each": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", + "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" + } + }, + "node_modules/stream-http": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "dev": true, + "dependencies": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + } + }, + "node_modules/stream-shift": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", + "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", + "dev": true + }, + "node_modules/streamroller": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-2.2.4.tgz", + "integrity": "sha512-OG79qm3AujAM9ImoqgWEY1xG4HX+Lw+yY6qZj9R1K2mhF5bEmQ849wvrb+4vt4jLMLzwXttJlQbOdPOQVRv7DQ==", + "dev": true, + "dependencies": { + "date-format": "^2.1.0", + "debug": "^4.1.1", + "fs-extra": "^8.1.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/streamroller/node_modules/date-format": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-2.1.0.tgz", + "integrity": "sha512-bYQuGLeFxhkxNOF3rcMtiZxvCBAquGzZm6oWA1oZ0g2THUzivaRhv8uOhdr19LmoobSOLoIAxeUK2RdbM8IFTA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/streamroller/node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz", + "integrity": "sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz", + "integrity": "sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + } + }, + "node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/style-loader": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-1.2.1.tgz", + "integrity": "sha512-ByHSTQvHLkWE9Ir5+lGbVOXhxX10fbprhLvdg96wedFZb4NDekDPxVKv5Fwmio+QcMlkkNfuK+5W1peQ5CUhZg==", + "dev": true, + "dependencies": { + "loader-utils": "^2.0.0", + "schema-utils": "^2.6.6" + }, + "engines": { + "node": ">= 8.9.0" + } + }, + "node_modules/stylehacks": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz", + "integrity": "sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==", + "dev": true, + "dependencies": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/stylehacks/node_modules/postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "dev": true, + "dependencies": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/stylus": { + "version": "0.54.8", + "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.54.8.tgz", + "integrity": "sha512-vr54Or4BZ7pJafo2mpf0ZcwA74rpuYCZbxrHBsH8kbcXOwSfvBFwsRfpGO5OD5fhG5HDCFW737PKaawI7OqEAg==", + "dev": true, + "dependencies": { + "css-parse": "~2.0.0", + "debug": "~3.1.0", + "glob": "^7.1.6", + "mkdirp": "~1.0.4", + "safer-buffer": "^2.1.2", + "sax": "~1.2.4", + "semver": "^6.3.0", + "source-map": "^0.7.3" + }, + "bin": { + "stylus": "bin/stylus" + }, + "engines": { + "node": "*" + } + }, + "node_modules/stylus-loader": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/stylus-loader/-/stylus-loader-3.0.2.tgz", + "integrity": "sha512-+VomPdZ6a0razP+zinir61yZgpw2NfljeSsdUF5kJuEzlo3khXhY19Fn6l8QQz1GRJGtMCo8nG5C04ePyV7SUA==", + "dev": true, + "dependencies": { + "loader-utils": "^1.0.2", + "lodash.clonedeep": "^4.5.0", + "when": "~3.6.x" + } + }, + "node_modules/stylus-loader/node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/stylus-loader/node_modules/loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/stylus/node_modules/debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/stylus/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stylus/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/stylus/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/svg.draggable.js": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/svg.draggable.js/-/svg.draggable.js-2.2.2.tgz", + "integrity": "sha512-JzNHBc2fLQMzYCZ90KZHN2ohXL0BQJGQimK1kGk6AvSeibuKcIdDX9Kr0dT9+UJ5O8nYA0RB839Lhvk4CY4MZw==", + "dependencies": { + "svg.js": "^2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/svg.easing.js": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/svg.easing.js/-/svg.easing.js-2.0.0.tgz", + "integrity": "sha1-iqmUawqOJ4V6XEChDrpAkeVpHxI=", + "dependencies": { + "svg.js": ">=2.3.x" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/svg.filter.js": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/svg.filter.js/-/svg.filter.js-2.0.2.tgz", + "integrity": "sha1-kQCOFROJ3ZIwd5/L5uLJo2LRwgM=", + "dependencies": { + "svg.js": "^2.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/svg.js": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/svg.js/-/svg.js-2.7.1.tgz", + "integrity": "sha512-ycbxpizEQktk3FYvn/8BH+6/EuWXg7ZpQREJvgacqn46gIddG24tNNe4Son6omdXCnSOaApnpZw6MPCBA1dODA==" + }, + "node_modules/svg.pathmorphing.js": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/svg.pathmorphing.js/-/svg.pathmorphing.js-0.1.3.tgz", + "integrity": "sha512-49HWI9X4XQR/JG1qXkSDV8xViuTLIWm/B/7YuQELV5KMOPtXjiwH4XPJvr/ghEDibmLQ9Oc22dpWpG0vUDDNww==", + "dependencies": { + "svg.js": "^2.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/svg.resize.js": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/svg.resize.js/-/svg.resize.js-1.4.3.tgz", + "integrity": "sha512-9k5sXJuPKp+mVzXNvxz7U0uC9oVMQrrf7cFsETznzUDDm0x8+77dtZkWdMfRlmbkEEYvUn9btKuZ3n41oNA+uw==", + "dependencies": { + "svg.js": "^2.6.5", + "svg.select.js": "^2.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/svg.resize.js/node_modules/svg.select.js": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/svg.select.js/-/svg.select.js-2.1.2.tgz", + "integrity": "sha512-tH6ABEyJsAOVAhwcCjF8mw4crjXSI1aa7j2VQR8ZuJ37H2MBUbyeqYr5nEO7sSN3cy9AR9DUwNg0t/962HlDbQ==", + "dependencies": { + "svg.js": "^2.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/svg.select.js": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/svg.select.js/-/svg.select.js-3.0.1.tgz", + "integrity": "sha512-h5IS/hKkuVCbKSieR9uQCj9w+zLHoPh+ce19bBYyqF53g6mnPB8sAtIbe1s9dh2S2fCmYX2xel1Ln3PJBbK4kw==", + "dependencies": { + "svg.js": "^2.6.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/svgo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", + "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", + "dev": true, + "dependencies": { + "chalk": "^2.4.1", + "coa": "^2.0.2", + "css-select": "^2.0.0", + "css-select-base-adapter": "^0.1.1", + "css-tree": "1.0.0-alpha.37", + "csso": "^4.0.2", + "js-yaml": "^3.13.1", + "mkdirp": "~0.5.1", + "object.values": "^1.1.0", + "sax": "~1.2.4", + "stable": "^0.1.8", + "unquote": "~1.1.1", + "util.promisify": "~1.0.0" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/symbol-observable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", + "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/tar": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.0.5.tgz", + "integrity": "sha512-0b4HOimQHj9nXNEAA7zWwMM91Zhhba3pspja6sQbgTpynOJf+bkjBnfybNYzbpLbnwXnbyB4LOREvlyXLkCHSg==", + "dev": true, + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/tar/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.3.0.tgz", + "integrity": "sha512-XTT3D3AwxC54KywJijmY2mxZ8nJiEjBHVYzq8l9OaYuRFWeQNBwvipuzzYEP4e+/AVcd1hqG/CqgsdIRyT45Fg==", + "dev": true, + "dependencies": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-4.1.0.tgz", + "integrity": "sha512-0ZWDPIP8BtEDZdChbufcXUigOYk6dOX/P/X0hWxqDDcVAQLb8Yy/0FAaemSfax3PAA67+DJR778oz8qVbmy4hA==", + "dev": true, + "dependencies": { + "cacache": "^15.0.5", + "find-cache-dir": "^3.3.1", + "jest-worker": "^26.3.0", + "p-limit": "^3.0.2", + "schema-utils": "^2.6.6", + "serialize-javascript": "^4.0.0", + "source-map": "^0.6.1", + "terser": "^5.0.0", + "webpack-sources": "^1.4.3" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/terser-webpack-plugin/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/terser/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "dev": true + }, + "node_modules/timers-browserify": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", + "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", + "dev": true, + "dependencies": { + "setimmediate": "^1.0.4" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/timsort": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", + "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=", + "dev": true + }, + "node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/to-array": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", + "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=", + "dev": true + }, + "node_modules/to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", + "dev": true + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-object-path/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "dependencies": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dev": true, + "dependencies": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/tr46": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.0.2.tgz", + "integrity": "sha512-3n1qG+/5kg+jrbTzwAykB5yRYtQCTqOGKq5U5PE3b0a1/mzo6snDhjGS0zJVJunO0NrT3Dg1MLy5TjWP/UJppg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true, + "bin": { + "tree-kill": "cli.js" + } + }, + "node_modules/ts-node": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.3.0.tgz", + "integrity": "sha512-dyNS/RqyVTDcmNM4NIBAeDMpsAdaQ+ojdf0GOLqE6nwJOgzEkdRNzJywhDfwnuvB10oa6NLVG1rUJQCpRN7qoQ==", + "dev": true, + "dependencies": { + "arg": "^4.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "source-map-support": "^0.5.6", + "yn": "^3.0.0" + }, + "bin": { + "ts-node": "dist/bin.js" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/ts-pnp": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.2.0.tgz", + "integrity": "sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/tslib": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", + "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==" + }, + "node_modules/tslint": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/tslint/-/tslint-6.1.3.tgz", + "integrity": "sha512-IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "builtin-modules": "^1.1.1", + "chalk": "^2.3.0", + "commander": "^2.12.1", + "diff": "^4.0.1", + "glob": "^7.1.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.3", + "resolve": "^1.3.2", + "semver": "^5.3.0", + "tslib": "^1.13.0", + "tsutils": "^2.29.0" + }, + "bin": { + "tslint": "bin/tslint" + }, + "engines": { + "node": ">=4.8.0" + } + }, + "node_modules/tslint/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/tslint/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/tsutils": { + "version": "2.29.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", + "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", + "dev": true, + "dependencies": { + "tslib": "^1.8.1" + } + }, + "node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", + "dev": true + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true + }, + "node_modules/type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==", + "dev": true + }, + "node_modules/type-fest": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, + "node_modules/typescript": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.0.5.tgz", + "integrity": "sha512-ywmr/VrTVCmNTJ6iV2LwIrfG1P+lv6luD8sUJs+2eI9NLGigaN+nUQc13iHqisq7bra9lnmUSYqbJvegraBOPQ==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/ua-parser-js": { + "version": "0.7.21", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.21.tgz", + "integrity": "sha512-+O8/qh/Qj8CgC6eYBVBykMrNtp5Gebn4dlGD/kKXVkJNDwyrAwSIqwz8CDf+tsAIWVycKcku6gIXJ0qwx/ZXaQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", + "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", + "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", + "dev": true, + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^1.0.4", + "unicode-property-aliases-ecmascript": "^1.0.4" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz", + "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz", + "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dev": true, + "dependencies": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/uniq": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", + "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", + "dev": true + }, + "node_modules/uniqs": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", + "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", + "dev": true + }, + "node_modules/unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "dev": true, + "dependencies": { + "unique-slug": "^2.0.0" + } + }, + "node_modules/unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4" + } + }, + "node_modules/universal-analytics": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/universal-analytics/-/universal-analytics-0.4.23.tgz", + "integrity": "sha512-lgMIH7XBI6OgYn1woDEmxhGdj8yDefMKg7GkWdeATAlQZFrMrNyxSkpDzY57iY0/6fdlzTbBV03OawvvzG+q7A==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "request": "^2.88.2", + "uuid": "^3.0.0" + } + }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/unquote": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", + "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=", + "dev": true + }, + "node_modules/unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "dependencies": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "dependencies": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "dependencies": { + "isarray": "1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "dev": true, + "engines": { + "node": ">=4", + "yarn": "*" + } + }, + "node_modules/uri-js": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", + "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "node_modules/url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dev": true, + "dependencies": { + "punycode": "1.3.2", + "querystring": "0.2.0" + } + }, + "node_modules/url-parse": { + "version": "1.4.7", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz", + "integrity": "sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg==", + "dev": true, + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/url/node_modules/punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true + }, + "node_modules/use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/util": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", + "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", + "dev": true, + "dependencies": { + "inherits": "2.0.3" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "node_modules/util-promisify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/util-promisify/-/util-promisify-2.1.0.tgz", + "integrity": "sha1-PCI2R2xNMsX/PEcAKt18E7moKlM=", + "dev": true, + "dependencies": { + "object.getownpropertydescriptors": "^2.0.3" + } + }, + "node_modules/util.promisify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", + "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.2", + "has-symbols": "^1.0.1", + "object.getownpropertydescriptors": "^2.1.0" + } + }, + "node_modules/util.promisify/node_modules/es-abstract": { + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", + "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", + "dev": true, + "dependencies": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/util/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "dev": true, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true, + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/validate-npm-package-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", + "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", + "dev": true, + "dependencies": { + "builtins": "^1.0.3" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vendors": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz", + "integrity": "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==", + "dev": true + }, + "node_modules/verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "node_modules/vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", + "dev": true + }, + "node_modules/void-elements": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", + "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", + "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", + "dev": true, + "dependencies": { + "chokidar": "^3.4.1", + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0", + "watchpack-chokidar2": "^2.0.1" + }, + "optionalDependencies": { + "watchpack-chokidar2": "^2.0.1" + } + }, + "node_modules/watchpack-chokidar2": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz", + "integrity": "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==", + "dev": true, + "optional": true, + "dependencies": { + "chokidar": "^2.1.8" + } + }, + "node_modules/watchpack-chokidar2/node_modules/anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "optional": true, + "dependencies": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "node_modules/watchpack-chokidar2/node_modules/anymatch/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "optional": true, + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "optional": true, + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "optional": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": true, + "optional": true, + "dependencies": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "node_modules/watchpack-chokidar2/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "optional": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "optional": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "optional": true, + "dependencies": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/glob-parent/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "optional": true, + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "optional": true, + "dependencies": { + "binary-extensions": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "optional": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "optional": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "optional": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "optional": true, + "dependencies": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/watchpack-chokidar2/node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "optional": true, + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dev": true, + "dependencies": { + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", + "dev": true, + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/webdriver-js-extender": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/webdriver-js-extender/-/webdriver-js-extender-2.1.0.tgz", + "integrity": "sha512-lcUKrjbBfCK6MNsh7xaY2UAUmZwe+/ib03AjVOpFobX4O7+83BUveSrLfU0Qsyb1DaKJdQRbuU+kM9aZ6QUhiQ==", + "dev": true, + "dependencies": { + "@types/selenium-webdriver": "^3.0.0", + "selenium-webdriver": "^3.0.1" + }, + "engines": { + "node": ">=6.9.x" + } + }, + "node_modules/webidl-conversions": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", + "dev": true, + "engines": { + "node": ">=10.4" + } + }, + "node_modules/webpack": { + "version": "4.44.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.44.1.tgz", + "integrity": "sha512-4UOGAohv/VGUNQJstzEywwNxqX417FnjZgZJpJQegddzPmTvph37eBIRbRTfdySXzVtJXLJfbMN3mMYhM6GdmQ==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/wasm-edit": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "acorn": "^6.4.1", + "ajv": "^6.10.2", + "ajv-keywords": "^3.4.1", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^4.3.0", + "eslint-scope": "^4.0.3", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^2.4.0", + "loader-utils": "^1.2.3", + "memory-fs": "^0.4.1", + "micromatch": "^3.1.10", + "mkdirp": "^0.5.3", + "neo-async": "^2.6.1", + "node-libs-browser": "^2.2.1", + "schema-utils": "^1.0.0", + "tapable": "^1.1.3", + "terser-webpack-plugin": "^1.4.3", + "watchpack": "^1.7.4", + "webpack-sources": "^1.4.1" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/webpack-dev-middleware": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz", + "integrity": "sha512-1xC42LxbYoqLNAhV6YzTYacicgMZQTqRd27Sim9wn5hJrX3I5nxYy1SxSd4+gjUFsz1dQFj+yEe6zEVmSkeJjw==", + "dev": true, + "dependencies": { + "memory-fs": "^0.4.1", + "mime": "^2.4.4", + "mkdirp": "^0.5.1", + "range-parser": "^1.2.1", + "webpack-log": "^2.0.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/webpack-dev-middleware/node_modules/memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "dev": true, + "dependencies": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "node_modules/webpack-dev-middleware/node_modules/mime": { + "version": "2.4.7", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.7.tgz", + "integrity": "sha512-dhNd1uA2u397uQk3Nv5LM4lm93WYDUXFn3Fu291FJerns4jyTudqhIWe4W04YLy7Uk1tm1Ore04NpjRvQp/NPA==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/webpack-dev-server": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.0.tgz", + "integrity": "sha512-PUxZ+oSTxogFQgkTtFndEtJIPNmml7ExwufBZ9L2/Xyyd5PnOL5UreWe5ZT7IU25DSdykL9p1MLQzmLh2ljSeg==", + "dev": true, + "dependencies": { + "ansi-html": "0.0.7", + "bonjour": "^3.5.0", + "chokidar": "^2.1.8", + "compression": "^1.7.4", + "connect-history-api-fallback": "^1.6.0", + "debug": "^4.1.1", + "del": "^4.1.1", + "express": "^4.17.1", + "html-entities": "^1.3.1", + "http-proxy-middleware": "0.19.1", + "import-local": "^2.0.0", + "internal-ip": "^4.3.0", + "ip": "^1.1.5", + "is-absolute-url": "^3.0.3", + "killable": "^1.0.1", + "loglevel": "^1.6.8", + "opn": "^5.5.0", + "p-retry": "^3.0.1", + "portfinder": "^1.0.26", + "schema-utils": "^1.0.0", + "selfsigned": "^1.10.7", + "semver": "^6.3.0", + "serve-index": "^1.9.1", + "sockjs": "0.3.20", + "sockjs-client": "1.4.0", + "spdy": "^4.0.2", + "strip-ansi": "^3.0.1", + "supports-color": "^6.1.0", + "url": "^0.11.0", + "webpack-dev-middleware": "^3.7.2", + "webpack-log": "^2.0.0", + "ws": "^6.2.1", + "yargs": "^13.3.2" + }, + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "engines": { + "node": ">= 6.11.5" + } + }, + "node_modules/webpack-dev-server/node_modules/anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "dependencies": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "node_modules/webpack-dev-server/node_modules/anymatch/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": true, + "dependencies": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + }, + "optionalDependencies": { + "fsevents": "^1.2.7" + } + }, + "node_modules/webpack-dev-server/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/webpack-dev-server/node_modules/glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "dependencies": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + } + }, + "node_modules/webpack-dev-server/node_modules/glob-parent/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/is-absolute-url": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", + "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/webpack-dev-server/node_modules/is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "dependencies": { + "binary-extensions": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/webpack-dev-server/node_modules/schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "dependencies": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/webpack-dev-server/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/webpack-dev-server/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-dev-server/node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-log": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz", + "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", + "dev": true, + "dependencies": { + "ansi-colors": "^3.0.0", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/webpack-merge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.2.tgz", + "integrity": "sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g==", + "dev": true, + "dependencies": { + "lodash": "^4.17.15" + } + }, + "node_modules/webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "dev": true, + "dependencies": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + }, + "node_modules/webpack-sources/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-subresource-integrity": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/webpack-subresource-integrity/-/webpack-subresource-integrity-1.4.1.tgz", + "integrity": "sha512-XMLFInbGbB1HV7K4vHWANzc1CN0t/c4bBvnlvGxGwV45yE/S/feAXIm8dJsCkzqWtSKnmaEgTp/meyeThxG4Iw==", + "dev": true, + "dependencies": { + "webpack-sources": "^1.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/webpack/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/cacache": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", + "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", + "dev": true, + "dependencies": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } + }, + "node_modules/webpack/node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, + "node_modules/webpack/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "dev": true, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/webpack/node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/webpack/node_modules/loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/webpack/node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/webpack/node_modules/memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "dev": true, + "dependencies": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "node_modules/webpack/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/webpack/node_modules/schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "dependencies": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/webpack/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/ssri": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", + "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "dev": true, + "dependencies": { + "figgy-pudding": "^3.5.1" + } + }, + "node_modules/webpack/node_modules/terser": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", + "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", + "dev": true, + "dependencies": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/webpack/node_modules/terser-webpack-plugin": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz", + "integrity": "sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==", + "dev": true, + "dependencies": { + "cacache": "^12.0.2", + "find-cache-dir": "^2.1.0", + "is-wsl": "^1.1.0", + "schema-utils": "^1.0.0", + "serialize-javascript": "^4.0.0", + "source-map": "^0.6.1", + "terser": "^4.1.2", + "webpack-sources": "^1.4.0", + "worker-farm": "^1.7.0" + }, + "engines": { + "node": ">= 6.9.0" + } + }, + "node_modules/webpack/node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/websocket-driver": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.6.5.tgz", + "integrity": "sha1-XLJVbOuF9Dc8bYI4qmkchFThOjY=", + "dev": true, + "dependencies": { + "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", + "dev": true + }, + "node_modules/whatwg-url": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.4.0.tgz", + "integrity": "sha512-vwTUFf6V4zhcPkWp/4CQPr1TW9Ml6SF4lVyaIMBdJw5i6qUUJ1QWM4Z6YYVkfka0OUIzVo/0aNtGVGk256IKWw==", + "dev": true, + "dependencies": { + "lodash.sortby": "^4.7.0", + "tr46": "^2.0.2", + "webidl-conversions": "^6.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/when": { + "version": "3.6.4", + "resolved": "https://registry.npmjs.org/when/-/when-3.6.4.tgz", + "integrity": "sha1-RztRfsFZ4rhQBUl6E5g/CVQS404=", + "dev": true + }, + "node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "node_modules/worker-farm": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", + "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", + "dev": true, + "dependencies": { + "errno": "~0.1.7" + } + }, + "node_modules/worker-plugin": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/worker-plugin/-/worker-plugin-5.0.0.tgz", + "integrity": "sha512-AXMUstURCxDD6yGam2r4E34aJg6kW85IiaeX72hi+I1cxyaMUtrvVY6sbfpGKAj5e7f68Acl62BjQF5aOOx2IQ==", + "dev": true, + "dependencies": { + "loader-utils": "^1.1.0" + } + }, + "node_modules/worker-plugin/node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/worker-plugin/node_modules/loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "node_modules/ws": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", + "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", + "dev": true, + "dependencies": { + "async-limiter": "~1.0.0" + } + }, + "node_modules/xml2js": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", + "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", + "dev": true, + "dependencies": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/xmlhttprequest-ssl": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz", + "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true, + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", + "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", + "dev": true + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "dev": true, + "dependencies": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + } + }, + "node_modules/yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "node_modules/yargs-parser/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/yeast": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", + "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=", + "dev": true + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/zone.js": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.10.3.tgz", + "integrity": "sha512-LXVLVEq0NNOqK/fLJo3d0kfzd4sxwn2/h67/02pjCjfKDxgx1i9QqpvtHD8CrBnSSwMw5+dy11O7FRX5mkO7Cg==" + } + }, "dependencies": { "@angular-devkit/architect": { "version": "0.1002.1", @@ -1987,16 +18183,6 @@ "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", "dev": true }, - "JSONStream": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", - "dev": true, - "requires": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - } - }, "abab": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", @@ -6828,6 +23014,16 @@ "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", "dev": true }, + "JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "dev": true, + "requires": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + } + }, "jsprim": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", @@ -8103,9 +24299,9 @@ "integrity": "sha512-cny9v0+Mq6Tjz+e0erFAB+RYJ/AVGzkjnISiobqP8OWj9c9FLoZZu8/SPSKJWE17F1tk4018wfjV+ZbIbqC7fQ==", "dev": true, "requires": { - "JSONStream": "^1.3.4", "bluebird": "^3.5.1", "figgy-pudding": "^3.4.1", + "JSONStream": "^1.3.4", "lru-cache": "^5.1.1", "make-fetch-happen": "^5.0.0", "npm-package-arg": "^6.1.0", @@ -11752,6 +27948,15 @@ "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", "dev": true }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, "string-width": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", @@ -11800,15 +28005,6 @@ "define-properties": "^1.1.3" } }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, "strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", diff --git a/projects/project-3/frontend/package.json b/projects/project-3/frontend/package.json index c344448..371c6be 100644 --- a/projects/project-3/frontend/package.json +++ b/projects/project-3/frontend/package.json @@ -39,9 +39,9 @@ "@angular-devkit/build-angular": "~0.1002.0", "@angular/cli": "~10.2.0", "@angular/compiler-cli": "~10.2.0", - "@types/node": "^12.11.1", "@types/jasmine": "~3.5.0", "@types/jasminewd2": "~2.0.3", + "@types/node": "^12.11.1", "codelyzer": "^6.0.0", "jasmine-core": "~3.6.0", "jasmine-spec-reporter": "~5.0.0", diff --git a/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts b/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts index 5ec4e78..ab30b2f 100644 --- a/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts +++ b/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts @@ -97,7 +97,6 @@ export class DashboardComponent implements OnInit { form: FormGroup; bikePoint: IMapBikePoint; - bikePointWithColor = []; constructor( private route: ActivatedRoute, diff --git a/projects/project-3/frontend/src/app/map/auto-refresh/auto-refresh.component.html b/projects/project-3/frontend/src/app/map/auto-refresh/auto-refresh.component.html index 09568c6..52b3fa2 100644 --- a/projects/project-3/frontend/src/app/map/auto-refresh/auto-refresh.component.html +++ b/projects/project-3/frontend/src/app/map/auto-refresh/auto-refresh.component.html @@ -1,3 +1,3 @@
- auto refresh + auto refresh
diff --git a/projects/project-3/frontend/src/app/map/auto-refresh/auto-refresh.component.scss b/projects/project-3/frontend/src/app/map/auto-refresh/auto-refresh.component.scss index e69de29..dc5ff7f 100644 --- a/projects/project-3/frontend/src/app/map/auto-refresh/auto-refresh.component.scss +++ b/projects/project-3/frontend/src/app/map/auto-refresh/auto-refresh.component.scss @@ -0,0 +1,3 @@ +mat-slide-toggle { + font-size: 15px; +} diff --git a/projects/project-3/frontend/src/app/map/auto-refresh/auto-refresh.component.ts b/projects/project-3/frontend/src/app/map/auto-refresh/auto-refresh.component.ts index 8ec16dc..293d073 100644 --- a/projects/project-3/frontend/src/app/map/auto-refresh/auto-refresh.component.ts +++ b/projects/project-3/frontend/src/app/map/auto-refresh/auto-refresh.component.ts @@ -1,4 +1,5 @@ -import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core'; +import {Component, OnInit} from '@angular/core'; +import {MapService} from '../../service/map.service'; @Component({ selector: 'app-auto-refresh', @@ -6,16 +7,30 @@ import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core'; styleUrls: ['./auto-refresh.component.scss'] }) export class AutoRefreshComponent implements OnInit { - isChecked: boolean; - @Input() isFlagActive: boolean; - @Output() sendData = new EventEmitter(); + isFlagActive: boolean; - constructor() { - console.log('is Active? ' + this.isFlagActive); + constructor(private map: MapService) { + const storageFlag = JSON.parse(sessionStorage.getItem('auto-refresh')); + if (storageFlag) { + this.isFlagActive = storageFlag; + } else { + this.isFlagActive = false; + } } ngOnInit(): void { + setInterval(() => { + if (this.isFlagActive) { + this.map.autoRefresh(); + console.log('Update triggered'); + } else { + console.log('no Update triggered'); + } + }, 30000); } + onChange(flag: boolean): void { + sessionStorage.setItem('auto-refresh', JSON.stringify(flag)); + } } diff --git a/projects/project-3/frontend/src/app/map/map.component.html b/projects/project-3/frontend/src/app/map/map.component.html index 7ad5bf8..11cb0c3 100644 --- a/projects/project-3/frontend/src/app/map/map.component.html +++ b/projects/project-3/frontend/src/app/map/map.component.html @@ -2,10 +2,7 @@ Bike Stations in London - +
diff --git a/projects/project-3/frontend/src/app/map/map.component.ts b/projects/project-3/frontend/src/app/map/map.component.ts index 4aaa2ab..84905f2 100644 --- a/projects/project-3/frontend/src/app/map/map.component.ts +++ b/projects/project-3/frontend/src/app/map/map.component.ts @@ -8,20 +8,12 @@ import {MapService} from '../service/map.service'; styleUrls: ['./map.component.scss'] }) export class MapComponent implements OnInit { - isRefreshActive = false; - - constructor(private service: MapService) { } ngOnInit(): void { this.initMapView(); - this.service.getAutoRefreshFlag().subscribe(isChecked => { - this.isRefreshActive = isChecked; - console.log(isChecked); - }); - console.log(this.isRefreshActive); } async initMapView(): Promise { @@ -31,7 +23,4 @@ export class MapComponent implements OnInit { this.service.drawAccidents(); } - autoRefresh(isActive: boolean): void { - this.service.setAutoRefreshFlag(isActive); - } } diff --git a/projects/project-3/frontend/src/app/service/map.service.ts b/projects/project-3/frontend/src/app/service/map.service.ts index 186bfba..3801a68 100644 --- a/projects/project-3/frontend/src/app/service/map.service.ts +++ b/projects/project-3/frontend/src/app/service/map.service.ts @@ -6,7 +6,6 @@ import {HttpClient} from '@angular/common/http'; import {environment} from '../../environments/environment'; import {PopUpService} from './pop-up.service'; import {IMapBikePoint} from './domain/map-bike-point'; -import {Observable, Subject} from 'rxjs'; const createIcon = color => L.icon({ @@ -20,8 +19,6 @@ const createIcon = color => L.icon({ providedIn: 'root' }) export class MapService { - isAutoRefreshActive: boolean; - isAutoRefreshActive$: Subject; public map; public miniMap; @@ -30,21 +27,21 @@ export class MapService { miniMapMarker: L.layerGroup; markerLayer = []; dashBoardMarker = L.marker; + layerControl = L.control(null); constructor( private client: HttpClient, private popUpService: PopUpService, ) { - this.isAutoRefreshActive$ = new Subject(); } - public setAutoRefreshFlag(isActive: boolean): void { - this.isAutoRefreshActive = isActive; - this.isAutoRefreshActive$.next(isActive); - } - - public getAutoRefreshFlag(): Observable { - return this.isAutoRefreshActive$.asObservable(); + public async autoRefresh(): Promise { + for (const name in this.mapOverlays) { + this.map.removeLayer(this.mapOverlays[name]); + } + await this.drawStationMarkers(); + this.drawHeatmap(); + this.drawAccidents(); } public initMap(lat: number, lon: number, zoom: number): void { @@ -157,8 +154,9 @@ export class MapService { } private drawMapControl(): void { - L.control.layers(null, this.mapOverlays, {position: 'bottomright'}).addTo(this.map); - L.control.scale({position: 'bottomleft'}).addTo(this.map); + this.map.removeControl(this.layerControl); + this.layerControl = L.control.layers(null, this.mapOverlays, {position: 'bottomright'}); + this.map.addControl(this.layerControl); } private fetchBikePointGeoData(): Promise { From a3045f406cd99a8aec0258fcaf28a2116a53751c Mon Sep 17 00:00:00 2001 From: tim-herbst Date: Wed, 30 Dec 2020 12:16:22 +0100 Subject: [PATCH 065/104] fix deprecated warning in dashboard-component --- .../frontend/src/app/dashboard/dashboard.component.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts b/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts index ab30b2f..bc0b410 100644 --- a/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts +++ b/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts @@ -1,4 +1,4 @@ -import {ChangeDetectionStrategy, ChangeDetectorRef, Component, OnInit, ViewChild} from '@angular/core'; +import {ChangeDetectionStrategy, ChangeDetectorRef, Component, Injectable, OnInit, ViewChild} from '@angular/core'; import {ActivatedRoute, Router} from '@angular/router'; import {DashboardService} from '../service/dashboard.service'; import {IDashboardCommonBikePoint} from '../service/domain/dashboard-common-bike-point'; @@ -55,6 +55,7 @@ export const PICK_FORMATS = { } }; +@Injectable() class PickDateAdapter extends NativeDateAdapter { format(date: Date, displayFormat: Object): string { if (displayFormat === 'input') { From b9080f64b0c5fff688c17dbfbadc0f7368f70099 Mon Sep 17 00:00:00 2001 From: tim-herbst Date: Wed, 30 Dec 2020 12:17:50 +0100 Subject: [PATCH 066/104] remove logs --- .../src/app/map/auto-refresh/auto-refresh.component.ts | 3 --- 1 file changed, 3 deletions(-) diff --git a/projects/project-3/frontend/src/app/map/auto-refresh/auto-refresh.component.ts b/projects/project-3/frontend/src/app/map/auto-refresh/auto-refresh.component.ts index 293d073..4f0a528 100644 --- a/projects/project-3/frontend/src/app/map/auto-refresh/auto-refresh.component.ts +++ b/projects/project-3/frontend/src/app/map/auto-refresh/auto-refresh.component.ts @@ -22,9 +22,6 @@ export class AutoRefreshComponent implements OnInit { setInterval(() => { if (this.isFlagActive) { this.map.autoRefresh(); - console.log('Update triggered'); - } else { - console.log('no Update triggered'); } }, 30000); } From 4525c10207449324b8eb9989351c9ac7d4354fc8 Mon Sep 17 00:00:00 2001 From: tim-herbst Date: Wed, 30 Dec 2020 12:32:02 +0100 Subject: [PATCH 067/104] fix table and marker generation --- .../frontend/src/app/dashboard/dashboard.component.ts | 5 ++++- .../project-3/frontend/src/app/service/map.service.ts | 10 ++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts b/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts index bc0b410..fa0ba73 100644 --- a/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts +++ b/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts @@ -144,6 +144,7 @@ export class DashboardComponent implements OnInit { }) }); this.changeDetectorRefs.detectChanges(); + this.map.removeTableStationMarkerOnReload(); this.route.params.subscribe(params => { this.service.fetchDashboardInit(params.id).then(data => { this.station = data; @@ -233,7 +234,6 @@ export class DashboardComponent implements OnInit { }; }); }); - } async initDashboard(): Promise { @@ -379,12 +379,14 @@ export class DashboardComponent implements OnInit { onSubmit(): void { this.actualStartDate = this.form.get('daterange').value.start; this.actualEndDate = this.form.get('daterange').value.end; + this.map.removeTableStationMarkerOnReload(); this.service.fetchDashboardStationTo( this.station.id, this.actualStartDate.toISOString().substring(0, 10), this.actualEndDate.toISOString().substring(0, 10) ).then((source) => { this.stationToSource = source; + this.selectionTo.clear(); this.changeDetectorRefs.detectChanges(); }); this.service.fetchDashboardStationFrom( @@ -393,6 +395,7 @@ export class DashboardComponent implements OnInit { this.actualEndDate.toISOString().substring(0, 10) ).then((source) => { this.stationFromSource = source; + this.selectionFrom.clear(); this.changeDetectorRefs.detectChanges(); }); this.service.fetchDashboardStationCharts( diff --git a/projects/project-3/frontend/src/app/service/map.service.ts b/projects/project-3/frontend/src/app/service/map.service.ts index 3801a68..0d280ba 100644 --- a/projects/project-3/frontend/src/app/service/map.service.ts +++ b/projects/project-3/frontend/src/app/service/map.service.ts @@ -140,11 +140,21 @@ export class MapService { this.dashBoardMarker = L.marker([lat, lon], {icon: createIcon('blue')}).addTo(this.miniMap); } + public removeTableStationMarkerOnReload(): void { + if (this.markerLayer) { + this.markerLayer.forEach(marker => { + this.miniMap.removeLayer(marker); + }); + this.markerLayer = []; + } + } + public drawTableStationMarker(bikePoints: any[]): void { if (this.markerLayer) { this.markerLayer.forEach(marker => { this.miniMap.removeLayer(marker); }); + this.markerLayer = []; } for (const point of bikePoints) { const marker = L.marker([point.stationLat, point.stationLon], {icon: createIcon(point.color)}).addTo(this.miniMap); From c05ee5388e60edf8097a1bd3fce03757ffaae8ab Mon Sep 17 00:00:00 2001 From: tim-herbst Date: Wed, 30 Dec 2020 12:33:39 +0100 Subject: [PATCH 068/104] adjust margin for auto-refresh --- .../src/app/map/auto-refresh/auto-refresh.component.scss | 1 + 1 file changed, 1 insertion(+) diff --git a/projects/project-3/frontend/src/app/map/auto-refresh/auto-refresh.component.scss b/projects/project-3/frontend/src/app/map/auto-refresh/auto-refresh.component.scss index dc5ff7f..d506df0 100644 --- a/projects/project-3/frontend/src/app/map/auto-refresh/auto-refresh.component.scss +++ b/projects/project-3/frontend/src/app/map/auto-refresh/auto-refresh.component.scss @@ -1,3 +1,4 @@ mat-slide-toggle { + margin-right: 1em; font-size: 15px; } From f5924404a787994ac0e6d4cadbae6a7316babb7c Mon Sep 17 00:00:00 2001 From: tim-herbst Date: Wed, 30 Dec 2020 15:26:11 +0100 Subject: [PATCH 069/104] mea culpa mi dominus --- .../app/map/auto-refresh/auto-refresh.component.ts | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/projects/project-3/frontend/src/app/map/auto-refresh/auto-refresh.component.ts b/projects/project-3/frontend/src/app/map/auto-refresh/auto-refresh.component.ts index 4f0a528..477d29f 100644 --- a/projects/project-3/frontend/src/app/map/auto-refresh/auto-refresh.component.ts +++ b/projects/project-3/frontend/src/app/map/auto-refresh/auto-refresh.component.ts @@ -1,13 +1,15 @@ -import {Component, OnInit} from '@angular/core'; +import {Component, OnDestroy, OnInit} from '@angular/core'; import {MapService} from '../../service/map.service'; +import * as internal from 'events'; @Component({ selector: 'app-auto-refresh', templateUrl: './auto-refresh.component.html', styleUrls: ['./auto-refresh.component.scss'] }) -export class AutoRefreshComponent implements OnInit { +export class AutoRefreshComponent implements OnInit, OnDestroy { isFlagActive: boolean; + interval: internal; constructor(private map: MapService) { const storageFlag = JSON.parse(sessionStorage.getItem('auto-refresh')); @@ -19,15 +21,19 @@ export class AutoRefreshComponent implements OnInit { } ngOnInit(): void { - setInterval(() => { + this.interval = setInterval(() => { if (this.isFlagActive) { this.map.autoRefresh(); } }, 30000); } + ngOnDestroy(): void { + clearInterval(this.interval); + } onChange(flag: boolean): void { sessionStorage.setItem('auto-refresh', JSON.stringify(flag)); } + } From 5e4952b08ebda1fee6643a357da883fa0c20925c Mon Sep 17 00:00:00 2001 From: tim-herbst Date: Fri, 1 Jan 2021 13:20:59 +0100 Subject: [PATCH 070/104] finish work on color-picking algorithm --- .../app/dashboard/dashboard.component.html | 24 ++- .../app/dashboard/dashboard.component.scss | 8 + .../src/app/dashboard/dashboard.component.ts | 166 +++++++----------- 3 files changed, 91 insertions(+), 107 deletions(-) diff --git a/projects/project-3/frontend/src/app/dashboard/dashboard.component.html b/projects/project-3/frontend/src/app/dashboard/dashboard.component.html index dd8c780..c6e9190 100644 --- a/projects/project-3/frontend/src/app/dashboard/dashboard.component.html +++ b/projects/project-3/frontend/src/app/dashboard/dashboard.component.html @@ -82,15 +82,14 @@
- @@ -104,6 +103,11 @@ + + + + +
+ + + station of lend origin {{element.stationName}} + (change)="$event ? selectRow($event, row) : null" + [checked]="selectionModel.isSelected(row)"> station of lend destination{{element.stationName}} {{humanizeAvgDuration(element.avgDuration)}} icon on map marker
@@ -114,15 +118,14 @@ + (change)="$event ? selectRow($event, row) : null" + [checked]="selectionModel.isSelected(row)"> station of lend origin - {{element.stationName}} @@ -136,6 +139,11 @@ {{humanizeAvgDuration(element.avgDuration)}} + + icon on map + marker + + diff --git a/projects/project-3/frontend/src/app/dashboard/dashboard.component.scss b/projects/project-3/frontend/src/app/dashboard/dashboard.component.scss index e5b76b6..3f2326b 100644 --- a/projects/project-3/frontend/src/app/dashboard/dashboard.component.scss +++ b/projects/project-3/frontend/src/app/dashboard/dashboard.component.scss @@ -6,6 +6,14 @@ mat-sidenav-content { flex: 1 1 auto; } +a { + color: #017bfe; +} + +img { + width: 60px; +} + .button-back:hover, .button-wiki:hover { background: #086ed2; diff --git a/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts b/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts index fa0ba73..5bc0b22 100644 --- a/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts +++ b/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts @@ -26,7 +26,7 @@ import { import {IMapBikePoint} from '../service/domain/map-bike-point'; import {SelectionModel} from '@angular/cdk/collections'; import {MatCheckboxChange} from '@angular/material/checkbox'; -import {DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE, NativeDateAdapter} from '@angular/material/core'; +import {DateAdapter, MAT_DATE_FORMATS, NativeDateAdapter} from '@angular/material/core'; import {formatDate} from '@angular/common'; export type ChartOptions = { @@ -83,12 +83,14 @@ export class DashboardComponent implements OnInit { public durationChartOptions: Partial; public timeChartOptions: Partial; public bikePointChartOptions: Partial; - displayedColumnsTo: string[] = ['select', 'endStationName', 'number', 'avgDuration']; - displayedColumnsFrom: string[] = ['select', 'startStationName', 'number', 'avgDuration']; + displayedColumnsTo: string[] = ['select', 'endStationName', 'number', 'avgDuration', 'marker']; + displayedColumnsFrom: string[] = ['select', 'startStationName', 'number', 'avgDuration', 'marker']; stationToSource = new MatTableDataSource(); - selectionTo = new SelectionModel(true, []); - stationFromSource = new MatTableDataSource(); - selectionFrom = new SelectionModel(true, []); + iterableToSource: any[]; + stationFromSource = new MatTableDataSource(); + iterableFromSource: any[]; + selectionModel = new SelectionModel(true, []); + colors = ['black', 'gray', 'green', 'orange', 'purple', 'red']; station: IDashboardCommonBikePoint; maxStartDate: Date; @@ -145,14 +147,15 @@ export class DashboardComponent implements OnInit { }); this.changeDetectorRefs.detectChanges(); this.map.removeTableStationMarkerOnReload(); + this.selectionModel.clear(); this.route.params.subscribe(params => { + this.colors = ['black', 'gray', 'green', 'orange', 'purple', 'red']; this.service.fetchDashboardInit(params.id).then(data => { this.station = data; this.maxStartDate = new Date(data.maxStartDate); this.maxEndDate = new Date(data.maxEndDate); this.initDashboard(); }); - this.service.fetchBikePointForStatus(params.id).then(data => { this.bikePoint = data; const NbBlockedDocks = data.status.NbDocks - data.status.NbBikes - data.status.NbEmptyDocks; @@ -241,11 +244,13 @@ export class DashboardComponent implements OnInit { this.form.get('daterange').get('start').setValue(initDate); this.form.get('daterange').get('end').setValue(initDate); await this.service.fetchDashboardStationTo(this.station.id, initDate, initDate).then((source) => { - this.stationToSource = source; + this.stationToSource = this.setBikePointColorToSource(source); + this.iterableToSource = source; this.changeDetectorRefs.detectChanges(); }); await this.service.fetchDashboardStationFrom(this.station.id, initDate, initDate).then((source) => { - this.stationFromSource = source; + this.stationFromSource = this.setBikePointColorFromSource(source); + this.iterableFromSource = source; this.changeDetectorRefs.detectChanges(); }); this.service.fetchDashboardStationCharts(this.station.id, initDate, initDate, 'duration').then((source) => { @@ -376,26 +381,28 @@ export class DashboardComponent implements OnInit { this.map.drawDashboardStationMarker(this.station.lat, this.station.lon); } - onSubmit(): void { + async onSubmit(): Promise { this.actualStartDate = this.form.get('daterange').value.start; this.actualEndDate = this.form.get('daterange').value.end; this.map.removeTableStationMarkerOnReload(); - this.service.fetchDashboardStationTo( + this.selectionModel.clear(); + await this.service.fetchDashboardStationTo( this.station.id, this.actualStartDate.toISOString().substring(0, 10), this.actualEndDate.toISOString().substring(0, 10) ).then((source) => { - this.stationToSource = source; - this.selectionTo.clear(); + this.colors = ['black', 'gray', 'green', 'orange', 'purple', 'red']; + this.stationToSource = this.setBikePointColorToSource(source); + this.iterableToSource = source; this.changeDetectorRefs.detectChanges(); }); - this.service.fetchDashboardStationFrom( + await this.service.fetchDashboardStationFrom( this.station.id, this.actualStartDate.toISOString().substring(0, 10), this.actualEndDate.toISOString().substring(0, 10) ).then((source) => { - this.stationFromSource = source; - this.selectionFrom.clear(); + this.stationFromSource = this.setBikePointColorFromSource(source); + this.iterableFromSource = source; this.changeDetectorRefs.detectChanges(); }); this.service.fetchDashboardStationCharts( @@ -530,101 +537,62 @@ export class DashboardComponent implements OnInit { return stht(avgDuration); } - isToAllSelected(): boolean { - const numSelected = this.selectionTo.selected.length; - const numRows = this.stationToSource.data.length; - return numSelected === numRows; - } - - isFromAllSelected(): boolean { - const numSelected = this.selectionFrom.selected.length; - const numRows = this.stationFromSource.data.length; - return numSelected === numRows; - } - - checkboxLabelTo(row?: any): string { - if (!row) { - return `${this.isToAllSelected() ? 'select' : 'deselect'} all`; - } - return `${this.selectionTo.isSelected(row) ? 'deselect' : 'select'} row ${row.position + 1}`; - } - - checkboxLabelFrom(row?: any): string { - if (!row) { - return `${this.isFromAllSelected() ? 'select' : 'deselect'} all`; - } - return `${this.selectionFrom.isSelected(row) ? 'deselect' : 'select'} row ${row.position + 1}`; - } - - selectRowTo(selection: MatCheckboxChange, row): void { - this.selectionTo.toggle(row); - this.selectionTo.selected.forEach(point => { + selectRow(selection: MatCheckboxChange, row): void { + const markerToDisplay = []; + this.iterableToSource.forEach(point => { if (point.stationId === row.stationId) { - point.color = this.getColorTo(row); + this.selectionModel.toggle(point); } }); - const markerToDisplay = []; - markerToDisplay.push(...this.selectionTo.selected); - markerToDisplay.push(...this.selectionFrom.selected); + this.iterableFromSource.forEach(point => { + if (point.stationId === row.stationId) { + this.selectionModel.toggle(point); + } + }); + this.selectionModel.selected.forEach(point => { + markerToDisplay.push(point); + }); this.map.drawTableStationMarker(markerToDisplay); } - selectRowFrom(selection: MatCheckboxChange, row): void { - this.selectionFrom.toggle(row); - this.selectionFrom.selected.forEach(point => { - if (point.stationId === row.stationId) { - point.color = this.getColorFrom(row); + public drawIconInTable(bikePoint: any): string { + return `../../assets/bike-point-${bikePoint.color}.png`; + } + + setBikePointColorToSource(source): any { + for (const station of source) { + if (station.stationId === this.station.id) { + station.color = 'blue'; + continue; } - }); - const markerToDisplay = []; - markerToDisplay.push(...this.selectionFrom.selected); - markerToDisplay.push(...this.selectionTo.selected); - this.map.drawTableStationMarker(markerToDisplay); + station.color = this.getRandomColor(); + } + return source; } - getColorTo(value): string { - switch (value.stationName) { - case this.stationToSource[0].stationName: - if (this.stationToSource[0].stationName === this.station.commonName) { - return 'blue'; - } else { - return 'black'; - } - case this.stationToSource[1].stationName: - if (this.stationToSource[1].stationName === this.station.commonName) { - return 'blue'; - } else { - return 'red'; - } - case this.stationToSource[2].stationName: - if (this.stationToSource[2].stationName === this.station.commonName) { - return 'blue'; - } else { - return 'green'; + setBikePointColorFromSource(source): any { + for (const station of source) { + if (station.stationId === this.station.id) { + station.color = 'blue'; + continue; + } + for (const to of this.iterableToSource) { + if (station.stationId === to.stationId) { + station.color = to.color; + break; } + } + if (!station.color) { + station.color = this.getRandomColor(); + } } + return source; } - getColorFrom(value): string { - switch (value.stationName) { - case this.stationFromSource[0].stationName: - if (this.stationFromSource[0].stationName === this.station.commonName) { - return 'blue'; - } else { - return 'orange'; - } - case this.stationFromSource[1].stationName: - if (this.stationFromSource[1].stationName === this.station.commonName) { - return 'blue'; - } else { - return 'purple'; - } - case this.stationFromSource[2].stationName: - if (this.stationFromSource[2].stationName === this.station.commonName) { - return 'blue'; - } else { - return 'gray'; - } - } + + getRandomColor(): string { + const color = this.colors[Math.floor(Math.random() * this.colors.length)]; + this.colors = this.colors.filter(c => c !== color); + return color; } } From 01e47b9656a565931d1c0c4673946314a3d4dc01 Mon Sep 17 00:00:00 2001 From: tim-herbst Date: Fri, 1 Jan 2021 14:47:35 +0100 Subject: [PATCH 071/104] add description to charts and maybe finish work on code? --- .../project-3/frontend/src/app/app.module.ts | 52 ++++++++++--------- .../app/dashboard/dashboard.component.html | 41 ++++++++++----- .../app/dashboard/dashboard.component.scss | 16 +++--- .../src/app/dashboard/dashboard.component.ts | 20 ++++--- 4 files changed, 77 insertions(+), 52 deletions(-) diff --git a/projects/project-3/frontend/src/app/app.module.ts b/projects/project-3/frontend/src/app/app.module.ts index 3cbe2e4..5e2fd0f 100644 --- a/projects/project-3/frontend/src/app/app.module.ts +++ b/projects/project-3/frontend/src/app/app.module.ts @@ -27,6 +27,7 @@ import {MatTableModule} from '@angular/material/table'; import {AutoRefreshComponent} from './map/auto-refresh/auto-refresh.component'; import {MatSlideToggleModule} from '@angular/material/slide-toggle'; import {MatCheckboxModule} from '@angular/material/checkbox'; +import {MatTooltipModule} from '@angular/material/tooltip'; @NgModule({ declarations: [ @@ -36,31 +37,32 @@ import {MatCheckboxModule} from '@angular/material/checkbox'; PopUpComponent, AutoRefreshComponent ], - imports: [ - BrowserModule, - AppRoutingModule, - BrowserAnimationsModule, - MatToolbarModule, - MatIconModule, - MatButtonModule, - FlexLayoutModule, - HttpClientModule, - NgApexchartsModule, - MatGridListModule, - MatCardModule, - MatMenuModule, - LayoutModule, - MatSidenavModule, - MatDatepickerModule, - MatFormFieldModule, - MatNativeDateModule, - FormsModule, - ReactiveFormsModule, - MatInputModule, - MatTableModule, - MatSlideToggleModule, - MatCheckboxModule - ], + imports: [ + BrowserModule, + AppRoutingModule, + BrowserAnimationsModule, + MatToolbarModule, + MatIconModule, + MatButtonModule, + FlexLayoutModule, + HttpClientModule, + NgApexchartsModule, + MatGridListModule, + MatCardModule, + MatMenuModule, + LayoutModule, + MatSidenavModule, + MatDatepickerModule, + MatFormFieldModule, + MatNativeDateModule, + FormsModule, + ReactiveFormsModule, + MatInputModule, + MatTableModule, + MatSlideToggleModule, + MatCheckboxModule, + MatTooltipModule + ], providers: [], bootstrap: [AppComponent] }) diff --git a/projects/project-3/frontend/src/app/dashboard/dashboard.component.html b/projects/project-3/frontend/src/app/dashboard/dashboard.component.html index c6e9190..5400d92 100644 --- a/projects/project-3/frontend/src/app/dashboard/dashboard.component.html +++ b/projects/project-3/frontend/src/app/dashboard/dashboard.component.html @@ -22,11 +22,12 @@
- {{bikePoint?.commonName}} + {{bikePoint?.commonName}}
- -
-
+ +
+ +

Select a range to analyze data

Enter a range
- - station of lend destination + station of rental destination {{element.stationName}} @@ -99,7 +102,7 @@ - average lend duration + average rental duration {{humanizeAvgDuration(element.avgDuration)}} @@ -117,14 +120,15 @@ - - station of lend origin + station of rental origin {{element.stationName}} @@ -135,7 +139,7 @@ - average lend duration + average rental duration {{humanizeAvgDuration(element.avgDuration)}} @@ -153,8 +157,12 @@
- - Borrow Duration + + Rental Duration + + This chart shows the rent duration based on the currently selected station. + The time it takes for a rent which has the current station as origin is displayed here. +
@@ -177,7 +185,12 @@
- Borrow Time + Rental Time + + This chart shows the workload of the currently selected Station in relation + of the time of the day. It is visualized at which time of the day a journey begins or ends. + In addition, the average rental duration of the trips is displayed at the given time (green). + diff --git a/projects/project-3/frontend/src/app/dashboard/dashboard.component.scss b/projects/project-3/frontend/src/app/dashboard/dashboard.component.scss index 3f2326b..f9eefe9 100644 --- a/projects/project-3/frontend/src/app/dashboard/dashboard.component.scss +++ b/projects/project-3/frontend/src/app/dashboard/dashboard.component.scss @@ -7,7 +7,7 @@ mat-sidenav-content { } a { - color: #017bfe; + color: black; } img { @@ -20,7 +20,8 @@ img { } .submit-date { - margin-bottom: 15px; + margin-top: 1em; + margin-left: 4em; } #chart { @@ -46,13 +47,14 @@ img { .mat-card-title { margin-top: 1em; + margin-left: 2em; } -.chart-header { - display: inline-flex; - justify-content: center; +.mat-card-subtitle { + margin-left: 39px; } + .container-map { height: 40em; margin: 1em 2em; @@ -72,12 +74,12 @@ img { } .container-borrow-duration { - height: 40em; + height: 41em; margin: 1em 2em; } .container-borrow-time { - height: 40em; + height: 41em; margin: 1em 2em; } diff --git a/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts b/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts index 5bc0b22..00c54b6 100644 --- a/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts +++ b/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts @@ -30,7 +30,8 @@ import {DateAdapter, MAT_DATE_FORMATS, NativeDateAdapter} from '@angular/materia import {formatDate} from '@angular/common'; export type ChartOptions = { - title: ApexTitleSubtitle + title: ApexTitleSubtitle; + subtitle: ApexTitleSubtitle; series: ApexAxisChartSeries; chart: ApexChart; colors: string[]; @@ -160,6 +161,14 @@ export class DashboardComponent implements OnInit { this.bikePoint = data; const NbBlockedDocks = data.status.NbDocks - data.status.NbBikes - data.status.NbEmptyDocks; this.bikePointChartOptions = { + subtitle: { + text: 'This chart visualizes the availability of the bikes', + offsetX: 20, + offsetY: 15, + style: { + fontSize: '15px' + } + }, series: [ { name: 'Bikes', @@ -322,7 +331,7 @@ export class DashboardComponent implements OnInit { data: numbers }, { - name: 'average Duration', + name: 'average rental duration', type: 'line', data: avgDuration } @@ -361,7 +370,7 @@ export class DashboardComponent implements OnInit { }, { opposite: true, title: { - text: 'average Duration' + text: 'average rental duration' }, labels: { formatter: (val: number): string => { @@ -484,7 +493,7 @@ export class DashboardComponent implements OnInit { data: numbers }, { - name: 'average Duration', + name: 'average rental duration', type: 'line', data: avgDuration } @@ -515,7 +524,7 @@ export class DashboardComponent implements OnInit { }, { opposite: true, title: { - text: 'average Duration' + text: 'average rental duration' }, labels: { formatter: (val: number): string => { @@ -589,7 +598,6 @@ export class DashboardComponent implements OnInit { return source; } - getRandomColor(): string { const color = this.colors[Math.floor(Math.random() * this.colors.length)]; this.colors = this.colors.filter(c => c !== color); From 82b8b8bd746e70517744236862a96fe91b155082 Mon Sep 17 00:00:00 2001 From: tim-herbst Date: Fri, 1 Jan 2021 14:59:22 +0100 Subject: [PATCH 072/104] add title to xaxis --- .../src/app/dashboard/dashboard.component.html | 2 +- .../src/app/dashboard/dashboard.component.ts | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/projects/project-3/frontend/src/app/dashboard/dashboard.component.html b/projects/project-3/frontend/src/app/dashboard/dashboard.component.html index 5400d92..fa9ffbf 100644 --- a/projects/project-3/frontend/src/app/dashboard/dashboard.component.html +++ b/projects/project-3/frontend/src/app/dashboard/dashboard.component.html @@ -188,7 +188,7 @@ Rental Time This chart shows the workload of the currently selected Station in relation - of the time of the day. It is visualized at which time of the day a journey begins or ends. + of the time of the day. It is visualized at which time of the day a journey begins or ends (blue). In addition, the average rental duration of the trips is displayed at the given time (green). diff --git a/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts b/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts index 00c54b6..ddf641c 100644 --- a/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts +++ b/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts @@ -297,6 +297,9 @@ export class DashboardComponent implements OnInit { colors: ['transparent'] }, xaxis: { + title: { + text: 'average rental duration' + }, categories: minutesGroup, labels: { formatter: value => { @@ -358,6 +361,9 @@ export class DashboardComponent implements OnInit { curve: 'straight' }, xaxis: { + title: { + text: 'time of the day' + }, categories: timeFrame, tickAmount: 24, tickPlacement: 'between', @@ -454,6 +460,9 @@ export class DashboardComponent implements OnInit { colors: ['transparent'] }, xaxis: { + title: { + text: 'average rental duration' + }, categories: minutesGroup, labels: { formatter: value => { @@ -513,6 +522,9 @@ export class DashboardComponent implements OnInit { curve: 'straight' }, xaxis: { + title: { + text: 'time of the day' + }, categories: timeFrame, tickAmount: 24, tickPlacement: 'between' From 7a80335860b9ac5ed3732fca69e442d82eb23791 Mon Sep 17 00:00:00 2001 From: tim-herbst Date: Fri, 1 Jan 2021 15:31:57 +0100 Subject: [PATCH 073/104] add popUp to miniMap for better usability --- .../app/dashboard/dashboard.component.html | 38 +++++++++---------- .../src/app/dashboard/dashboard.component.ts | 4 +- .../frontend/src/app/map/map.component.html | 2 +- .../frontend/src/app/service/map.service.ts | 11 +++++- 4 files changed, 31 insertions(+), 24 deletions(-) diff --git a/projects/project-3/frontend/src/app/dashboard/dashboard.component.html b/projects/project-3/frontend/src/app/dashboard/dashboard.component.html index fa9ffbf..9b2c3f7 100644 --- a/projects/project-3/frontend/src/app/dashboard/dashboard.component.html +++ b/projects/project-3/frontend/src/app/dashboard/dashboard.component.html @@ -1,6 +1,6 @@ - Bike Stations in London + Bike Stations in London
- - + @@ -108,7 +108,7 @@ - + @@ -118,12 +118,12 @@
- + + icon on map marker marker
- - + @@ -145,7 +145,7 @@ - + @@ -187,7 +187,7 @@ Rental Time - This chart shows the workload of the currently selected Station in relation + This chart shows the workload of the currently selected station in relation of the time of the day. It is visualized at which time of the day a journey begins or ends (blue). In addition, the average rental duration of the trips is displayed at the given time (green). @@ -199,10 +199,10 @@ [chart]="timeChartOptions.chart" [colors]="timeChartOptions.colors" [dataLabels]="timeChartOptions.dataLabels" - [tooltip]="timeChartOptions.tooltip" [fill]="timeChartOptions.fill" [series]="timeChartOptions.series" [stroke]="timeChartOptions.stroke" + [tooltip]="timeChartOptions.tooltip" [xaxis]="timeChartOptions.xaxis" [yaxis]="timeChartOptions.yaxis"> diff --git a/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts b/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts index ddf641c..26fb220 100644 --- a/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts +++ b/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts @@ -148,8 +148,8 @@ export class DashboardComponent implements OnInit { }); this.changeDetectorRefs.detectChanges(); this.map.removeTableStationMarkerOnReload(); - this.selectionModel.clear(); this.route.params.subscribe(params => { + this.selectionModel.clear(); this.colors = ['black', 'gray', 'green', 'orange', 'purple', 'red']; this.service.fetchDashboardInit(params.id).then(data => { this.station = data; @@ -393,7 +393,7 @@ export class DashboardComponent implements OnInit { }; }); this.map.initDashboardMap(this.station.lat, this.station.lon, 17); - this.map.drawDashboardStationMarker(this.station.lat, this.station.lon); + this.map.drawDashboardStationMarker(this.station); } async onSubmit(): Promise { diff --git a/projects/project-3/frontend/src/app/map/map.component.html b/projects/project-3/frontend/src/app/map/map.component.html index 11cb0c3..7dd0540 100644 --- a/projects/project-3/frontend/src/app/map/map.component.html +++ b/projects/project-3/frontend/src/app/map/map.component.html @@ -1,6 +1,6 @@
- Bike Stations in London + Bike Stations in London L.icon({ @@ -32,6 +34,7 @@ export class MapService { constructor( private client: HttpClient, private popUpService: PopUpService, + private router: Router ) { } @@ -136,8 +139,10 @@ export class MapService { } } - public drawDashboardStationMarker(lat: number, lon: number): void { - this.dashBoardMarker = L.marker([lat, lon], {icon: createIcon('blue')}).addTo(this.miniMap); + public drawDashboardStationMarker(station: IDashboardCommonBikePoint): void { + this.dashBoardMarker = L.marker([station.lat, station.lon], {icon: createIcon('blue')}).addTo(this.miniMap); + this.dashBoardMarker.on('mouseover', e => e.target.bindPopup(`

${station.commonName}

`).openPopup()); + this.dashBoardMarker.on('mouseout', e => e.target.closePopup()); } public removeTableStationMarkerOnReload(): void { @@ -158,6 +163,8 @@ export class MapService { } for (const point of bikePoints) { const marker = L.marker([point.stationLat, point.stationLon], {icon: createIcon(point.color)}).addTo(this.miniMap); + marker.on('mouseover', e => e.target.bindPopup(`

${point.stationName}

`).openPopup()); + marker.on('mouseout', e => e.target.closePopup()); this.markerLayer.push(marker); this.miniMap.fitBounds(L.featureGroup([...this.markerLayer, this.dashBoardMarker]).getBounds()); } From 9c53c382ffc26f4344f727d70622e5d5a8cf1e0e Mon Sep 17 00:00:00 2001 From: tim-herbst Date: Fri, 1 Jan 2021 20:19:39 +0100 Subject: [PATCH 074/104] disable checkbox for dashboard-station --- .../project-3/frontend/src/app/app.module.ts | 54 ++++++++++--------- .../app/dashboard/dashboard.component.html | 12 ++++- .../app/dashboard/dashboard.component.scss | 1 - .../src/app/dashboard/dashboard.component.ts | 17 ++++++ 4 files changed, 55 insertions(+), 29 deletions(-) diff --git a/projects/project-3/frontend/src/app/app.module.ts b/projects/project-3/frontend/src/app/app.module.ts index 5e2fd0f..cf93dc8 100644 --- a/projects/project-3/frontend/src/app/app.module.ts +++ b/projects/project-3/frontend/src/app/app.module.ts @@ -28,6 +28,7 @@ import {AutoRefreshComponent} from './map/auto-refresh/auto-refresh.component'; import {MatSlideToggleModule} from '@angular/material/slide-toggle'; import {MatCheckboxModule} from '@angular/material/checkbox'; import {MatTooltipModule} from '@angular/material/tooltip'; +import {MatProgressSpinnerModule} from "@angular/material/progress-spinner"; @NgModule({ declarations: [ @@ -37,32 +38,33 @@ import {MatTooltipModule} from '@angular/material/tooltip'; PopUpComponent, AutoRefreshComponent ], - imports: [ - BrowserModule, - AppRoutingModule, - BrowserAnimationsModule, - MatToolbarModule, - MatIconModule, - MatButtonModule, - FlexLayoutModule, - HttpClientModule, - NgApexchartsModule, - MatGridListModule, - MatCardModule, - MatMenuModule, - LayoutModule, - MatSidenavModule, - MatDatepickerModule, - MatFormFieldModule, - MatNativeDateModule, - FormsModule, - ReactiveFormsModule, - MatInputModule, - MatTableModule, - MatSlideToggleModule, - MatCheckboxModule, - MatTooltipModule - ], + imports: [ + BrowserModule, + AppRoutingModule, + BrowserAnimationsModule, + MatToolbarModule, + MatIconModule, + MatButtonModule, + FlexLayoutModule, + HttpClientModule, + NgApexchartsModule, + MatGridListModule, + MatCardModule, + MatMenuModule, + LayoutModule, + MatSidenavModule, + MatDatepickerModule, + MatFormFieldModule, + MatNativeDateModule, + FormsModule, + ReactiveFormsModule, + MatInputModule, + MatTableModule, + MatSlideToggleModule, + MatCheckboxModule, + MatTooltipModule, + MatProgressSpinnerModule + ], providers: [], bootstrap: [AppComponent] }) diff --git a/projects/project-3/frontend/src/app/dashboard/dashboard.component.html b/projects/project-3/frontend/src/app/dashboard/dashboard.component.html index 9b2c3f7..a232561 100644 --- a/projects/project-3/frontend/src/app/dashboard/dashboard.component.html +++ b/projects/project-3/frontend/src/app/dashboard/dashboard.component.html @@ -83,7 +83,8 @@
- + + icon on map marker marker
- @@ -120,7 +121,8 @@ - @@ -151,6 +153,12 @@
+ + + +
diff --git a/projects/project-3/frontend/src/app/dashboard/dashboard.component.scss b/projects/project-3/frontend/src/app/dashboard/dashboard.component.scss index f9eefe9..ffb5e9f 100644 --- a/projects/project-3/frontend/src/app/dashboard/dashboard.component.scss +++ b/projects/project-3/frontend/src/app/dashboard/dashboard.component.scss @@ -16,7 +16,6 @@ img { .button-back:hover, .button-wiki:hover { background: #086ed2; - } .submit-date { diff --git a/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts b/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts index 26fb220..fd838da 100644 --- a/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts +++ b/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts @@ -92,6 +92,7 @@ export class DashboardComponent implements OnInit { iterableFromSource: any[]; selectionModel = new SelectionModel(true, []); colors = ['black', 'gray', 'green', 'orange', 'purple', 'red']; + isLoading: boolean; station: IDashboardCommonBikePoint; maxStartDate: Date; @@ -137,6 +138,7 @@ export class DashboardComponent implements OnInit { text: 'Loading...' } }; + this.isLoading = true; } ngOnInit(): void { @@ -255,11 +257,13 @@ export class DashboardComponent implements OnInit { await this.service.fetchDashboardStationTo(this.station.id, initDate, initDate).then((source) => { this.stationToSource = this.setBikePointColorToSource(source); this.iterableToSource = source; + this.isLoading = false; this.changeDetectorRefs.detectChanges(); }); await this.service.fetchDashboardStationFrom(this.station.id, initDate, initDate).then((source) => { this.stationFromSource = this.setBikePointColorFromSource(source); this.iterableFromSource = source; + this.isLoading = false; this.changeDetectorRefs.detectChanges(); }); this.service.fetchDashboardStationCharts(this.station.id, initDate, initDate, 'duration').then((source) => { @@ -347,6 +351,9 @@ export class DashboardComponent implements OnInit { } }, chart: { + toolbar: { + show: false + }, type: 'line', height: chartHeight, zoom: { @@ -397,6 +404,7 @@ export class DashboardComponent implements OnInit { } async onSubmit(): Promise { + this.isLoading = false; this.actualStartDate = this.form.get('daterange').value.start; this.actualEndDate = this.form.get('daterange').value.end; this.map.removeTableStationMarkerOnReload(); @@ -409,6 +417,7 @@ export class DashboardComponent implements OnInit { this.colors = ['black', 'gray', 'green', 'orange', 'purple', 'red']; this.stationToSource = this.setBikePointColorToSource(source); this.iterableToSource = source; + this.isLoading = false; this.changeDetectorRefs.detectChanges(); }); await this.service.fetchDashboardStationFrom( @@ -418,6 +427,7 @@ export class DashboardComponent implements OnInit { ).then((source) => { this.stationFromSource = this.setBikePointColorFromSource(source); this.iterableFromSource = source; + this.isLoading = false; this.changeDetectorRefs.detectChanges(); }); this.service.fetchDashboardStationCharts( @@ -508,6 +518,9 @@ export class DashboardComponent implements OnInit { } ], chart: { + toolbar: { + show: false + }, type: 'line', height: chartHeight, zoom: { @@ -615,4 +628,8 @@ export class DashboardComponent implements OnInit { this.colors = this.colors.filter(c => c !== color); return color; } + + isCheckBoxDisable(row): boolean { + return row.stationId === this.station.id; + } } From cdbf36fadbc4eb531d3387bd65582e4fef2838d1 Mon Sep 17 00:00:00 2001 From: tim-herbst Date: Sat, 2 Jan 2021 14:48:28 +0100 Subject: [PATCH 075/104] add refactor tables to component --- .../project-3/frontend/src/app/app.module.ts | 8 +- .../app/dashboard/table/table.component.html | 76 ++++++++++ .../app/dashboard/table/table.component.scss | 15 ++ .../dashboard/table/table.component.spec.ts | 25 ++++ .../app/dashboard/table/table.component.ts | 140 ++++++++++++++++++ 5 files changed, 263 insertions(+), 1 deletion(-) create mode 100644 projects/project-3/frontend/src/app/dashboard/table/table.component.html create mode 100644 projects/project-3/frontend/src/app/dashboard/table/table.component.scss create mode 100644 projects/project-3/frontend/src/app/dashboard/table/table.component.spec.ts create mode 100644 projects/project-3/frontend/src/app/dashboard/table/table.component.ts diff --git a/projects/project-3/frontend/src/app/app.module.ts b/projects/project-3/frontend/src/app/app.module.ts index cf93dc8..43484df 100644 --- a/projects/project-3/frontend/src/app/app.module.ts +++ b/projects/project-3/frontend/src/app/app.module.ts @@ -29,6 +29,9 @@ import {MatSlideToggleModule} from '@angular/material/slide-toggle'; import {MatCheckboxModule} from '@angular/material/checkbox'; import {MatTooltipModule} from '@angular/material/tooltip'; import {MatProgressSpinnerModule} from "@angular/material/progress-spinner"; +import { TableComponent } from './dashboard/table/table.component'; +import { RentDurationChartComponent } from './dashboard/rent-duration-chart/rent-duration-chart.component'; +import { RentTimeChartComponent } from './dashboard/rent-time-chart/rent-time-chart.component'; @NgModule({ declarations: [ @@ -36,7 +39,10 @@ import {MatProgressSpinnerModule} from "@angular/material/progress-spinner"; MapComponent, DashboardComponent, PopUpComponent, - AutoRefreshComponent + AutoRefreshComponent, + TableComponent, + RentDurationChartComponent, + RentTimeChartComponent ], imports: [ BrowserModule, diff --git a/projects/project-3/frontend/src/app/dashboard/table/table.component.html b/projects/project-3/frontend/src/app/dashboard/table/table.component.html new file mode 100644 index 0000000..18d02db --- /dev/null +++ b/projects/project-3/frontend/src/app/dashboard/table/table.component.html @@ -0,0 +1,76 @@ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + station of rental destination{{element.stationName}} number of drives {{element.number}} average rental duration {{humanizeAvgDuration(element.avgDuration)}} icon on mapmarker
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + station of rental origin {{element.stationName}} number of drives {{element.number}} average rental duration {{humanizeAvgDuration(element.avgDuration)}} icon on mapmarker
+
diff --git a/projects/project-3/frontend/src/app/dashboard/table/table.component.scss b/projects/project-3/frontend/src/app/dashboard/table/table.component.scss new file mode 100644 index 0000000..e01303d --- /dev/null +++ b/projects/project-3/frontend/src/app/dashboard/table/table.component.scss @@ -0,0 +1,15 @@ +img { + width: 60px; +} + +a { + color: black; +} + +.dashboard-table-to { + margin-right: 1em; +} + +.dashboard-table-from { + margin-left: 1em; +} diff --git a/projects/project-3/frontend/src/app/dashboard/table/table.component.spec.ts b/projects/project-3/frontend/src/app/dashboard/table/table.component.spec.ts new file mode 100644 index 0000000..e2f8acc --- /dev/null +++ b/projects/project-3/frontend/src/app/dashboard/table/table.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { TableComponent } from './table.component'; + +describe('TableComponent', () => { + let component: TableComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ TableComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(TableComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/projects/project-3/frontend/src/app/dashboard/table/table.component.ts b/projects/project-3/frontend/src/app/dashboard/table/table.component.ts new file mode 100644 index 0000000..0e6f0ea --- /dev/null +++ b/projects/project-3/frontend/src/app/dashboard/table/table.component.ts @@ -0,0 +1,140 @@ +import {Component, Input, OnInit} from '@angular/core'; +import {MatTableDataSource} from '@angular/material/table'; +import {IDashboardCommonBikePoint} from '../../service/domain/dashboard-common-bike-point'; +import {SelectionModel} from '@angular/cdk/collections'; +import {MatCheckboxChange} from '@angular/material/checkbox'; +import stht from 'seconds-to-human-time'; +import {MapService} from '../../service/map.service'; +import {DashboardService} from '../../service/dashboard.service'; +import {ActivatedRoute} from '@angular/router'; + +@Component({ + selector: 'app-table', + templateUrl: './table.component.html', + styleUrls: ['./table.component.scss'] +}) +export class TableComponent implements OnInit { + displayedColumnsTo: string[] = ['select', 'endStationName', 'number', 'avgDuration', 'marker']; + displayedColumnsFrom: string[] = ['select', 'startStationName', 'number', 'avgDuration', 'marker']; + stationToSource = new MatTableDataSource(); + + iterableToSource: any[]; + stationFromSource = new MatTableDataSource(); + iterableFromSource: any[]; + selectionModel = new SelectionModel(true, []); + colors = ['black', 'gray', 'green', 'orange', 'purple', 'red']; + bikePoint: IDashboardCommonBikePoint; + maxStartDate: Date; + maxEndDate: Date; + + constructor( + private route: ActivatedRoute, + private map: MapService, + private service: DashboardService + ) { + } + + ngOnInit(): void { + this.route.params.subscribe(params => { + this.selectionModel.clear(); + this.colors = ['black', 'gray', 'green', 'orange', 'purple', 'red']; + this.service.fetchDashboardInit(params.id).then(data => { + this.bikePoint = data; + this.maxStartDate = new Date(data.maxStartDate); + this.maxEndDate = new Date(data.maxEndDate); + this.initTable(); + }); + }); + } + + async initTable(): Promise { + const initDate = this.maxEndDate.toISOString().substring(0, 10); + await this.service.fetchDashboardStationTo(this.bikePoint.id, initDate, initDate).then(source => { + this.stationToSource = this.setBikePointColorToSource(source); + this.iterableToSource = source; + }); + await this.service.fetchDashboardStationFrom(this.bikePoint.id, initDate, initDate).then(source => { + this.stationFromSource = this.setBikePointColorFromSource(source); + this.iterableFromSource = source; + }); + } + + async onSubmit(actualStartDate: string, actualEndDate: string): Promise { + await this.service.fetchDashboardStationTo(this.bikePoint.id, actualStartDate, actualEndDate).then((source) => { + this.colors = ['black', 'gray', 'green', 'orange', 'purple', 'red']; + this.stationToSource = this.setBikePointColorToSource(source); + this.iterableToSource = source; + }); + await this.service.fetchDashboardStationFrom(this.bikePoint.id, actualStartDate, actualEndDate).then((source) => { + this.stationFromSource = this.setBikePointColorFromSource(source); + this.iterableFromSource = source; + }); + } + + public drawIconInTable(bikePoint: any): string { + return `../../assets/bike-point-${bikePoint.color}.png`; + } + + humanizeAvgDuration(avgDuration: number): string { + return stht(avgDuration); + } + + selectRow(selection: MatCheckboxChange, row): void { + const markerToDisplay = []; + this.iterableToSource.forEach(point => { + if (point.stationId === row.stationId) { + this.selectionModel.toggle(point); + } + }); + this.iterableFromSource.forEach(point => { + if (point.stationId === row.stationId) { + this.selectionModel.toggle(point); + } + }); + this.selectionModel.selected.forEach(point => { + markerToDisplay.push(point); + }); + this.map.drawTableStationMarker(markerToDisplay); + } + + setBikePointColorToSource(source): any { + for (const station of source) { + if (station.stationId === this.bikePoint.id) { + station.color = 'blue'; + continue; + } + station.color = this.getRandomColor(); + } + return source; + } + + setBikePointColorFromSource(source): any { + for (const station of source) { + if (station.stationId === this.bikePoint.id) { + station.color = 'blue'; + continue; + } + for (const to of this.iterableToSource) { + if (station.stationId === to.stationId) { + station.color = to.color; + break; + } + } + if (!station.color) { + station.color = this.getRandomColor(); + } + } + return source; + } + + getRandomColor(): string { + const color = this.colors[Math.floor(Math.random() * this.colors.length)]; + this.colors = this.colors.filter(c => c !== color); + return color; + } + + isCheckBoxDisable(row): boolean { + return row.stationId === this.bikePoint.id; + } + +} From 6d7c40ada63919b6a2bcec6fafa09ec47ec713df Mon Sep 17 00:00:00 2001 From: tim-herbst Date: Sat, 2 Jan 2021 14:48:58 +0100 Subject: [PATCH 076/104] refactor rent-duration to component --- .../app/dashboard/dashboard.component.html | 111 +------- .../app/dashboard/dashboard.component.scss | 17 -- .../src/app/dashboard/dashboard.component.ts | 260 +----------------- .../rent-duration-chart.component.html | 24 ++ .../rent-duration-chart.component.scss | 17 ++ .../rent-duration-chart.component.spec.ts | 25 ++ .../rent-duration-chart.component.ts | 149 ++++++++++ 7 files changed, 228 insertions(+), 375 deletions(-) create mode 100644 projects/project-3/frontend/src/app/dashboard/rent-duration-chart/rent-duration-chart.component.html create mode 100644 projects/project-3/frontend/src/app/dashboard/rent-duration-chart/rent-duration-chart.component.scss create mode 100644 projects/project-3/frontend/src/app/dashboard/rent-duration-chart/rent-duration-chart.component.spec.ts create mode 100644 projects/project-3/frontend/src/app/dashboard/rent-duration-chart/rent-duration-chart.component.ts diff --git a/projects/project-3/frontend/src/app/dashboard/dashboard.component.html b/projects/project-3/frontend/src/app/dashboard/dashboard.component.html index a232561..d5f99d3 100644 --- a/projects/project-3/frontend/src/app/dashboard/dashboard.component.html +++ b/projects/project-3/frontend/src/app/dashboard/dashboard.component.html @@ -77,117 +77,12 @@
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - station of rental destination{{element.stationName}} number of drives {{element.number}} average rental duration {{humanizeAvgDuration(element.avgDuration)}} icon on mapmarker
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - station of rental origin {{element.stationName}} number of drives {{element.number}} average rental duration {{humanizeAvgDuration(element.avgDuration)}} icon on mapmarker
- - - - -
- +
+
- - - Rental Duration - - This chart shows the rent duration based on the currently selected station. - The time it takes for a rent which has the current station as origin is displayed here. - - - -
- -
-
-
+
diff --git a/projects/project-3/frontend/src/app/dashboard/dashboard.component.scss b/projects/project-3/frontend/src/app/dashboard/dashboard.component.scss index ffb5e9f..6a0acba 100644 --- a/projects/project-3/frontend/src/app/dashboard/dashboard.component.scss +++ b/projects/project-3/frontend/src/app/dashboard/dashboard.component.scss @@ -6,14 +6,6 @@ mat-sidenav-content { flex: 1 1 auto; } -a { - color: black; -} - -img { - width: 60px; -} - .button-back:hover, .button-wiki:hover { background: #086ed2; } @@ -53,7 +45,6 @@ img { margin-left: 39px; } - .container-map { height: 40em; margin: 1em 2em; @@ -64,14 +55,6 @@ img { margin: 1em 3em; } -.dashboard-table-to { - margin-right: 1em; -} - -.dashboard-table-from { - margin-left: 1em; -} - .container-borrow-duration { height: 41em; margin: 1em 2em; diff --git a/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts b/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts index fd838da..e7344df 100644 --- a/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts +++ b/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts @@ -2,10 +2,8 @@ import {ChangeDetectionStrategy, ChangeDetectorRef, Component, Injectable, OnIni import {ActivatedRoute, Router} from '@angular/router'; import {DashboardService} from '../service/dashboard.service'; import {IDashboardCommonBikePoint} from '../service/domain/dashboard-common-bike-point'; -import {MatTableDataSource} from '@angular/material/table'; import {FormBuilder, FormControl, FormGroup} from '@angular/forms'; import {MapService} from '../service/map.service'; -import stht from 'seconds-to-human-time'; import { @@ -20,14 +18,13 @@ import { ApexTitleSubtitle, ApexTooltip, ApexXAxis, - ApexYAxis, - ChartComponent + ApexYAxis } from 'ng-apexcharts'; import {IMapBikePoint} from '../service/domain/map-bike-point'; -import {SelectionModel} from '@angular/cdk/collections'; -import {MatCheckboxChange} from '@angular/material/checkbox'; import {DateAdapter, MAT_DATE_FORMATS, NativeDateAdapter} from '@angular/material/core'; import {formatDate} from '@angular/common'; +import {TableComponent} from './table/table.component'; +import {RentDurationChartComponent} from "./rent-duration-chart/rent-duration-chart.component"; export type ChartOptions = { title: ApexTitleSubtitle; @@ -80,19 +77,12 @@ const chartHeight = 460; ] }) export class DashboardComponent implements OnInit { - @ViewChild('Station-Dashboard-Borrow-Duration') chart: ChartComponent; + @ViewChild(TableComponent) table: TableComponent; + @ViewChild(RentDurationChartComponent) durationChart: RentDurationChartComponent; + public durationChartOptions: Partial; public timeChartOptions: Partial; public bikePointChartOptions: Partial; - displayedColumnsTo: string[] = ['select', 'endStationName', 'number', 'avgDuration', 'marker']; - displayedColumnsFrom: string[] = ['select', 'startStationName', 'number', 'avgDuration', 'marker']; - stationToSource = new MatTableDataSource(); - iterableToSource: any[]; - stationFromSource = new MatTableDataSource(); - iterableFromSource: any[]; - selectionModel = new SelectionModel(true, []); - colors = ['black', 'gray', 'green', 'orange', 'purple', 'red']; - isLoading: boolean; station: IDashboardCommonBikePoint; maxStartDate: Date; @@ -138,7 +128,6 @@ export class DashboardComponent implements OnInit { text: 'Loading...' } }; - this.isLoading = true; } ngOnInit(): void { @@ -151,8 +140,6 @@ export class DashboardComponent implements OnInit { this.changeDetectorRefs.detectChanges(); this.map.removeTableStationMarkerOnReload(); this.route.params.subscribe(params => { - this.selectionModel.clear(); - this.colors = ['black', 'gray', 'green', 'orange', 'purple', 'red']; this.service.fetchDashboardInit(params.id).then(data => { this.station = data; this.maxStartDate = new Date(data.maxStartDate); @@ -254,18 +241,6 @@ export class DashboardComponent implements OnInit { const initDate = this.maxEndDate.toISOString().substring(0, 10); this.form.get('daterange').get('start').setValue(initDate); this.form.get('daterange').get('end').setValue(initDate); - await this.service.fetchDashboardStationTo(this.station.id, initDate, initDate).then((source) => { - this.stationToSource = this.setBikePointColorToSource(source); - this.iterableToSource = source; - this.isLoading = false; - this.changeDetectorRefs.detectChanges(); - }); - await this.service.fetchDashboardStationFrom(this.station.id, initDate, initDate).then((source) => { - this.stationFromSource = this.setBikePointColorFromSource(source); - this.iterableFromSource = source; - this.isLoading = false; - this.changeDetectorRefs.detectChanges(); - }); this.service.fetchDashboardStationCharts(this.station.id, initDate, initDate, 'duration').then((source) => { const numbers = []; const minutesGroup = []; @@ -404,232 +379,17 @@ export class DashboardComponent implements OnInit { } async onSubmit(): Promise { - this.isLoading = false; this.actualStartDate = this.form.get('daterange').value.start; this.actualEndDate = this.form.get('daterange').value.end; - this.map.removeTableStationMarkerOnReload(); - this.selectionModel.clear(); - await this.service.fetchDashboardStationTo( - this.station.id, + this.table.onSubmit( this.actualStartDate.toISOString().substring(0, 10), this.actualEndDate.toISOString().substring(0, 10) - ).then((source) => { - this.colors = ['black', 'gray', 'green', 'orange', 'purple', 'red']; - this.stationToSource = this.setBikePointColorToSource(source); - this.iterableToSource = source; - this.isLoading = false; - this.changeDetectorRefs.detectChanges(); - }); - await this.service.fetchDashboardStationFrom( - this.station.id, + ); + this.durationChart.onSubmit( this.actualStartDate.toISOString().substring(0, 10), this.actualEndDate.toISOString().substring(0, 10) - ).then((source) => { - this.stationFromSource = this.setBikePointColorFromSource(source); - this.iterableFromSource = source; - this.isLoading = false; - this.changeDetectorRefs.detectChanges(); - }); - this.service.fetchDashboardStationCharts( - this.station.id, - this.actualStartDate.toISOString().substring(0, 10), - this.actualEndDate.toISOString().substring(0, 10), - 'duration' - ).then((source) => { - const numbers = []; - const minutesGroup = []; - source.forEach(value => { - numbers.push(value.number); - minutesGroup.push(value.minutesGroup); - }); - this.durationChartOptions = { - series: [ - { - name: 'amount of drives for given borrow duration', - data: numbers - } - ], - chart: { - type: 'bar', - height: chartHeight - }, - colors: ['#017bfe'], - plotOptions: { - bar: { - horizontal: false, - columnWidth: '55%', - endingShape: 'flat' - } - }, - dataLabels: { - enabled: false - }, - stroke: { - show: true, - width: 2, - colors: ['transparent'] - }, - xaxis: { - title: { - text: 'average rental duration' - }, - categories: minutesGroup, - labels: { - formatter: value => { - return value + ' min'; - } - } - }, - yaxis: { - title: { - text: 'amount of drives' - } - }, - fill: { - opacity: 1 - } - }; - }); - this.service.fetchDashboardStationCharts( - this.station.id, - this.actualStartDate.toISOString().substring(0, 10), - this.actualEndDate.toISOString().substring(0, 10), - 'time' - ).then((source) => { - const timeFrame = []; - const numbers = []; - const avgDuration = []; - source.forEach(value => { - timeFrame.push(value.timeFrame); - numbers.push(value.number); - avgDuration.push(Math.round(value.avgDuration / 60)); - }); - this.timeChartOptions = { - series: [ - { - name: 'amount of drives', - type: 'bar', - data: numbers - }, - { - name: 'average rental duration', - type: 'line', - data: avgDuration - } - ], - chart: { - toolbar: { - show: false - }, - type: 'line', - height: chartHeight, - zoom: { - enabled: true, - } - }, - colors: ['#017bfe', '#51ca49'], - dataLabels: { - enabled: false - }, - stroke: { - curve: 'straight' - }, - xaxis: { - title: { - text: 'time of the day' - }, - categories: timeFrame, - tickAmount: 24, - tickPlacement: 'between' - }, - yaxis: [{ - title: { - text: 'amount of drives', - }, - }, { - opposite: true, - title: { - text: 'average rental duration' - }, - labels: { - formatter: (val: number): string => { - return val + ' min'; - } - } - }], - legend: { - horizontalAlign: 'left' - }, - fill: { - opacity: 1 - } - }; - }); + ); } - humanizeAvgDuration(avgDuration: number): string { - return stht(avgDuration); - } - selectRow(selection: MatCheckboxChange, row): void { - const markerToDisplay = []; - this.iterableToSource.forEach(point => { - if (point.stationId === row.stationId) { - this.selectionModel.toggle(point); - } - }); - this.iterableFromSource.forEach(point => { - if (point.stationId === row.stationId) { - this.selectionModel.toggle(point); - } - }); - this.selectionModel.selected.forEach(point => { - markerToDisplay.push(point); - }); - this.map.drawTableStationMarker(markerToDisplay); - } - - public drawIconInTable(bikePoint: any): string { - return `../../assets/bike-point-${bikePoint.color}.png`; - } - - setBikePointColorToSource(source): any { - for (const station of source) { - if (station.stationId === this.station.id) { - station.color = 'blue'; - continue; - } - station.color = this.getRandomColor(); - } - return source; - } - - setBikePointColorFromSource(source): any { - for (const station of source) { - if (station.stationId === this.station.id) { - station.color = 'blue'; - continue; - } - for (const to of this.iterableToSource) { - if (station.stationId === to.stationId) { - station.color = to.color; - break; - } - } - if (!station.color) { - station.color = this.getRandomColor(); - } - } - return source; - } - - getRandomColor(): string { - const color = this.colors[Math.floor(Math.random() * this.colors.length)]; - this.colors = this.colors.filter(c => c !== color); - return color; - } - - isCheckBoxDisable(row): boolean { - return row.stationId === this.station.id; - } } diff --git a/projects/project-3/frontend/src/app/dashboard/rent-duration-chart/rent-duration-chart.component.html b/projects/project-3/frontend/src/app/dashboard/rent-duration-chart/rent-duration-chart.component.html new file mode 100644 index 0000000..2141b1d --- /dev/null +++ b/projects/project-3/frontend/src/app/dashboard/rent-duration-chart/rent-duration-chart.component.html @@ -0,0 +1,24 @@ + + + Rental Duration + + This chart shows the rent duration based on the currently selected station. + The time it takes for a rent which has the current station as origin is displayed here. + + + +
+ +
+
+
diff --git a/projects/project-3/frontend/src/app/dashboard/rent-duration-chart/rent-duration-chart.component.scss b/projects/project-3/frontend/src/app/dashboard/rent-duration-chart/rent-duration-chart.component.scss new file mode 100644 index 0000000..dd9f823 --- /dev/null +++ b/projects/project-3/frontend/src/app/dashboard/rent-duration-chart/rent-duration-chart.component.scss @@ -0,0 +1,17 @@ +.station-dashboard-borrow-duration { + margin: 1em; +} + +.mat-card { + padding: 1px 1px 1px; + margin: 10px; +} + +.mat-card-title { + margin-top: 1em; + margin-left: 2em; +} + +.mat-card-subtitle { + margin-left: 39px; +} diff --git a/projects/project-3/frontend/src/app/dashboard/rent-duration-chart/rent-duration-chart.component.spec.ts b/projects/project-3/frontend/src/app/dashboard/rent-duration-chart/rent-duration-chart.component.spec.ts new file mode 100644 index 0000000..9bdd08a --- /dev/null +++ b/projects/project-3/frontend/src/app/dashboard/rent-duration-chart/rent-duration-chart.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { RentDurationChartComponent } from './rent-duration-chart.component'; + +describe('RentDurationChartComponent', () => { + let component: RentDurationChartComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ RentDurationChartComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(RentDurationChartComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/projects/project-3/frontend/src/app/dashboard/rent-duration-chart/rent-duration-chart.component.ts b/projects/project-3/frontend/src/app/dashboard/rent-duration-chart/rent-duration-chart.component.ts new file mode 100644 index 0000000..041a59b --- /dev/null +++ b/projects/project-3/frontend/src/app/dashboard/rent-duration-chart/rent-duration-chart.component.ts @@ -0,0 +1,149 @@ +import {Component, OnInit, ViewChild} from '@angular/core'; +import { + ApexAxisChartSeries, + ApexChart, + ApexDataLabels, + ApexFill, + ApexLegend, + ApexNoData, + ApexPlotOptions, + ApexStroke, + ApexTitleSubtitle, + ApexTooltip, + ApexXAxis, + ApexYAxis, + ChartComponent +} from 'ng-apexcharts'; +import {ActivatedRoute} from '@angular/router'; +import {DashboardService} from '../../service/dashboard.service'; +import {IDashboardCommonBikePoint} from '../../service/domain/dashboard-common-bike-point'; + +export type ChartOptions = { + title: ApexTitleSubtitle; + subtitle: ApexTitleSubtitle; + series: ApexAxisChartSeries; + chart: ApexChart; + colors: string[]; + dataLabels: ApexDataLabels; + plotOptions: ApexPlotOptions; + yaxis: ApexYAxis; + xaxis: ApexXAxis; + fill: ApexFill; + tooltip: ApexTooltip; + stroke: ApexStroke; + legend: ApexLegend; + noData: ApexNoData; +}; + +const chartType = 'duration'; + +@Component({ + selector: 'app-rent-duration-chart', + templateUrl: './rent-duration-chart.component.html', + styleUrls: ['./rent-duration-chart.component.scss'] +}) +export class RentDurationChartComponent implements OnInit { + @ViewChild(ChartComponent) chart: ChartComponent; + chartOptions: Partial; + + bikePoint: IDashboardCommonBikePoint; + maxStartDate: Date; + maxEndDate: Date; + + constructor( + private route: ActivatedRoute, + private service: DashboardService, + ) { + this.chartOptions = { + series: [], + chart: { + type: 'bar' + }, + noData: { + text: 'Loading...' + } + }; + } + + ngOnInit(): void { + this.route.params.subscribe(params => { + this.service.fetchDashboardInit(params.id).then(data => { + this.bikePoint = data; + this.maxStartDate = new Date(data.maxStartDate); + this.maxEndDate = new Date(data.maxEndDate); + this.initChart(); + }); + }); + } + + async initChart(): Promise { + const initDate = this.maxEndDate.toISOString().substring(0, 10); + await this.service.fetchDashboardStationCharts(this.bikePoint.id, initDate, initDate, chartType).then(source => { + this.chartOptions = { + series: [ + { + name: 'amount of drives', + data: source.map(value => value.number) + } + ], + chart: { + type: 'bar', + height: '460' + }, + colors: ['#017bfe'], + plotOptions: { + bar: { + horizontal: false, + columnWidth: '55%', + endingShape: 'flat' + } + }, + dataLabels: { + enabled: false + }, + stroke: { + show: true, + width: 2, + colors: ['transparent'] + }, + xaxis: { + title: { + text: 'average rental duration' + }, + categories: source.map(value => value.minutesGroup), + labels: { + formatter: value => { + return value + ' min'; + } + } + }, + yaxis: { + title: { + text: 'amount of drives' + } + }, + noData: { + text: 'loading' + }, + fill: { + opacity: 1 + } + }; + this.chart.updateOptions(this.chartOptions); + }); + } + + async onSubmit(actualStartDate: string, actualEndDate: string): Promise { + await this.service.fetchDashboardStationCharts( + this.bikePoint.id, + actualStartDate, + actualEndDate, + chartType + ).then(source => { + this.chart.updateSeries([{ + data: source.map(value => value.number) + }]); + }); + } + +} From cdea238830d5b79de134fc3430ded6708fdd22e0 Mon Sep 17 00:00:00 2001 From: tim-herbst Date: Sat, 2 Jan 2021 15:33:11 +0100 Subject: [PATCH 077/104] refactor rent-time to component --- .../app/dashboard/dashboard.component.html | 26 +-- .../app/dashboard/dashboard.component.scss | 2 +- .../src/app/dashboard/dashboard.component.ts | 149 +-------------- .../rent-duration-chart.component.ts | 8 +- .../rent-time-chart.component.html | 26 +++ .../rent-time-chart.component.scss | 17 ++ .../rent-time-chart.component.spec.ts | 25 +++ .../rent-time-chart.component.ts | 175 ++++++++++++++++++ 8 files changed, 257 insertions(+), 171 deletions(-) create mode 100644 projects/project-3/frontend/src/app/dashboard/rent-time-chart/rent-time-chart.component.html create mode 100644 projects/project-3/frontend/src/app/dashboard/rent-time-chart/rent-time-chart.component.scss create mode 100644 projects/project-3/frontend/src/app/dashboard/rent-time-chart/rent-time-chart.component.spec.ts create mode 100644 projects/project-3/frontend/src/app/dashboard/rent-time-chart/rent-time-chart.component.ts diff --git a/projects/project-3/frontend/src/app/dashboard/dashboard.component.html b/projects/project-3/frontend/src/app/dashboard/dashboard.component.html index d5f99d3..5b600b3 100644 --- a/projects/project-3/frontend/src/app/dashboard/dashboard.component.html +++ b/projects/project-3/frontend/src/app/dashboard/dashboard.component.html @@ -86,31 +86,7 @@
- - - Rental Time - - This chart shows the workload of the currently selected station in relation - of the time of the day. It is visualized at which time of the day a journey begins or ends (blue). - In addition, the average rental duration of the trips is displayed at the given time (green). - - - - -
- -
-
-
+
diff --git a/projects/project-3/frontend/src/app/dashboard/dashboard.component.scss b/projects/project-3/frontend/src/app/dashboard/dashboard.component.scss index 6a0acba..54dc401 100644 --- a/projects/project-3/frontend/src/app/dashboard/dashboard.component.scss +++ b/projects/project-3/frontend/src/app/dashboard/dashboard.component.scss @@ -61,7 +61,7 @@ mat-sidenav-content { } .container-borrow-time { - height: 41em; + height: 44em; margin: 1em 2em; } diff --git a/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts b/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts index e7344df..c9d5d7c 100644 --- a/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts +++ b/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts @@ -25,6 +25,7 @@ import {DateAdapter, MAT_DATE_FORMATS, NativeDateAdapter} from '@angular/materia import {formatDate} from '@angular/common'; import {TableComponent} from './table/table.component'; import {RentDurationChartComponent} from "./rent-duration-chart/rent-duration-chart.component"; +import {RentTimeChartComponent} from "./rent-time-chart/rent-time-chart.component"; export type ChartOptions = { title: ApexTitleSubtitle; @@ -79,8 +80,8 @@ const chartHeight = 460; export class DashboardComponent implements OnInit { @ViewChild(TableComponent) table: TableComponent; @ViewChild(RentDurationChartComponent) durationChart: RentDurationChartComponent; + @ViewChild(RentTimeChartComponent) timeChart: RentTimeChartComponent; - public durationChartOptions: Partial; public timeChartOptions: Partial; public bikePointChartOptions: Partial; @@ -101,15 +102,6 @@ export class DashboardComponent implements OnInit { private changeDetectorRefs: ChangeDetectorRef, private fb: FormBuilder ) { - this.durationChartOptions = { - series: [], - chart: { - type: 'bar' - }, - noData: { - text: 'Loading...' - } - }; this.timeChartOptions = { series: [], chart: { @@ -241,139 +233,6 @@ export class DashboardComponent implements OnInit { const initDate = this.maxEndDate.toISOString().substring(0, 10); this.form.get('daterange').get('start').setValue(initDate); this.form.get('daterange').get('end').setValue(initDate); - this.service.fetchDashboardStationCharts(this.station.id, initDate, initDate, 'duration').then((source) => { - const numbers = []; - const minutesGroup = []; - source.forEach(value => { - numbers.push(value.number); - minutesGroup.push(value.minutesGroup); - }); - this.durationChartOptions = { - series: [ - { - name: 'amount of drives', - data: numbers - } - ], - chart: { - type: 'bar', - height: chartHeight - }, - colors: ['#017bfe'], - plotOptions: { - bar: { - horizontal: false, - columnWidth: '55%', - endingShape: 'flat' - } - }, - dataLabels: { - enabled: false - }, - stroke: { - show: true, - width: 4, - colors: ['transparent'] - }, - xaxis: { - title: { - text: 'average rental duration' - }, - categories: minutesGroup, - labels: { - formatter: value => { - return value + ' min'; - } - } - }, - yaxis: { - title: { - text: 'amount of drives' - } - }, - fill: { - opacity: 1 - } - }; - }); - this.service.fetchDashboardStationCharts(this.station.id, initDate, initDate, 'time').then((source) => { - const timeFrame = []; - const numbers = []; - const avgDuration = []; - source.forEach(value => { - timeFrame.push(value.timeFrame); - numbers.push(value.number); - avgDuration.push(Math.round(value.avgDuration / 60)); - }); - this.timeChartOptions = { - series: [ - { - name: 'amount of drives', - type: 'bar', - data: numbers - }, - { - name: 'average rental duration', - type: 'line', - data: avgDuration - } - ], - tooltip: { - enabled: true, - shared: true, - x: { - show: true - } - }, - chart: { - toolbar: { - show: false - }, - type: 'line', - height: chartHeight, - zoom: { - enabled: true, - } - }, - colors: ['#017bfe', '#51ca49'], - dataLabels: { - enabled: false - }, - stroke: { - curve: 'straight' - }, - xaxis: { - title: { - text: 'time of the day' - }, - categories: timeFrame, - tickAmount: 24, - tickPlacement: 'between', - type: 'category' - }, - yaxis: [{ - title: { - text: 'amount of drives', - }, - }, { - opposite: true, - title: { - text: 'average rental duration' - }, - labels: { - formatter: (val: number): string => { - return val + ' min'; - } - } - }], - legend: { - horizontalAlign: 'left' - }, - fill: { - opacity: 1 - } - }; - }); this.map.initDashboardMap(this.station.lat, this.station.lon, 17); this.map.drawDashboardStationMarker(this.station); } @@ -389,6 +248,10 @@ export class DashboardComponent implements OnInit { this.actualStartDate.toISOString().substring(0, 10), this.actualEndDate.toISOString().substring(0, 10) ); + this.timeChart.onSubmit( + this.actualStartDate.toISOString().substring(0, 10), + this.actualEndDate.toISOString().substring(0, 10) + ); } diff --git a/projects/project-3/frontend/src/app/dashboard/rent-duration-chart/rent-duration-chart.component.ts b/projects/project-3/frontend/src/app/dashboard/rent-duration-chart/rent-duration-chart.component.ts index 041a59b..a5eda78 100644 --- a/projects/project-3/frontend/src/app/dashboard/rent-duration-chart/rent-duration-chart.component.ts +++ b/projects/project-3/frontend/src/app/dashboard/rent-duration-chart/rent-duration-chart.component.ts @@ -43,6 +43,7 @@ const chartType = 'duration'; styleUrls: ['./rent-duration-chart.component.scss'] }) export class RentDurationChartComponent implements OnInit { + @ViewChild(ChartComponent) chart: ChartComponent; chartOptions: Partial; @@ -71,7 +72,7 @@ export class RentDurationChartComponent implements OnInit { this.bikePoint = data; this.maxStartDate = new Date(data.maxStartDate); this.maxEndDate = new Date(data.maxEndDate); - this.initChart(); + this.initChart().catch(error => console.log(error)); }); }); } @@ -88,7 +89,10 @@ export class RentDurationChartComponent implements OnInit { ], chart: { type: 'bar', - height: '460' + height: '460', + toolbar: { + show: false + } }, colors: ['#017bfe'], plotOptions: { diff --git a/projects/project-3/frontend/src/app/dashboard/rent-time-chart/rent-time-chart.component.html b/projects/project-3/frontend/src/app/dashboard/rent-time-chart/rent-time-chart.component.html new file mode 100644 index 0000000..684c9e4 --- /dev/null +++ b/projects/project-3/frontend/src/app/dashboard/rent-time-chart/rent-time-chart.component.html @@ -0,0 +1,26 @@ + + + Rental Time + + This chart shows the workload of the currently selected station in relation + of the time of the day. It is visualized at which time of the day a journey begins or ends (blue). + In addition, the average rental duration of the trips is displayed at the given time (green). + + + + +
+ +
+
+
diff --git a/projects/project-3/frontend/src/app/dashboard/rent-time-chart/rent-time-chart.component.scss b/projects/project-3/frontend/src/app/dashboard/rent-time-chart/rent-time-chart.component.scss new file mode 100644 index 0000000..dd9f823 --- /dev/null +++ b/projects/project-3/frontend/src/app/dashboard/rent-time-chart/rent-time-chart.component.scss @@ -0,0 +1,17 @@ +.station-dashboard-borrow-duration { + margin: 1em; +} + +.mat-card { + padding: 1px 1px 1px; + margin: 10px; +} + +.mat-card-title { + margin-top: 1em; + margin-left: 2em; +} + +.mat-card-subtitle { + margin-left: 39px; +} diff --git a/projects/project-3/frontend/src/app/dashboard/rent-time-chart/rent-time-chart.component.spec.ts b/projects/project-3/frontend/src/app/dashboard/rent-time-chart/rent-time-chart.component.spec.ts new file mode 100644 index 0000000..9280a5a --- /dev/null +++ b/projects/project-3/frontend/src/app/dashboard/rent-time-chart/rent-time-chart.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { RentTimeChartComponent } from './rent-time-chart.component'; + +describe('RentTimeChartComponent', () => { + let component: RentTimeChartComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ RentTimeChartComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(RentTimeChartComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/projects/project-3/frontend/src/app/dashboard/rent-time-chart/rent-time-chart.component.ts b/projects/project-3/frontend/src/app/dashboard/rent-time-chart/rent-time-chart.component.ts new file mode 100644 index 0000000..8f4c881 --- /dev/null +++ b/projects/project-3/frontend/src/app/dashboard/rent-time-chart/rent-time-chart.component.ts @@ -0,0 +1,175 @@ +import {Component, OnInit, ViewChild} from '@angular/core'; +import { + ApexAxisChartSeries, + ApexChart, + ApexDataLabels, + ApexFill, + ApexLegend, + ApexNoData, + ApexPlotOptions, + ApexStroke, + ApexTitleSubtitle, + ApexTooltip, + ApexXAxis, + ApexYAxis, + ChartComponent +} from 'ng-apexcharts'; +import {DashboardService} from '../../service/dashboard.service'; +import {ActivatedRoute} from '@angular/router'; +import {IDashboardCommonBikePoint} from '../../service/domain/dashboard-common-bike-point'; + +export type ChartOptions = { + title: ApexTitleSubtitle; + subtitle: ApexTitleSubtitle; + series: ApexAxisChartSeries; + chart: ApexChart; + colors: string[]; + dataLabels: ApexDataLabels; + plotOptions: ApexPlotOptions; + yaxis: ApexYAxis | ApexYAxis[]; + xaxis: ApexXAxis; + fill: ApexFill; + tooltip: ApexTooltip; + stroke: ApexStroke; + legend: ApexLegend; + noData: ApexNoData; +}; + +const chartType = 'time'; + +@Component({ + selector: 'app-rent-time-chart', + templateUrl: './rent-time-chart.component.html', + styleUrls: ['./rent-time-chart.component.scss'] +}) +export class RentTimeChartComponent implements OnInit { + + @ViewChild(ChartComponent) chart: ChartComponent; + chartOptions: Partial; + + bikePoint: IDashboardCommonBikePoint; + maxStartDate: Date; + maxEndDate: Date; + + constructor( + private route: ActivatedRoute, + private service: DashboardService + ) { + this.chartOptions = { + series: [], + chart: { + type: 'line' + }, + noData: { + text: 'Loading...' + } + }; + } + + ngOnInit(): void { + this.route.params.subscribe(params => { + this.service.fetchDashboardInit(params.id).then(data => { + this.bikePoint = data; + this.maxStartDate = new Date(data.maxStartDate); + this.maxEndDate = new Date(data.maxEndDate); + this.initChart().catch(error => console.log(error)); + }); + }); + } + + async initChart(): Promise { + const initDate = this.maxEndDate.toISOString().substring(0, 10); + await this.service.fetchDashboardStationCharts(this.bikePoint.id, initDate, initDate, chartType).then(source => { + this.chartOptions = { + series: [ + { + name: 'amount of drives', + type: 'bar', + data: source.map(value => value.number) + }, + { + name: 'average rental duration', + type: 'line', + data: source.map(value => Math.round(value.avgDuration / 60)) + } + ], + tooltip: { + enabled: true, + shared: true, + x: { + show: true + } + }, + chart: { + toolbar: { + show: true + }, + type: 'line', + height: '495', + zoom: { + enabled: true, + } + }, + colors: ['#017bfe', '#51ca49'], + dataLabels: { + enabled: false, + }, + stroke: { + curve: 'straight' + }, + legend: { + show: true, + offsetY: 8, + itemMargin: { + horizontal: 5 + } + }, + xaxis: { + title: { + text: 'time of the day', + offsetY: 17 + }, + categories: source.map(value => value.timeFrame), + tickAmount: 24, + tickPlacement: 'between', + type: 'category' + }, + yaxis: [{ + title: { + text: 'amount of drives', + }, + }, { + opposite: true, + title: { + text: 'average rental duration' + }, + labels: { + formatter: (val: number): string => { + return val + ' min'; + } + } + }], + fill: { + opacity: 1 + } + }; + }); + await this.chart.updateOptions(this.chartOptions); + } + + async onSubmit(actualStartDate: string, actualEndDate: string): Promise { + await this.service.fetchDashboardStationCharts( + this.bikePoint.id, + actualStartDate, + actualEndDate, + chartType + ).then(source => { + this.chart.updateSeries([{ + data: source.map(value => value.number) + }, { + data: source.map(value => Math.round(value.avgDuration / 60)) + }]); + }); + } + +} From e6f5407319f6761e8734e4bac016961e67e3358f Mon Sep 17 00:00:00 2001 From: tim-herbst Date: Sat, 2 Jan 2021 16:08:01 +0100 Subject: [PATCH 078/104] refactor user-input to component --- .../project-3/frontend/src/app/app.module.ts | 4 +- .../app/dashboard/dashboard.component.html | 52 +--- .../src/app/dashboard/dashboard.component.ts | 181 ++------------ .../user-input/user-input.component.html | 48 ++++ .../user-input/user-input.component.scss | 30 +++ .../user-input/user-input.component.spec.ts | 25 ++ .../user-input/user-input.component.ts | 222 ++++++++++++++++++ 7 files changed, 346 insertions(+), 216 deletions(-) create mode 100644 projects/project-3/frontend/src/app/dashboard/user-input/user-input.component.html create mode 100644 projects/project-3/frontend/src/app/dashboard/user-input/user-input.component.scss create mode 100644 projects/project-3/frontend/src/app/dashboard/user-input/user-input.component.spec.ts create mode 100644 projects/project-3/frontend/src/app/dashboard/user-input/user-input.component.ts diff --git a/projects/project-3/frontend/src/app/app.module.ts b/projects/project-3/frontend/src/app/app.module.ts index 43484df..735ee4c 100644 --- a/projects/project-3/frontend/src/app/app.module.ts +++ b/projects/project-3/frontend/src/app/app.module.ts @@ -32,6 +32,7 @@ import {MatProgressSpinnerModule} from "@angular/material/progress-spinner"; import { TableComponent } from './dashboard/table/table.component'; import { RentDurationChartComponent } from './dashboard/rent-duration-chart/rent-duration-chart.component'; import { RentTimeChartComponent } from './dashboard/rent-time-chart/rent-time-chart.component'; +import { UserInputComponent } from './dashboard/user-input/user-input.component'; @NgModule({ declarations: [ @@ -42,7 +43,8 @@ import { RentTimeChartComponent } from './dashboard/rent-time-chart/rent-time-ch AutoRefreshComponent, TableComponent, RentDurationChartComponent, - RentTimeChartComponent + RentTimeChartComponent, + UserInputComponent ], imports: [ BrowserModule, diff --git a/projects/project-3/frontend/src/app/dashboard/dashboard.component.html b/projects/project-3/frontend/src/app/dashboard/dashboard.component.html index 5b600b3..42ec912 100644 --- a/projects/project-3/frontend/src/app/dashboard/dashboard.component.html +++ b/projects/project-3/frontend/src/app/dashboard/dashboard.component.html @@ -19,54 +19,10 @@
- - -
- {{bikePoint?.commonName}} -
- -
- -

Select a range to analyze data

- - Enter a range - - - - - - - - -
- -
-
-
-
- -
-
-
-
+
diff --git a/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts b/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts index c9d5d7c..50b22f7 100644 --- a/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts +++ b/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts @@ -1,8 +1,7 @@ -import {ChangeDetectionStrategy, ChangeDetectorRef, Component, Injectable, OnInit, ViewChild} from '@angular/core'; +import {ChangeDetectionStrategy, Component, Injectable, OnInit, ViewChild} from '@angular/core'; import {ActivatedRoute, Router} from '@angular/router'; import {DashboardService} from '../service/dashboard.service'; import {IDashboardCommonBikePoint} from '../service/domain/dashboard-common-bike-point'; -import {FormBuilder, FormControl, FormGroup} from '@angular/forms'; import {MapService} from '../service/map.service'; @@ -20,12 +19,12 @@ import { ApexXAxis, ApexYAxis } from 'ng-apexcharts'; -import {IMapBikePoint} from '../service/domain/map-bike-point'; import {DateAdapter, MAT_DATE_FORMATS, NativeDateAdapter} from '@angular/material/core'; import {formatDate} from '@angular/common'; import {TableComponent} from './table/table.component'; -import {RentDurationChartComponent} from "./rent-duration-chart/rent-duration-chart.component"; -import {RentTimeChartComponent} from "./rent-time-chart/rent-time-chart.component"; +import {RentDurationChartComponent} from './rent-duration-chart/rent-duration-chart.component'; +import {RentTimeChartComponent} from './rent-time-chart/rent-time-chart.component'; +import {StartEndDate} from './user-input/user-input.component'; export type ChartOptions = { title: ApexTitleSubtitle; @@ -44,27 +43,6 @@ export type ChartOptions = { noData: ApexNoData; }; -export const PICK_FORMATS = { - parse: {dateInput: {month: 'short', year: 'numeric', day: 'numeric'}}, - display: { - dateInput: 'input', - monthYearLabel: {year: 'numeric', month: 'numeric'}, - dateA11yLabel: {year: 'numeric', month: 'numeric', day: 'numeric'}, - monthYearA11yLabel: {year: 'numeric', month: 'long'} - } -}; - -@Injectable() -class PickDateAdapter extends NativeDateAdapter { - format(date: Date, displayFormat: Object): string { - if (displayFormat === 'input') { - return formatDate(date, 'dd-MM-yyyy', this.locale); - } else { - return date.toDateString(); - } - } -} - const chartHeight = 460; @Component({ @@ -72,65 +50,27 @@ const chartHeight = 460; templateUrl: './dashboard.component.html', styleUrls: ['./dashboard.component.scss'], changeDetection: ChangeDetectionStrategy.Default, - providers: [ - {provide: DateAdapter, useClass: PickDateAdapter}, - {provide: MAT_DATE_FORMATS, useValue: PICK_FORMATS} - ] }) export class DashboardComponent implements OnInit { @ViewChild(TableComponent) table: TableComponent; @ViewChild(RentDurationChartComponent) durationChart: RentDurationChartComponent; @ViewChild(RentTimeChartComponent) timeChart: RentTimeChartComponent; - public timeChartOptions: Partial; public bikePointChartOptions: Partial; station: IDashboardCommonBikePoint; maxStartDate: Date; maxEndDate: Date; - actualStartDate: Date; - actualEndDate: Date; - form: FormGroup; - - bikePoint: IMapBikePoint; constructor( private route: ActivatedRoute, private router: Router, private service: DashboardService, private map: MapService, - private changeDetectorRefs: ChangeDetectorRef, - private fb: FormBuilder ) { - this.timeChartOptions = { - series: [], - chart: { - type: 'line' - }, - noData: { - text: 'Loading...' - } - }; - this.bikePointChartOptions = { - series: [], - chart: { - type: 'bar' - }, - noData: { - text: 'Loading...' - } - }; } ngOnInit(): void { - this.form = this.fb.group({ - daterange: new FormGroup({ - start: new FormControl(), - end: new FormControl() - }) - }); - this.changeDetectorRefs.detectChanges(); - this.map.removeTableStationMarkerOnReload(); this.route.params.subscribe(params => { this.service.fetchDashboardInit(params.id).then(data => { this.station = data; @@ -138,119 +78,26 @@ export class DashboardComponent implements OnInit { this.maxEndDate = new Date(data.maxEndDate); this.initDashboard(); }); - this.service.fetchBikePointForStatus(params.id).then(data => { - this.bikePoint = data; - const NbBlockedDocks = data.status.NbDocks - data.status.NbBikes - data.status.NbEmptyDocks; - this.bikePointChartOptions = { - subtitle: { - text: 'This chart visualizes the availability of the bikes', - offsetX: 20, - offsetY: 15, - style: { - fontSize: '15px' - } - }, - series: [ - { - name: 'Bikes', - data: [data.status.NbBikes] - }, - { - name: 'Empty docks', - data: [data.status.NbEmptyDocks] - }, - { - name: 'Blocked docks', - data: [NbBlockedDocks] - } - ], - colors: ['#51ca49', '#8f8e8e', '#f00'], - chart: { - type: 'bar', - height: 180, - stacked: true, - toolbar: { - show: false - } - }, - plotOptions: { - bar: { - horizontal: true, - dataLabels: { - position: 'center' - } - } - }, - dataLabels: { - enabled: true, - style: { - fontSize: '20px', - colors: ['#fff'] - } - }, - stroke: { - show: false - }, - xaxis: { - labels: { - show: false - }, - axisBorder: { - show: false - }, - axisTicks: { - show: false - } - }, - yaxis: { - show: false, - title: { - text: undefined - }, - axisBorder: { - show: false - }, - min: 0, - max: data.status.NbDocks - }, - tooltip: { - enabled: false, - }, - fill: { - opacity: 1 - }, - legend: { - position: 'bottom', - horizontalAlign: 'right', - fontSize: '14px' - } - }; - }); }); } async initDashboard(): Promise { - const initDate = this.maxEndDate.toISOString().substring(0, 10); - this.form.get('daterange').get('start').setValue(initDate); - this.form.get('daterange').get('end').setValue(initDate); this.map.initDashboardMap(this.station.lat, this.station.lon, 17); this.map.drawDashboardStationMarker(this.station); } - async onSubmit(): Promise { - this.actualStartDate = this.form.get('daterange').value.start; - this.actualEndDate = this.form.get('daterange').value.end; - this.table.onSubmit( - this.actualStartDate.toISOString().substring(0, 10), - this.actualEndDate.toISOString().substring(0, 10) + async onSubmit(startEndDate: StartEndDate): Promise { + await this.table.onSubmit( + startEndDate.actualStartDate.toISOString().substring(0, 10), + startEndDate.actualEndDate.toISOString().substring(0, 10) ); - this.durationChart.onSubmit( - this.actualStartDate.toISOString().substring(0, 10), - this.actualEndDate.toISOString().substring(0, 10) + await this.durationChart.onSubmit( + startEndDate.actualStartDate.toISOString().substring(0, 10), + startEndDate.actualEndDate.toISOString().substring(0, 10) ); - this.timeChart.onSubmit( - this.actualStartDate.toISOString().substring(0, 10), - this.actualEndDate.toISOString().substring(0, 10) + await this.timeChart.onSubmit( + startEndDate.actualStartDate.toISOString().substring(0, 10), + startEndDate.actualEndDate.toISOString().substring(0, 10) ); } diff --git a/projects/project-3/frontend/src/app/dashboard/user-input/user-input.component.html b/projects/project-3/frontend/src/app/dashboard/user-input/user-input.component.html new file mode 100644 index 0000000..8133809 --- /dev/null +++ b/projects/project-3/frontend/src/app/dashboard/user-input/user-input.component.html @@ -0,0 +1,48 @@ + + +
+ {{bikePoint?.commonName}} +
+ +
+
+

Select a range to analyze data

+ + Enter a range + + + + + + + +
+
+ +
+
+
+
+ +
+
+
+
diff --git a/projects/project-3/frontend/src/app/dashboard/user-input/user-input.component.scss b/projects/project-3/frontend/src/app/dashboard/user-input/user-input.component.scss new file mode 100644 index 0000000..6f5429f --- /dev/null +++ b/projects/project-3/frontend/src/app/dashboard/user-input/user-input.component.scss @@ -0,0 +1,30 @@ +.header-image { + margin-top: 1em; + margin-left: 1em; + margin-bottom: 1em; + background-image: url('../../../assets/bike-point-blue.png'); + background-size: cover; +} + +.mat-card { + padding: 1px 1px 1px; + margin: 10px; +} + +.mat-card-title { + margin-top: 1em; + margin-left: 2em; +} + +.mat-card-subtitle { + margin-left: 39px; +} + +#chart { + margin-right: 16px; +} + +.submit-date { + margin-top: 1em; + margin-left: 4em; +} diff --git a/projects/project-3/frontend/src/app/dashboard/user-input/user-input.component.spec.ts b/projects/project-3/frontend/src/app/dashboard/user-input/user-input.component.spec.ts new file mode 100644 index 0000000..e4a09b7 --- /dev/null +++ b/projects/project-3/frontend/src/app/dashboard/user-input/user-input.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { UserInputComponent } from './user-input.component'; + +describe('UserInputComponent', () => { + let component: UserInputComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ UserInputComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(UserInputComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/projects/project-3/frontend/src/app/dashboard/user-input/user-input.component.ts b/projects/project-3/frontend/src/app/dashboard/user-input/user-input.component.ts new file mode 100644 index 0000000..481bfb4 --- /dev/null +++ b/projects/project-3/frontend/src/app/dashboard/user-input/user-input.component.ts @@ -0,0 +1,222 @@ +import {Component, EventEmitter, Injectable, OnInit, Output} from '@angular/core'; +import {IDashboardCommonBikePoint} from '../../service/domain/dashboard-common-bike-point'; +import {FormBuilder, FormControl, FormGroup} from '@angular/forms'; +import {IMapBikePoint} from '../../service/domain/map-bike-point'; +import {ActivatedRoute} from '@angular/router'; +import {DashboardService} from '../../service/dashboard.service'; +import { + ApexAxisChartSeries, + ApexChart, + ApexDataLabels, + ApexFill, + ApexLegend, + ApexNoData, + ApexPlotOptions, + ApexStroke, + ApexTitleSubtitle, + ApexTooltip, + ApexXAxis, + ApexYAxis +} from 'ng-apexcharts'; +import {DateAdapter, MAT_DATE_FORMATS, NativeDateAdapter} from '@angular/material/core'; +import {formatDate} from '@angular/common'; + +export type ChartOptions = { + title: ApexTitleSubtitle; + subtitle: ApexTitleSubtitle; + series: ApexAxisChartSeries; + chart: ApexChart; + colors: string[]; + dataLabels: ApexDataLabels; + plotOptions: ApexPlotOptions; + yaxis: ApexYAxis | ApexYAxis[]; + xaxis: ApexXAxis; + fill: ApexFill; + tooltip: ApexTooltip; + stroke: ApexStroke; + legend: ApexLegend; + noData: ApexNoData; +}; + +export const PICK_FORMATS = { + parse: {dateInput: {month: 'short', year: 'numeric', day: 'numeric'}}, + display: { + dateInput: 'input', + monthYearLabel: {year: 'numeric', month: 'numeric'}, + dateA11yLabel: {year: 'numeric', month: 'numeric', day: 'numeric'}, + monthYearA11yLabel: {year: 'numeric', month: 'long'} + } +}; + +@Injectable() +class PickDateAdapter extends NativeDateAdapter { + format(date: Date, displayFormat: Object): string { + if (displayFormat === 'input') { + return formatDate(date, 'dd-MM-yyyy', this.locale); + } else { + return date.toDateString(); + } + } +} + +export interface StartEndDate { + actualStartDate: Date; + actualEndDate: Date; +} + +@Component({ + selector: 'app-user-input', + templateUrl: './user-input.component.html', + styleUrls: ['./user-input.component.scss'], + providers: [ + {provide: DateAdapter, useClass: PickDateAdapter}, + {provide: MAT_DATE_FORMATS, useValue: PICK_FORMATS} + ] +}) +export class UserInputComponent implements OnInit { + @Output() startEndDate: EventEmitter = new EventEmitter(); + + chartOptions: Partial; + + station: IDashboardCommonBikePoint; + maxStartDate: Date; + maxEndDate: Date; + form: FormGroup; + + bikePoint: IMapBikePoint; + + constructor( + private route: ActivatedRoute, + private service: DashboardService, + private fb: FormBuilder + ) { + this.chartOptions = { + series: [], + chart: { + type: 'bar' + }, + noData: { + text: 'Loading...' + } + }; + } + + ngOnInit(): void { + this.form = this.fb.group({ + dateRange: new FormGroup({ + start: new FormControl(), + end: new FormControl() + }) + }); + this.route.params.subscribe(params => { + this.service.fetchDashboardInit(params.id).then(data => { + this.station = data; + this.maxStartDate = new Date(data.maxStartDate); + this.maxEndDate = new Date(data.maxEndDate); + this.initInput().catch(error => console.log(error)); + }); + this.service.fetchBikePointForStatus(params.id).then(data => { + this.bikePoint = data; + const NbBlockedDocks = data.status.NbDocks - data.status.NbBikes - data.status.NbEmptyDocks; + this.chartOptions = { + subtitle: { + text: 'This chart visualizes the availability of the bikes', + offsetX: 20, + offsetY: 15, + style: { + fontSize: '15px' + } + }, + series: [ + { + name: 'Bikes', + data: [data.status.NbBikes] + }, + { + name: 'Empty docks', + data: [data.status.NbEmptyDocks] + }, + { + name: 'Blocked docks', + data: [NbBlockedDocks] + } + ], + colors: ['#51ca49', '#8f8e8e', '#f00'], + chart: { + type: 'bar', + height: 180, + stacked: true, + toolbar: { + show: false + } + }, + plotOptions: { + bar: { + horizontal: true, + dataLabels: { + position: 'center' + } + } + }, + dataLabels: { + enabled: true, + style: { + fontSize: '20px', + colors: ['#fff'] + } + }, + stroke: { + show: false + }, + xaxis: { + labels: { + show: false + }, + axisBorder: { + show: false + }, + axisTicks: { + show: false + } + }, + yaxis: { + show: false, + title: { + text: undefined + }, + axisBorder: { + show: false + }, + min: 0, + max: data.status.NbDocks + }, + tooltip: { + enabled: false, + }, + fill: { + opacity: 1 + }, + legend: { + position: 'bottom', + horizontalAlign: 'right', + fontSize: '14px' + } + }; + }); + }); + } + + async initInput(): Promise { + const initDate = this.maxEndDate.toISOString().substring(0, 10); + this.form.get('dateRange').get('start').setValue(initDate); + this.form.get('dateRange').get('end').setValue(initDate); + } + + async onSubmit(): Promise { + this.startEndDate.emit({ + actualStartDate: this.form.get('dateRange').value.start, + actualEndDate: this.form.get('dateRange').value.end + }); + } + +} From 16468ba950ba36fed841545fd8edcddecc4e20c5 Mon Sep 17 00:00:00 2001 From: tim-herbst Date: Sat, 2 Jan 2021 16:28:43 +0100 Subject: [PATCH 079/104] refactor miniMap to component --- .../project-3/frontend/src/app/app.module.ts | 4 ++- .../app/dashboard/dashboard.component.html | 8 +---- .../src/app/dashboard/dashboard.component.ts | 34 ++---------------- .../mini-map/mini-map.component.html | 7 ++++ .../mini-map/mini-map.component.scss | 4 +++ .../mini-map/mini-map.component.spec.ts | 25 +++++++++++++ .../dashboard/mini-map/mini-map.component.ts | 36 +++++++++++++++++++ .../user-input/user-input.component.ts | 1 + 8 files changed, 80 insertions(+), 39 deletions(-) create mode 100644 projects/project-3/frontend/src/app/dashboard/mini-map/mini-map.component.html create mode 100644 projects/project-3/frontend/src/app/dashboard/mini-map/mini-map.component.scss create mode 100644 projects/project-3/frontend/src/app/dashboard/mini-map/mini-map.component.spec.ts create mode 100644 projects/project-3/frontend/src/app/dashboard/mini-map/mini-map.component.ts diff --git a/projects/project-3/frontend/src/app/app.module.ts b/projects/project-3/frontend/src/app/app.module.ts index 735ee4c..31ef684 100644 --- a/projects/project-3/frontend/src/app/app.module.ts +++ b/projects/project-3/frontend/src/app/app.module.ts @@ -33,6 +33,7 @@ import { TableComponent } from './dashboard/table/table.component'; import { RentDurationChartComponent } from './dashboard/rent-duration-chart/rent-duration-chart.component'; import { RentTimeChartComponent } from './dashboard/rent-time-chart/rent-time-chart.component'; import { UserInputComponent } from './dashboard/user-input/user-input.component'; +import { MiniMapComponent } from './dashboard/mini-map/mini-map.component'; @NgModule({ declarations: [ @@ -44,7 +45,8 @@ import { UserInputComponent } from './dashboard/user-input/user-input.component' TableComponent, RentDurationChartComponent, RentTimeChartComponent, - UserInputComponent + UserInputComponent, + MiniMapComponent ], imports: [ BrowserModule, diff --git a/projects/project-3/frontend/src/app/dashboard/dashboard.component.html b/projects/project-3/frontend/src/app/dashboard/dashboard.component.html index 42ec912..e10fb12 100644 --- a/projects/project-3/frontend/src/app/dashboard/dashboard.component.html +++ b/projects/project-3/frontend/src/app/dashboard/dashboard.component.html @@ -24,13 +24,7 @@ (startEndDate)="onSubmit($event)" >
- -
-
-
-
-
-
+
diff --git a/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts b/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts index 50b22f7..f654e13 100644 --- a/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts +++ b/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts @@ -1,8 +1,5 @@ -import {ChangeDetectionStrategy, Component, Injectable, OnInit, ViewChild} from '@angular/core'; -import {ActivatedRoute, Router} from '@angular/router'; -import {DashboardService} from '../service/dashboard.service'; +import {ChangeDetectionStrategy, Component, OnInit, ViewChild} from '@angular/core'; import {IDashboardCommonBikePoint} from '../service/domain/dashboard-common-bike-point'; -import {MapService} from '../service/map.service'; import { @@ -19,8 +16,6 @@ import { ApexXAxis, ApexYAxis } from 'ng-apexcharts'; -import {DateAdapter, MAT_DATE_FORMATS, NativeDateAdapter} from '@angular/material/core'; -import {formatDate} from '@angular/common'; import {TableComponent} from './table/table.component'; import {RentDurationChartComponent} from './rent-duration-chart/rent-duration-chart.component'; import {RentTimeChartComponent} from './rent-time-chart/rent-time-chart.component'; @@ -52,38 +47,15 @@ const chartHeight = 460; changeDetection: ChangeDetectionStrategy.Default, }) export class DashboardComponent implements OnInit { + @ViewChild(TableComponent) table: TableComponent; @ViewChild(RentDurationChartComponent) durationChart: RentDurationChartComponent; @ViewChild(RentTimeChartComponent) timeChart: RentTimeChartComponent; - public bikePointChartOptions: Partial; - - station: IDashboardCommonBikePoint; - maxStartDate: Date; - maxEndDate: Date; - - constructor( - private route: ActivatedRoute, - private router: Router, - private service: DashboardService, - private map: MapService, - ) { + constructor() { } ngOnInit(): void { - this.route.params.subscribe(params => { - this.service.fetchDashboardInit(params.id).then(data => { - this.station = data; - this.maxStartDate = new Date(data.maxStartDate); - this.maxEndDate = new Date(data.maxEndDate); - this.initDashboard(); - }); - }); - } - - async initDashboard(): Promise { - this.map.initDashboardMap(this.station.lat, this.station.lon, 17); - this.map.drawDashboardStationMarker(this.station); } async onSubmit(startEndDate: StartEndDate): Promise { diff --git a/projects/project-3/frontend/src/app/dashboard/mini-map/mini-map.component.html b/projects/project-3/frontend/src/app/dashboard/mini-map/mini-map.component.html new file mode 100644 index 0000000..5b03655 --- /dev/null +++ b/projects/project-3/frontend/src/app/dashboard/mini-map/mini-map.component.html @@ -0,0 +1,7 @@ + +
+
+
+
+
+
diff --git a/projects/project-3/frontend/src/app/dashboard/mini-map/mini-map.component.scss b/projects/project-3/frontend/src/app/dashboard/mini-map/mini-map.component.scss new file mode 100644 index 0000000..b0bd2eb --- /dev/null +++ b/projects/project-3/frontend/src/app/dashboard/mini-map/mini-map.component.scss @@ -0,0 +1,4 @@ +.mat-card { + padding: 1px 1px 1px; + margin: 10px; +} diff --git a/projects/project-3/frontend/src/app/dashboard/mini-map/mini-map.component.spec.ts b/projects/project-3/frontend/src/app/dashboard/mini-map/mini-map.component.spec.ts new file mode 100644 index 0000000..33dd02b --- /dev/null +++ b/projects/project-3/frontend/src/app/dashboard/mini-map/mini-map.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { MiniMapComponent } from './mini-map.component'; + +describe('MiniMapComponent', () => { + let component: MiniMapComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ MiniMapComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(MiniMapComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/projects/project-3/frontend/src/app/dashboard/mini-map/mini-map.component.ts b/projects/project-3/frontend/src/app/dashboard/mini-map/mini-map.component.ts new file mode 100644 index 0000000..fe20e69 --- /dev/null +++ b/projects/project-3/frontend/src/app/dashboard/mini-map/mini-map.component.ts @@ -0,0 +1,36 @@ +import { Component, OnInit } from '@angular/core'; +import {IDashboardCommonBikePoint} from '../../service/domain/dashboard-common-bike-point'; +import {ActivatedRoute} from '@angular/router'; +import {DashboardService} from '../../service/dashboard.service'; +import {MapService} from '../../service/map.service'; + +@Component({ + selector: 'app-mini-map', + templateUrl: './mini-map.component.html', + styleUrls: ['./mini-map.component.scss'] +}) +export class MiniMapComponent implements OnInit { + + bikePoint: IDashboardCommonBikePoint; + + constructor( + private route: ActivatedRoute, + private service: DashboardService, + private map: MapService + ) { } + + ngOnInit(): void { + this.route.params.subscribe(params => { + this.service.fetchDashboardInit(params.id).then(data => { + this.bikePoint = data; + this.initMap(); + }); + }); + } + + initMap(): void { + this.map.initDashboardMap(this.bikePoint.lat, this.bikePoint.lon, 17); + this.map.drawDashboardStationMarker(this.bikePoint); + } + +} diff --git a/projects/project-3/frontend/src/app/dashboard/user-input/user-input.component.ts b/projects/project-3/frontend/src/app/dashboard/user-input/user-input.component.ts index 481bfb4..1f7f7f7 100644 --- a/projects/project-3/frontend/src/app/dashboard/user-input/user-input.component.ts +++ b/projects/project-3/frontend/src/app/dashboard/user-input/user-input.component.ts @@ -74,6 +74,7 @@ export interface StartEndDate { ] }) export class UserInputComponent implements OnInit { + @Output() startEndDate: EventEmitter = new EventEmitter(); chartOptions: Partial; From bd21861368aefb66eb8990e85b06b3bca9b4e8a8 Mon Sep 17 00:00:00 2001 From: tim-herbst Date: Sat, 2 Jan 2021 16:29:06 +0100 Subject: [PATCH 080/104] fix loading error on chart rental-time --- .../rent-time-chart/rent-time-chart.component.ts | 14 ++++---------- .../src/app/dashboard/table/table.component.ts | 5 ++++- 2 files changed, 8 insertions(+), 11 deletions(-) diff --git a/projects/project-3/frontend/src/app/dashboard/rent-time-chart/rent-time-chart.component.ts b/projects/project-3/frontend/src/app/dashboard/rent-time-chart/rent-time-chart.component.ts index 8f4c881..39aa370 100644 --- a/projects/project-3/frontend/src/app/dashboard/rent-time-chart/rent-time-chart.component.ts +++ b/projects/project-3/frontend/src/app/dashboard/rent-time-chart/rent-time-chart.component.ts @@ -102,7 +102,7 @@ export class RentTimeChartComponent implements OnInit { }, chart: { toolbar: { - show: true + show: false }, type: 'line', height: '495', @@ -119,20 +119,14 @@ export class RentTimeChartComponent implements OnInit { }, legend: { show: true, - offsetY: 8, - itemMargin: { - horizontal: 5 - } }, xaxis: { title: { - text: 'time of the day', - offsetY: 17 + text: 'time of the day' }, categories: source.map(value => value.timeFrame), tickAmount: 24, - tickPlacement: 'between', - type: 'category' + tickPlacement: 'between' }, yaxis: [{ title: { @@ -154,7 +148,7 @@ export class RentTimeChartComponent implements OnInit { } }; }); - await this.chart.updateOptions(this.chartOptions); + } async onSubmit(actualStartDate: string, actualEndDate: string): Promise { diff --git a/projects/project-3/frontend/src/app/dashboard/table/table.component.ts b/projects/project-3/frontend/src/app/dashboard/table/table.component.ts index 0e6f0ea..e77992e 100644 --- a/projects/project-3/frontend/src/app/dashboard/table/table.component.ts +++ b/projects/project-3/frontend/src/app/dashboard/table/table.component.ts @@ -36,7 +36,6 @@ export class TableComponent implements OnInit { ngOnInit(): void { this.route.params.subscribe(params => { - this.selectionModel.clear(); this.colors = ['black', 'gray', 'green', 'orange', 'purple', 'red']; this.service.fetchDashboardInit(params.id).then(data => { this.bikePoint = data; @@ -48,6 +47,8 @@ export class TableComponent implements OnInit { } async initTable(): Promise { + this.selectionModel.clear(); + this.map.removeTableStationMarkerOnReload(); const initDate = this.maxEndDate.toISOString().substring(0, 10); await this.service.fetchDashboardStationTo(this.bikePoint.id, initDate, initDate).then(source => { this.stationToSource = this.setBikePointColorToSource(source); @@ -60,6 +61,8 @@ export class TableComponent implements OnInit { } async onSubmit(actualStartDate: string, actualEndDate: string): Promise { + this.selectionModel.clear(); + this.map.removeTableStationMarkerOnReload(); await this.service.fetchDashboardStationTo(this.bikePoint.id, actualStartDate, actualEndDate).then((source) => { this.colors = ['black', 'gray', 'green', 'orange', 'purple', 'red']; this.stationToSource = this.setBikePointColorToSource(source); From dcd5cb72c545daec0a74ee9c0ba8f1c3d55c2ca3 Mon Sep 17 00:00:00 2001 From: tim-herbst Date: Sat, 2 Jan 2021 18:04:14 +0100 Subject: [PATCH 081/104] centralize dashboardInit fetch to parent-component and give childs necessary input to reduce redundant api calls --- .../app/dashboard/dashboard.component.html | 21 ++- .../src/app/dashboard/dashboard.component.ts | 6 +- .../dashboard/mini-map/mini-map.component.ts | 7 +- .../rent-duration-chart.component.ts | 7 +- .../rent-time-chart.component.ts | 7 +- .../app/dashboard/table/table.component.ts | 17 +- .../user-input/user-input.component.ts | 178 +++++++++--------- 7 files changed, 129 insertions(+), 114 deletions(-) diff --git a/projects/project-3/frontend/src/app/dashboard/dashboard.component.html b/projects/project-3/frontend/src/app/dashboard/dashboard.component.html index e10fb12..3db34be 100644 --- a/projects/project-3/frontend/src/app/dashboard/dashboard.component.html +++ b/projects/project-3/frontend/src/app/dashboard/dashboard.component.html @@ -21,22 +21,35 @@
- +
- +
- +
- +
diff --git a/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts b/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts index f654e13..2814133 100644 --- a/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts +++ b/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts @@ -20,6 +20,7 @@ import {TableComponent} from './table/table.component'; import {RentDurationChartComponent} from './rent-duration-chart/rent-duration-chart.component'; import {RentTimeChartComponent} from './rent-time-chart/rent-time-chart.component'; import {StartEndDate} from './user-input/user-input.component'; +import {ActivatedRoute} from "@angular/router"; export type ChartOptions = { title: ApexTitleSubtitle; @@ -52,10 +53,13 @@ export class DashboardComponent implements OnInit { @ViewChild(RentDurationChartComponent) durationChart: RentDurationChartComponent; @ViewChild(RentTimeChartComponent) timeChart: RentTimeChartComponent; - constructor() { + bikePointId: string; + + constructor(private route: ActivatedRoute) { } ngOnInit(): void { + this.route.params.subscribe(params => this.bikePointId = params.id); } async onSubmit(startEndDate: StartEndDate): Promise { diff --git a/projects/project-3/frontend/src/app/dashboard/mini-map/mini-map.component.ts b/projects/project-3/frontend/src/app/dashboard/mini-map/mini-map.component.ts index fe20e69..f1d419a 100644 --- a/projects/project-3/frontend/src/app/dashboard/mini-map/mini-map.component.ts +++ b/projects/project-3/frontend/src/app/dashboard/mini-map/mini-map.component.ts @@ -1,4 +1,4 @@ -import { Component, OnInit } from '@angular/core'; +import {Component, Input, OnInit} from '@angular/core'; import {IDashboardCommonBikePoint} from '../../service/domain/dashboard-common-bike-point'; import {ActivatedRoute} from '@angular/router'; import {DashboardService} from '../../service/dashboard.service'; @@ -11,6 +11,7 @@ import {MapService} from '../../service/map.service'; }) export class MiniMapComponent implements OnInit { + @Input() bikePointId: string; bikePoint: IDashboardCommonBikePoint; constructor( @@ -20,12 +21,10 @@ export class MiniMapComponent implements OnInit { ) { } ngOnInit(): void { - this.route.params.subscribe(params => { - this.service.fetchDashboardInit(params.id).then(data => { + this.service.fetchDashboardInit(this.bikePointId).then(data => { this.bikePoint = data; this.initMap(); }); - }); } initMap(): void { diff --git a/projects/project-3/frontend/src/app/dashboard/rent-duration-chart/rent-duration-chart.component.ts b/projects/project-3/frontend/src/app/dashboard/rent-duration-chart/rent-duration-chart.component.ts index a5eda78..c8a09a6 100644 --- a/projects/project-3/frontend/src/app/dashboard/rent-duration-chart/rent-duration-chart.component.ts +++ b/projects/project-3/frontend/src/app/dashboard/rent-duration-chart/rent-duration-chart.component.ts @@ -1,4 +1,4 @@ -import {Component, OnInit, ViewChild} from '@angular/core'; +import {Component, Input, OnInit, ViewChild} from '@angular/core'; import { ApexAxisChartSeries, ApexChart, @@ -44,6 +44,7 @@ const chartType = 'duration'; }) export class RentDurationChartComponent implements OnInit { + @Input() bikePointId: string; @ViewChild(ChartComponent) chart: ChartComponent; chartOptions: Partial; @@ -67,14 +68,12 @@ export class RentDurationChartComponent implements OnInit { } ngOnInit(): void { - this.route.params.subscribe(params => { - this.service.fetchDashboardInit(params.id).then(data => { + this.service.fetchDashboardInit(this.bikePointId).then(data => { this.bikePoint = data; this.maxStartDate = new Date(data.maxStartDate); this.maxEndDate = new Date(data.maxEndDate); this.initChart().catch(error => console.log(error)); }); - }); } async initChart(): Promise { diff --git a/projects/project-3/frontend/src/app/dashboard/rent-time-chart/rent-time-chart.component.ts b/projects/project-3/frontend/src/app/dashboard/rent-time-chart/rent-time-chart.component.ts index 39aa370..73ffe39 100644 --- a/projects/project-3/frontend/src/app/dashboard/rent-time-chart/rent-time-chart.component.ts +++ b/projects/project-3/frontend/src/app/dashboard/rent-time-chart/rent-time-chart.component.ts @@ -1,4 +1,4 @@ -import {Component, OnInit, ViewChild} from '@angular/core'; +import {Component, Input, OnInit, ViewChild} from '@angular/core'; import { ApexAxisChartSeries, ApexChart, @@ -44,6 +44,7 @@ const chartType = 'time'; }) export class RentTimeChartComponent implements OnInit { + @Input() bikePointId: string; @ViewChild(ChartComponent) chart: ChartComponent; chartOptions: Partial; @@ -67,14 +68,12 @@ export class RentTimeChartComponent implements OnInit { } ngOnInit(): void { - this.route.params.subscribe(params => { - this.service.fetchDashboardInit(params.id).then(data => { + this.service.fetchDashboardInit(this.bikePointId).then(data => { this.bikePoint = data; this.maxStartDate = new Date(data.maxStartDate); this.maxEndDate = new Date(data.maxEndDate); this.initChart().catch(error => console.log(error)); }); - }); } async initChart(): Promise { diff --git a/projects/project-3/frontend/src/app/dashboard/table/table.component.ts b/projects/project-3/frontend/src/app/dashboard/table/table.component.ts index e77992e..72973e9 100644 --- a/projects/project-3/frontend/src/app/dashboard/table/table.component.ts +++ b/projects/project-3/frontend/src/app/dashboard/table/table.component.ts @@ -14,6 +14,9 @@ import {ActivatedRoute} from '@angular/router'; styleUrls: ['./table.component.scss'] }) export class TableComponent implements OnInit { + + @Input() bikePointId: string; + displayedColumnsTo: string[] = ['select', 'endStationName', 'number', 'avgDuration', 'marker']; displayedColumnsFrom: string[] = ['select', 'startStationName', 'number', 'avgDuration', 'marker']; stationToSource = new MatTableDataSource(); @@ -35,14 +38,12 @@ export class TableComponent implements OnInit { } ngOnInit(): void { - this.route.params.subscribe(params => { - this.colors = ['black', 'gray', 'green', 'orange', 'purple', 'red']; - this.service.fetchDashboardInit(params.id).then(data => { - this.bikePoint = data; - this.maxStartDate = new Date(data.maxStartDate); - this.maxEndDate = new Date(data.maxEndDate); - this.initTable(); - }); + this.colors = ['black', 'gray', 'green', 'orange', 'purple', 'red']; + this.service.fetchDashboardInit(this.bikePointId).then(data => { + this.bikePoint = data; + this.maxStartDate = new Date(data.maxStartDate); + this.maxEndDate = new Date(data.maxEndDate); + this.initTable().catch(error => console.log(error)); }); } diff --git a/projects/project-3/frontend/src/app/dashboard/user-input/user-input.component.ts b/projects/project-3/frontend/src/app/dashboard/user-input/user-input.component.ts index 1f7f7f7..96ae078 100644 --- a/projects/project-3/frontend/src/app/dashboard/user-input/user-input.component.ts +++ b/projects/project-3/frontend/src/app/dashboard/user-input/user-input.component.ts @@ -1,4 +1,4 @@ -import {Component, EventEmitter, Injectable, OnInit, Output} from '@angular/core'; +import {Component, EventEmitter, Injectable, Input, OnInit, Output} from '@angular/core'; import {IDashboardCommonBikePoint} from '../../service/domain/dashboard-common-bike-point'; import {FormBuilder, FormControl, FormGroup} from '@angular/forms'; import {IMapBikePoint} from '../../service/domain/map-bike-point'; @@ -75,6 +75,7 @@ export interface StartEndDate { }) export class UserInputComponent implements OnInit { + @Input() bikePointId: string; @Output() startEndDate: EventEmitter = new EventEmitter(); chartOptions: Partial; @@ -109,102 +110,101 @@ export class UserInputComponent implements OnInit { end: new FormControl() }) }); - this.route.params.subscribe(params => { - this.service.fetchDashboardInit(params.id).then(data => { - this.station = data; - this.maxStartDate = new Date(data.maxStartDate); - this.maxEndDate = new Date(data.maxEndDate); - this.initInput().catch(error => console.log(error)); - }); - this.service.fetchBikePointForStatus(params.id).then(data => { - this.bikePoint = data; - const NbBlockedDocks = data.status.NbDocks - data.status.NbBikes - data.status.NbEmptyDocks; - this.chartOptions = { - subtitle: { - text: 'This chart visualizes the availability of the bikes', - offsetX: 20, - offsetY: 15, - style: { - fontSize: '15px' - } + this.service.fetchDashboardInit(this.bikePointId).then(data => { + this.station = data; + this.maxStartDate = new Date(data.maxStartDate); + this.maxEndDate = new Date(data.maxEndDate); + this.initInput().catch(error => console.log(error)); + }); + this.service.fetchBikePointForStatus(this.bikePointId).then(data => { + this.bikePoint = data; + const NbBlockedDocks = data.status.NbDocks - data.status.NbBikes - data.status.NbEmptyDocks; + this.chartOptions = { + subtitle: { + text: 'This chart visualizes the availability of the bikes', + offsetX: 20, + offsetY: 15, + style: { + fontSize: '15px' + } + }, + series: [ + { + name: 'Bikes', + data: [data.status.NbBikes] }, - series: [ - { - name: 'Bikes', - data: [data.status.NbBikes] - }, - { - name: 'Empty docks', - data: [data.status.NbEmptyDocks] - }, - { - name: 'Blocked docks', - data: [NbBlockedDocks] - } - ], - colors: ['#51ca49', '#8f8e8e', '#f00'], - chart: { - type: 'bar', - height: 180, - stacked: true, - toolbar: { - show: false - } + { + name: 'Empty docks', + data: [data.status.NbEmptyDocks] }, - plotOptions: { - bar: { - horizontal: true, - dataLabels: { - position: 'center' - } + { + name: 'Blocked docks', + data: [NbBlockedDocks] + } + ], + colors: ['#51ca49', '#8f8e8e', '#f00'], + chart: { + type: 'bar', + height: 180, + stacked: true, + toolbar: { + show: false + } + }, + plotOptions: { + bar: { + horizontal: true, + dataLabels: { + position: 'center' } - }, - dataLabels: { - enabled: true, - style: { - fontSize: '20px', - colors: ['#fff'] - } - }, - stroke: { + } + }, + dataLabels: { + enabled: true, + style: { + fontSize: '20px', + colors: ['#fff'] + } + }, + stroke: { + show: false + }, + xaxis: { + labels: { show: false }, - xaxis: { - labels: { - show: false - }, - axisBorder: { - show: false - }, - axisTicks: { - show: false - } + axisBorder: { + show: false }, - yaxis: { - show: false, - title: { - text: undefined - }, - axisBorder: { - show: false - }, - min: 0, - max: data.status.NbDocks - }, - tooltip: { - enabled: false, - }, - fill: { - opacity: 1 - }, - legend: { - position: 'bottom', - horizontalAlign: 'right', - fontSize: '14px' + axisTicks: { + show: false } - }; - }); + }, + yaxis: { + show: false, + title: { + text: undefined + }, + axisBorder: { + show: false + }, + min: 0, + max: data.status.NbDocks + }, + tooltip: { + enabled: false, + }, + fill: { + opacity: 1 + }, + legend: { + position: 'bottom', + horizontalAlign: 'right', + fontSize: '14px' + } + }; }); + } async initInput(): Promise { From a3bf06075e2439290edb094a58bf1ab21376327b Mon Sep 17 00:00:00 2001 From: tim-herbst Date: Sat, 2 Jan 2021 18:11:21 +0100 Subject: [PATCH 082/104] Revert "centralize dashboardInit fetch to parent-component and give childs necessary input to reduce redundant api calls" This reverts commit dcd5cb72c545daec0a74ee9c0ba8f1c3d55c2ca3. --- .../app/dashboard/dashboard.component.html | 21 +- .../src/app/dashboard/dashboard.component.ts | 6 +- .../dashboard/mini-map/mini-map.component.ts | 7 +- .../rent-duration-chart.component.ts | 7 +- .../rent-time-chart.component.ts | 7 +- .../app/dashboard/table/table.component.ts | 17 +- .../user-input/user-input.component.ts | 188 +++++++++--------- 7 files changed, 119 insertions(+), 134 deletions(-) diff --git a/projects/project-3/frontend/src/app/dashboard/dashboard.component.html b/projects/project-3/frontend/src/app/dashboard/dashboard.component.html index 3db34be..e10fb12 100644 --- a/projects/project-3/frontend/src/app/dashboard/dashboard.component.html +++ b/projects/project-3/frontend/src/app/dashboard/dashboard.component.html @@ -21,35 +21,22 @@
- +
- +
- +
- +
diff --git a/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts b/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts index 2814133..f654e13 100644 --- a/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts +++ b/projects/project-3/frontend/src/app/dashboard/dashboard.component.ts @@ -20,7 +20,6 @@ import {TableComponent} from './table/table.component'; import {RentDurationChartComponent} from './rent-duration-chart/rent-duration-chart.component'; import {RentTimeChartComponent} from './rent-time-chart/rent-time-chart.component'; import {StartEndDate} from './user-input/user-input.component'; -import {ActivatedRoute} from "@angular/router"; export type ChartOptions = { title: ApexTitleSubtitle; @@ -53,13 +52,10 @@ export class DashboardComponent implements OnInit { @ViewChild(RentDurationChartComponent) durationChart: RentDurationChartComponent; @ViewChild(RentTimeChartComponent) timeChart: RentTimeChartComponent; - bikePointId: string; - - constructor(private route: ActivatedRoute) { + constructor() { } ngOnInit(): void { - this.route.params.subscribe(params => this.bikePointId = params.id); } async onSubmit(startEndDate: StartEndDate): Promise { diff --git a/projects/project-3/frontend/src/app/dashboard/mini-map/mini-map.component.ts b/projects/project-3/frontend/src/app/dashboard/mini-map/mini-map.component.ts index f1d419a..fe20e69 100644 --- a/projects/project-3/frontend/src/app/dashboard/mini-map/mini-map.component.ts +++ b/projects/project-3/frontend/src/app/dashboard/mini-map/mini-map.component.ts @@ -1,4 +1,4 @@ -import {Component, Input, OnInit} from '@angular/core'; +import { Component, OnInit } from '@angular/core'; import {IDashboardCommonBikePoint} from '../../service/domain/dashboard-common-bike-point'; import {ActivatedRoute} from '@angular/router'; import {DashboardService} from '../../service/dashboard.service'; @@ -11,7 +11,6 @@ import {MapService} from '../../service/map.service'; }) export class MiniMapComponent implements OnInit { - @Input() bikePointId: string; bikePoint: IDashboardCommonBikePoint; constructor( @@ -21,10 +20,12 @@ export class MiniMapComponent implements OnInit { ) { } ngOnInit(): void { - this.service.fetchDashboardInit(this.bikePointId).then(data => { + this.route.params.subscribe(params => { + this.service.fetchDashboardInit(params.id).then(data => { this.bikePoint = data; this.initMap(); }); + }); } initMap(): void { diff --git a/projects/project-3/frontend/src/app/dashboard/rent-duration-chart/rent-duration-chart.component.ts b/projects/project-3/frontend/src/app/dashboard/rent-duration-chart/rent-duration-chart.component.ts index c8a09a6..a5eda78 100644 --- a/projects/project-3/frontend/src/app/dashboard/rent-duration-chart/rent-duration-chart.component.ts +++ b/projects/project-3/frontend/src/app/dashboard/rent-duration-chart/rent-duration-chart.component.ts @@ -1,4 +1,4 @@ -import {Component, Input, OnInit, ViewChild} from '@angular/core'; +import {Component, OnInit, ViewChild} from '@angular/core'; import { ApexAxisChartSeries, ApexChart, @@ -44,7 +44,6 @@ const chartType = 'duration'; }) export class RentDurationChartComponent implements OnInit { - @Input() bikePointId: string; @ViewChild(ChartComponent) chart: ChartComponent; chartOptions: Partial; @@ -68,12 +67,14 @@ export class RentDurationChartComponent implements OnInit { } ngOnInit(): void { - this.service.fetchDashboardInit(this.bikePointId).then(data => { + this.route.params.subscribe(params => { + this.service.fetchDashboardInit(params.id).then(data => { this.bikePoint = data; this.maxStartDate = new Date(data.maxStartDate); this.maxEndDate = new Date(data.maxEndDate); this.initChart().catch(error => console.log(error)); }); + }); } async initChart(): Promise { diff --git a/projects/project-3/frontend/src/app/dashboard/rent-time-chart/rent-time-chart.component.ts b/projects/project-3/frontend/src/app/dashboard/rent-time-chart/rent-time-chart.component.ts index 73ffe39..39aa370 100644 --- a/projects/project-3/frontend/src/app/dashboard/rent-time-chart/rent-time-chart.component.ts +++ b/projects/project-3/frontend/src/app/dashboard/rent-time-chart/rent-time-chart.component.ts @@ -1,4 +1,4 @@ -import {Component, Input, OnInit, ViewChild} from '@angular/core'; +import {Component, OnInit, ViewChild} from '@angular/core'; import { ApexAxisChartSeries, ApexChart, @@ -44,7 +44,6 @@ const chartType = 'time'; }) export class RentTimeChartComponent implements OnInit { - @Input() bikePointId: string; @ViewChild(ChartComponent) chart: ChartComponent; chartOptions: Partial; @@ -68,12 +67,14 @@ export class RentTimeChartComponent implements OnInit { } ngOnInit(): void { - this.service.fetchDashboardInit(this.bikePointId).then(data => { + this.route.params.subscribe(params => { + this.service.fetchDashboardInit(params.id).then(data => { this.bikePoint = data; this.maxStartDate = new Date(data.maxStartDate); this.maxEndDate = new Date(data.maxEndDate); this.initChart().catch(error => console.log(error)); }); + }); } async initChart(): Promise { diff --git a/projects/project-3/frontend/src/app/dashboard/table/table.component.ts b/projects/project-3/frontend/src/app/dashboard/table/table.component.ts index 72973e9..e77992e 100644 --- a/projects/project-3/frontend/src/app/dashboard/table/table.component.ts +++ b/projects/project-3/frontend/src/app/dashboard/table/table.component.ts @@ -14,9 +14,6 @@ import {ActivatedRoute} from '@angular/router'; styleUrls: ['./table.component.scss'] }) export class TableComponent implements OnInit { - - @Input() bikePointId: string; - displayedColumnsTo: string[] = ['select', 'endStationName', 'number', 'avgDuration', 'marker']; displayedColumnsFrom: string[] = ['select', 'startStationName', 'number', 'avgDuration', 'marker']; stationToSource = new MatTableDataSource(); @@ -38,12 +35,14 @@ export class TableComponent implements OnInit { } ngOnInit(): void { - this.colors = ['black', 'gray', 'green', 'orange', 'purple', 'red']; - this.service.fetchDashboardInit(this.bikePointId).then(data => { - this.bikePoint = data; - this.maxStartDate = new Date(data.maxStartDate); - this.maxEndDate = new Date(data.maxEndDate); - this.initTable().catch(error => console.log(error)); + this.route.params.subscribe(params => { + this.colors = ['black', 'gray', 'green', 'orange', 'purple', 'red']; + this.service.fetchDashboardInit(params.id).then(data => { + this.bikePoint = data; + this.maxStartDate = new Date(data.maxStartDate); + this.maxEndDate = new Date(data.maxEndDate); + this.initTable(); + }); }); } diff --git a/projects/project-3/frontend/src/app/dashboard/user-input/user-input.component.ts b/projects/project-3/frontend/src/app/dashboard/user-input/user-input.component.ts index 96ae078..1f7f7f7 100644 --- a/projects/project-3/frontend/src/app/dashboard/user-input/user-input.component.ts +++ b/projects/project-3/frontend/src/app/dashboard/user-input/user-input.component.ts @@ -1,4 +1,4 @@ -import {Component, EventEmitter, Injectable, Input, OnInit, Output} from '@angular/core'; +import {Component, EventEmitter, Injectable, OnInit, Output} from '@angular/core'; import {IDashboardCommonBikePoint} from '../../service/domain/dashboard-common-bike-point'; import {FormBuilder, FormControl, FormGroup} from '@angular/forms'; import {IMapBikePoint} from '../../service/domain/map-bike-point'; @@ -75,7 +75,6 @@ export interface StartEndDate { }) export class UserInputComponent implements OnInit { - @Input() bikePointId: string; @Output() startEndDate: EventEmitter = new EventEmitter(); chartOptions: Partial; @@ -110,101 +109,102 @@ export class UserInputComponent implements OnInit { end: new FormControl() }) }); - this.service.fetchDashboardInit(this.bikePointId).then(data => { - this.station = data; - this.maxStartDate = new Date(data.maxStartDate); - this.maxEndDate = new Date(data.maxEndDate); - this.initInput().catch(error => console.log(error)); - }); - this.service.fetchBikePointForStatus(this.bikePointId).then(data => { - this.bikePoint = data; - const NbBlockedDocks = data.status.NbDocks - data.status.NbBikes - data.status.NbEmptyDocks; - this.chartOptions = { - subtitle: { - text: 'This chart visualizes the availability of the bikes', - offsetX: 20, - offsetY: 15, - style: { - fontSize: '15px' - } - }, - series: [ - { - name: 'Bikes', - data: [data.status.NbBikes] - }, - { - name: 'Empty docks', - data: [data.status.NbEmptyDocks] - }, - { - name: 'Blocked docks', - data: [NbBlockedDocks] - } - ], - colors: ['#51ca49', '#8f8e8e', '#f00'], - chart: { - type: 'bar', - height: 180, - stacked: true, - toolbar: { - show: false - } - }, - plotOptions: { - bar: { - horizontal: true, - dataLabels: { - position: 'center' + this.route.params.subscribe(params => { + this.service.fetchDashboardInit(params.id).then(data => { + this.station = data; + this.maxStartDate = new Date(data.maxStartDate); + this.maxEndDate = new Date(data.maxEndDate); + this.initInput().catch(error => console.log(error)); + }); + this.service.fetchBikePointForStatus(params.id).then(data => { + this.bikePoint = data; + const NbBlockedDocks = data.status.NbDocks - data.status.NbBikes - data.status.NbEmptyDocks; + this.chartOptions = { + subtitle: { + text: 'This chart visualizes the availability of the bikes', + offsetX: 20, + offsetY: 15, + style: { + fontSize: '15px' } + }, + series: [ + { + name: 'Bikes', + data: [data.status.NbBikes] + }, + { + name: 'Empty docks', + data: [data.status.NbEmptyDocks] + }, + { + name: 'Blocked docks', + data: [NbBlockedDocks] + } + ], + colors: ['#51ca49', '#8f8e8e', '#f00'], + chart: { + type: 'bar', + height: 180, + stacked: true, + toolbar: { + show: false + } + }, + plotOptions: { + bar: { + horizontal: true, + dataLabels: { + position: 'center' + } + } + }, + dataLabels: { + enabled: true, + style: { + fontSize: '20px', + colors: ['#fff'] + } + }, + stroke: { + show: false + }, + xaxis: { + labels: { + show: false + }, + axisBorder: { + show: false + }, + axisTicks: { + show: false + } + }, + yaxis: { + show: false, + title: { + text: undefined + }, + axisBorder: { + show: false + }, + min: 0, + max: data.status.NbDocks + }, + tooltip: { + enabled: false, + }, + fill: { + opacity: 1 + }, + legend: { + position: 'bottom', + horizontalAlign: 'right', + fontSize: '14px' } - }, - dataLabels: { - enabled: true, - style: { - fontSize: '20px', - colors: ['#fff'] - } - }, - stroke: { - show: false - }, - xaxis: { - labels: { - show: false - }, - axisBorder: { - show: false - }, - axisTicks: { - show: false - } - }, - yaxis: { - show: false, - title: { - text: undefined - }, - axisBorder: { - show: false - }, - min: 0, - max: data.status.NbDocks - }, - tooltip: { - enabled: false, - }, - fill: { - opacity: 1 - }, - legend: { - position: 'bottom', - horizontalAlign: 'right', - fontSize: '14px' - } - }; + }; + }); }); - } async initInput(): Promise { From 9c38fe4c769ae63830d9ec6aa667d4dd30c672b6 Mon Sep 17 00:00:00 2001 From: tim-herbst Date: Sat, 2 Jan 2021 23:17:26 +0100 Subject: [PATCH 083/104] finish work on polyline * add legend --- .../frontend/src/app/service/map.service.ts | 61 +++++++++++++------ projects/project-3/frontend/src/styles.scss | 33 ++++++++++ 2 files changed, 75 insertions(+), 19 deletions(-) diff --git a/projects/project-3/frontend/src/app/service/map.service.ts b/projects/project-3/frontend/src/app/service/map.service.ts index f10b99b..15c5cbc 100644 --- a/projects/project-3/frontend/src/app/service/map.service.ts +++ b/projects/project-3/frontend/src/app/service/map.service.ts @@ -6,14 +6,13 @@ import {HttpClient} from '@angular/common/http'; import {environment} from '../../environments/environment'; import {PopUpService} from './pop-up.service'; import {IMapBikePoint} from './domain/map-bike-point'; -import {Router} from '@angular/router'; import {IDashboardCommonBikePoint} from './domain/dashboard-common-bike-point'; const createIcon = color => L.icon({ iconUrl: `../../assets/bike-point-${color}.png`, iconSize: [45, 45], - iconAnchor: [21, 40], + iconAnchor: [23, 36], popupAnchor: [1, -35] }); @@ -28,13 +27,15 @@ export class MapService { mapOverlays: any = {}; miniMapMarker: L.layerGroup; markerLayer = []; + polylineLayer = []; dashBoardMarker = L.marker; + dashBoardBikePoint: IDashboardCommonBikePoint; layerControl = L.control(null); + legend = L.control({position: 'bottomleft'}); constructor( private client: HttpClient, - private popUpService: PopUpService, - private router: Router + private popUpService: PopUpService ) { } @@ -140,34 +141,56 @@ export class MapService { } public drawDashboardStationMarker(station: IDashboardCommonBikePoint): void { + this.dashBoardBikePoint = station; this.dashBoardMarker = L.marker([station.lat, station.lon], {icon: createIcon('blue')}).addTo(this.miniMap); this.dashBoardMarker.on('mouseover', e => e.target.bindPopup(`

${station.commonName}

`).openPopup()); this.dashBoardMarker.on('mouseout', e => e.target.closePopup()); } - public removeTableStationMarkerOnReload(): void { - if (this.markerLayer) { - this.markerLayer.forEach(marker => { - this.miniMap.removeLayer(marker); - }); - this.markerLayer = []; - } - } - public drawTableStationMarker(bikePoints: any[]): void { - if (this.markerLayer) { - this.markerLayer.forEach(marker => { - this.miniMap.removeLayer(marker); - }); - this.markerLayer = []; - } + this.removeOverlayOnMiniMap(); for (const point of bikePoints) { const marker = L.marker([point.stationLat, point.stationLon], {icon: createIcon(point.color)}).addTo(this.miniMap); marker.on('mouseover', e => e.target.bindPopup(`

${point.stationName}

`).openPopup()); marker.on('mouseout', e => e.target.closePopup()); + this.drawLineOnMiniMap(marker, point); this.markerLayer.push(marker); this.miniMap.fitBounds(L.featureGroup([...this.markerLayer, this.dashBoardMarker]).getBounds()); } + this.drawLegend(); + } + + drawLegend(): void { + this.legend.onAdd = map => { + const div = L.DomUtil.create('div', 'legend'); + div.innerHTML += `

trips from/to bike station

`; + div.innerHTML += `rents with ${this.dashBoardBikePoint.commonName} as destination
`; + div.innerHTML += `rents with ${this.dashBoardBikePoint.commonName} as start
`; + div.innerHTML += `rents with ${this.dashBoardBikePoint.commonName} as destination and start`; + return div; + }; + this.legend.addTo(this.miniMap); + } + + public removeOverlayOnMiniMap(): void { + if (this.markerLayer) { + this.markerLayer.forEach(marker => { + this.miniMap.removeLayer(marker); + }); + this.markerLayer = []; + this.polylineLayer.forEach(polyline => { + this.miniMap.removeLayer(polyline); + }); + this.polylineLayer = []; + } + this.legend.remove(); + } + + private drawLineOnMiniMap(marker: L.marker, bikePoint: any): void { + const latlngs = []; + latlngs.push(this.dashBoardMarker.getLatLng()); + latlngs.push(marker.getLatLng()); + this.polylineLayer.push(L.polyline(latlngs, {color: bikePoint.polyLineColor}).addTo(this.miniMap)); } private drawMapControl(): void { diff --git a/projects/project-3/frontend/src/styles.scss b/projects/project-3/frontend/src/styles.scss index 117d188..7356be0 100644 --- a/projects/project-3/frontend/src/styles.scss +++ b/projects/project-3/frontend/src/styles.scss @@ -11,3 +11,36 @@ body { @import "~leaflet/dist/leaflet.css"; @import "~leaflet.markercluster/dist/MarkerCluster.css"; @import "~leaflet.markercluster/dist/MarkerCluster.Default.css"; + +.legend { + padding: 6px 8px; + font: 14px Arial, Helvetica, sans-serif; + background: white; + background: rgba(255, 255, 255, 0.8); + line-height: 24px; + color: #555; +} +.legend h4 { + text-align: center; + font-size: 16px; + margin: 2px 12px 8px; + color: #777; +} + +.legend span { + position: relative; + bottom: 3px; +} + +.legend i { + width: 18px; + height: 18px; + float: left; + margin: 0 8px 0 0; + opacity: 0.7; +} + +.legend i.icon { + background-size: 18px; + background-color: rgba(255, 255, 255, 1); +} From f2dd47684b69d2c3a0c58e1acd3bb771524f4baf Mon Sep 17 00:00:00 2001 From: tim-herbst Date: Sat, 2 Jan 2021 23:21:56 +0100 Subject: [PATCH 084/104] add spinner to table --- .../app/dashboard/table/table.component.html | 15 +++++ .../app/dashboard/table/table.component.ts | 60 +++++++++++++++---- 2 files changed, 65 insertions(+), 10 deletions(-) diff --git a/projects/project-3/frontend/src/app/dashboard/table/table.component.html b/projects/project-3/frontend/src/app/dashboard/table/table.component.html index 18d02db..f832e81 100644 --- a/projects/project-3/frontend/src/app/dashboard/table/table.component.html +++ b/projects/project-3/frontend/src/app/dashboard/table/table.component.html @@ -35,6 +35,13 @@ +
+ + +
@@ -73,4 +80,12 @@
+
+ + +
+ diff --git a/projects/project-3/frontend/src/app/dashboard/table/table.component.ts b/projects/project-3/frontend/src/app/dashboard/table/table.component.ts index e77992e..723f76a 100644 --- a/projects/project-3/frontend/src/app/dashboard/table/table.component.ts +++ b/projects/project-3/frontend/src/app/dashboard/table/table.component.ts @@ -1,4 +1,4 @@ -import {Component, Input, OnInit} from '@angular/core'; +import {Component, OnInit} from '@angular/core'; import {MatTableDataSource} from '@angular/material/table'; import {IDashboardCommonBikePoint} from '../../service/domain/dashboard-common-bike-point'; import {SelectionModel} from '@angular/cdk/collections'; @@ -26,6 +26,8 @@ export class TableComponent implements OnInit { bikePoint: IDashboardCommonBikePoint; maxStartDate: Date; maxEndDate: Date; + isLoadingToSource: boolean; + isLoadingFromSource: boolean; constructor( private route: ActivatedRoute, @@ -35,6 +37,8 @@ export class TableComponent implements OnInit { } ngOnInit(): void { + this.isLoadingToSource = true; + this.isLoadingFromSource = true; this.route.params.subscribe(params => { this.colors = ['black', 'gray', 'green', 'orange', 'purple', 'red']; this.service.fetchDashboardInit(params.id).then(data => { @@ -48,32 +52,52 @@ export class TableComponent implements OnInit { async initTable(): Promise { this.selectionModel.clear(); - this.map.removeTableStationMarkerOnReload(); + this.map.removeOverlayOnMiniMap(); const initDate = this.maxEndDate.toISOString().substring(0, 10); await this.service.fetchDashboardStationTo(this.bikePoint.id, initDate, initDate).then(source => { this.stationToSource = this.setBikePointColorToSource(source); this.iterableToSource = source; + this.iterableToSource.forEach(bikePoint => { + bikePoint.polyLineColor = 'green'; + }); + this.isLoadingToSource = false; }); - await this.service.fetchDashboardStationFrom(this.bikePoint.id, initDate, initDate).then(source => { + this.service.fetchDashboardStationFrom(this.bikePoint.id, initDate, initDate).then(source => { this.stationFromSource = this.setBikePointColorFromSource(source); this.iterableFromSource = source; + this.iterableFromSource.forEach(bikePoint => { + bikePoint.polyLineColor = 'red'; + }); + this.isLoadingFromSource = false; }); } async onSubmit(actualStartDate: string, actualEndDate: string): Promise { + this.resetTableSourcesToDisplaySpinner(); this.selectionModel.clear(); - this.map.removeTableStationMarkerOnReload(); + this.map.removeOverlayOnMiniMap(); await this.service.fetchDashboardStationTo(this.bikePoint.id, actualStartDate, actualEndDate).then((source) => { this.colors = ['black', 'gray', 'green', 'orange', 'purple', 'red']; - this.stationToSource = this.setBikePointColorToSource(source); - this.iterableToSource = source; + this.stationToSource = source; + this.iterableToSource = this.setBikePointColorToSource(source); + this.isLoadingToSource = false; }); - await this.service.fetchDashboardStationFrom(this.bikePoint.id, actualStartDate, actualEndDate).then((source) => { - this.stationFromSource = this.setBikePointColorFromSource(source); - this.iterableFromSource = source; + this.service.fetchDashboardStationFrom(this.bikePoint.id, actualStartDate, actualEndDate).then((source) => { + this.stationFromSource = source; + this.iterableFromSource = this.setBikePointColorFromSource(source); + this.isLoadingFromSource = false; }); } + resetTableSourcesToDisplaySpinner(): void { + this.isLoadingToSource = true; + this.isLoadingFromSource = true; + this.stationToSource = null; + this.stationFromSource = null; + this.iterableToSource = []; + this.iterableFromSource = []; + } + public drawIconInTable(bikePoint: any): string { return `../../assets/bike-point-${bikePoint.color}.png`; } @@ -83,7 +107,7 @@ export class TableComponent implements OnInit { } selectRow(selection: MatCheckboxChange, row): void { - const markerToDisplay = []; + let markerToDisplay = []; this.iterableToSource.forEach(point => { if (point.stationId === row.stationId) { this.selectionModel.toggle(point); @@ -97,9 +121,25 @@ export class TableComponent implements OnInit { this.selectionModel.selected.forEach(point => { markerToDisplay.push(point); }); + markerToDisplay = this.changePolyLineColorForDuplicateBikePoints(markerToDisplay); this.map.drawTableStationMarker(markerToDisplay); } + changePolyLineColorForDuplicateBikePoints(array: any[]): any[] { + const id = array.map(item => item.stationId); + const duplicates = id.filter((value, index) => { + return id.indexOf(value) !== index; + }); + duplicates.forEach(stationId => { + array.forEach(bikePoint => { + if (bikePoint.stationId === stationId) { + bikePoint.polyLineColor = 'blue'; + } + }); + }); + return array; + } + setBikePointColorToSource(source): any { for (const station of source) { if (station.stationId === this.bikePoint.id) { From c91a0f987220fbbd601eeb63e598dc177648cca2 Mon Sep 17 00:00:00 2001 From: tim-herbst Date: Sat, 2 Jan 2021 23:24:33 +0100 Subject: [PATCH 085/104] fix display misconsumption in map-legend from cube to line --- projects/project-3/frontend/src/styles.scss | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/projects/project-3/frontend/src/styles.scss b/projects/project-3/frontend/src/styles.scss index 7356be0..b43caff 100644 --- a/projects/project-3/frontend/src/styles.scss +++ b/projects/project-3/frontend/src/styles.scss @@ -34,9 +34,9 @@ body { .legend i { width: 18px; - height: 18px; + height: 3px; float: left; - margin: 0 8px 0 0; + margin: 7px 8px 0 0; opacity: 0.7; } From 52e68a4f28294b482f4eeb07f1b304fa9df245e9 Mon Sep 17 00:00:00 2001 From: tim-herbst Date: Sat, 2 Jan 2021 23:53:30 +0100 Subject: [PATCH 086/104] add progress-spinner to charts --- .../rent-duration-chart.component.html | 10 +++++++++- .../rent-duration-chart.component.ts | 14 ++++++++++---- .../rent-time-chart.component.html | 10 +++++++++- .../rent-time-chart.component.ts | 17 ++++++++++++----- .../src/app/dashboard/table/table.component.ts | 8 ++++---- 5 files changed, 44 insertions(+), 15 deletions(-) diff --git a/projects/project-3/frontend/src/app/dashboard/rent-duration-chart/rent-duration-chart.component.html b/projects/project-3/frontend/src/app/dashboard/rent-duration-chart/rent-duration-chart.component.html index 2141b1d..f282e7a 100644 --- a/projects/project-3/frontend/src/app/dashboard/rent-duration-chart/rent-duration-chart.component.html +++ b/projects/project-3/frontend/src/app/dashboard/rent-duration-chart/rent-duration-chart.component.html @@ -6,7 +6,7 @@ The time it takes for a rent which has the current station as origin is displayed here. - +
+
+ + +
diff --git a/projects/project-3/frontend/src/app/dashboard/rent-duration-chart/rent-duration-chart.component.ts b/projects/project-3/frontend/src/app/dashboard/rent-duration-chart/rent-duration-chart.component.ts index a5eda78..58c9926 100644 --- a/projects/project-3/frontend/src/app/dashboard/rent-duration-chart/rent-duration-chart.component.ts +++ b/projects/project-3/frontend/src/app/dashboard/rent-duration-chart/rent-duration-chart.component.ts @@ -50,6 +50,7 @@ export class RentDurationChartComponent implements OnInit { bikePoint: IDashboardCommonBikePoint; maxStartDate: Date; maxEndDate: Date; + isLoading: boolean; constructor( private route: ActivatedRoute, @@ -67,6 +68,7 @@ export class RentDurationChartComponent implements OnInit { } ngOnInit(): void { + this.isLoading = true; this.route.params.subscribe(params => { this.service.fetchDashboardInit(params.id).then(data => { this.bikePoint = data; @@ -80,6 +82,7 @@ export class RentDurationChartComponent implements OnInit { async initChart(): Promise { const initDate = this.maxEndDate.toISOString().substring(0, 10); await this.service.fetchDashboardStationCharts(this.bikePoint.id, initDate, initDate, chartType).then(source => { + this.isLoading = false; this.chartOptions = { series: [ { @@ -133,20 +136,23 @@ export class RentDurationChartComponent implements OnInit { opacity: 1 } }; - this.chart.updateOptions(this.chartOptions); }); } async onSubmit(actualStartDate: string, actualEndDate: string): Promise { + this.isLoading = true; await this.service.fetchDashboardStationCharts( this.bikePoint.id, actualStartDate, actualEndDate, chartType ).then(source => { - this.chart.updateSeries([{ - data: source.map(value => value.number) - }]); + this.isLoading = false; + setTimeout(() => { + this.chart.updateSeries([{ + data: source.map(value => value.number) + }]); + }, 1000); }); } diff --git a/projects/project-3/frontend/src/app/dashboard/rent-time-chart/rent-time-chart.component.html b/projects/project-3/frontend/src/app/dashboard/rent-time-chart/rent-time-chart.component.html index 684c9e4..07037d5 100644 --- a/projects/project-3/frontend/src/app/dashboard/rent-time-chart/rent-time-chart.component.html +++ b/projects/project-3/frontend/src/app/dashboard/rent-time-chart/rent-time-chart.component.html @@ -8,7 +8,7 @@ - +
+
+ + +
diff --git a/projects/project-3/frontend/src/app/dashboard/rent-time-chart/rent-time-chart.component.ts b/projects/project-3/frontend/src/app/dashboard/rent-time-chart/rent-time-chart.component.ts index 39aa370..eafea56 100644 --- a/projects/project-3/frontend/src/app/dashboard/rent-time-chart/rent-time-chart.component.ts +++ b/projects/project-3/frontend/src/app/dashboard/rent-time-chart/rent-time-chart.component.ts @@ -50,6 +50,7 @@ export class RentTimeChartComponent implements OnInit { bikePoint: IDashboardCommonBikePoint; maxStartDate: Date; maxEndDate: Date; + isLoading: boolean; constructor( private route: ActivatedRoute, @@ -67,6 +68,7 @@ export class RentTimeChartComponent implements OnInit { } ngOnInit(): void { + this.isLoading = true; this.route.params.subscribe(params => { this.service.fetchDashboardInit(params.id).then(data => { this.bikePoint = data; @@ -80,6 +82,7 @@ export class RentTimeChartComponent implements OnInit { async initChart(): Promise { const initDate = this.maxEndDate.toISOString().substring(0, 10); await this.service.fetchDashboardStationCharts(this.bikePoint.id, initDate, initDate, chartType).then(source => { + this.isLoading = false; this.chartOptions = { series: [ { @@ -152,17 +155,21 @@ export class RentTimeChartComponent implements OnInit { } async onSubmit(actualStartDate: string, actualEndDate: string): Promise { + this.isLoading = true; await this.service.fetchDashboardStationCharts( this.bikePoint.id, actualStartDate, actualEndDate, chartType ).then(source => { - this.chart.updateSeries([{ - data: source.map(value => value.number) - }, { - data: source.map(value => Math.round(value.avgDuration / 60)) - }]); + this.isLoading = false; + setTimeout(() => { + this.chart.updateSeries([{ + data: source.map(value => value.number) + }, { + data: source.map(value => Math.round(value.avgDuration / 60)) + }]); + }, 1000); }); } diff --git a/projects/project-3/frontend/src/app/dashboard/table/table.component.ts b/projects/project-3/frontend/src/app/dashboard/table/table.component.ts index 723f76a..597761f 100644 --- a/projects/project-3/frontend/src/app/dashboard/table/table.component.ts +++ b/projects/project-3/frontend/src/app/dashboard/table/table.component.ts @@ -55,20 +55,20 @@ export class TableComponent implements OnInit { this.map.removeOverlayOnMiniMap(); const initDate = this.maxEndDate.toISOString().substring(0, 10); await this.service.fetchDashboardStationTo(this.bikePoint.id, initDate, initDate).then(source => { + this.isLoadingToSource = false; this.stationToSource = this.setBikePointColorToSource(source); this.iterableToSource = source; this.iterableToSource.forEach(bikePoint => { bikePoint.polyLineColor = 'green'; }); - this.isLoadingToSource = false; }); this.service.fetchDashboardStationFrom(this.bikePoint.id, initDate, initDate).then(source => { + this.isLoadingFromSource = false; this.stationFromSource = this.setBikePointColorFromSource(source); this.iterableFromSource = source; this.iterableFromSource.forEach(bikePoint => { bikePoint.polyLineColor = 'red'; }); - this.isLoadingFromSource = false; }); } @@ -78,14 +78,14 @@ export class TableComponent implements OnInit { this.map.removeOverlayOnMiniMap(); await this.service.fetchDashboardStationTo(this.bikePoint.id, actualStartDate, actualEndDate).then((source) => { this.colors = ['black', 'gray', 'green', 'orange', 'purple', 'red']; + this.isLoadingToSource = false; this.stationToSource = source; this.iterableToSource = this.setBikePointColorToSource(source); - this.isLoadingToSource = false; }); this.service.fetchDashboardStationFrom(this.bikePoint.id, actualStartDate, actualEndDate).then((source) => { + this.isLoadingFromSource = false; this.stationFromSource = source; this.iterableFromSource = this.setBikePointColorFromSource(source); - this.isLoadingFromSource = false; }); } From c73d99bc51569f958579245a54ac259f27de163b Mon Sep 17 00:00:00 2001 From: Marcel Schwarz Date: Sun, 3 Jan 2021 04:18:00 +0100 Subject: [PATCH 087/104] God damn, it's responsive now! --- projects/project-3/frontend/package-lock.json | 16249 +--------------- projects/project-3/frontend/package.json | 3 +- .../app/dashboard/dashboard.component.html | 44 +- .../app/dashboard/dashboard.component.scss | 82 +- .../mini-map/mini-map.component.html | 8 +- .../mini-map/mini-map.component.scss | 4 - .../rent-duration-chart.component.scss | 17 - .../rent-time-chart.component.scss | 17 - .../app/dashboard/table/table.component.html | 167 +- .../app/dashboard/table/table.component.scss | 9 +- .../user-input/user-input.component.html | 62 +- .../user-input/user-input.component.scss | 26 - projects/project-3/frontend/src/styles.scss | 6 + 13 files changed, 179 insertions(+), 16515 deletions(-) diff --git a/projects/project-3/frontend/package-lock.json b/projects/project-3/frontend/package-lock.json index 4d06410..d6e2ebb 100644 --- a/projects/project-3/frontend/package-lock.json +++ b/projects/project-3/frontend/package-lock.json @@ -1,16204 +1,8 @@ { "name": "frontend", "version": "0.0.0", - "lockfileVersion": 2, + "lockfileVersion": 1, "requires": true, - "packages": { - "": { - "version": "0.0.0", - "dependencies": { - "@angular/animations": "~10.2.0", - "@angular/cdk": "^10.2.7", - "@angular/common": "~10.2.0", - "@angular/compiler": "~10.2.0", - "@angular/core": "~10.2.0", - "@angular/flex-layout": "^10.0.0-beta.32", - "@angular/forms": "~10.2.0", - "@angular/material": "^10.2.7", - "@angular/platform-browser": "~10.2.0", - "@angular/platform-browser-dynamic": "~10.2.0", - "@angular/router": "~10.2.0", - "apexcharts": "^3.23.0", - "bootstrap": "^3.4.1", - "jquery": "^3.5.1", - "leaflet": "~1.3.1", - "leaflet.heat": "^0.2.0", - "leaflet.markercluster": "^1.4.1", - "ng-apexcharts": "^1.5.6", - "popper.js": "^1.14.3", - "rxjs": "~6.6.0", - "seconds-to-human-time": "^1.0.0", - "tslib": "^2.0.0", - "zone.js": "~0.10.2" - }, - "devDependencies": { - "@angular-devkit/build-angular": "~0.1002.0", - "@angular/cli": "~10.2.0", - "@angular/compiler-cli": "~10.2.0", - "@types/jasmine": "~3.5.0", - "@types/jasminewd2": "~2.0.3", - "@types/node": "^12.11.1", - "codelyzer": "^6.0.0", - "jasmine-core": "~3.6.0", - "jasmine-spec-reporter": "~5.0.0", - "karma": "~5.0.0", - "karma-chrome-launcher": "~3.1.0", - "karma-coverage-istanbul-reporter": "~3.0.2", - "karma-jasmine": "~4.0.0", - "karma-jasmine-html-reporter": "^1.5.0", - "protractor": "~7.0.0", - "ts-node": "~8.3.0", - "tslint": "~6.1.0", - "typescript": "~4.0.2" - } - }, - "node_modules/@angular-devkit/architect": { - "version": "0.1002.1", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1002.1.tgz", - "integrity": "sha512-vP27xCe++p3zm+zwSDXDm9/rsM71Q4MYidLLi0MQfo8wxsWS/4mWXycCBoMwDkvW44SPJ4Ds1/F46bb3/xRDvA==", - "dev": true, - "dependencies": { - "@angular-devkit/core": "10.2.1", - "rxjs": "6.6.2" - }, - "engines": { - "node": ">= 10.13.0", - "npm": ">= 6.11.0", - "yarn": ">= 1.13.0" - } - }, - "node_modules/@angular-devkit/architect/node_modules/rxjs": { - "version": "6.6.2", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.2.tgz", - "integrity": "sha512-BHdBMVoWC2sL26w//BCu3YzKT4s2jip/WhwsGEDmeKYBhKDZeYezVUnHatYB7L85v5xs0BAQmg6BEYJEKxBabg==", - "dev": true, - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "npm": ">=2.0.0" - } - }, - "node_modules/@angular-devkit/architect/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/@angular-devkit/build-angular": { - "version": "0.1002.1", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-0.1002.1.tgz", - "integrity": "sha512-z5asIOrkxandGT2NgVH3B5uiV0ncURfHpXer/E8q1q5pwY2pCCmvqF2f7tMWrR6j+1Q/Dy1jrpXTWdOUlUCFqw==", - "dev": true, - "dependencies": { - "@angular-devkit/architect": "0.1002.1", - "@angular-devkit/build-optimizer": "0.1002.1", - "@angular-devkit/build-webpack": "0.1002.1", - "@angular-devkit/core": "10.2.1", - "@babel/core": "7.11.1", - "@babel/generator": "7.11.0", - "@babel/plugin-transform-runtime": "7.11.0", - "@babel/preset-env": "7.11.0", - "@babel/runtime": "7.11.2", - "@babel/template": "7.10.4", - "@jsdevtools/coverage-istanbul-loader": "3.0.5", - "@ngtools/webpack": "10.2.1", - "autoprefixer": "9.8.6", - "babel-loader": "8.1.0", - "browserslist": "^4.9.1", - "cacache": "15.0.5", - "caniuse-lite": "^1.0.30001032", - "circular-dependency-plugin": "5.2.0", - "copy-webpack-plugin": "6.0.3", - "core-js": "3.6.4", - "css-loader": "4.2.2", - "cssnano": "4.1.10", - "file-loader": "6.0.0", - "find-cache-dir": "3.3.1", - "glob": "7.1.6", - "jest-worker": "26.3.0", - "karma-source-map-support": "1.4.0", - "less-loader": "6.2.0", - "license-webpack-plugin": "2.3.0", - "loader-utils": "2.0.0", - "mini-css-extract-plugin": "0.10.0", - "minimatch": "3.0.4", - "open": "7.2.0", - "parse5": "6.0.1", - "parse5-htmlparser2-tree-adapter": "6.0.1", - "pnp-webpack-plugin": "1.6.4", - "postcss": "7.0.32", - "postcss-import": "12.0.1", - "postcss-loader": "3.0.0", - "raw-loader": "4.0.1", - "regenerator-runtime": "0.13.7", - "resolve-url-loader": "3.1.2", - "rimraf": "3.0.2", - "rollup": "2.26.5", - "rxjs": "6.6.2", - "sass": "1.26.10", - "sass-loader": "10.0.1", - "semver": "7.3.2", - "source-map": "0.7.3", - "source-map-loader": "1.0.2", - "source-map-support": "0.5.19", - "speed-measure-webpack-plugin": "1.3.3", - "style-loader": "1.2.1", - "stylus": "0.54.8", - "stylus-loader": "3.0.2", - "terser": "5.3.0", - "terser-webpack-plugin": "4.1.0", - "tree-kill": "1.2.2", - "webpack": "4.44.1", - "webpack-dev-middleware": "3.7.2", - "webpack-dev-server": "3.11.0", - "webpack-merge": "4.2.2", - "webpack-sources": "1.4.3", - "webpack-subresource-integrity": "1.4.1", - "worker-plugin": "5.0.0" - }, - "engines": { - "node": ">= 10.13.0", - "npm": ">= 6.11.0", - "yarn": ">= 1.13.0" - } - }, - "node_modules/@angular-devkit/build-angular/node_modules/rxjs": { - "version": "6.6.2", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.2.tgz", - "integrity": "sha512-BHdBMVoWC2sL26w//BCu3YzKT4s2jip/WhwsGEDmeKYBhKDZeYezVUnHatYB7L85v5xs0BAQmg6BEYJEKxBabg==", - "dev": true, - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "npm": ">=2.0.0" - } - }, - "node_modules/@angular-devkit/build-angular/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/@angular-devkit/build-optimizer": { - "version": "0.1002.1", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.1002.1.tgz", - "integrity": "sha512-9TLbHVGlux/b/eAubiyd3MNS5xog+8MDABG/Y4vWQInWZVNfcSUY7fycbvlCAXLguSVUvjYP2AoPBGPow4mIMw==", - "dev": true, - "dependencies": { - "loader-utils": "2.0.0", - "source-map": "0.7.3", - "tslib": "2.0.1", - "typescript": "4.0.2", - "webpack-sources": "1.4.3" - }, - "bin": { - "build-optimizer": "src/build-optimizer/cli.js" - }, - "engines": { - "node": ">= 10.13.0", - "npm": ">= 6.11.0", - "yarn": ">= 1.13.0" - } - }, - "node_modules/@angular-devkit/build-optimizer/node_modules/tslib": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.1.tgz", - "integrity": "sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ==", - "dev": true - }, - "node_modules/@angular-devkit/build-optimizer/node_modules/typescript": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.0.2.tgz", - "integrity": "sha512-e4ERvRV2wb+rRZ/IQeb3jm2VxBsirQLpQhdxplZ2MEzGvDkkMmPglecnNDfSUBivMjP93vRbngYYDQqQ/78bcQ==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/@angular-devkit/build-webpack": { - "version": "0.1002.1", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1002.1.tgz", - "integrity": "sha512-RgTIgwGoHY+fBUEwZGhYrAi2RqqvLe5eHAPxRIG33nydZ6KLxD4XozqmCEx7EJwDws+HFiOhlAYoW12QhimK7w==", - "dev": true, - "dependencies": { - "@angular-devkit/architect": "0.1002.1", - "@angular-devkit/core": "10.2.1", - "rxjs": "6.6.2" - }, - "engines": { - "node": ">= 10.13.0", - "npm": ">= 6.11.0", - "yarn": ">= 1.13.0" - } - }, - "node_modules/@angular-devkit/build-webpack/node_modules/rxjs": { - "version": "6.6.2", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.2.tgz", - "integrity": "sha512-BHdBMVoWC2sL26w//BCu3YzKT4s2jip/WhwsGEDmeKYBhKDZeYezVUnHatYB7L85v5xs0BAQmg6BEYJEKxBabg==", - "dev": true, - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "npm": ">=2.0.0" - } - }, - "node_modules/@angular-devkit/build-webpack/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/@angular-devkit/core": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-10.2.1.tgz", - "integrity": "sha512-dzlF9Gl7KNt9sPYT2HYq6ySZYwKzkyYR5mrBj3DZOD0OQsoc21LvLkWAHNSL2iYGdHJQS1oJDNs8iRYxYIOY3w==", - "dev": true, - "dependencies": { - "ajv": "6.12.4", - "fast-json-stable-stringify": "2.1.0", - "magic-string": "0.25.7", - "rxjs": "6.6.2", - "source-map": "0.7.3" - }, - "engines": { - "node": ">= 10.13.0", - "npm": ">= 6.11.0", - "yarn": ">= 1.13.0" - } - }, - "node_modules/@angular-devkit/core/node_modules/rxjs": { - "version": "6.6.2", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.2.tgz", - "integrity": "sha512-BHdBMVoWC2sL26w//BCu3YzKT4s2jip/WhwsGEDmeKYBhKDZeYezVUnHatYB7L85v5xs0BAQmg6BEYJEKxBabg==", - "dev": true, - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "npm": ">=2.0.0" - } - }, - "node_modules/@angular-devkit/core/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/@angular-devkit/schematics": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-10.2.1.tgz", - "integrity": "sha512-0oMhB1eM7hg5Xf4U7r193zrNTGyxfzl2okBsLJPuVmkb3KCBGQOyHYmU5HjDNadPc5iCFc+Xo2+DSDvXGuLmaA==", - "dev": true, - "dependencies": { - "@angular-devkit/core": "10.2.1", - "ora": "5.0.0", - "rxjs": "6.6.2" - }, - "engines": { - "node": ">= 10.13.0", - "npm": ">= 6.11.0", - "yarn": ">= 1.13.0" - } - }, - "node_modules/@angular-devkit/schematics/node_modules/rxjs": { - "version": "6.6.2", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.2.tgz", - "integrity": "sha512-BHdBMVoWC2sL26w//BCu3YzKT4s2jip/WhwsGEDmeKYBhKDZeYezVUnHatYB7L85v5xs0BAQmg6BEYJEKxBabg==", - "dev": true, - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "npm": ">=2.0.0" - } - }, - "node_modules/@angular-devkit/schematics/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/@angular/animations": { - "version": "10.2.4", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-10.2.4.tgz", - "integrity": "sha512-ovlfHxY1C6yH6SdfWIG1WqB77GHfuJ4i3jItvf0qFSvbOHG8OOzrSOR6EVRJYTnre4r4pQ3V8cDFy3igBlWXUw==", - "dependencies": { - "tslib": "^2.0.0" - } - }, - "node_modules/@angular/cdk": { - "version": "10.2.7", - "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-10.2.7.tgz", - "integrity": "sha512-ZQjDfTRTn7JuAKsf3jiIdU2XBaxxGBi/ZWYv5Pb3HCl6B4PISsIE5VWRhkoUogoAB0MiFHpjnWeIqknJEm11YQ==", - "dependencies": { - "parse5": "^5.0.0", - "tslib": "^2.0.0" - }, - "optionalDependencies": { - "parse5": "^5.0.0" - } - }, - "node_modules/@angular/cdk/node_modules/parse5": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", - "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==", - "optional": true - }, - "node_modules/@angular/cli": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-10.2.1.tgz", - "integrity": "sha512-9u/IVZqESiNX7qsLDW31MPBFUJUqvc+zqq+ekEtjRopq32RQpAGFWfvRZCR6GyJd06gzUWcYeYKkpl1XFNBXUg==", - "dev": true, - "dependencies": { - "@angular-devkit/architect": "0.1002.1", - "@angular-devkit/core": "10.2.1", - "@angular-devkit/schematics": "10.2.1", - "@schematics/angular": "10.2.1", - "@schematics/update": "0.1002.1", - "@yarnpkg/lockfile": "1.1.0", - "ansi-colors": "4.1.1", - "debug": "4.1.1", - "ini": "1.3.6", - "inquirer": "7.3.3", - "npm-package-arg": "8.0.1", - "npm-pick-manifest": "6.1.0", - "open": "7.2.0", - "pacote": "9.5.12", - "read-package-tree": "5.3.1", - "rimraf": "3.0.2", - "semver": "7.3.2", - "symbol-observable": "1.2.0", - "universal-analytics": "0.4.23", - "uuid": "8.3.0" - }, - "bin": { - "ng": "bin/ng" - }, - "engines": { - "node": ">= 10.13.0", - "npm": ">= 6.11.0", - "yarn": ">= 1.13.0" - } - }, - "node_modules/@angular/cli/node_modules/ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/@angular/cli/node_modules/debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/@angular/cli/node_modules/uuid": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.0.tgz", - "integrity": "sha512-fX6Z5o4m6XsXBdli9g7DtWgAx+osMsRRZFKma1mIUsLCz6vRvv+pz5VNbyu9UEDzpMWulZfvpgb/cmDXVulYFQ==", - "dev": true, - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/@angular/common": { - "version": "10.2.4", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-10.2.4.tgz", - "integrity": "sha512-bBfsLJNDQaC2OI1mReDJuSZ/uBb7Pf3HVpRmlQKNIPllIxqX1hLH8I3Plodrns9m32JMJ6FMsQthcP0KMdRCJA==", - "dependencies": { - "tslib": "^2.0.0" - } - }, - "node_modules/@angular/compiler": { - "version": "10.2.4", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-10.2.4.tgz", - "integrity": "sha512-xkpDQJt9047eT+HPEoJoJ7TVN+yXIFL0EcYP9pE+jG/f7H8re6Nwf2sBXa91dyCYBanXGMRbivbXIjqLGOfzbA==", - "dependencies": { - "tslib": "^2.0.0" - } - }, - "node_modules/@angular/compiler-cli": { - "version": "10.2.4", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-10.2.4.tgz", - "integrity": "sha512-gpw7Px6c2EaVUiDrU4PLaxf5zk8oJ72Yq62YZ8k4Jd7Vhl39Bhx9a9/I3GFQzZ8X6W/VJMWfZRs3E7bm1krRkw==", - "dev": true, - "dependencies": { - "canonical-path": "1.0.0", - "chokidar": "^3.0.0", - "convert-source-map": "^1.5.1", - "dependency-graph": "^0.7.2", - "fs-extra": "4.0.2", - "magic-string": "^0.25.0", - "minimist": "^1.2.0", - "reflect-metadata": "^0.1.2", - "semver": "^6.3.0", - "source-map": "^0.6.1", - "sourcemap-codec": "^1.4.8", - "tslib": "^2.0.0", - "yargs": "^16.1.1" - }, - "bin": { - "ivy-ngcc": "ngcc/main-ivy-ngcc.js", - "ng-xi18n": "src/extract_i18n.js", - "ngc": "src/main.js", - "ngcc": "ngcc/main-ngcc.js" - }, - "engines": { - "node": ">=10.0" - } - }, - "node_modules/@angular/compiler-cli/node_modules/ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@angular/compiler-cli/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@angular/compiler-cli/node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/@angular/compiler-cli/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@angular/compiler-cli/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/@angular/compiler-cli/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/@angular/compiler-cli/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@angular/compiler-cli/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@angular/compiler-cli/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@angular/compiler-cli/node_modules/string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@angular/compiler-cli/node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@angular/compiler-cli/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@angular/compiler-cli/node_modules/y18n": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.5.tgz", - "integrity": "sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/@angular/compiler-cli/node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@angular/compiler-cli/node_modules/yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/@angular/core": { - "version": "10.2.4", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-10.2.4.tgz", - "integrity": "sha512-5xpAvmZwD9nZ8eWx10urjibqEeePGEiFXVMEn3IaJWgfdOcMmeSoioW9JUllT3w85+DlNVWbRbhz0YfE9a4jyw==", - "dependencies": { - "tslib": "^2.0.0" - } - }, - "node_modules/@angular/flex-layout": { - "version": "10.0.0-beta.32", - "resolved": "https://registry.npmjs.org/@angular/flex-layout/-/flex-layout-10.0.0-beta.32.tgz", - "integrity": "sha512-JvuY4dUoy5jyCTIrFiq7n30Znakh1pD3nbg0h0hs2r3t1OiDQb0ZSI1wcumosG/vYHsuJQTuNhbfaIZzA1x8nA==", - "dependencies": { - "tslib": "^2.0.0" - } - }, - "node_modules/@angular/forms": { - "version": "10.2.4", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-10.2.4.tgz", - "integrity": "sha512-nrag/3+sjclH5mYqgM9UKzjotMGDCYBlPMqLt2Mj8rIxtAPRxfKmzAhxf4lRw3RTzMvOLM0rBRJagpi5glyLEw==", - "dependencies": { - "tslib": "^2.0.0" - } - }, - "node_modules/@angular/material": { - "version": "10.2.7", - "resolved": "https://registry.npmjs.org/@angular/material/-/material-10.2.7.tgz", - "integrity": "sha512-uk6JkRrKHaM9VFMzX7pWC83YNLVgXPB3D8U1yjSOafCdWwrRZgUHGr8MPlSILCr3o2nxgg5SsKdWcWwHuXXUZA==", - "dependencies": { - "tslib": "^2.0.0" - } - }, - "node_modules/@angular/platform-browser": { - "version": "10.2.4", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-10.2.4.tgz", - "integrity": "sha512-gYewLxoTnxOxX3XXK959YiDaw8CEnksKIbK6RYuofIcB8dTL9AlS9/l22xdGifTXTkFjs8noO6i/WT5hCt49Ww==", - "dependencies": { - "tslib": "^2.0.0" - } - }, - "node_modules/@angular/platform-browser-dynamic": { - "version": "10.2.4", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-10.2.4.tgz", - "integrity": "sha512-+oON9ujv9EOC3yJVgnV/vy3262dpMKBFlQ+dHcr5rfk2WpsnyJ26R+Nhkaug9FEdmSo9w+GqowF5bodrtTOTlA==", - "dependencies": { - "tslib": "^2.0.0" - } - }, - "node_modules/@angular/router": { - "version": "10.2.4", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-10.2.4.tgz", - "integrity": "sha512-y3xMwZHWS84fbm3FoU8vTAeXaTuPd4ZfmZ3dhkG9c1tkVq/jCmc6pkqNxjv3L1iPenKrvt2bFhh+wCs+bcUPhw==", - "dependencies": { - "tslib": "^2.0.0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.10.4" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.12.7", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.12.7.tgz", - "integrity": "sha512-YaxPMGs/XIWtYqrdEOZOCPsVWfEoriXopnsz3/i7apYPXQ3698UFhS6dVT1KN5qOsWmVgw/FOrmQgpRaZayGsw==", - "dev": true - }, - "node_modules/@babel/core": { - "version": "7.11.1", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.11.1.tgz", - "integrity": "sha512-XqF7F6FWQdKGGWAzGELL+aCO1p+lRY5Tj5/tbT3St1G8NaH70jhhDIKknIZaDans0OQBG5wRAldROLHSt44BgQ==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.11.0", - "@babel/helper-module-transforms": "^7.11.0", - "@babel/helpers": "^7.10.4", - "@babel/parser": "^7.11.1", - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.11.0", - "@babel/types": "^7.11.0", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", - "json5": "^2.1.2", - "lodash": "^4.17.19", - "resolve": "^1.3.2", - "semver": "^5.4.1", - "source-map": "^0.5.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/@babel/core/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@babel/generator": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.11.0.tgz", - "integrity": "sha512-fEm3Uzw7Mc9Xi//qU20cBKatTfs2aOtKqmvy/Vm7RkJEGFQ4xc9myCfbXxqK//ZS8MR/ciOHw6meGASJuKmDfQ==", - "dev": true, - "dependencies": { - "@babel/types": "^7.11.0", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - } - }, - "node_modules/@babel/generator/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.12.10", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.10.tgz", - "integrity": "sha512-XplmVbC1n+KY6jL8/fgLVXXUauDIB+lD5+GsQEh6F6GBF1dq1qy4DP4yXWzDKcoqXB3X58t61e85Fitoww4JVQ==", - "dev": true, - "dependencies": { - "@babel/types": "^7.12.10" - } - }, - "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz", - "integrity": "sha512-L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg==", - "dev": true, - "dependencies": { - "@babel/helper-explode-assignable-expression": "^7.10.4", - "@babel/types": "^7.10.4" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.12.5.tgz", - "integrity": "sha512-+qH6NrscMolUlzOYngSBMIOQpKUGPPsc61Bu5W10mg84LxZ7cmvnBHzARKbDoFxVvqqAbj6Tg6N7bSrWSPXMyw==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.12.5", - "@babel/helper-validator-option": "^7.12.1", - "browserslist": "^4.14.5", - "semver": "^5.5.0" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.12.1.tgz", - "integrity": "sha512-hkL++rWeta/OVOBTRJc9a5Azh5mt5WgZUGAKMD8JM141YsE08K//bp1unBBieO6rUKkIPyUE0USQ30jAy3Sk1w==", - "dev": true, - "dependencies": { - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-member-expression-to-functions": "^7.12.1", - "@babel/helper-optimise-call-expression": "^7.10.4", - "@babel/helper-replace-supers": "^7.12.1", - "@babel/helper-split-export-declaration": "^7.10.4" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.12.7", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.7.tgz", - "integrity": "sha512-idnutvQPdpbduutvi3JVfEgcVIHooQnhvhx0Nk9isOINOIGYkZea1Pk2JlJRiUnMefrlvr0vkByATBY/mB4vjQ==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.10.4", - "regexpu-core": "^4.7.1" - } - }, - "node_modules/@babel/helper-define-map": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz", - "integrity": "sha512-fMw4kgFB720aQFXSVaXr79pjjcW5puTCM16+rECJ/plGS+zByelE8l9nCpV1GibxTnFVmUuYG9U8wYfQHdzOEQ==", - "dev": true, - "dependencies": { - "@babel/helper-function-name": "^7.10.4", - "@babel/types": "^7.10.5", - "lodash": "^4.17.19" - } - }, - "node_modules/@babel/helper-explode-assignable-expression": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.12.1.tgz", - "integrity": "sha512-dmUwH8XmlrUpVqgtZ737tK88v07l840z9j3OEhCLwKTkjlvKpfqXVIZ0wpK3aeOxspwGrf/5AP5qLx4rO3w5rA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.12.1" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.11.tgz", - "integrity": "sha512-AtQKjtYNolKNi6nNNVLQ27CP6D9oFR6bq/HPYSizlzbp7uC1M59XJe8L+0uXjbIaZaUJF99ruHqVGiKXU/7ybA==", - "dev": true, - "dependencies": { - "@babel/helper-get-function-arity": "^7.12.10", - "@babel/template": "^7.12.7", - "@babel/types": "^7.12.11" - } - }, - "node_modules/@babel/helper-function-name/node_modules/@babel/template": { - "version": "7.12.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.7.tgz", - "integrity": "sha512-GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.10.4", - "@babel/parser": "^7.12.7", - "@babel/types": "^7.12.7" - } - }, - "node_modules/@babel/helper-get-function-arity": { - "version": "7.12.10", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.10.tgz", - "integrity": "sha512-mm0n5BPjR06wh9mPQaDdXWDoll/j5UpCAPl1x8fS71GHm7HA6Ua2V4ylG1Ju8lvcTOietbPNNPaSilKj+pj+Ag==", - "dev": true, - "dependencies": { - "@babel/types": "^7.12.10" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz", - "integrity": "sha512-wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.10.4" - } - }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.12.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.7.tgz", - "integrity": "sha512-DCsuPyeWxeHgh1Dus7APn7iza42i/qXqiFPWyBDdOFtvS581JQePsc1F/nD+fHrcswhLlRc2UpYS1NwERxZhHw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.12.7" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz", - "integrity": "sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.12.5" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz", - "integrity": "sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w==", - "dev": true, - "dependencies": { - "@babel/helper-module-imports": "^7.12.1", - "@babel/helper-replace-supers": "^7.12.1", - "@babel/helper-simple-access": "^7.12.1", - "@babel/helper-split-export-declaration": "^7.11.0", - "@babel/helper-validator-identifier": "^7.10.4", - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.12.1", - "@babel/types": "^7.12.1", - "lodash": "^4.17.19" - } - }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.12.10", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.10.tgz", - "integrity": "sha512-4tpbU0SrSTjjt65UMWSrUOPZTsgvPgGG4S8QSTNHacKzpS51IVWGDj0yCwyeZND/i+LSN2g/O63jEXEWm49sYQ==", - "dev": true, - "dependencies": { - "@babel/types": "^7.12.10" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", - "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", - "dev": true - }, - "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.12.1.tgz", - "integrity": "sha512-9d0KQCRM8clMPcDwo8SevNs+/9a8yWVVmaE80FGJcEP8N1qToREmWEGnBn8BUlJhYRFz6fqxeRL1sl5Ogsed7A==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.10.4", - "@babel/helper-wrap-function": "^7.10.4", - "@babel/types": "^7.12.1" - } - }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.11.tgz", - "integrity": "sha512-q+w1cqmhL7R0FNzth/PLLp2N+scXEK/L2AHbXUyydxp828F4FEa5WcVoqui9vFRiHDQErj9Zof8azP32uGVTRA==", - "dev": true, - "dependencies": { - "@babel/helper-member-expression-to-functions": "^7.12.7", - "@babel/helper-optimise-call-expression": "^7.12.10", - "@babel/traverse": "^7.12.10", - "@babel/types": "^7.12.11" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz", - "integrity": "sha512-OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.12.1" - } - }, - "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz", - "integrity": "sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.12.1" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.11.tgz", - "integrity": "sha512-LsIVN8j48gHgwzfocYUSkO/hjYAOJqlpJEc7tGXcIm4cubjVUf8LGW6eWRyxEu7gA25q02p0rQUWoCI33HNS5g==", - "dev": true, - "dependencies": { - "@babel/types": "^7.12.11" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", - "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", - "dev": true - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.11.tgz", - "integrity": "sha512-TBFCyj939mFSdeX7U7DDj32WtzYY7fDcalgq8v3fBZMNOJQNn7nOYzMaUCiPxPYfCup69mtIpqlKgMZLvQ8Xhw==", - "dev": true - }, - "node_modules/@babel/helper-wrap-function": { - "version": "7.12.3", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.12.3.tgz", - "integrity": "sha512-Cvb8IuJDln3rs6tzjW3Y8UeelAOdnpB8xtQ4sme2MSZ9wOxrbThporC0y/EtE16VAtoyEfLM404Xr1e0OOp+ow==", - "dev": true, - "dependencies": { - "@babel/helper-function-name": "^7.10.4", - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.10.4", - "@babel/types": "^7.10.4" - } - }, - "node_modules/@babel/helpers": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.5.tgz", - "integrity": "sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA==", - "dev": true, - "dependencies": { - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.12.5", - "@babel/types": "^7.12.5" - } - }, - "node_modules/@babel/highlight": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", - "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.10.4", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.11.tgz", - "integrity": "sha512-N3UxG+uuF4CMYoNj8AhnbAcJF0PiuJ9KHuy1lQmkYsxTer/MAH9UBNHsBoAX/4s6NvlDD047No8mYVGGzLL4hg==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-proposal-async-generator-functions": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.12.1.tgz", - "integrity": "sha512-d+/o30tJxFxrA1lhzJqiUcEJdI6jKlNregCv5bASeGf2Q4MXmnwH7viDo7nhx1/ohf09oaH8j1GVYG/e3Yqk6A==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-remap-async-to-generator": "^7.12.1", - "@babel/plugin-syntax-async-generators": "^7.8.0" - } - }, - "node_modules/@babel/plugin-proposal-class-properties": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.12.1.tgz", - "integrity": "sha512-cKp3dlQsFsEs5CWKnN7BnSHOd0EOW8EKpEjkoz1pO2E5KzIDNV9Ros1b0CnmbVgAGXJubOYVBOGCT1OmJwOI7w==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "node_modules/@babel/plugin-proposal-dynamic-import": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.12.1.tgz", - "integrity": "sha512-a4rhUSZFuq5W8/OO8H7BL5zspjnc1FLd9hlOxIK/f7qG4a0qsqk8uvF/ywgBA8/OmjsapjpvaEOYItfGG1qIvQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-dynamic-import": "^7.8.0" - } - }, - "node_modules/@babel/plugin-proposal-export-namespace-from": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.1.tgz", - "integrity": "sha512-6CThGf0irEkzujYS5LQcjBx8j/4aQGiVv7J9+2f7pGfxqyKh3WnmVJYW3hdrQjyksErMGBPQrCnHfOtna+WLbw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - } - }, - "node_modules/@babel/plugin-proposal-json-strings": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.12.1.tgz", - "integrity": "sha512-GoLDUi6U9ZLzlSda2Df++VSqDJg3CG+dR0+iWsv6XRw1rEq+zwt4DirM9yrxW6XWaTpmai1cWJLMfM8qQJf+yw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-json-strings": "^7.8.0" - } - }, - "node_modules/@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.12.1.tgz", - "integrity": "sha512-k8ZmVv0JU+4gcUGeCDZOGd0lCIamU/sMtIiX3UWnUc5yzgq6YUGyEolNYD+MLYKfSzgECPcqetVcJP9Afe/aCA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - } - }, - "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.12.1.tgz", - "integrity": "sha512-nZY0ESiaQDI1y96+jk6VxMOaL4LPo/QDHBqL+SF3/vl6dHkTwHlOI8L4ZwuRBHgakRBw5zsVylel7QPbbGuYgg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" - } - }, - "node_modules/@babel/plugin-proposal-numeric-separator": { - "version": "7.12.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.7.tgz", - "integrity": "sha512-8c+uy0qmnRTeukiGsjLGy6uVs/TFjJchGXUeBqlG4VWYOdJWkhhVPdQ3uHwbmalfJwv2JsV0qffXP4asRfL2SQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - } - }, - "node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz", - "integrity": "sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.0", - "@babel/plugin-transform-parameters": "^7.12.1" - } - }, - "node_modules/@babel/plugin-proposal-optional-catch-binding": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.12.1.tgz", - "integrity": "sha512-hFvIjgprh9mMw5v42sJWLI1lzU5L2sznP805zeT6rySVRA0Y18StRhDqhSxlap0oVgItRsB6WSROp4YnJTJz0g==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" - } - }, - "node_modules/@babel/plugin-proposal-optional-chaining": { - "version": "7.12.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.12.7.tgz", - "integrity": "sha512-4ovylXZ0PWmwoOvhU2vhnzVNnm88/Sm9nx7V8BPgMvAzn5zDou3/Awy0EjglyubVHasJj+XCEkr/r1X3P5elCA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1", - "@babel/plugin-syntax-optional-chaining": "^7.8.0" - } - }, - "node_modules/@babel/plugin-proposal-private-methods": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.12.1.tgz", - "integrity": "sha512-mwZ1phvH7/NHK6Kf8LP7MYDogGV+DKB1mryFOEwx5EBNQrosvIczzZFTUmWaeujd5xT6G1ELYWUz3CutMhjE1w==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "node_modules/@babel/plugin-proposal-unicode-property-regex": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.1.tgz", - "integrity": "sha512-MYq+l+PvHuw/rKUz1at/vb6nCnQ2gmJBNaM62z0OgH7B2W1D9pvkpYtlti9bGtizNIU1K3zm4bZF9F91efVY0w==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.1.tgz", - "integrity": "sha512-U40A76x5gTwmESz+qiqssqmeEsKvcSyvtgktrm0uzcARAmM9I1jR221f6Oq+GmHrcD+LvZDag1UTOTe2fL3TeA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "node_modules/@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "node_modules/@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.1.tgz", - "integrity": "sha512-i7ooMZFS+a/Om0crxZodrTzNEPJHZrlMVGMTEpFAj6rYY/bKCddB0Dk/YxfPuYXOopuhKk/e1jV6h+WUU9XN3A==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.12.1.tgz", - "integrity": "sha512-5QB50qyN44fzzz4/qxDPQMBCTHgxg3n0xRBLJUmBlLoU/sFvxVWGZF/ZUfMVDQuJUKXaBhbupxIzIfZ6Fwk/0A==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.12.1.tgz", - "integrity": "sha512-SDtqoEcarK1DFlRJ1hHRY5HvJUj5kX4qmtpMAm2QnhOlyuMC4TMdCRgW6WXpv93rZeYNeLP22y8Aq2dbcDRM1A==", - "dev": true, - "dependencies": { - "@babel/helper-module-imports": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-remap-async-to-generator": "^7.12.1" - } - }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.1.tgz", - "integrity": "sha512-5OpxfuYnSgPalRpo8EWGPzIYf0lHBWORCkj5M0oLBwHdlux9Ri36QqGW3/LR13RSVOAoUUMzoPI/jpE4ABcHoA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.11.tgz", - "integrity": "sha512-atR1Rxc3hM+VPg/NvNvfYw0npQEAcHuJ+MGZnFn6h3bo+1U3BWXMdFMlvVRApBTWKQMX7SOwRJZA5FBF/JQbvA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.12.1.tgz", - "integrity": "sha512-/74xkA7bVdzQTBeSUhLLJgYIcxw/dpEpCdRDiHgPJ3Mv6uC11UhjpOhl72CgqbBCmt1qtssCyB2xnJm1+PFjog==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.10.4", - "@babel/helper-define-map": "^7.10.4", - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-optimise-call-expression": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-replace-supers": "^7.12.1", - "@babel/helper-split-export-declaration": "^7.10.4", - "globals": "^11.1.0" - } - }, - "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.12.1.tgz", - "integrity": "sha512-vVUOYpPWB7BkgUWPo4C44mUQHpTZXakEqFjbv8rQMg7TC6S6ZhGZ3otQcRH6u7+adSlE5i0sp63eMC/XGffrzg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.12.1.tgz", - "integrity": "sha512-fRMYFKuzi/rSiYb2uRLiUENJOKq4Gnl+6qOv5f8z0TZXg3llUwUhsNNwrwaT/6dUhJTzNpBr+CUvEWBtfNY1cw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.1.tgz", - "integrity": "sha512-B2pXeRKoLszfEW7J4Hg9LoFaWEbr/kzo3teWHmtFCszjRNa/b40f9mfeqZsIDLLt/FjwQ6pz/Gdlwy85xNckBA==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.1.tgz", - "integrity": "sha512-iRght0T0HztAb/CazveUpUQrZY+aGKKaWXMJ4uf9YJtqxSUe09j3wteztCUDRHs+SRAL7yMuFqUsLoAKKzgXjw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.1.tgz", - "integrity": "sha512-7tqwy2bv48q+c1EHbXK0Zx3KXd2RVQp6OC7PbwFNt/dPTAV3Lu5sWtWuAj8owr5wqtWnqHfl2/mJlUmqkChKug==", - "dev": true, - "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "node_modules/@babel/plugin-transform-for-of": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.12.1.tgz", - "integrity": "sha512-Zaeq10naAsuHo7heQvyV0ptj4dlZJwZgNAtBYBnu5nNKJoW62m0zKcIEyVECrUKErkUkg6ajMy4ZfnVZciSBhg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "node_modules/@babel/plugin-transform-function-name": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.1.tgz", - "integrity": "sha512-JF3UgJUILoFrFMEnOJLJkRHSk6LUSXLmEFsA23aR2O5CSLUxbeUX1IZ1YQ7Sn0aXb601Ncwjx73a+FVqgcljVw==", - "dev": true, - "dependencies": { - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "node_modules/@babel/plugin-transform-literals": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.1.tgz", - "integrity": "sha512-+PxVGA+2Ag6uGgL0A5f+9rklOnnMccwEBzwYFL3EUaKuiyVnUipyXncFcfjSkbimLrODoqki1U9XxZzTvfN7IQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.1.tgz", - "integrity": "sha512-1sxePl6z9ad0gFMB9KqmYofk34flq62aqMt9NqliS/7hPEpURUCMbyHXrMPlo282iY7nAvUB1aQd5mg79UD9Jg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.12.1.tgz", - "integrity": "sha512-tDW8hMkzad5oDtzsB70HIQQRBiTKrhfgwC/KkJeGsaNFTdWhKNt/BiE8c5yj19XiGyrxpbkOfH87qkNg1YGlOQ==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.12.1.tgz", - "integrity": "sha512-dY789wq6l0uLY8py9c1B48V8mVL5gZh/+PQ5ZPrylPYsnAvnEMjqsUXkuoDVPeVK+0VyGar+D08107LzDQ6pag==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-simple-access": "^7.12.1", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.12.1.tgz", - "integrity": "sha512-Hn7cVvOavVh8yvW6fLwveFqSnd7rbQN3zJvoPNyNaQSvgfKmDBO9U1YL9+PCXGRlZD9tNdWTy5ACKqMuzyn32Q==", - "dev": true, - "dependencies": { - "@babel/helper-hoist-variables": "^7.10.4", - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-validator-identifier": "^7.10.4", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.12.1.tgz", - "integrity": "sha512-aEIubCS0KHKM0zUos5fIoQm+AZUMt1ZvMpqz0/H5qAQ7vWylr9+PLYurT+Ic7ID/bKLd4q8hDovaG3Zch2uz5Q==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.1.tgz", - "integrity": "sha512-tB43uQ62RHcoDp9v2Nsf+dSM8sbNodbEicbQNA53zHz8pWUhsgHSJCGpt7daXxRydjb0KnfmB+ChXOv3oADp1Q==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.12.1" - } - }, - "node_modules/@babel/plugin-transform-new-target": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.1.tgz", - "integrity": "sha512-+eW/VLcUL5L9IvJH7rT1sT0CzkdUTvPrXC2PXTn/7z7tXLBuKvezYbGdxD5WMRoyvyaujOq2fWoKl869heKjhw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "node_modules/@babel/plugin-transform-object-super": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.1.tgz", - "integrity": "sha512-AvypiGJH9hsquNUn+RXVcBdeE3KHPZexWRdimhuV59cSoOt5kFBmqlByorAeUlGG2CJWd0U+4ZtNKga/TB0cAw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-replace-supers": "^7.12.1" - } - }, - "node_modules/@babel/plugin-transform-parameters": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.12.1.tgz", - "integrity": "sha512-xq9C5EQhdPK23ZeCdMxl8bbRnAgHFrw5EOC3KJUsSylZqdkCaFEXxGSBuTSObOpiiHHNyb82es8M1QYgfQGfNg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.1.tgz", - "integrity": "sha512-6MTCR/mZ1MQS+AwZLplX4cEySjCpnIF26ToWo942nqn8hXSm7McaHQNeGx/pt7suI1TWOWMfa/NgBhiqSnX0cQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.1.tgz", - "integrity": "sha512-gYrHqs5itw6i4PflFX3OdBPMQdPbF4bj2REIUxlMRUFk0/ZOAIpDFuViuxPjUL7YC8UPnf+XG7/utJvqXdPKng==", - "dev": true, - "dependencies": { - "regenerator-transform": "^0.14.2" - } - }, - "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.1.tgz", - "integrity": "sha512-pOnUfhyPKvZpVyBHhSBoX8vfA09b7r00Pmm1sH+29ae2hMTKVmSp4Ztsr8KBKjLjx17H0eJqaRC3bR2iThM54A==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "node_modules/@babel/plugin-transform-runtime": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.11.0.tgz", - "integrity": "sha512-LFEsP+t3wkYBlis8w6/kmnd6Kb1dxTd+wGJ8MlxTGzQo//ehtqlVL4S9DNUa53+dtPSQobN2CXx4d81FqC58cw==", - "dev": true, - "dependencies": { - "@babel/helper-module-imports": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4", - "resolve": "^1.8.1", - "semver": "^5.5.1" - } - }, - "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.1.tgz", - "integrity": "sha512-GFZS3c/MhX1OusqB1MZ1ct2xRzX5ppQh2JU1h2Pnfk88HtFTM+TWQqJNfwkmxtPQtb/s1tk87oENfXJlx7rSDw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "node_modules/@babel/plugin-transform-spread": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.12.1.tgz", - "integrity": "sha512-vuLp8CP0BE18zVYjsEBZ5xoCecMK6LBMMxYzJnh01rxQRvhNhH1csMMmBfNo5tGpGO+NhdSNW2mzIvBu3K1fng==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1" - } - }, - "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.12.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.7.tgz", - "integrity": "sha512-VEiqZL5N/QvDbdjfYQBhruN0HYjSPjC4XkeqW4ny/jNtH9gcbgaqBIXYEZCNnESMAGs0/K/R7oFGMhOyu/eIxg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.12.1.tgz", - "integrity": "sha512-b4Zx3KHi+taXB1dVRBhVJtEPi9h1THCeKmae2qP0YdUHIFhVjtpqqNfxeVAa1xeHVhAy4SbHxEwx5cltAu5apw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.12.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.10.tgz", - "integrity": "sha512-JQ6H8Rnsogh//ijxspCjc21YPd3VLVoYtAwv3zQmqAt8YGYUtdo5usNhdl4b9/Vir2kPFZl6n1h0PfUz4hJhaA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.1.tgz", - "integrity": "sha512-I8gNHJLIc7GdApm7wkVnStWssPNbSRMPtgHdmH3sRM1zopz09UWPS4x5V4n1yz/MIWTVnJ9sp6IkuXdWM4w+2Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.1.tgz", - "integrity": "sha512-SqH4ClNngh/zGwHZOOQMTD+e8FGWexILV+ePMyiDJttAWRh5dhDL8rcl5lSgU3Huiq6Zn6pWTMvdPAb21Dwdyg==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "node_modules/@babel/preset-env": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.11.0.tgz", - "integrity": "sha512-2u1/k7rG/gTh02dylX2kL3S0IJNF+J6bfDSp4DI2Ma8QN6Y9x9pmAax59fsCk6QUQG0yqH47yJWA+u1I1LccAg==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.11.0", - "@babel/helper-compilation-targets": "^7.10.4", - "@babel/helper-module-imports": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-proposal-async-generator-functions": "^7.10.4", - "@babel/plugin-proposal-class-properties": "^7.10.4", - "@babel/plugin-proposal-dynamic-import": "^7.10.4", - "@babel/plugin-proposal-export-namespace-from": "^7.10.4", - "@babel/plugin-proposal-json-strings": "^7.10.4", - "@babel/plugin-proposal-logical-assignment-operators": "^7.11.0", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.10.4", - "@babel/plugin-proposal-numeric-separator": "^7.10.4", - "@babel/plugin-proposal-object-rest-spread": "^7.11.0", - "@babel/plugin-proposal-optional-catch-binding": "^7.10.4", - "@babel/plugin-proposal-optional-chaining": "^7.11.0", - "@babel/plugin-proposal-private-methods": "^7.10.4", - "@babel/plugin-proposal-unicode-property-regex": "^7.10.4", - "@babel/plugin-syntax-async-generators": "^7.8.0", - "@babel/plugin-syntax-class-properties": "^7.10.4", - "@babel/plugin-syntax-dynamic-import": "^7.8.0", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.0", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.0", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.0", - "@babel/plugin-syntax-top-level-await": "^7.10.4", - "@babel/plugin-transform-arrow-functions": "^7.10.4", - "@babel/plugin-transform-async-to-generator": "^7.10.4", - "@babel/plugin-transform-block-scoped-functions": "^7.10.4", - "@babel/plugin-transform-block-scoping": "^7.10.4", - "@babel/plugin-transform-classes": "^7.10.4", - "@babel/plugin-transform-computed-properties": "^7.10.4", - "@babel/plugin-transform-destructuring": "^7.10.4", - "@babel/plugin-transform-dotall-regex": "^7.10.4", - "@babel/plugin-transform-duplicate-keys": "^7.10.4", - "@babel/plugin-transform-exponentiation-operator": "^7.10.4", - "@babel/plugin-transform-for-of": "^7.10.4", - "@babel/plugin-transform-function-name": "^7.10.4", - "@babel/plugin-transform-literals": "^7.10.4", - "@babel/plugin-transform-member-expression-literals": "^7.10.4", - "@babel/plugin-transform-modules-amd": "^7.10.4", - "@babel/plugin-transform-modules-commonjs": "^7.10.4", - "@babel/plugin-transform-modules-systemjs": "^7.10.4", - "@babel/plugin-transform-modules-umd": "^7.10.4", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.10.4", - "@babel/plugin-transform-new-target": "^7.10.4", - "@babel/plugin-transform-object-super": "^7.10.4", - "@babel/plugin-transform-parameters": "^7.10.4", - "@babel/plugin-transform-property-literals": "^7.10.4", - "@babel/plugin-transform-regenerator": "^7.10.4", - "@babel/plugin-transform-reserved-words": "^7.10.4", - "@babel/plugin-transform-shorthand-properties": "^7.10.4", - "@babel/plugin-transform-spread": "^7.11.0", - "@babel/plugin-transform-sticky-regex": "^7.10.4", - "@babel/plugin-transform-template-literals": "^7.10.4", - "@babel/plugin-transform-typeof-symbol": "^7.10.4", - "@babel/plugin-transform-unicode-escapes": "^7.10.4", - "@babel/plugin-transform-unicode-regex": "^7.10.4", - "@babel/preset-modules": "^0.1.3", - "@babel/types": "^7.11.0", - "browserslist": "^4.12.0", - "core-js-compat": "^3.6.2", - "invariant": "^2.2.2", - "levenary": "^1.1.1", - "semver": "^5.5.0" - } - }, - "node_modules/@babel/preset-env/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/@babel/preset-modules": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.4.tgz", - "integrity": "sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - } - }, - "node_modules/@babel/runtime": { - "version": "7.11.2", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.11.2.tgz", - "integrity": "sha512-TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw==", - "dev": true, - "dependencies": { - "regenerator-runtime": "^0.13.4" - } - }, - "node_modules/@babel/template": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", - "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.10.4", - "@babel/parser": "^7.10.4", - "@babel/types": "^7.10.4" - } - }, - "node_modules/@babel/traverse": { - "version": "7.12.10", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.10.tgz", - "integrity": "sha512-6aEtf0IeRgbYWzta29lePeYSk+YAFIC3kyqESeft8o5CkFlYIMX+EQDDWEiAQ9LHOA3d0oHdgrSsID/CKqXJlg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.12.10", - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-split-export-declaration": "^7.11.0", - "@babel/parser": "^7.12.10", - "@babel/types": "^7.12.10", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.19" - } - }, - "node_modules/@babel/traverse/node_modules/@babel/generator": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.11.tgz", - "integrity": "sha512-Ggg6WPOJtSi8yYQvLVjG8F/TlpWDlKx0OpS4Kt+xMQPs5OaGYWy+v1A+1TvxI6sAMGZpKWWoAQ1DaeQbImlItA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.12.11", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - } - }, - "node_modules/@babel/traverse/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@babel/types": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.11.tgz", - "integrity": "sha512-ukA9SQtKThINm++CX1CwmliMrE54J6nIYB5XTwL5f/CLFW9owfls+YSU8tVW15RQ2w+a3fSbPjC6HdQNtWZkiA==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", - "to-fast-properties": "^2.0.0" - } - }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz", - "integrity": "sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jsdevtools/coverage-istanbul-loader": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@jsdevtools/coverage-istanbul-loader/-/coverage-istanbul-loader-3.0.5.tgz", - "integrity": "sha512-EUCPEkaRPvmHjWAAZkWMT7JDzpw7FKB00WTISaiXsbNOd5hCHg77XLA8sLYLFDo1zepYLo2w7GstN8YBqRXZfA==", - "dev": true, - "dependencies": { - "convert-source-map": "^1.7.0", - "istanbul-lib-instrument": "^4.0.3", - "loader-utils": "^2.0.0", - "merge-source-map": "^1.1.0", - "schema-utils": "^2.7.0" - } - }, - "node_modules/@ngtools/webpack": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-10.2.1.tgz", - "integrity": "sha512-RKJSoQufHHpLpsGWUas3WEYtFhnCXmf5GiYCEv8d36ITNRKHhQv38FHLq1aen8Jd7F0b3eZFX5JmGvb7JJmVVg==", - "dev": true, - "dependencies": { - "@angular-devkit/core": "10.2.1", - "enhanced-resolve": "4.3.0", - "webpack-sources": "1.4.3" - }, - "engines": { - "node": ">= 10.13.0", - "npm": ">= 6.11.0", - "yarn": ">= 1.13.0" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz", - "integrity": "sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "2.0.3", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz", - "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz", - "integrity": "sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==", - "dev": true, - "dependencies": { - "@nodelib/fs.scandir": "2.1.3", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@npmcli/move-file": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.0.1.tgz", - "integrity": "sha512-Uv6h1sT+0DrblvIrolFtbvM1FgWm+/sy4B3pvLp67Zys+thcukzS5ekn7HsZFGpWP4Q3fYJCljbWQE/XivMRLw==", - "dev": true, - "dependencies": { - "mkdirp": "^1.0.4" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@npmcli/move-file/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@schematics/angular": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-10.2.1.tgz", - "integrity": "sha512-hmhZ6zPJshP1ATYc/EzJPwaFas0D+T6eeWEFyHAgIV2GmNdJNyBdKHQtizGRQBpfWvBdI4/krvX+a71VnkU8oA==", - "dev": true, - "dependencies": { - "@angular-devkit/core": "10.2.1", - "@angular-devkit/schematics": "10.2.1", - "jsonc-parser": "2.3.0" - }, - "engines": { - "node": ">= 10.13.0", - "npm": ">= 6.11.0", - "yarn": ">= 1.13.0" - } - }, - "node_modules/@schematics/update": { - "version": "0.1002.1", - "resolved": "https://registry.npmjs.org/@schematics/update/-/update-0.1002.1.tgz", - "integrity": "sha512-RbC01VKb9q7Db5rpbrQLBOVkIzv3TPWMjRUSgg/LlLFEDVO3LPn5nX9bYnb6E0HeIqUW+zAU5Qaz9ob/Py06LA==", - "dev": true, - "dependencies": { - "@angular-devkit/core": "10.2.1", - "@angular-devkit/schematics": "10.2.1", - "@yarnpkg/lockfile": "1.1.0", - "ini": "1.3.6", - "npm-package-arg": "^8.0.0", - "pacote": "9.5.12", - "semver": "7.3.2", - "semver-intersect": "1.4.0" - }, - "engines": { - "node": ">= 10.13.0", - "npm": ">= 6.11.0", - "yarn": ">= 1.13.0" - } - }, - "node_modules/@types/glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==", - "dev": true, - "dependencies": { - "@types/minimatch": "*", - "@types/node": "*" - } - }, - "node_modules/@types/jasmine": { - "version": "3.5.14", - "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-3.5.14.tgz", - "integrity": "sha512-Fkgk536sHPqcOtd+Ow+WiUNuk0TSo/BntKkF8wSvcd6M2FvPjeXcUE6Oz/bwDZiUZEaXLslAgw00Q94Pnx6T4w==", - "dev": true - }, - "node_modules/@types/jasminewd2": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/@types/jasminewd2/-/jasminewd2-2.0.8.tgz", - "integrity": "sha512-d9p31r7Nxk0ZH0U39PTH0hiDlJ+qNVGjlt1ucOoTUptxb2v+Y5VMnsxfwN+i3hK4yQnqBi3FMmoMFcd1JHDxdg==", - "dev": true, - "dependencies": { - "@types/jasmine": "*" - } - }, - "node_modules/@types/json-schema": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.6.tgz", - "integrity": "sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw==", - "dev": true - }, - "node_modules/@types/minimatch": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", - "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", - "dev": true - }, - "node_modules/@types/node": { - "version": "12.19.9", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.19.9.tgz", - "integrity": "sha512-yj0DOaQeUrk3nJ0bd3Y5PeDRJ6W0r+kilosLA+dzF3dola/o9hxhMSg2sFvVcA2UHS5JSOsZp4S0c1OEXc4m1Q==", - "dev": true - }, - "node_modules/@types/q": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz", - "integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==", - "dev": true - }, - "node_modules/@types/selenium-webdriver": { - "version": "3.0.17", - "resolved": "https://registry.npmjs.org/@types/selenium-webdriver/-/selenium-webdriver-3.0.17.tgz", - "integrity": "sha512-tGomyEuzSC1H28y2zlW6XPCaDaXFaD6soTdb4GNdmte2qfHtrKqhy0ZFs4r/1hpazCfEZqeTSRLvSasmEx89uw==", - "dev": true - }, - "node_modules/@types/source-list-map": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz", - "integrity": "sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==", - "dev": true - }, - "node_modules/@types/webpack-sources": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-0.1.8.tgz", - "integrity": "sha512-JHB2/xZlXOjzjBB6fMOpH1eQAfsrpqVVIbneE0Rok16WXwFaznaI5vfg75U5WgGJm7V9W1c4xeRQDjX/zwvghA==", - "dev": true, - "dependencies": { - "@types/node": "*", - "@types/source-list-map": "*", - "source-map": "^0.6.1" - } - }, - "node_modules/@types/webpack-sources/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@webassemblyjs/ast": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", - "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", - "dev": true, - "dependencies": { - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0" - } - }, - "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz", - "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", - "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", - "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-code-frame": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz", - "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==", - "dev": true, - "dependencies": { - "@webassemblyjs/wast-printer": "1.9.0" - } - }, - "node_modules/@webassemblyjs/helper-fsm": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz", - "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-module-context": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz", - "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.9.0" - } - }, - "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", - "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", - "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0" - } - }, - "node_modules/@webassemblyjs/ieee754": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", - "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", - "dev": true, - "dependencies": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "node_modules/@webassemblyjs/leb128": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", - "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", - "dev": true, - "dependencies": { - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/utf8": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", - "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==", - "dev": true - }, - "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", - "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/helper-wasm-section": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0", - "@webassemblyjs/wasm-opt": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0", - "@webassemblyjs/wast-printer": "1.9.0" - } - }, - "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", - "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/ieee754": "1.9.0", - "@webassemblyjs/leb128": "1.9.0", - "@webassemblyjs/utf8": "1.9.0" - } - }, - "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", - "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0" - } - }, - "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", - "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-api-error": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/ieee754": "1.9.0", - "@webassemblyjs/leb128": "1.9.0", - "@webassemblyjs/utf8": "1.9.0" - } - }, - "node_modules/@webassemblyjs/wast-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz", - "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/floating-point-hex-parser": "1.9.0", - "@webassemblyjs/helper-api-error": "1.9.0", - "@webassemblyjs/helper-code-frame": "1.9.0", - "@webassemblyjs/helper-fsm": "1.9.0", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/wast-printer": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", - "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true - }, - "node_modules/@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true - }, - "node_modules/@yarnpkg/lockfile": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", - "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", - "dev": true - }, - "node_modules/abab": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", - "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", - "dev": true - }, - "node_modules/accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", - "dev": true, - "dependencies": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/acorn": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", - "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/adjust-sourcemap-loader": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-3.0.0.tgz", - "integrity": "sha512-YBrGyT2/uVQ/c6Rr+t6ZJXniY03YtHGMJQYal368burRGYKqhx9qGTWqcBU5s1CwYY9E/ri63RYyG1IacMZtqw==", - "dev": true, - "dependencies": { - "loader-utils": "^2.0.0", - "regex-parser": "^2.2.11" - }, - "engines": { - "node": ">=8.9" - } - }, - "node_modules/adm-zip": { - "version": "0.4.16", - "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz", - "integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==", - "dev": true, - "engines": { - "node": ">=0.3.0" - } - }, - "node_modules/after": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", - "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=", - "dev": true - }, - "node_modules/agent-base": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", - "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", - "dev": true, - "dependencies": { - "es6-promisify": "^5.0.0" - }, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/agentkeepalive": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-3.5.2.tgz", - "integrity": "sha512-e0L/HNe6qkQ7H19kTlRRqUibEAwDK5AFk6y3PtMsuut2VAH6+Q4xZml1tNDJD7kSAyqmbG/K08K5WEJYtUrSlQ==", - "dev": true, - "dependencies": { - "humanize-ms": "^1.2.1" - }, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ajv": { - "version": "6.12.4", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.4.tgz", - "integrity": "sha512-eienB2c9qVQs2KWexhkrdMLVDoIQCz5KSeLxwg9Lzk4DOfBtIK9PQwwufcsn1jjGuf9WZmqPMbGxOzfcuphJCQ==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "node_modules/ajv-errors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", - "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", - "dev": true - }, - "node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true - }, - "node_modules/alphanum-sort": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", - "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", - "dev": true - }, - "node_modules/ansi-colors": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", - "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-escapes": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", - "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", - "dev": true, - "dependencies": { - "type-fest": "^0.11.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-html": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", - "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=", - "dev": true, - "engines": [ - "node >= 0.8.0" - ], - "bin": { - "ansi-html": "bin/ansi-html" - } - }, - "node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/anymatch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", - "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/apexcharts": { - "version": "3.23.0", - "resolved": "https://registry.npmjs.org/apexcharts/-/apexcharts-3.23.0.tgz", - "integrity": "sha512-1mV6qouuopvYR6UFSXi/Ge4jRMe//zyAN3aK05mAs4Iuet8mA0w31Q6OU6syD77bawt9p3YKNOmNF7OO2u9w0g==", - "dependencies": { - "svg.draggable.js": "^2.2.2", - "svg.easing.js": "^2.0.0", - "svg.filter.js": "^2.0.2", - "svg.pathmorphing.js": "^0.1.3", - "svg.resize.js": "^1.4.3", - "svg.select.js": "^3.0.1" - } - }, - "node_modules/app-root-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-3.0.0.tgz", - "integrity": "sha512-qMcx+Gy2UZynHjOHOIXPNvpf+9cjvk3cWrBBK7zg4gH9+clobJRb9NGzcT7mQTcV/6Gm/1WelUtqxVXnNlrwcw==", - "dev": true, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "dev": true - }, - "node_modules/arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true - }, - "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/aria-query": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-3.0.0.tgz", - "integrity": "sha1-ZbP8wcoRVajJrmTW7uKX8V1RM8w=", - "dev": true, - "dependencies": { - "ast-types-flow": "0.0.7", - "commander": "^2.11.0" - } - }, - "node_modules/arity-n": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/arity-n/-/arity-n-1.0.4.tgz", - "integrity": "sha1-2edrEXM+CFacCEeuezmyhgswt0U=", - "dev": true - }, - "node_modules/arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-flatten": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", - "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", - "dev": true - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arraybuffer.slice": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz", - "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==", - "dev": true - }, - "node_modules/arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", - "dev": true - }, - "node_modules/asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "dev": true, - "dependencies": { - "safer-buffer": "~2.1.0" - } - }, - "node_modules/asn1.js": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", - "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", - "dev": true, - "dependencies": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - } - }, - "node_modules/asn1.js/node_modules/bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - }, - "node_modules/assert": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", - "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", - "dev": true, - "dependencies": { - "object-assign": "^4.1.1", - "util": "0.10.3" - } - }, - "node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/assert/node_modules/inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", - "dev": true - }, - "node_modules/assert/node_modules/util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "dev": true, - "dependencies": { - "inherits": "2.0.1" - } - }, - "node_modules/assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ast-types-flow": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", - "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=", - "dev": true - }, - "node_modules/async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "dev": true, - "dependencies": { - "lodash": "^4.17.14" - } - }, - "node_modules/async-each": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", - "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", - "dev": true - }, - "node_modules/async-limiter": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", - "dev": true - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true - }, - "node_modules/atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true, - "bin": { - "atob": "bin/atob.js" - }, - "engines": { - "node": ">= 4.5.0" - } - }, - "node_modules/autoprefixer": { - "version": "9.8.6", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.6.tgz", - "integrity": "sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg==", - "dev": true, - "dependencies": { - "browserslist": "^4.12.0", - "caniuse-lite": "^1.0.30001109", - "colorette": "^1.2.1", - "normalize-range": "^0.1.2", - "num2fraction": "^1.2.2", - "postcss": "^7.0.32", - "postcss-value-parser": "^4.1.0" - }, - "bin": { - "autoprefixer": "bin/autoprefixer" - } - }, - "node_modules/aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/aws4": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", - "dev": true - }, - "node_modules/axobject-query": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.0.2.tgz", - "integrity": "sha512-MCeek8ZH7hKyO1rWUbKNQBbl4l2eY0ntk7OGi+q0RlafrCnfPxC06WZA+uebCfmYp4mNU9jRBP1AhGyf8+W3ww==", - "dev": true, - "dependencies": { - "ast-types-flow": "0.0.7" - } - }, - "node_modules/babel-loader": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.1.0.tgz", - "integrity": "sha512-7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw==", - "dev": true, - "dependencies": { - "find-cache-dir": "^2.1.0", - "loader-utils": "^1.4.0", - "mkdirp": "^0.5.3", - "pify": "^4.0.1", - "schema-utils": "^2.6.5" - }, - "engines": { - "node": ">= 6.9" - } - }, - "node_modules/babel-loader/node_modules/find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", - "dev": true, - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/babel-loader/node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/babel-loader/node_modules/loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", - "dev": true, - "dependencies": { - "object.assign": "^4.1.0" - } - }, - "node_modules/backo2": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", - "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=", - "dev": true - }, - "node_modules/balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "node_modules/base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dev": true, - "dependencies": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base64-arraybuffer": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz", - "integrity": "sha1-mBjHngWbE1X5fgQooBfIOOkLqBI=", - "dev": true, - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true - }, - "node_modules/base64id": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", - "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", - "dev": true, - "engines": { - "node": "^4.5.0 || >= 5.9" - } - }, - "node_modules/batch": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", - "dev": true - }, - "node_modules/bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, - "dependencies": { - "tweetnacl": "^0.14.3" - } - }, - "node_modules/better-assert": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", - "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=", - "dev": true, - "dependencies": { - "callsite": "1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/binary-extensions": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", - "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "dev": true, - "optional": true, - "dependencies": { - "file-uri-to-path": "1.0.0" - } - }, - "node_modules/blob": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz", - "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==", - "dev": true - }, - "node_modules/blocking-proxy": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/blocking-proxy/-/blocking-proxy-1.0.1.tgz", - "integrity": "sha512-KE8NFMZr3mN2E0HcvCgRtX7DjhiIQrwle+nSVJVC/yqFb9+xznHl2ZcoBp2L9qzkI4t4cBFJ1efXF8Dwi132RA==", - "dev": true, - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "blocking-proxy": "built/lib/bin.js" - }, - "engines": { - "node": ">=6.9.x" - } - }, - "node_modules/bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "dev": true - }, - "node_modules/bn.js": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.3.tgz", - "integrity": "sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ==", - "dev": true - }, - "node_modules/body-parser": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", - "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", - "dev": true, - "dependencies": { - "bytes": "3.1.0", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.7.0", - "raw-body": "2.4.0", - "type-is": "~1.6.17" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/body-parser/node_modules/bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/body-parser/node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/body-parser/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/bonjour": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", - "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", - "dev": true, - "dependencies": { - "array-flatten": "^2.1.0", - "deep-equal": "^1.0.1", - "dns-equal": "^1.0.0", - "dns-txt": "^2.0.2", - "multicast-dns": "^6.0.1", - "multicast-dns-service-types": "^1.1.0" - } - }, - "node_modules/boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", - "dev": true - }, - "node_modules/bootstrap": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-3.4.1.tgz", - "integrity": "sha512-yN5oZVmRCwe5aKwzRj6736nSmKDX7pLYwsXiCj/EYmo16hODaBiT4En5btW/jhBF/seV+XMx3aYwukYC3A49DA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", - "dev": true - }, - "node_modules/browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "dev": true, - "dependencies": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "dev": true, - "dependencies": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "node_modules/browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "dev": true, - "dependencies": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/browserify-rsa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", - "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", - "dev": true, - "dependencies": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - } - }, - "node_modules/browserify-sign": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", - "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", - "dev": true, - "dependencies": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - } - }, - "node_modules/browserify-sign/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/browserify-sign/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - }, - "node_modules/browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", - "dev": true, - "dependencies": { - "pako": "~1.0.5" - } - }, - "node_modules/browserslist": { - "version": "4.16.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.0.tgz", - "integrity": "sha512-/j6k8R0p3nxOC6kx5JGAxsnhc9ixaWJfYc+TNTzxg6+ARaESAvQGV7h0uNOB4t+pLQJZWzcrMxXOxjgsCj3dqQ==", - "dev": true, - "dependencies": { - "caniuse-lite": "^1.0.30001165", - "colorette": "^1.2.1", - "electron-to-chromium": "^1.3.621", - "escalade": "^3.1.1", - "node-releases": "^1.1.67" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/browserstack": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/browserstack/-/browserstack-1.6.1.tgz", - "integrity": "sha512-GxtFjpIaKdbAyzHfFDKixKO8IBT7wR3NjbzrGc78nNs/Ciys9wU3/nBtsqsWv5nDSrdI5tz0peKuzCPuNXNUiw==", - "dev": true, - "dependencies": { - "https-proxy-agent": "^2.2.1" - } - }, - "node_modules/buffer": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", - "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", - "dev": true, - "dependencies": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" - } - }, - "node_modules/buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", - "dev": true - }, - "node_modules/buffer-indexof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", - "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", - "dev": true - }, - "node_modules/buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", - "dev": true - }, - "node_modules/builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", - "dev": true - }, - "node_modules/builtins": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", - "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=", - "dev": true - }, - "node_modules/bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/cacache": { - "version": "15.0.5", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.0.5.tgz", - "integrity": "sha512-lloiL22n7sOjEEXdL8NAjTgv9a1u43xICE9/203qonkZUCj5X1UEWIdf2/Y0d6QcCtMzbKQyhrcDbdvlZTs/+A==", - "dev": true, - "dependencies": { - "@npmcli/move-file": "^1.0.1", - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "glob": "^7.1.4", - "infer-owner": "^1.0.4", - "lru-cache": "^6.0.0", - "minipass": "^3.1.1", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "mkdirp": "^1.0.3", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^8.0.0", - "tar": "^6.0.2", - "unique-filename": "^1.1.1" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/cacache/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dev": true, - "dependencies": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/call-bind": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.0.tgz", - "integrity": "sha512-AEXsYIyyDY3MCzbwdhzG3Jx1R0J2wetQyUynn6dYHAO+bg8l1k7jwZtRv4ryryFs7EP+NDlikJlVe59jr0cM2w==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.0" - } - }, - "node_modules/caller-callsite": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", - "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", - "dev": true, - "dependencies": { - "callsites": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/caller-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", - "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", - "dev": true, - "dependencies": { - "caller-callsite": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/callsite": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", - "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/callsites": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", - "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/camelcase": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", - "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/caniuse-api": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", - "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", - "dev": true, - "dependencies": { - "browserslist": "^4.0.0", - "caniuse-lite": "^1.0.0", - "lodash.memoize": "^4.1.2", - "lodash.uniq": "^4.5.0" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001168", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001168.tgz", - "integrity": "sha512-P2zmX7swIXKu+GMMR01TWa4csIKELTNnZKc+f1CjebmZJQtTAEXmpQSoKVJVVcvPGAA0TEYTOUp3VehavZSFPQ==", - "dev": true - }, - "node_modules/canonical-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/canonical-path/-/canonical-path-1.0.0.tgz", - "integrity": "sha512-feylzsbDxi1gPZ1IjystzIQZagYYLvfKrSuygUCgf7z6x790VEzze5QEkdSV1U58RA7Hi0+v6fv4K54atOzATg==", - "dev": true - }, - "node_modules/caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true - }, - "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true - }, - "node_modules/chokidar": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.3.tgz", - "integrity": "sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ==", - "dev": true, - "dependencies": { - "anymatch": "~3.1.1", - "braces": "~3.0.2", - "fsevents": "~2.1.2", - "glob-parent": "~5.1.0", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.5.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.1.2" - } - }, - "node_modules/chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/chrome-trace-event": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz", - "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", - "dev": true, - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/chrome-trace-event/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/circular-dependency-plugin": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/circular-dependency-plugin/-/circular-dependency-plugin-5.2.0.tgz", - "integrity": "sha512-7p4Kn/gffhQaavNfyDFg7LS5S/UT1JAjyGd4UqR2+jzoYF02eDkj0Ec3+48TsIa4zghjLY87nQHIh/ecK9qLdw==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "dev": true, - "dependencies": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "dependencies": { - "restore-cursor": "^3.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-spinners": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.5.0.tgz", - "integrity": "sha512-PC+AmIuK04E6aeSs/pUccSujsTzBhu4HzC2dL+CfJB/Jcc2qTRbEwZQDfIUpt2Xl8BodYBEq8w4fc0kU2I9DjQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/cli-width": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", - "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", - "dev": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", - "dev": true, - "dependencies": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - } - }, - "node_modules/cliui/node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/cliui/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/coa": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", - "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", - "dev": true, - "dependencies": { - "@types/q": "^1.5.1", - "chalk": "^2.4.1", - "q": "^1.1.2" - }, - "engines": { - "node": ">= 4.0" - } - }, - "node_modules/codelyzer": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/codelyzer/-/codelyzer-6.0.1.tgz", - "integrity": "sha512-cOyGQgMdhnRYtW2xrJUNrNYDjEgwQ+BrE2y93Bwz3h4DJ6vJRLfupemU5N3pbYsUlBHJf0u1j1UGk+NLW4d97g==", - "dev": true, - "dependencies": { - "@angular/compiler": "9.0.0", - "@angular/core": "9.0.0", - "app-root-path": "^3.0.0", - "aria-query": "^3.0.0", - "axobject-query": "2.0.2", - "css-selector-tokenizer": "^0.7.1", - "cssauron": "^1.4.0", - "damerau-levenshtein": "^1.0.4", - "rxjs": "^6.5.3", - "semver-dsl": "^1.0.1", - "source-map": "^0.5.7", - "sprintf-js": "^1.1.2", - "tslib": "^1.10.0", - "zone.js": "~0.10.3" - } - }, - "node_modules/codelyzer/node_modules/@angular/compiler": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-9.0.0.tgz", - "integrity": "sha512-ctjwuntPfZZT2mNj2NDIVu51t9cvbhl/16epc5xEwyzyDt76pX9UgwvY+MbXrf/C/FWwdtmNtfP698BKI+9leQ==", - "dev": true - }, - "node_modules/codelyzer/node_modules/@angular/core": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-9.0.0.tgz", - "integrity": "sha512-6Pxgsrf0qF9iFFqmIcWmjJGkkCaCm6V5QNnxMy2KloO3SDq6QuMVRbN9RtC8Urmo25LP+eZ6ZgYqFYpdD8Hd9w==", - "dev": true - }, - "node_modules/codelyzer/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/codelyzer/node_modules/sprintf-js": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", - "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", - "dev": true - }, - "node_modules/codelyzer/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "dev": true, - "dependencies": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/color": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/color/-/color-3.1.3.tgz", - "integrity": "sha512-xgXAcTHa2HeFCGLE9Xs/R82hujGtu9Jd9x4NW3T34+OMs7VoPsjwzRczKHvTAHeJwWFwX5j15+MgAppE8ztObQ==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.1", - "color-string": "^1.5.4" - } - }, - "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "node_modules/color-string": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.4.tgz", - "integrity": "sha512-57yF5yt8Xa3czSEW1jfQDE79Idk0+AkN/4KWad6tbdxUmAs3MvjxlWSWD4deYytcRfoZ9nhKyFl1kj5tBvidbw==", - "dev": true, - "dependencies": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" - } - }, - "node_modules/colorette": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz", - "integrity": "sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==", - "dev": true - }, - "node_modules/colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", - "dev": true, - "engines": { - "node": ">=0.1.90" - } - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "node_modules/commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true - }, - "node_modules/component-bind": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", - "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=", - "dev": true - }, - "node_modules/component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "dev": true - }, - "node_modules/component-inherit": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", - "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=", - "dev": true - }, - "node_modules/compose-function": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/compose-function/-/compose-function-3.0.3.tgz", - "integrity": "sha1-ntZ18TzFRQHTCVCkhv9qe6OrGF8=", - "dev": true, - "dependencies": { - "arity-n": "^1.0.4" - } - }, - "node_modules/compressible": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", - "dev": true, - "dependencies": { - "mime-db": ">= 1.43.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/compression": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", - "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", - "dev": true, - "dependencies": { - "accepts": "~1.3.5", - "bytes": "3.0.0", - "compressible": "~2.0.16", - "debug": "2.6.9", - "on-headers": "~1.0.2", - "safe-buffer": "5.1.2", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/compression/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/compression/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "node_modules/concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "engines": [ - "node >= 0.8" - ], - "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "node_modules/connect": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", - "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", - "dev": true, - "dependencies": { - "debug": "2.6.9", - "finalhandler": "1.1.2", - "parseurl": "~1.3.3", - "utils-merge": "1.0.1" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/connect-history-api-fallback": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", - "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/connect/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/connect/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/console-browserify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", - "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", - "dev": true - }, - "node_modules/constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", - "dev": true - }, - "node_modules/content-disposition": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", - "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", - "dev": true, - "dependencies": { - "safe-buffer": "5.1.2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/convert-source-map": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", - "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.1" - } - }, - "node_modules/cookie": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", - "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", - "dev": true - }, - "node_modules/copy-anything": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.1.tgz", - "integrity": "sha512-lA57e7viQHOdPQcrytv5jFeudZZOXuyk47lZym279FiDQ8jeZomXiGuVf6ffMKkJ+3TIai3J1J3yi6M+/4U35g==", - "dev": true, - "dependencies": { - "is-what": "^3.7.1" - } - }, - "node_modules/copy-concurrently": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", - "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", - "dev": true, - "dependencies": { - "aproba": "^1.1.1", - "fs-write-stream-atomic": "^1.0.8", - "iferr": "^0.1.5", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.0" - } - }, - "node_modules/copy-concurrently/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/copy-webpack-plugin": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-6.0.3.tgz", - "integrity": "sha512-q5m6Vz4elsuyVEIUXr7wJdIdePWTubsqVbEMvf1WQnHGv0Q+9yPRu7MtYFPt+GBOXRav9lvIINifTQ1vSCs+eA==", - "dev": true, - "dependencies": { - "cacache": "^15.0.4", - "fast-glob": "^3.2.4", - "find-cache-dir": "^3.3.1", - "glob-parent": "^5.1.1", - "globby": "^11.0.1", - "loader-utils": "^2.0.0", - "normalize-path": "^3.0.0", - "p-limit": "^3.0.1", - "schema-utils": "^2.7.0", - "serialize-javascript": "^4.0.0", - "webpack-sources": "^1.4.3" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/copy-webpack-plugin/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/core-js": { - "version": "3.6.4", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.4.tgz", - "integrity": "sha512-4paDGScNgZP2IXXilaffL9X7968RuvwlkK3xWtZRVqgd8SYNiVKRJvkFd1aqqEuPfN7E68ZHEp9hDj6lHj4Hyw==", - "dev": true - }, - "node_modules/core-js-compat": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.8.1.tgz", - "integrity": "sha512-a16TLmy9NVD1rkjUGbwuyWkiDoN0FDpAwrfLONvHFQx0D9k7J9y0srwMT8QP/Z6HE3MIFaVynEeYwZwPX1o5RQ==", - "dev": true, - "dependencies": { - "browserslist": "^4.15.0", - "semver": "7.0.0" - } - }, - "node_modules/core-js-compat/node_modules/semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true - }, - "node_modules/cosmiconfig": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", - "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", - "dev": true, - "dependencies": { - "import-fresh": "^2.0.0", - "is-directory": "^0.3.1", - "js-yaml": "^3.13.1", - "parse-json": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/create-ecdh": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", - "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", - "dev": true, - "dependencies": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - } - }, - "node_modules/create-ecdh/node_modules/bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - }, - "node_modules/create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "dev": true, - "dependencies": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "node_modules/create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "dev": true, - "dependencies": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "node_modules/cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "dependencies": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "engines": { - "node": ">=4.8" - } - }, - "node_modules/cross-spawn/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "dev": true, - "dependencies": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - }, - "engines": { - "node": "*" - } - }, - "node_modules/css": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz", - "integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "source-map": "^0.6.1", - "source-map-resolve": "^0.5.2", - "urix": "^0.1.0" - } - }, - "node_modules/css-color-names": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", - "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/css-declaration-sorter": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz", - "integrity": "sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==", - "dev": true, - "dependencies": { - "postcss": "^7.0.1", - "timsort": "^0.3.0" - }, - "engines": { - "node": ">4" - } - }, - "node_modules/css-loader": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-4.2.2.tgz", - "integrity": "sha512-omVGsTkZPVwVRpckeUnLshPp12KsmMSLqYxs12+RzM9jRR5Y+Idn/tBffjXRvOE+qW7if24cuceFJqYR5FmGBg==", - "dev": true, - "dependencies": { - "camelcase": "^6.0.0", - "cssesc": "^3.0.0", - "icss-utils": "^4.1.1", - "loader-utils": "^2.0.0", - "postcss": "^7.0.32", - "postcss-modules-extract-imports": "^2.0.0", - "postcss-modules-local-by-default": "^3.0.3", - "postcss-modules-scope": "^2.2.0", - "postcss-modules-values": "^3.0.0", - "postcss-value-parser": "^4.1.0", - "schema-utils": "^2.7.0", - "semver": "^7.3.2" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/css-parse": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/css-parse/-/css-parse-2.0.0.tgz", - "integrity": "sha1-pGjuZnwW2BzPBcWMONKpfHgNv9Q=", - "dev": true, - "dependencies": { - "css": "^2.0.0" - } - }, - "node_modules/css-select": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", - "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", - "dev": true, - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^3.2.1", - "domutils": "^1.7.0", - "nth-check": "^1.0.2" - } - }, - "node_modules/css-select-base-adapter": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", - "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==", - "dev": true - }, - "node_modules/css-selector-tokenizer": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.3.tgz", - "integrity": "sha512-jWQv3oCEL5kMErj4wRnK/OPoBi0D+P1FR2cDCKYPaMeD2eW3/mttav8HT4hT1CKopiJI/psEULjkClhvJo4Lvg==", - "dev": true, - "dependencies": { - "cssesc": "^3.0.0", - "fastparse": "^1.1.2" - } - }, - "node_modules/css-tree": { - "version": "1.0.0-alpha.37", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", - "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", - "dev": true, - "dependencies": { - "mdn-data": "2.0.4", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/css-tree/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/css-what": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", - "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/css/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cssauron": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/cssauron/-/cssauron-1.4.0.tgz", - "integrity": "sha1-pmAt/34EqDBtwNuaVR6S6LVmKtg=", - "dev": true, - "dependencies": { - "through": "X.X.X" - } - }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true, - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cssnano": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.10.tgz", - "integrity": "sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ==", - "dev": true, - "dependencies": { - "cosmiconfig": "^5.0.0", - "cssnano-preset-default": "^4.0.7", - "is-resolvable": "^1.0.0", - "postcss": "^7.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/cssnano-preset-default": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz", - "integrity": "sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA==", - "dev": true, - "dependencies": { - "css-declaration-sorter": "^4.0.1", - "cssnano-util-raw-cache": "^4.0.1", - "postcss": "^7.0.0", - "postcss-calc": "^7.0.1", - "postcss-colormin": "^4.0.3", - "postcss-convert-values": "^4.0.1", - "postcss-discard-comments": "^4.0.2", - "postcss-discard-duplicates": "^4.0.2", - "postcss-discard-empty": "^4.0.1", - "postcss-discard-overridden": "^4.0.1", - "postcss-merge-longhand": "^4.0.11", - "postcss-merge-rules": "^4.0.3", - "postcss-minify-font-values": "^4.0.2", - "postcss-minify-gradients": "^4.0.2", - "postcss-minify-params": "^4.0.2", - "postcss-minify-selectors": "^4.0.2", - "postcss-normalize-charset": "^4.0.1", - "postcss-normalize-display-values": "^4.0.2", - "postcss-normalize-positions": "^4.0.2", - "postcss-normalize-repeat-style": "^4.0.2", - "postcss-normalize-string": "^4.0.2", - "postcss-normalize-timing-functions": "^4.0.2", - "postcss-normalize-unicode": "^4.0.1", - "postcss-normalize-url": "^4.0.1", - "postcss-normalize-whitespace": "^4.0.2", - "postcss-ordered-values": "^4.1.2", - "postcss-reduce-initial": "^4.0.3", - "postcss-reduce-transforms": "^4.0.2", - "postcss-svgo": "^4.0.2", - "postcss-unique-selectors": "^4.0.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/cssnano-util-get-arguments": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz", - "integrity": "sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/cssnano-util-get-match": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz", - "integrity": "sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/cssnano-util-raw-cache": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz", - "integrity": "sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==", - "dev": true, - "dependencies": { - "postcss": "^7.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/cssnano-util-same-parent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz", - "integrity": "sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/csso": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", - "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", - "dev": true, - "dependencies": { - "css-tree": "^1.1.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/csso/node_modules/css-tree": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.2.tgz", - "integrity": "sha512-wCoWush5Aeo48GLhfHPbmvZs59Z+M7k5+B1xDnXbdWNcEF423DoFdqSWE0PM5aNk5nI5cp1q7ms36zGApY/sKQ==", - "dev": true, - "dependencies": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/csso/node_modules/mdn-data": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", - "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", - "dev": true - }, - "node_modules/csso/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/custom-event": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", - "integrity": "sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU=", - "dev": true - }, - "node_modules/cyclist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", - "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", - "dev": true - }, - "node_modules/d": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", - "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", - "dev": true, - "dependencies": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - } - }, - "node_modules/damerau-levenshtein": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz", - "integrity": "sha512-JVrozIeElnj3QzfUIt8tB8YMluBJom4Vw9qTPpjGYQ9fYlB3D/rb6OordUxf3xeFB35LKWs0xqcO5U6ySvBtug==", - "dev": true - }, - "node_modules/dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, - "dependencies": { - "assert-plus": "^1.0.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/data-urls": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", - "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", - "dev": true, - "dependencies": { - "abab": "^2.0.3", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/date-format": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/date-format/-/date-format-3.0.0.tgz", - "integrity": "sha512-eyTcpKOcamdhWJXj56DpQMo1ylSQpcGtGKXcU0Tb97+K56/CF5amAqqqNj0+KvA0iw2ynxtHWFsPDSClCxe48w==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/debuglog": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz", - "integrity": "sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "dev": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/deep-equal": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", - "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", - "dev": true, - "dependencies": { - "is-arguments": "^1.0.4", - "is-date-object": "^1.0.1", - "is-regex": "^1.0.4", - "object-is": "^1.0.1", - "object-keys": "^1.1.1", - "regexp.prototype.flags": "^1.2.0" - } - }, - "node_modules/default-gateway": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", - "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==", - "dev": true, - "dependencies": { - "execa": "^1.0.0", - "ip-regex": "^2.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/defaults": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", - "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", - "dev": true, - "dependencies": { - "clone": "^1.0.2" - } - }, - "node_modules/defaults/node_modules/clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dev": true, - "dependencies": { - "object-keys": "^1.0.12" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/define-property/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/define-property/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/define-property/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/del": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", - "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", - "dev": true, - "dependencies": { - "@types/glob": "^7.1.1", - "globby": "^6.1.0", - "is-path-cwd": "^2.0.0", - "is-path-in-cwd": "^2.0.0", - "p-map": "^2.0.0", - "pify": "^4.0.1", - "rimraf": "^2.6.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/del/node_modules/array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "dev": true, - "dependencies": { - "array-uniq": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/del/node_modules/globby": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", - "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", - "dev": true, - "dependencies": { - "array-union": "^1.0.1", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/del/node_modules/globby/node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/del/node_modules/p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/del/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/dependency-graph": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.7.2.tgz", - "integrity": "sha512-KqtH4/EZdtdfWX0p6MGP9jljvxSY6msy/pRUD4jgNwVpv3v1QmNLlsB3LDSSUg79BRVSn7jI1QPRtArGABovAQ==", - "dev": true, - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/des.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", - "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", - "dev": true - }, - "node_modules/detect-node": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz", - "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==", - "dev": true - }, - "node_modules/dezalgo": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz", - "integrity": "sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY=", - "dev": true, - "dependencies": { - "asap": "^2.0.0", - "wrappy": "1" - } - }, - "node_modules/di": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", - "integrity": "sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw=", - "dev": true - }, - "node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "dev": true, - "dependencies": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, - "node_modules/diffie-hellman/node_modules/bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/dns-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", - "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=", - "dev": true - }, - "node_modules/dns-packet": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz", - "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==", - "dev": true, - "dependencies": { - "ip": "^1.1.0", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/dns-txt": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", - "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", - "dev": true, - "dependencies": { - "buffer-indexof": "^1.0.0" - } - }, - "node_modules/dom-serialize": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", - "integrity": "sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs=", - "dev": true, - "dependencies": { - "custom-event": "~1.0.0", - "ent": "~2.2.0", - "extend": "^3.0.0", - "void-elements": "^2.0.0" - } - }, - "node_modules/dom-serializer": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", - "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", - "dev": true, - "dependencies": { - "domelementtype": "^2.0.1", - "entities": "^2.0.0" - } - }, - "node_modules/dom-serializer/node_modules/domelementtype": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.1.0.tgz", - "integrity": "sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w==", - "dev": true - }, - "node_modules/domain-browser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", - "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", - "dev": true, - "engines": { - "node": ">=0.4", - "npm": ">=1.2" - } - }, - "node_modules/domelementtype": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", - "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", - "dev": true - }, - "node_modules/domutils": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", - "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", - "dev": true, - "dependencies": { - "dom-serializer": "0", - "domelementtype": "1" - } - }, - "node_modules/dot-prop": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", - "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", - "dev": true, - "dependencies": { - "is-obj": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, - "node_modules/ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dev": true, - "dependencies": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", - "dev": true - }, - "node_modules/electron-to-chromium": { - "version": "1.3.629", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.629.tgz", - "integrity": "sha512-iSPPJtPvHrMAvYOt+9cdbDmTasPqwnwz4lkP8Dn200gDNUBQOLQ96xUsWXBwXslAo5XxdoXAoQQ3RAy4uao9IQ==", - "dev": true - }, - "node_modules/elliptic": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", - "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", - "dev": true, - "dependencies": { - "bn.js": "^4.4.0", - "brorand": "^1.0.1", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.0" - } - }, - "node_modules/elliptic/node_modules/bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - }, - "node_modules/emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "node_modules/emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "dev": true, - "dependencies": { - "iconv-lite": "^0.6.2" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/engine.io": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.4.2.tgz", - "integrity": "sha512-b4Q85dFkGw+TqgytGPrGgACRUhsdKc9S9ErRAXpPGy/CXKs4tYoHDkvIRdsseAF7NjfVwjRFIn6KTnbw7LwJZg==", - "dev": true, - "dependencies": { - "accepts": "~1.3.4", - "base64id": "2.0.0", - "cookie": "0.3.1", - "debug": "~4.1.0", - "engine.io-parser": "~2.2.0", - "ws": "^7.1.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/engine.io-client": { - "version": "3.4.4", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.4.4.tgz", - "integrity": "sha512-iU4CRr38Fecj8HoZEnFtm2EiKGbYZcPn3cHxqNGl/tmdWRf60KhK+9vE0JeSjgnlS/0oynEfLgKbT9ALpim0sQ==", - "dev": true, - "dependencies": { - "component-emitter": "~1.3.0", - "component-inherit": "0.0.3", - "debug": "~3.1.0", - "engine.io-parser": "~2.2.0", - "has-cors": "1.1.0", - "indexof": "0.0.1", - "parseqs": "0.0.6", - "parseuri": "0.0.6", - "ws": "~6.1.0", - "xmlhttprequest-ssl": "~1.5.4", - "yeast": "0.1.2" - } - }, - "node_modules/engine.io-client/node_modules/debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/engine.io-client/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/engine.io-client/node_modules/parseqs": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.6.tgz", - "integrity": "sha512-jeAGzMDbfSHHA091hr0r31eYfTig+29g3GKKE/PPbEQ65X0lmMwlEoqmhzu0iztID5uJpZsFlUPDP8ThPL7M8w==", - "dev": true - }, - "node_modules/engine.io-client/node_modules/parseuri": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.6.tgz", - "integrity": "sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow==", - "dev": true - }, - "node_modules/engine.io-client/node_modules/ws": { - "version": "6.1.4", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.1.4.tgz", - "integrity": "sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA==", - "dev": true, - "dependencies": { - "async-limiter": "~1.0.0" - } - }, - "node_modules/engine.io-parser": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.2.1.tgz", - "integrity": "sha512-x+dN/fBH8Ro8TFwJ+rkB2AmuVw9Yu2mockR/p3W8f8YtExwFgDvBDi0GWyb4ZLkpahtDGZgtr3zLovanJghPqg==", - "dev": true, - "dependencies": { - "after": "0.8.2", - "arraybuffer.slice": "~0.0.7", - "base64-arraybuffer": "0.1.4", - "blob": "0.0.5", - "has-binary2": "~1.0.2" - } - }, - "node_modules/engine.io/node_modules/cookie": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", - "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/engine.io/node_modules/debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/engine.io/node_modules/ws": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.1.tgz", - "integrity": "sha512-pTsP8UAfhy3sk1lSk/O/s4tjD0CRwvMnzvwr4OKGX7ZvqZtUyx4KIJB5JWbkykPoc55tixMGgTNoh3k4FkNGFQ==", - "dev": true, - "engines": { - "node": ">=8.3.0" - } - }, - "node_modules/enhanced-resolve": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz", - "integrity": "sha512-3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.5.0", - "tapable": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/ent": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", - "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=", - "dev": true - }, - "node_modules/entities": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", - "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", - "dev": true - }, - "node_modules/err-code": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz", - "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=", - "dev": true - }, - "node_modules/errno": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", - "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", - "dev": true, - "dependencies": { - "prr": "~1.0.1" - }, - "bin": { - "errno": "cli.js" - } - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/es-abstract": { - "version": "1.18.0-next.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz", - "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==", - "dev": true, - "dependencies": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", - "is-negative-zero": "^2.0.0", - "is-regex": "^1.1.1", - "object-inspect": "^1.8.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.1", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es5-ext": { - "version": "0.10.53", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", - "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", - "dev": true, - "dependencies": { - "es6-iterator": "~2.0.3", - "es6-symbol": "~3.1.3", - "next-tick": "~1.0.0" - } - }, - "node_modules/es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", - "dev": true, - "dependencies": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "node_modules/es6-promise": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", - "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", - "dev": true - }, - "node_modules/es6-promisify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", - "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", - "dev": true, - "dependencies": { - "es6-promise": "^4.0.3" - } - }, - "node_modules/es6-symbol": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", - "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", - "dev": true, - "dependencies": { - "d": "^1.0.1", - "ext": "^1.1.2" - } - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", - "dev": true - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/eslint-scope": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", - "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", - "dev": true, - "dependencies": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "dev": true - }, - "node_modules/events": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz", - "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==", - "dev": true, - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/eventsource": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz", - "integrity": "sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ==", - "dev": true, - "dependencies": { - "original": "^1.0.0" - }, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "dev": true, - "dependencies": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dev": true, - "dependencies": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "dependencies": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/expand-brackets/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/express": { - "version": "4.17.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", - "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", - "dev": true, - "dependencies": { - "accepts": "~1.3.7", - "array-flatten": "1.1.1", - "body-parser": "1.19.0", - "content-disposition": "0.5.3", - "content-type": "~1.0.4", - "cookie": "0.4.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.5", - "qs": "6.7.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.1.2", - "send": "0.17.1", - "serve-static": "1.14.1", - "setprototypeof": "1.1.1", - "statuses": "~1.5.0", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/express/node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", - "dev": true - }, - "node_modules/express/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/express/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/ext": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", - "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==", - "dev": true, - "dependencies": { - "type": "^2.0.0" - } - }, - "node_modules/ext/node_modules/type": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/type/-/type-2.1.0.tgz", - "integrity": "sha512-G9absDWvhAWCV2gmF1zKud3OyC61nZDwWvBL2DApaVFogI07CprggiQAOOjvp2NRjYWFzPyu7vwtDrQFq8jeSA==", - "dev": true - }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, - "node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extend-shallow/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "dev": true, - "dependencies": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/external-editor/node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "dependencies": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true, - "engines": [ - "node >=0.6.0" - ] - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "node_modules/fast-glob": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz", - "integrity": "sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.0", - "merge2": "^1.3.0", - "micromatch": "^4.0.2", - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "node_modules/fastparse": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", - "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==", - "dev": true - }, - "node_modules/fastq": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.9.0.tgz", - "integrity": "sha512-i7FVWL8HhVY+CTkwFxkN2mk3h+787ixS5S63eb78diVRc1MCssarHq3W5cj0av7YDSwmaV928RNag+U1etRQ7w==", - "dev": true, - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/faye-websocket": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", - "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", - "dev": true, - "dependencies": { - "websocket-driver": ">=0.5.1" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/figgy-pudding": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", - "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", - "dev": true - }, - "node_modules/figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^1.0.5" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/file-loader": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.0.0.tgz", - "integrity": "sha512-/aMOAYEFXDdjG0wytpTL5YQLfZnnTmLNjn+AIrJ/6HVnTfDqLsVKUUwkDf4I4kgex36BvjuXEn/TX9B/1ESyqQ==", - "dev": true, - "dependencies": { - "loader-utils": "^2.0.0", - "schema-utils": "^2.6.5" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "dev": true, - "optional": true - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", - "dev": true, - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/find-cache-dir": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", - "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", - "dev": true, - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-cache-dir/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-cache-dir/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-cache-dir/node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-cache-dir/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-cache-dir/node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-cache-dir/node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-cache-dir/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/flatted": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", - "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", - "dev": true - }, - "node_modules/flush-write-stream": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", - "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "readable-stream": "^2.3.6" - } - }, - "node_modules/follow-redirects": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.1.tgz", - "integrity": "sha512-SSG5xmZh1mkPGyKzjZP8zLjltIfpW32Y5QpdNJyjcfGxK3qo3NDDkZOZSFiGn1A6SclQxY9GzEwAHQ3dmYRWpg==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dev": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" - } - }, - "node_modules/forwarded": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", - "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "dev": true, - "dependencies": { - "map-cache": "^0.2.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - } - }, - "node_modules/fs-extra": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.2.tgz", - "integrity": "sha1-+RcExT0bRh+JNFKwwwfZmXZHq2s=", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "node_modules/fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/fs-write-stream-atomic": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", - "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "iferr": "^0.1.5", - "imurmurhash": "^0.1.4", - "readable-stream": "1 || 2" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "node_modules/fsevents": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", - "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "node_modules/genfun": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/genfun/-/genfun-5.0.0.tgz", - "integrity": "sha512-KGDOARWVga7+rnB3z9Sd2Letx515owfk0hSxHGuqjANb1M+x2bGZGqHLiozPsYMdM2OubeMni/Hpwmjq6qIUhA==", - "dev": true - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.0.2.tgz", - "integrity": "sha512-aeX0vrFm21ILl3+JpFFRNe9aUvp6VFZb2/CTbgLb8j75kOhvoNYjt9d8KA/tJG4gSo8nzEDedRl0h7vDmBYRVg==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - }, - "node_modules/get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, - "dependencies": { - "assert-plus": "^1.0.0" - } - }, - "node_modules/glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/glob-parent": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/globby": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.1.tgz", - "integrity": "sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ==", - "dev": true, - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.1.1", - "ignore": "^5.1.4", - "merge2": "^1.3.0", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", - "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", - "dev": true - }, - "node_modules/handle-thing": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", - "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", - "dev": true - }, - "node_modules/har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "dev": true, - "dependencies": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-binary2": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz", - "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==", - "dev": true, - "dependencies": { - "isarray": "2.0.1" - } - }, - "node_modules/has-binary2/node_modules/isarray": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", - "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", - "dev": true - }, - "node_modules/has-cors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", - "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=", - "dev": true - }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/has-symbols": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "dev": true, - "dependencies": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "dev": true, - "dependencies": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values/node_modules/kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/hash-base/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/hash-base/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - }, - "node_modules/hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "node_modules/hex-color-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz", - "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==", - "dev": true - }, - "node_modules/hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "dev": true, - "dependencies": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/hosted-git-info": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.7.tgz", - "integrity": "sha512-fWqc0IcuXs+BmE9orLDyVykAG9GJtGLGuZAAqgcckPgv5xad4AcXGIv8galtQvlwutxSlaMcdw7BUtq2EIvqCQ==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/hpack.js": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" - } - }, - "node_modules/hsl-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz", - "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=", - "dev": true - }, - "node_modules/hsla-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz", - "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=", - "dev": true - }, - "node_modules/html-comment-regex": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz", - "integrity": "sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==", - "dev": true - }, - "node_modules/html-entities": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.4.0.tgz", - "integrity": "sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA==", - "dev": true - }, - "node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "node_modules/http-cache-semantics": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", - "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==", - "dev": true - }, - "node_modules/http-deceiver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", - "dev": true - }, - "node_modules/http-errors": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", - "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", - "dev": true, - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/http-errors/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "node_modules/http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", - "dev": true, - "dependencies": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/http-proxy-agent": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz", - "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", - "dev": true, - "dependencies": { - "agent-base": "4", - "debug": "3.1.0" - }, - "engines": { - "node": ">= 4.5.0" - } - }, - "node_modules/http-proxy-agent/node_modules/debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/http-proxy-agent/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/http-proxy-middleware": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz", - "integrity": "sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==", - "dev": true, - "dependencies": { - "http-proxy": "^1.17.0", - "is-glob": "^4.0.0", - "lodash": "^4.17.11", - "micromatch": "^3.1.10" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/http-proxy-middleware/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/http-proxy-middleware/node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/http-proxy-middleware/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/http-proxy-middleware/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/http-proxy-middleware/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/http-proxy-middleware/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/http-proxy-middleware/node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/http-proxy-middleware/node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dev": true, - "dependencies": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - }, - "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" - } - }, - "node_modules/https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", - "dev": true - }, - "node_modules/https-proxy-agent": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", - "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", - "dev": true, - "dependencies": { - "agent-base": "^4.3.0", - "debug": "^3.1.0" - }, - "engines": { - "node": ">= 4.5.0" - } - }, - "node_modules/https-proxy-agent/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/humanize-ms": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", - "dev": true, - "dependencies": { - "ms": "^2.0.0" - } - }, - "node_modules/iconv-lite": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz", - "integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==", - "dev": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/icss-utils": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz", - "integrity": "sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA==", - "dev": true, - "dependencies": { - "postcss": "^7.0.14" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true - }, - "node_modules/iferr": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", - "dev": true - }, - "node_modules/ignore": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", - "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/ignore-walk": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz", - "integrity": "sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==", - "dev": true, - "dependencies": { - "minimatch": "^3.0.4" - } - }, - "node_modules/image-size": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", - "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", - "dev": true, - "optional": true, - "bin": { - "image-size": "bin/image-size.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/immediate": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", - "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=", - "dev": true - }, - "node_modules/import-cwd": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz", - "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", - "dev": true, - "dependencies": { - "import-from": "^2.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/import-fresh": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", - "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", - "dev": true, - "dependencies": { - "caller-path": "^2.0.0", - "resolve-from": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/import-from": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz", - "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", - "dev": true, - "dependencies": { - "resolve-from": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/import-local": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", - "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", - "dev": true, - "dependencies": { - "pkg-dir": "^3.0.0", - "resolve-cwd": "^2.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true, - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/indexes-of": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", - "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", - "dev": true - }, - "node_modules/indexof": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", - "dev": true - }, - "node_modules/infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", - "dev": true - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/ini": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.6.tgz", - "integrity": "sha512-IZUoxEjNjubzrmvzZU4lKP7OnYmX72XRl3sqkfJhBKweKi5rnGi5+IUdlj/H1M+Ip5JQ1WzaDMOBRY90Ajc5jg==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/inquirer": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", - "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", - "dev": true, - "dependencies": { - "ansi-escapes": "^4.2.1", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-width": "^3.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.19", - "mute-stream": "0.0.8", - "run-async": "^2.4.0", - "rxjs": "^6.6.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/inquirer/node_modules/ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/inquirer/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/inquirer/node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/inquirer/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/inquirer/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/inquirer/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/inquirer/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/inquirer/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/inquirer/node_modules/string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/inquirer/node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/inquirer/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/internal-ip": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", - "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==", - "dev": true, - "dependencies": { - "default-gateway": "^4.2.0", - "ipaddr.js": "^1.9.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "dev": true, - "dependencies": { - "loose-envify": "^1.0.0" - } - }, - "node_modules/ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", - "dev": true - }, - "node_modules/ip-regex": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", - "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/is-absolute-url": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", - "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-arguments": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz", - "integrity": "sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "node_modules/is-callable": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz", - "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-color-stop": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz", - "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=", - "dev": true, - "dependencies": { - "css-color-names": "^0.0.4", - "hex-color-regex": "^1.1.0", - "hsl-regex": "^1.0.0", - "hsla-regex": "^1.0.0", - "rgb-regex": "^1.0.1", - "rgba-regex": "^1.0.0" - } - }, - "node_modules/is-core-module": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", - "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", - "dev": true, - "dependencies": { - "has": "^1.0.3" - } - }, - "node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-date-object": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", - "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-descriptor/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-directory": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", - "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-docker": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.1.1.tgz", - "integrity": "sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw==", - "dev": true, - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-interactive": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", - "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-negative-zero": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", - "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/is-path-in-cwd": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", - "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", - "dev": true, - "dependencies": { - "is-path-inside": "^2.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/is-path-inside": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", - "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", - "dev": true, - "dependencies": { - "path-is-inside": "^1.0.2" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-regex": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", - "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-resolvable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", - "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", - "dev": true - }, - "node_modules/is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-svg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-3.0.0.tgz", - "integrity": "sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ==", - "dev": true, - "dependencies": { - "html-comment-regex": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/is-symbol": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", - "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, - "node_modules/is-what": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.12.0.tgz", - "integrity": "sha512-2ilQz5/f/o9V7WRWJQmpFYNmQFZ9iM+OXRonZKcYgTkCzjb949Vi4h282PD1UfmgHk666rcWonbRJ++KI41VGw==", - "dev": true - }, - "node_modules/is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "dev": true, - "dependencies": { - "is-docker": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "node_modules/isbinaryfile": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.6.tgz", - "integrity": "sha512-ORrEy+SNVqUhrCaal4hA4fBzhggQQ+BaLntyPOdoEiwlKZW9BZiJXjg3RMiruE4tPEI3pyVPpySHQF/dKWperg==", - "dev": true, - "engines": { - "node": ">= 8.0.0" - } - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true - }, - "node_modules/istanbul-lib-coverage": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", - "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", - "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", - "dev": true, - "dependencies": { - "@babel/core": "^7.7.5", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", - "dev": true, - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-report/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-report/node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-report/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/istanbul-lib-report/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-source-maps": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz", - "integrity": "sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^2.0.5", - "make-dir": "^2.1.0", - "rimraf": "^2.6.3", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/istanbul-lib-source-maps/node_modules/istanbul-lib-coverage": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz", - "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/istanbul-lib-source-maps/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/istanbul-lib-source-maps/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/istanbul-reports": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz", - "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==", - "dev": true, - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jasmine": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-2.8.0.tgz", - "integrity": "sha1-awicChFXax8W3xG4AUbZHU6Lij4=", - "dev": true, - "dependencies": { - "exit": "^0.1.2", - "glob": "^7.0.6", - "jasmine-core": "~2.8.0" - }, - "bin": { - "jasmine": "bin/jasmine.js" - } - }, - "node_modules/jasmine-core": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-3.6.0.tgz", - "integrity": "sha512-8uQYa7zJN8hq9z+g8z1bqCfdC8eoDAeVnM5sfqs7KHv9/ifoJ500m018fpFc7RDaO6SWCLCXwo/wPSNcdYTgcw==", - "dev": true - }, - "node_modules/jasmine-spec-reporter": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/jasmine-spec-reporter/-/jasmine-spec-reporter-5.0.2.tgz", - "integrity": "sha512-6gP1LbVgJ+d7PKksQBc2H0oDGNRQI3gKUsWlswKaQ2fif9X5gzhQcgM5+kiJGCQVurOG09jqNhk7payggyp5+g==", - "dev": true, - "dependencies": { - "colors": "1.4.0" - } - }, - "node_modules/jasmine/node_modules/jasmine-core": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.8.0.tgz", - "integrity": "sha1-vMl5rh+f0FcB5F5S5l06XWPxok4=", - "dev": true - }, - "node_modules/jasminewd2": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/jasminewd2/-/jasminewd2-2.2.0.tgz", - "integrity": "sha1-43zwsX8ZnM4jvqcbIDk5Uka07E4=", - "dev": true, - "engines": { - "node": ">= 6.9.x" - } - }, - "node_modules/jest-worker": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.3.0.tgz", - "integrity": "sha512-Vmpn2F6IASefL+DVBhPzI2J9/GJUsqzomdeN+P+dK8/jKxbh8R3BtFnx3FIta7wYlPU62cpJMJQo4kuOowcMnw==", - "dev": true, - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/jest-worker/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jquery": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.5.1.tgz", - "integrity": "sha512-XwIBPqcMn57FxfT+Go5pzySnm4KWkT1Tv7gjrpT1srtf8Weynl6R273VJ5GjkRb51IzMp5nbaPjJXMWeju2MKg==" - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true - }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "node_modules/json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "dev": true - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true - }, - "node_modules/json3": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz", - "integrity": "sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==", - "dev": true - }, - "node_modules/json5": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", - "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonc-parser": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-2.3.0.tgz", - "integrity": "sha512-b0EBt8SWFNnixVdvoR2ZtEGa9ZqLhbJnOjezn+WP+8kspFm+PFYDN8Z4Bc7pRlDjvuVcADSUkroIuTWWn/YiIA==", - "dev": true - }, - "node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", - "dev": true, - "engines": [ - "node >= 0.2.0" - ] - }, - "node_modules/JSONStream": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", - "dev": true, - "dependencies": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - }, - "bin": { - "JSONStream": "bin.js" - }, - "engines": { - "node": "*" - } - }, - "node_modules/jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "dev": true, - "engines": [ - "node >=0.6.0" - ], - "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "node_modules/jszip": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.5.0.tgz", - "integrity": "sha512-WRtu7TPCmYePR1nazfrtuF216cIVon/3GWOvHS9QR5bIwSbnxtdpma6un3jyGGNhHsKCSzn5Ypk+EkDRvTGiFA==", - "dev": true, - "dependencies": { - "lie": "~3.3.0", - "pako": "~1.0.2", - "readable-stream": "~2.3.6", - "set-immediate-shim": "~1.0.1" - } - }, - "node_modules/karma": { - "version": "5.0.9", - "resolved": "https://registry.npmjs.org/karma/-/karma-5.0.9.tgz", - "integrity": "sha512-dUA5z7Lo7G4FRSe1ZAXqOINEEWxmCjDBbfRBmU/wYlSMwxUQJP/tEEP90yJt3Uqo03s9rCgVnxtlfq+uDhxSPg==", - "dev": true, - "dependencies": { - "body-parser": "^1.19.0", - "braces": "^3.0.2", - "chokidar": "^3.0.0", - "colors": "^1.4.0", - "connect": "^3.7.0", - "di": "^0.0.1", - "dom-serialize": "^2.2.1", - "flatted": "^2.0.2", - "glob": "^7.1.6", - "graceful-fs": "^4.2.4", - "http-proxy": "^1.18.1", - "isbinaryfile": "^4.0.6", - "lodash": "^4.17.15", - "log4js": "^6.2.1", - "mime": "^2.4.5", - "minimatch": "^3.0.4", - "qjobs": "^1.2.0", - "range-parser": "^1.2.1", - "rimraf": "^3.0.2", - "socket.io": "^2.3.0", - "source-map": "^0.6.1", - "tmp": "0.2.1", - "ua-parser-js": "0.7.21", - "yargs": "^15.3.1" - }, - "bin": { - "karma": "bin/karma" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/karma-chrome-launcher": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.1.0.tgz", - "integrity": "sha512-3dPs/n7vgz1rxxtynpzZTvb9y/GIaW8xjAwcIGttLbycqoFtI7yo1NGnQi6oFTherRE+GIhCAHZC4vEqWGhNvg==", - "dev": true, - "dependencies": { - "which": "^1.2.1" - } - }, - "node_modules/karma-coverage-istanbul-reporter": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/karma-coverage-istanbul-reporter/-/karma-coverage-istanbul-reporter-3.0.3.tgz", - "integrity": "sha512-wE4VFhG/QZv2Y4CdAYWDbMmcAHeS926ZIji4z+FkB2aF/EposRb6DP6G5ncT/wXhqUfAb/d7kZrNKPonbvsATw==", - "dev": true, - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^3.0.6", - "istanbul-reports": "^3.0.2", - "minimatch": "^3.0.4" - } - }, - "node_modules/karma-jasmine": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-4.0.1.tgz", - "integrity": "sha512-h8XDAhTiZjJKzfkoO1laMH+zfNlra+dEQHUAjpn5JV1zCPtOIVWGQjLBrqhnzQa/hrU2XrZwSyBa6XjEBzfXzw==", - "dev": true, - "dependencies": { - "jasmine-core": "^3.6.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/karma-jasmine-html-reporter": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-1.5.4.tgz", - "integrity": "sha512-PtilRLno5O6wH3lDihRnz0Ba8oSn0YUJqKjjux1peoYGwo0AQqrWRbdWk/RLzcGlb+onTyXAnHl6M+Hu3UxG/Q==", - "dev": true - }, - "node_modules/karma-source-map-support": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.4.0.tgz", - "integrity": "sha512-RsBECncGO17KAoJCYXjv+ckIz+Ii9NCi+9enk+rq6XC81ezYkb4/RHE6CTXdA7IOJqoF3wcaLfVG0CPmE5ca6A==", - "dev": true, - "dependencies": { - "source-map-support": "^0.5.5" - } - }, - "node_modules/karma/node_modules/ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/karma/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/karma/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/karma/node_modules/cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "node_modules/karma/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/karma/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/karma/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/karma/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/karma/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/karma/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/karma/node_modules/mime": { - "version": "2.4.7", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.7.tgz", - "integrity": "sha512-dhNd1uA2u397uQk3Nv5LM4lm93WYDUXFn3Fu291FJerns4jyTudqhIWe4W04YLy7Uk1tm1Ore04NpjRvQp/NPA==", - "dev": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/karma/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/karma/node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/karma/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/karma/node_modules/string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/karma/node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/karma/node_modules/tmp": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", - "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", - "dev": true, - "dependencies": { - "rimraf": "^3.0.0" - }, - "engines": { - "node": ">=8.17.0" - } - }, - "node_modules/karma/node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/karma/node_modules/yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "dev": true, - "dependencies": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/karma/node_modules/yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/killable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", - "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==", - "dev": true - }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/klona": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.4.tgz", - "integrity": "sha512-ZRbnvdg/NxqzC7L9Uyqzf4psi1OM4Cuc+sJAkQPjO6XkQIJTNbfK2Rsmbw8fx1p2mkZdp2FZYo2+LwXYY/uwIA==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/leaflet": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/leaflet/-/leaflet-1.3.4.tgz", - "integrity": "sha512-FYL1LGFdj6v+2Ifpw+AcFIuIOqjNggfoLUwuwQv6+3sS21Za7Wvapq+LhbSE4NDXrEj6eYnW3y7LsaBICpyXtw==" - }, - "node_modules/leaflet.heat": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/leaflet.heat/-/leaflet.heat-0.2.0.tgz", - "integrity": "sha1-EJ2M9Ybwre5B8Fr/Ax4np3/swik=" - }, - "node_modules/leaflet.markercluster": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/leaflet.markercluster/-/leaflet.markercluster-1.4.1.tgz", - "integrity": "sha512-ZSEpE/EFApR0bJ1w/dUGwTSUvWlpalKqIzkaYdYB7jaftQA/Y2Jav+eT4CMtEYFj+ZK4mswP13Q2acnPBnhGOw==" - }, - "node_modules/less": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/less/-/less-3.13.1.tgz", - "integrity": "sha512-SwA1aQXGUvp+P5XdZslUOhhLnClSLIjWvJhmd+Vgib5BFIr9lMNlQwmwUNOjXThF/A0x+MCYYPeWEfeWiLRnTw==", - "dev": true, - "dependencies": { - "copy-anything": "^2.0.1", - "errno": "^0.1.1", - "graceful-fs": "^4.1.2", - "image-size": "~0.5.0", - "make-dir": "^2.1.0", - "mime": "^1.4.1", - "native-request": "^1.0.5", - "source-map": "~0.6.0", - "tslib": "^1.10.0" - }, - "bin": { - "lessc": "bin/lessc" - }, - "engines": { - "node": ">=6" - }, - "optionalDependencies": { - "image-size": "~0.5.0", - "native-request": "^1.0.5", - "source-map": "~0.6.0" - } - }, - "node_modules/less-loader": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-6.2.0.tgz", - "integrity": "sha512-Cl5h95/Pz/PWub/tCBgT1oNMFeH1WTD33piG80jn5jr12T4XbxZcjThwNXDQ7AG649WEynuIzO4b0+2Tn9Qolg==", - "dev": true, - "dependencies": { - "clone": "^2.1.2", - "less": "^3.11.3", - "loader-utils": "^2.0.0", - "schema-utils": "^2.7.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/less/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/less/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/levenary": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/levenary/-/levenary-1.1.1.tgz", - "integrity": "sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ==", - "dev": true, - "dependencies": { - "leven": "^3.1.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/license-webpack-plugin": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-2.3.0.tgz", - "integrity": "sha512-JK/DXrtN6UeYQSgkg5q1+pgJ8aiKPL9tnz9Wzw+Ikkf+8mJxG56x6t8O+OH/tAeF/5NREnelTEMyFtbJNkjH4w==", - "dev": true, - "dependencies": { - "@types/webpack-sources": "^0.1.5", - "webpack-sources": "^1.2.0" - } - }, - "node_modules/lie": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", - "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", - "dev": true, - "dependencies": { - "immediate": "~3.0.5" - } - }, - "node_modules/loader-runner": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", - "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", - "dev": true, - "engines": { - "node": ">=4.3.0 <5.0.0 || >=5.10" - } - }, - "node_modules/loader-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", - "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } - }, - "node_modules/locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", - "dev": true - }, - "node_modules/lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", - "dev": true - }, - "node_modules/lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", - "dev": true - }, - "node_modules/lodash.sortby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", - "dev": true - }, - "node_modules/lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", - "dev": true - }, - "node_modules/log-symbols": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz", - "integrity": "sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/log-symbols/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/log-symbols/node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/log-symbols/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/log-symbols/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/log-symbols/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/log-symbols/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/log4js": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.3.0.tgz", - "integrity": "sha512-Mc8jNuSFImQUIateBFwdOQcmC6Q5maU0VVvdC2R6XMb66/VnT+7WS4D/0EeNMZu1YODmJe5NIn2XftCzEocUgw==", - "dev": true, - "dependencies": { - "date-format": "^3.0.0", - "debug": "^4.1.1", - "flatted": "^2.0.1", - "rfdc": "^1.1.4", - "streamroller": "^2.2.4" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/loglevel": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.7.1.tgz", - "integrity": "sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw==", - "dev": true, - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dev": true, - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/magic-string": { - "version": "0.25.7", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", - "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", - "dev": true, - "dependencies": { - "sourcemap-codec": "^1.4.4" - } - }, - "node_modules/make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "dependencies": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/make-dir/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, - "node_modules/make-fetch-happen": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-5.0.2.tgz", - "integrity": "sha512-07JHC0r1ykIoruKO8ifMXu+xEU8qOXDFETylktdug6vJDACnP+HKevOu3PXyNPzFyTSlz8vrBYlBO1JZRe8Cag==", - "dev": true, - "dependencies": { - "agentkeepalive": "^3.4.1", - "cacache": "^12.0.0", - "http-cache-semantics": "^3.8.1", - "http-proxy-agent": "^2.1.0", - "https-proxy-agent": "^2.2.3", - "lru-cache": "^5.1.1", - "mississippi": "^3.0.0", - "node-fetch-npm": "^2.0.2", - "promise-retry": "^1.1.1", - "socks-proxy-agent": "^4.0.0", - "ssri": "^6.0.0" - } - }, - "node_modules/make-fetch-happen/node_modules/cacache": { - "version": "12.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", - "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", - "dev": true, - "dependencies": { - "bluebird": "^3.5.5", - "chownr": "^1.1.1", - "figgy-pudding": "^3.5.1", - "glob": "^7.1.4", - "graceful-fs": "^4.1.15", - "infer-owner": "^1.0.3", - "lru-cache": "^5.1.1", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.3", - "ssri": "^6.0.1", - "unique-filename": "^1.1.1", - "y18n": "^4.0.0" - } - }, - "node_modules/make-fetch-happen/node_modules/chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true - }, - "node_modules/make-fetch-happen/node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/make-fetch-happen/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/make-fetch-happen/node_modules/ssri": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", - "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", - "dev": true, - "dependencies": { - "figgy-pudding": "^3.5.1" - } - }, - "node_modules/make-fetch-happen/node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - }, - "node_modules/map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "dev": true, - "dependencies": { - "object-visit": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "dev": true, - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/mdn-data": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", - "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==", - "dev": true - }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/memory-fs": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", - "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", - "dev": true, - "dependencies": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - }, - "engines": { - "node": ">=4.3.0 <5.0.0 || >=5.10" - } - }, - "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", - "dev": true - }, - "node_modules/merge-source-map": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", - "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", - "dev": true, - "dependencies": { - "source-map": "^0.6.1" - } - }, - "node_modules/merge-source-map/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/micromatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", - "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", - "dev": true, - "dependencies": { - "braces": "^3.0.1", - "picomatch": "^2.0.5" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "dev": true, - "dependencies": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "bin": { - "miller-rabin": "bin/miller-rabin" - } - }, - "node_modules/miller-rabin/node_modules/bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mime-db": { - "version": "1.44.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", - "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.27", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", - "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", - "dev": true, - "dependencies": { - "mime-db": "1.44.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/mini-css-extract-plugin": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.10.0.tgz", - "integrity": "sha512-QgKgJBjaJhxVPwrLNqqwNS0AGkuQQ31Hp4xGXEK/P7wehEg6qmNtReHKai3zRXqY60wGVWLYcOMJK2b98aGc3A==", - "dev": true, - "dependencies": { - "loader-utils": "^1.1.0", - "normalize-url": "1.9.1", - "schema-utils": "^1.0.0", - "webpack-sources": "^1.1.0" - }, - "engines": { - "node": ">= 6.9.0" - } - }, - "node_modules/mini-css-extract-plugin/node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/mini-css-extract-plugin/node_modules/loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/mini-css-extract-plugin/node_modules/normalize-url": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", - "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", - "dev": true, - "dependencies": { - "object-assign": "^4.0.1", - "prepend-http": "^1.0.0", - "query-string": "^4.1.0", - "sort-keys": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mini-css-extract-plugin/node_modules/schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "dev": true, - "dependencies": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true - }, - "node_modules/minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", - "dev": true - }, - "node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true - }, - "node_modules/minipass": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", - "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-collect": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", - "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minipass-flush": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minipass-pipeline": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", - "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/mississippi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", - "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", - "dev": true, - "dependencies": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^3.0.0", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "dev": true, - "dependencies": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/mixin-deep/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/move-concurrently": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", - "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", - "dev": true, - "dependencies": { - "aproba": "^1.1.1", - "copy-concurrently": "^1.0.0", - "fs-write-stream-atomic": "^1.0.8", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.3" - } - }, - "node_modules/move-concurrently/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/multicast-dns": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", - "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", - "dev": true, - "dependencies": { - "dns-packet": "^1.3.1", - "thunky": "^1.0.2" - }, - "bin": { - "multicast-dns": "cli.js" - } - }, - "node_modules/multicast-dns-service-types": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", - "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", - "dev": true - }, - "node_modules/mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", - "dev": true - }, - "node_modules/nan": { - "version": "2.14.2", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", - "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==", - "dev": true, - "optional": true - }, - "node_modules/nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dev": true, - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/native-request": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/native-request/-/native-request-1.0.8.tgz", - "integrity": "sha512-vU2JojJVelUGp6jRcLwToPoWGxSx23z/0iX+I77J3Ht17rf2INGjrhOoQnjVo60nQd8wVsgzKkPfRXBiVdD2ag==", - "dev": true, - "optional": true - }, - "node_modules/negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true - }, - "node_modules/next-tick": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", - "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", - "dev": true - }, - "node_modules/ng-apexcharts": { - "version": "1.5.6", - "resolved": "https://registry.npmjs.org/ng-apexcharts/-/ng-apexcharts-1.5.6.tgz", - "integrity": "sha512-78vmZvrT9iqfZXE00+T8NTvR+EHV0wo4qqf0Zfu1/2KiwazCU9S5EROcmgqMQ1eCO7Sz4GiR19rLTMdtWL/WmQ==", - "dependencies": { - "tslib": "^1.10.0" - } - }, - "node_modules/ng-apexcharts/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, - "node_modules/nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true - }, - "node_modules/node-fetch-npm": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/node-fetch-npm/-/node-fetch-npm-2.0.4.tgz", - "integrity": "sha512-iOuIQDWDyjhv9qSDrj9aq/klt6F9z1p2otB3AV7v3zBDcL/x+OfGsvGQZZCcMZbUf4Ujw1xGNQkjvGnVT22cKg==", - "dev": true, - "dependencies": { - "encoding": "^0.1.11", - "json-parse-better-errors": "^1.0.0", - "safe-buffer": "^5.1.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/node-forge": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", - "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==", - "dev": true, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/node-libs-browser": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", - "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", - "dev": true, - "dependencies": { - "assert": "^1.1.1", - "browserify-zlib": "^0.2.0", - "buffer": "^4.3.0", - "console-browserify": "^1.1.0", - "constants-browserify": "^1.0.0", - "crypto-browserify": "^3.11.0", - "domain-browser": "^1.1.1", - "events": "^3.0.0", - "https-browserify": "^1.0.0", - "os-browserify": "^0.3.0", - "path-browserify": "0.0.1", - "process": "^0.11.10", - "punycode": "^1.2.4", - "querystring-es3": "^0.2.0", - "readable-stream": "^2.3.3", - "stream-browserify": "^2.0.1", - "stream-http": "^2.7.2", - "string_decoder": "^1.0.0", - "timers-browserify": "^2.0.4", - "tty-browserify": "0.0.0", - "url": "^0.11.0", - "util": "^0.11.0", - "vm-browserify": "^1.0.1" - } - }, - "node_modules/node-libs-browser/node_modules/punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - }, - "node_modules/node-releases": { - "version": "1.1.67", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.67.tgz", - "integrity": "sha512-V5QF9noGFl3EymEwUYzO+3NTDpGfQB4ve6Qfnzf3UNydMhjQRVPR1DZTuvWiLzaFJYw2fmDwAfnRNEVb64hSIg==", - "dev": true - }, - "node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/normalize-package-data/node_modules/hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", - "dev": true - }, - "node_modules/normalize-package-data/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-url": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz", - "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/npm-bundled": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.1.tgz", - "integrity": "sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA==", - "dev": true, - "dependencies": { - "npm-normalize-package-bin": "^1.0.1" - } - }, - "node_modules/npm-install-checks": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-4.0.0.tgz", - "integrity": "sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w==", - "dev": true, - "dependencies": { - "semver": "^7.1.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/npm-normalize-package-bin": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", - "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", - "dev": true - }, - "node_modules/npm-package-arg": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.0.1.tgz", - "integrity": "sha512-/h5Fm6a/exByzFSTm7jAyHbgOqErl9qSNJDQF32Si/ZzgwT2TERVxRxn3Jurw1wflgyVVAxnFR4fRHPM7y1ClQ==", - "dev": true, - "dependencies": { - "hosted-git-info": "^3.0.2", - "semver": "^7.0.0", - "validate-npm-package-name": "^3.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/npm-packlist": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz", - "integrity": "sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==", - "dev": true, - "dependencies": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1", - "npm-normalize-package-bin": "^1.0.1" - } - }, - "node_modules/npm-pick-manifest": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-6.1.0.tgz", - "integrity": "sha512-ygs4k6f54ZxJXrzT0x34NybRlLeZ4+6nECAIbr2i0foTnijtS1TJiyzpqtuUAJOps/hO0tNDr8fRV5g+BtRlTw==", - "dev": true, - "dependencies": { - "npm-install-checks": "^4.0.0", - "npm-package-arg": "^8.0.0", - "semver": "^7.0.0" - } - }, - "node_modules/npm-registry-fetch": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-4.0.7.tgz", - "integrity": "sha512-cny9v0+Mq6Tjz+e0erFAB+RYJ/AVGzkjnISiobqP8OWj9c9FLoZZu8/SPSKJWE17F1tk4018wfjV+ZbIbqC7fQ==", - "dev": true, - "dependencies": { - "bluebird": "^3.5.1", - "figgy-pudding": "^3.4.1", - "JSONStream": "^1.3.4", - "lru-cache": "^5.1.1", - "make-fetch-happen": "^5.0.0", - "npm-package-arg": "^6.1.0", - "safe-buffer": "^5.2.0" - } - }, - "node_modules/npm-registry-fetch/node_modules/hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", - "dev": true - }, - "node_modules/npm-registry-fetch/node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/npm-registry-fetch/node_modules/npm-package-arg": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.1.tgz", - "integrity": "sha512-qBpssaL3IOZWi5vEKUKW0cO7kzLeT+EQO9W8RsLOZf76KF9E/K9+wH0C7t06HXPpaH8WH5xF1MExLuCwbTqRUg==", - "dev": true, - "dependencies": { - "hosted-git-info": "^2.7.1", - "osenv": "^0.1.5", - "semver": "^5.6.0", - "validate-npm-package-name": "^3.0.0" - } - }, - "node_modules/npm-registry-fetch/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - }, - "node_modules/npm-registry-fetch/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/npm-registry-fetch/node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - }, - "node_modules/npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dev": true, - "dependencies": { - "path-key": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/nth-check": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", - "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", - "dev": true, - "dependencies": { - "boolbase": "~1.0.0" - } - }, - "node_modules/num2fraction": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", - "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", - "dev": true - }, - "node_modules/oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-component": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", - "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=", - "dev": true - }, - "node_modules/object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "dev": true, - "dependencies": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz", - "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==", - "dev": true - }, - "node_modules/object-is": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.4.tgz", - "integrity": "sha512-1ZvAZ4wlF7IyPVOcE1Omikt7UpaFlOQq0HlSti+ZvDH3UiD2brwGMwDbyV43jao2bKJ+4+WdPJHSd7kgzKYVqg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "dev": true, - "dependencies": { - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.getownpropertydescriptors": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.1.tgz", - "integrity": "sha512-6DtXgZ/lIZ9hqx4GtZETobXLR/ZLaa0aqV0kzbn80Rf8Z2e/XFnhA0I7p07N2wH8bBBltr2xQPi6sbKWAY2Eng==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object.values": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.2.tgz", - "integrity": "sha512-MYC0jvJopr8EK6dPBiO8Nb9mvjdypOachO5REGk6MXzujbBrAisKo3HmdEI6kZDL6fC31Mwee/5YbtMebixeag==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1", - "has": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/obuf": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", - "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", - "dev": true - }, - "node_modules/on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "dev": true, - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/on-headers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/open": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/open/-/open-7.2.0.tgz", - "integrity": "sha512-4HeyhxCvBTI5uBePsAdi55C5fmqnWZ2e2MlmvWi5KW5tdH5rxoiv/aMtbeVxKZc3eWkT1GymMnLG8XC4Rq4TDQ==", - "dev": true, - "dependencies": { - "is-docker": "^2.0.0", - "is-wsl": "^2.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/opn": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", - "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==", - "dev": true, - "dependencies": { - "is-wsl": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/opn/node_modules/is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/ora": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.0.0.tgz", - "integrity": "sha512-s26qdWqke2kjN/wC4dy+IQPBIMWBJlSU/0JZhk30ZDBLelW25rv66yutUWARMigpGPzcXHb+Nac5pNhN/WsARw==", - "dev": true, - "dependencies": { - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.4.0", - "is-interactive": "^1.0.0", - "log-symbols": "^4.0.0", - "mute-stream": "0.0.8", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/ora/node_modules/ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ora/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ora/node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/ora/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/ora/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/ora/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ora/node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ora/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/original": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz", - "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==", - "dev": true, - "dependencies": { - "url-parse": "^1.4.3" - } - }, - "node_modules/os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", - "dev": true - }, - "node_modules/os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/osenv": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "dev": true, - "dependencies": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "node_modules/p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "dependencies": { - "p-limit": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dev": true, - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/p-retry": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz", - "integrity": "sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==", - "dev": true, - "dependencies": { - "retry": "^0.12.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/pacote": { - "version": "9.5.12", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-9.5.12.tgz", - "integrity": "sha512-BUIj/4kKbwWg4RtnBncXPJd15piFSVNpTzY0rysSr3VnMowTYgkGKcaHrbReepAkjTr8lH2CVWRi58Spg2CicQ==", - "dev": true, - "dependencies": { - "bluebird": "^3.5.3", - "cacache": "^12.0.2", - "chownr": "^1.1.2", - "figgy-pudding": "^3.5.1", - "get-stream": "^4.1.0", - "glob": "^7.1.3", - "infer-owner": "^1.0.4", - "lru-cache": "^5.1.1", - "make-fetch-happen": "^5.0.0", - "minimatch": "^3.0.4", - "minipass": "^2.3.5", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "normalize-package-data": "^2.4.0", - "npm-normalize-package-bin": "^1.0.0", - "npm-package-arg": "^6.1.0", - "npm-packlist": "^1.1.12", - "npm-pick-manifest": "^3.0.0", - "npm-registry-fetch": "^4.0.0", - "osenv": "^0.1.5", - "promise-inflight": "^1.0.1", - "promise-retry": "^1.1.1", - "protoduck": "^5.0.1", - "rimraf": "^2.6.2", - "safe-buffer": "^5.1.2", - "semver": "^5.6.0", - "ssri": "^6.0.1", - "tar": "^4.4.10", - "unique-filename": "^1.1.1", - "which": "^1.3.1" - } - }, - "node_modules/pacote/node_modules/cacache": { - "version": "12.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", - "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", - "dev": true, - "dependencies": { - "bluebird": "^3.5.5", - "chownr": "^1.1.1", - "figgy-pudding": "^3.5.1", - "glob": "^7.1.4", - "graceful-fs": "^4.1.15", - "infer-owner": "^1.0.3", - "lru-cache": "^5.1.1", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.3", - "ssri": "^6.0.1", - "unique-filename": "^1.1.1", - "y18n": "^4.0.0" - } - }, - "node_modules/pacote/node_modules/chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true - }, - "node_modules/pacote/node_modules/fs-minipass": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", - "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", - "dev": true, - "dependencies": { - "minipass": "^2.6.0" - } - }, - "node_modules/pacote/node_modules/hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", - "dev": true - }, - "node_modules/pacote/node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/pacote/node_modules/minipass": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", - "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "node_modules/pacote/node_modules/minizlib": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", - "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", - "dev": true, - "dependencies": { - "minipass": "^2.9.0" - } - }, - "node_modules/pacote/node_modules/npm-package-arg": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.1.tgz", - "integrity": "sha512-qBpssaL3IOZWi5vEKUKW0cO7kzLeT+EQO9W8RsLOZf76KF9E/K9+wH0C7t06HXPpaH8WH5xF1MExLuCwbTqRUg==", - "dev": true, - "dependencies": { - "hosted-git-info": "^2.7.1", - "osenv": "^0.1.5", - "semver": "^5.6.0", - "validate-npm-package-name": "^3.0.0" - } - }, - "node_modules/pacote/node_modules/npm-pick-manifest": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-3.0.2.tgz", - "integrity": "sha512-wNprTNg+X5nf+tDi+hbjdHhM4bX+mKqv6XmPh7B5eG+QY9VARfQPfCEH013H5GqfNj6ee8Ij2fg8yk0mzps1Vw==", - "dev": true, - "dependencies": { - "figgy-pudding": "^3.5.1", - "npm-package-arg": "^6.0.0", - "semver": "^5.4.1" - } - }, - "node_modules/pacote/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/pacote/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/pacote/node_modules/ssri": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", - "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", - "dev": true, - "dependencies": { - "figgy-pudding": "^3.5.1" - } - }, - "node_modules/pacote/node_modules/tar": { - "version": "4.4.13", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz", - "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==", - "dev": true, - "dependencies": { - "chownr": "^1.1.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.8.6", - "minizlib": "^1.2.1", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.3" - }, - "engines": { - "node": ">=4.5" - } - }, - "node_modules/pacote/node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - }, - "node_modules/pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", - "dev": true - }, - "node_modules/parallel-transform": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", - "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", - "dev": true, - "dependencies": { - "cyclist": "^1.0.1", - "inherits": "^2.0.3", - "readable-stream": "^2.1.5" - } - }, - "node_modules/parse-asn1": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", - "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", - "dev": true, - "dependencies": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "dependencies": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", - "dev": true - }, - "node_modules/parse5-htmlparser2-tree-adapter": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", - "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", - "dev": true, - "dependencies": { - "parse5": "^6.0.1" - } - }, - "node_modules/parseqs": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", - "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", - "dev": true, - "dependencies": { - "better-assert": "~1.0.0" - } - }, - "node_modules/parseuri": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", - "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", - "dev": true, - "dependencies": { - "better-assert": "~1.0.0" - } - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", - "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", - "dev": true - }, - "node_modules/path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", - "dev": true - }, - "node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", - "dev": true - }, - "node_modules/path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", - "dev": true - }, - "node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", - "dev": true - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/pbkdf2": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", - "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==", - "dev": true, - "dependencies": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true - }, - "node_modules/picomatch": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", - "dev": true, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dev": true, - "dependencies": { - "pinkie": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "dev": true, - "dependencies": { - "find-up": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pnp-webpack-plugin": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz", - "integrity": "sha512-7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg==", - "dev": true, - "dependencies": { - "ts-pnp": "^1.1.6" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/popper.js": { - "version": "1.14.3", - "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.14.3.tgz", - "integrity": "sha1-FDj5jQRqz3tNeM1QK/QYrGTU8JU=" - }, - "node_modules/portfinder": { - "version": "1.0.28", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", - "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", - "dev": true, - "dependencies": { - "async": "^2.6.2", - "debug": "^3.1.1", - "mkdirp": "^0.5.5" - }, - "engines": { - "node": ">= 0.12.0" - } - }, - "node_modules/portfinder/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss": { - "version": "7.0.32", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.32.tgz", - "integrity": "sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw==", - "dev": true, - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-calc": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.5.tgz", - "integrity": "sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg==", - "dev": true, - "dependencies": { - "postcss": "^7.0.27", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.0.2" - } - }, - "node_modules/postcss-colormin": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz", - "integrity": "sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==", - "dev": true, - "dependencies": { - "browserslist": "^4.0.0", - "color": "^3.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-colormin/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "node_modules/postcss-convert-values": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz", - "integrity": "sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==", - "dev": true, - "dependencies": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-convert-values/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "node_modules/postcss-discard-comments": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz", - "integrity": "sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==", - "dev": true, - "dependencies": { - "postcss": "^7.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-discard-duplicates": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz", - "integrity": "sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==", - "dev": true, - "dependencies": { - "postcss": "^7.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-discard-empty": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz", - "integrity": "sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==", - "dev": true, - "dependencies": { - "postcss": "^7.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-discard-overridden": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz", - "integrity": "sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==", - "dev": true, - "dependencies": { - "postcss": "^7.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-import": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-12.0.1.tgz", - "integrity": "sha512-3Gti33dmCjyKBgimqGxL3vcV8w9+bsHwO5UrBawp796+jdardbcFl4RP5w/76BwNL7aGzpKstIfF9I+kdE8pTw==", - "dev": true, - "dependencies": { - "postcss": "^7.0.1", - "postcss-value-parser": "^3.2.3", - "read-cache": "^1.0.0", - "resolve": "^1.1.7" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-import/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "node_modules/postcss-load-config": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.2.tgz", - "integrity": "sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw==", - "dev": true, - "dependencies": { - "cosmiconfig": "^5.0.0", - "import-cwd": "^2.0.0" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/postcss-loader": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-3.0.0.tgz", - "integrity": "sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA==", - "dev": true, - "dependencies": { - "loader-utils": "^1.1.0", - "postcss": "^7.0.0", - "postcss-load-config": "^2.0.0", - "schema-utils": "^1.0.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/postcss-loader/node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/postcss-loader/node_modules/loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/postcss-loader/node_modules/schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "dev": true, - "dependencies": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/postcss-merge-longhand": { - "version": "4.0.11", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz", - "integrity": "sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==", - "dev": true, - "dependencies": { - "css-color-names": "0.0.4", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0", - "stylehacks": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-merge-longhand/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "node_modules/postcss-merge-rules": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz", - "integrity": "sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==", - "dev": true, - "dependencies": { - "browserslist": "^4.0.0", - "caniuse-api": "^3.0.0", - "cssnano-util-same-parent": "^4.0.0", - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0", - "vendors": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-merge-rules/node_modules/postcss-selector-parser": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", - "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", - "dev": true, - "dependencies": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/postcss-minify-font-values": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz", - "integrity": "sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==", - "dev": true, - "dependencies": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-minify-font-values/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "node_modules/postcss-minify-gradients": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz", - "integrity": "sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==", - "dev": true, - "dependencies": { - "cssnano-util-get-arguments": "^4.0.0", - "is-color-stop": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-minify-gradients/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "node_modules/postcss-minify-params": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz", - "integrity": "sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==", - "dev": true, - "dependencies": { - "alphanum-sort": "^1.0.0", - "browserslist": "^4.0.0", - "cssnano-util-get-arguments": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0", - "uniqs": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-minify-params/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "node_modules/postcss-minify-selectors": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz", - "integrity": "sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==", - "dev": true, - "dependencies": { - "alphanum-sort": "^1.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-minify-selectors/node_modules/postcss-selector-parser": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", - "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", - "dev": true, - "dependencies": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/postcss-modules-extract-imports": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz", - "integrity": "sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ==", - "dev": true, - "dependencies": { - "postcss": "^7.0.5" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/postcss-modules-local-by-default": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz", - "integrity": "sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw==", - "dev": true, - "dependencies": { - "icss-utils": "^4.1.1", - "postcss": "^7.0.32", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.1.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/postcss-modules-scope": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz", - "integrity": "sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ==", - "dev": true, - "dependencies": { - "postcss": "^7.0.6", - "postcss-selector-parser": "^6.0.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/postcss-modules-values": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz", - "integrity": "sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg==", - "dev": true, - "dependencies": { - "icss-utils": "^4.0.0", - "postcss": "^7.0.6" - } - }, - "node_modules/postcss-normalize-charset": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz", - "integrity": "sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==", - "dev": true, - "dependencies": { - "postcss": "^7.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-normalize-display-values": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz", - "integrity": "sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==", - "dev": true, - "dependencies": { - "cssnano-util-get-match": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-normalize-display-values/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "node_modules/postcss-normalize-positions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz", - "integrity": "sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==", - "dev": true, - "dependencies": { - "cssnano-util-get-arguments": "^4.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-normalize-positions/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "node_modules/postcss-normalize-repeat-style": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz", - "integrity": "sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==", - "dev": true, - "dependencies": { - "cssnano-util-get-arguments": "^4.0.0", - "cssnano-util-get-match": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-normalize-repeat-style/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "node_modules/postcss-normalize-string": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz", - "integrity": "sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==", - "dev": true, - "dependencies": { - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-normalize-string/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "node_modules/postcss-normalize-timing-functions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz", - "integrity": "sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==", - "dev": true, - "dependencies": { - "cssnano-util-get-match": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-normalize-timing-functions/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "node_modules/postcss-normalize-unicode": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz", - "integrity": "sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==", - "dev": true, - "dependencies": { - "browserslist": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-normalize-unicode/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "node_modules/postcss-normalize-url": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz", - "integrity": "sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==", - "dev": true, - "dependencies": { - "is-absolute-url": "^2.0.0", - "normalize-url": "^3.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-normalize-url/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "node_modules/postcss-normalize-whitespace": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz", - "integrity": "sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==", - "dev": true, - "dependencies": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-normalize-whitespace/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "node_modules/postcss-ordered-values": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz", - "integrity": "sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==", - "dev": true, - "dependencies": { - "cssnano-util-get-arguments": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-ordered-values/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "node_modules/postcss-reduce-initial": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz", - "integrity": "sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==", - "dev": true, - "dependencies": { - "browserslist": "^4.0.0", - "caniuse-api": "^3.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-reduce-transforms": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz", - "integrity": "sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==", - "dev": true, - "dependencies": { - "cssnano-util-get-match": "^4.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-reduce-transforms/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "node_modules/postcss-selector-parser": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz", - "integrity": "sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw==", - "dev": true, - "dependencies": { - "cssesc": "^3.0.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-svgo": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.2.tgz", - "integrity": "sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw==", - "dev": true, - "dependencies": { - "is-svg": "^3.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0", - "svgo": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-svgo/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "node_modules/postcss-unique-selectors": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz", - "integrity": "sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==", - "dev": true, - "dependencies": { - "alphanum-sort": "^1.0.0", - "postcss": "^7.0.0", - "uniqs": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-value-parser": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", - "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", - "dev": true - }, - "node_modules/postcss/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss/node_modules/supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/prepend-http": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "dev": true, - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "node_modules/promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", - "dev": true - }, - "node_modules/promise-retry": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-1.1.1.tgz", - "integrity": "sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=", - "dev": true, - "dependencies": { - "err-code": "^1.0.0", - "retry": "^0.10.0" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/promise-retry/node_modules/retry": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", - "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/protoduck": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/protoduck/-/protoduck-5.0.1.tgz", - "integrity": "sha512-WxoCeDCoCBY55BMvj4cAEjdVUFGRWed9ZxPlqTKYyw1nDDTQ4pqmnIMAGfJlg7Dx35uB/M+PHJPTmGOvaCaPTg==", - "dev": true, - "dependencies": { - "genfun": "^5.0.0" - } - }, - "node_modules/protractor": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/protractor/-/protractor-7.0.0.tgz", - "integrity": "sha512-UqkFjivi4GcvUQYzqGYNe0mLzfn5jiLmO8w9nMhQoJRLhy2grJonpga2IWhI6yJO30LibWXJJtA4MOIZD2GgZw==", - "dev": true, - "dependencies": { - "@types/q": "^0.0.32", - "@types/selenium-webdriver": "^3.0.0", - "blocking-proxy": "^1.0.0", - "browserstack": "^1.5.1", - "chalk": "^1.1.3", - "glob": "^7.0.3", - "jasmine": "2.8.0", - "jasminewd2": "^2.1.0", - "q": "1.4.1", - "saucelabs": "^1.5.0", - "selenium-webdriver": "3.6.0", - "source-map-support": "~0.4.0", - "webdriver-js-extender": "2.1.0", - "webdriver-manager": "^12.1.7", - "yargs": "^15.3.1" - }, - "bin": { - "protractor": "bin/protractor", - "webdriver-manager": "bin/webdriver-manager" - }, - "engines": { - "node": ">=10.13.x" - } - }, - "node_modules/protractor/node_modules/@types/q": { - "version": "0.0.32", - "resolved": "https://registry.npmjs.org/@types/q/-/q-0.0.32.tgz", - "integrity": "sha1-vShOV8hPEyXacCur/IKlMoGQwMU=", - "dev": true - }, - "node_modules/protractor/node_modules/ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/protractor/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/protractor/node_modules/array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "dev": true, - "dependencies": { - "array-uniq": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/protractor/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/protractor/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/protractor/node_modules/cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "node_modules/protractor/node_modules/cliui/node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/protractor/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/protractor/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/protractor/node_modules/del": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", - "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", - "dev": true, - "dependencies": { - "globby": "^5.0.0", - "is-path-cwd": "^1.0.0", - "is-path-in-cwd": "^1.0.0", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "rimraf": "^2.2.8" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/protractor/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/protractor/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/protractor/node_modules/globby": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", - "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", - "dev": true, - "dependencies": { - "array-union": "^1.0.1", - "arrify": "^1.0.0", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/protractor/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/protractor/node_modules/is-path-cwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", - "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/protractor/node_modules/is-path-in-cwd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", - "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", - "dev": true, - "dependencies": { - "is-path-inside": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/protractor/node_modules/is-path-inside": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", - "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", - "dev": true, - "dependencies": { - "path-is-inside": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/protractor/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/protractor/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/protractor/node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/protractor/node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/protractor/node_modules/q": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz", - "integrity": "sha1-VXBbzZPF82c1MMLCy8DCs63cKG4=", - "dev": true, - "engines": { - "node": ">=0.6.0", - "teleport": ">=0.2.0" - } - }, - "node_modules/protractor/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/protractor/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/protractor/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/protractor/node_modules/source-map-support": { - "version": "0.4.18", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", - "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", - "dev": true, - "dependencies": { - "source-map": "^0.5.6" - } - }, - "node_modules/protractor/node_modules/string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/protractor/node_modules/string-width/node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/protractor/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/protractor/node_modules/webdriver-manager": { - "version": "12.1.7", - "resolved": "https://registry.npmjs.org/webdriver-manager/-/webdriver-manager-12.1.7.tgz", - "integrity": "sha512-XINj6b8CYuUYC93SG3xPkxlyUc3IJbD6Vvo75CVGuG9uzsefDzWQrhz0Lq8vbPxtb4d63CZdYophF8k8Or/YiA==", - "dev": true, - "dependencies": { - "adm-zip": "^0.4.9", - "chalk": "^1.1.1", - "del": "^2.2.0", - "glob": "^7.0.3", - "ini": "^1.3.4", - "minimist": "^1.2.0", - "q": "^1.4.1", - "request": "^2.87.0", - "rimraf": "^2.5.2", - "semver": "^5.3.0", - "xml2js": "^0.4.17" - }, - "bin": { - "webdriver-manager": "bin/webdriver-manager" - }, - "engines": { - "node": ">=6.9.x" - } - }, - "node_modules/protractor/node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/protractor/node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/protractor/node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/protractor/node_modules/yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "dev": true, - "dependencies": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/protractor/node_modules/yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/proxy-addr": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", - "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", - "dev": true, - "dependencies": { - "forwarded": "~0.1.2", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", - "dev": true - }, - "node_modules/psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", - "dev": true - }, - "node_modules/public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "dev": true, - "dependencies": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/public-encrypt/node_modules/bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "dev": true, - "dependencies": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - } - }, - "node_modules/pumpify/node_modules/pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/q": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", - "dev": true, - "engines": { - "node": ">=0.6.0", - "teleport": ">=0.2.0" - } - }, - "node_modules/qjobs": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz", - "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==", - "dev": true, - "engines": { - "node": ">=0.9" - } - }, - "node_modules/qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/query-string": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", - "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", - "dev": true, - "dependencies": { - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "dev": true, - "engines": { - "node": ">=0.4.x" - } - }, - "node_modules/querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", - "dev": true, - "engines": { - "node": ">=0.4.x" - } - }, - "node_modules/querystringify": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", - "dev": true - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "dev": true, - "dependencies": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", - "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", - "dev": true, - "dependencies": { - "bytes": "3.1.0", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/raw-body/node_modules/bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/raw-body/node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/raw-loader": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-4.0.1.tgz", - "integrity": "sha512-baolhQBSi3iNh1cglJjA0mYzga+wePk7vdEX//1dTFd+v4TsQlQE0jitJSNF1OIP82rdYulH7otaVmdlDaJ64A==", - "dev": true, - "dependencies": { - "loader-utils": "^2.0.0", - "schema-utils": "^2.6.5" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/read-cache": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", - "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=", - "dev": true, - "dependencies": { - "pify": "^2.3.0" - } - }, - "node_modules/read-cache/node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/read-package-json": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.1.2.tgz", - "integrity": "sha512-D1KmuLQr6ZSJS0tW8hf3WGpRlwszJOXZ3E8Yd/DNRaM5d+1wVRZdHlpGBLAuovjr28LbWvjpWkBHMxpRGGjzNA==", - "dev": true, - "dependencies": { - "glob": "^7.1.1", - "json-parse-even-better-errors": "^2.3.0", - "normalize-package-data": "^2.0.0", - "npm-normalize-package-bin": "^1.0.0" - } - }, - "node_modules/read-package-tree": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/read-package-tree/-/read-package-tree-5.3.1.tgz", - "integrity": "sha512-mLUDsD5JVtlZxjSlPPx1RETkNjjvQYuweKwNVt1Sn8kP5Jh44pvYuUHCp6xSVDZWbNxVxG5lyZJ921aJH61sTw==", - "dev": true, - "dependencies": { - "read-package-json": "^2.0.0", - "readdir-scoped-modules": "^1.0.0", - "util-promisify": "^2.1.0" - } - }, - "node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/readdir-scoped-modules": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz", - "integrity": "sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==", - "dev": true, - "dependencies": { - "debuglog": "^1.0.1", - "dezalgo": "^1.0.0", - "graceful-fs": "^4.1.2", - "once": "^1.3.0" - } - }, - "node_modules/readdirp": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", - "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/reflect-metadata": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", - "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==", - "dev": true - }, - "node_modules/regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", - "dev": true - }, - "node_modules/regenerate-unicode-properties": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", - "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", - "dev": true, - "dependencies": { - "regenerate": "^1.4.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.13.7", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", - "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==", - "dev": true - }, - "node_modules/regenerator-transform": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", - "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.8.4" - } - }, - "node_modules/regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dev": true, - "dependencies": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/regex-parser": { - "version": "2.2.11", - "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.11.tgz", - "integrity": "sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q==", - "dev": true - }, - "node_modules/regexp.prototype.flags": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz", - "integrity": "sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ==", - "dev": true, - "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/regexp.prototype.flags/node_modules/es-abstract": { - "version": "1.17.7", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", - "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", - "dev": true, - "dependencies": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", - "is-regex": "^1.1.1", - "object-inspect": "^1.8.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.1", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/regexpu-core": { - "version": "4.7.1", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.1.tgz", - "integrity": "sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ==", - "dev": true, - "dependencies": { - "regenerate": "^1.4.0", - "regenerate-unicode-properties": "^8.2.0", - "regjsgen": "^0.5.1", - "regjsparser": "^0.6.4", - "unicode-match-property-ecmascript": "^1.0.4", - "unicode-match-property-value-ecmascript": "^1.2.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regjsgen": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", - "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==", - "dev": true - }, - "node_modules/regjsparser": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz", - "integrity": "sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==", - "dev": true, - "dependencies": { - "jsesc": "~0.5.0" - }, - "bin": { - "regjsparser": "bin/parser" - } - }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - } - }, - "node_modules/remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "dev": true - }, - "node_modules/repeat-element": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "dev": true, - "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/request/node_modules/qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, - "node_modules/requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", - "dev": true - }, - "node_modules/resolve": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", - "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", - "dev": true, - "dependencies": { - "is-core-module": "^2.1.0", - "path-parse": "^1.0.6" - } - }, - "node_modules/resolve-cwd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", - "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", - "dev": true, - "dependencies": { - "resolve-from": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "dev": true - }, - "node_modules/resolve-url-loader": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-3.1.2.tgz", - "integrity": "sha512-QEb4A76c8Mi7I3xNKXlRKQSlLBwjUV/ULFMP+G7n3/7tJZ8MG5wsZ3ucxP1Jz8Vevn6fnJsxDx9cIls+utGzPQ==", - "dev": true, - "dependencies": { - "adjust-sourcemap-loader": "3.0.0", - "camelcase": "5.3.1", - "compose-function": "3.0.3", - "convert-source-map": "1.7.0", - "es6-iterator": "2.0.3", - "loader-utils": "1.2.3", - "postcss": "7.0.21", - "rework": "1.0.1", - "rework-visit": "1.0.0", - "source-map": "0.6.1" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/resolve-url-loader/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/resolve-url-loader/node_modules/emojis-list": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", - "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/resolve-url-loader/node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/resolve-url-loader/node_modules/loader-utils": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", - "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^2.0.0", - "json5": "^1.0.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/resolve-url-loader/node_modules/postcss": { - "version": "7.0.21", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.21.tgz", - "integrity": "sha512-uIFtJElxJo29QC753JzhidoAhvp/e/Exezkdhfmt8AymWT6/5B7W1WmponYWkHk2eg6sONyTch0A3nkMPun3SQ==", - "dev": true, - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/resolve-url-loader/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve-url-loader/node_modules/supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rework": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/rework/-/rework-1.0.1.tgz", - "integrity": "sha1-MIBqhBNCtUUQqkEQhQzUhTQUSqc=", - "dev": true, - "dependencies": { - "convert-source-map": "^0.3.3", - "css": "^2.0.0" - } - }, - "node_modules/rework-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/rework-visit/-/rework-visit-1.0.0.tgz", - "integrity": "sha1-mUWygD8hni96ygCtuLyfZA+ELJo=", - "dev": true - }, - "node_modules/rework/node_modules/convert-source-map": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-0.3.5.tgz", - "integrity": "sha1-8dgClQr33SYxof6+BZZVDIarMZA=", - "dev": true - }, - "node_modules/rfdc": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.1.4.tgz", - "integrity": "sha512-5C9HXdzK8EAqN7JDif30jqsBzavB7wLpaubisuQIGHWf2gUXSpzy6ArX/+Da8RjFpagWsCn+pIgxTMAmKw9Zug==", - "dev": true - }, - "node_modules/rgb-regex": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz", - "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=", - "dev": true - }, - "node_modules/rgba-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz", - "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=", - "dev": true - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dev": true, - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "node_modules/rollup": { - "version": "2.26.5", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.26.5.tgz", - "integrity": "sha512-rCyFG3ZtQdnn9YwfuAVH0l/Om34BdO5lwCA0W6Hq+bNB21dVEBbCRxhaHOmu1G7OBFDWytbzAC104u7rxHwGjA==", - "dev": true, - "dependencies": { - "fsevents": "~2.1.2" - }, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=10.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.1.2" - } - }, - "node_modules/run-async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/run-parallel": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.10.tgz", - "integrity": "sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw==", - "dev": true - }, - "node_modules/run-queue": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", - "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", - "dev": true, - "dependencies": { - "aproba": "^1.1.1" - } - }, - "node_modules/rxjs": { - "version": "6.6.3", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", - "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "npm": ">=2.0.0" - } - }, - "node_modules/rxjs/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, - "node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "dev": true, - "dependencies": { - "ret": "~0.1.10" - } - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "node_modules/sass": { - "version": "1.26.10", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.26.10.tgz", - "integrity": "sha512-bzN0uvmzfsTvjz0qwccN1sPm2HxxpNI/Xa+7PlUEMS+nQvbyuEK7Y0qFqxlPHhiNHb1Ze8WQJtU31olMObkAMw==", - "dev": true, - "dependencies": { - "chokidar": ">=2.0.0 <4.0.0" - }, - "bin": { - "sass": "sass.js" - }, - "engines": { - "node": ">=8.9.0" - } - }, - "node_modules/sass-loader": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-10.0.1.tgz", - "integrity": "sha512-b2PSldKVTS3JcFPHSrEXh3BeAfR7XknGiGCAO5aHruR3Pf3kqLP3Gb2ypXLglRrAzgZkloNxLZ7GXEGDX0hBUQ==", - "dev": true, - "dependencies": { - "klona": "^2.0.3", - "loader-utils": "^2.0.0", - "neo-async": "^2.6.2", - "schema-utils": "^2.7.0", - "semver": "^7.3.2" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/saucelabs": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/saucelabs/-/saucelabs-1.5.0.tgz", - "integrity": "sha512-jlX3FGdWvYf4Q3LFfFWS1QvPg3IGCGWxIc8QBFdPTbpTJnt/v17FHXYVAn7C8sHf1yUXo2c7yIM0isDryfYtHQ==", - "dev": true, - "dependencies": { - "https-proxy-agent": "^2.2.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", - "dev": true - }, - "node_modules/schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", - "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 8.9.0" - } - }, - "node_modules/seconds-to-human-time": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/seconds-to-human-time/-/seconds-to-human-time-1.0.0.tgz", - "integrity": "sha512-ojOSaCcU8nkmR3tC/5GPIwmBAH4go7q1iyWRZhxB+tIKbR3rO3dDW5L73ZVRmAMNbK2AY1otz4QXCTxZXUHcXg==" - }, - "node_modules/select-hose": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", - "dev": true - }, - "node_modules/selenium-webdriver": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-3.6.0.tgz", - "integrity": "sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q==", - "dev": true, - "dependencies": { - "jszip": "^3.1.3", - "rimraf": "^2.5.4", - "tmp": "0.0.30", - "xml2js": "^0.4.17" - }, - "engines": { - "node": ">= 6.9.0" - } - }, - "node_modules/selenium-webdriver/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/selenium-webdriver/node_modules/tmp": { - "version": "0.0.30", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.30.tgz", - "integrity": "sha1-ckGdSovn1s51FI/YsyTlk6cRwu0=", - "dev": true, - "dependencies": { - "os-tmpdir": "~1.0.1" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/selfsigned": { - "version": "1.10.8", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.8.tgz", - "integrity": "sha512-2P4PtieJeEwVgTU9QEcwIRDQ/mXJLX8/+I3ur+Pg16nS8oNbrGxEso9NyYWy8NAmXiNl4dlAp5MwoNeCWzON4w==", - "dev": true, - "dependencies": { - "node-forge": "^0.10.0" - } - }, - "node_modules/semver": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", - "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver-dsl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/semver-dsl/-/semver-dsl-1.0.1.tgz", - "integrity": "sha1-02eN5VVeimH2Ke7QJTZq5fJzQKA=", - "dev": true, - "dependencies": { - "semver": "^5.3.0" - } - }, - "node_modules/semver-dsl/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/semver-intersect": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/semver-intersect/-/semver-intersect-1.4.0.tgz", - "integrity": "sha512-d8fvGg5ycKAq0+I6nfWeCx6ffaWJCsBYU0H2Rq56+/zFePYfT8mXkB3tWBSjR5BerkHNZ5eTPIk1/LBYas35xQ==", - "dev": true, - "dependencies": { - "semver": "^5.0.0" - } - }, - "node_modules/semver-intersect/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/send": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", - "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", - "dev": true, - "dependencies": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "~1.7.2", - "mime": "1.6.0", - "ms": "2.1.1", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/send/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/send/node_modules/ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true - }, - "node_modules/serialize-javascript": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", - "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", - "dev": true, - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", - "dev": true, - "dependencies": { - "accepts": "~1.3.4", - "batch": "0.6.1", - "debug": "2.6.9", - "escape-html": "~1.0.3", - "http-errors": "~1.6.2", - "mime-types": "~2.1.17", - "parseurl": "~1.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/serve-index/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/serve-index/node_modules/http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", - "dev": true, - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-index/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "node_modules/serve-index/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/serve-index/node_modules/setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", - "dev": true - }, - "node_modules/serve-static": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", - "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", - "dev": true, - "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, - "node_modules/set-immediate-shim": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", - "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "dev": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/set-value/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", - "dev": true - }, - "node_modules/setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", - "dev": true - }, - "node_modules/sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "bin": { - "sha.js": "bin.js" - } - }, - "node_modules/shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "dependencies": { - "shebang-regex": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", - "dev": true - }, - "node_modules/simple-swizzle": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", - "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", - "dev": true, - "dependencies": { - "is-arrayish": "^0.3.1" - } - }, - "node_modules/simple-swizzle/node_modules/is-arrayish": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", - "dev": true - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/smart-buffer": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.1.0.tgz", - "integrity": "sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw==", - "dev": true, - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dev": true, - "dependencies": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dev": true, - "dependencies": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dev": true, - "dependencies": { - "kind-of": "^3.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-util/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/snapdragon/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/snapdragon/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/socket.io": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.3.0.tgz", - "integrity": "sha512-2A892lrj0GcgR/9Qk81EaY2gYhCBxurV0PfmmESO6p27QPrUK1J3zdns+5QPqvUYK2q657nSj0guoIil9+7eFg==", - "dev": true, - "dependencies": { - "debug": "~4.1.0", - "engine.io": "~3.4.0", - "has-binary2": "~1.0.2", - "socket.io-adapter": "~1.1.0", - "socket.io-client": "2.3.0", - "socket.io-parser": "~3.4.0" - } - }, - "node_modules/socket.io-adapter": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz", - "integrity": "sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g==", - "dev": true - }, - "node_modules/socket.io-client": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.3.0.tgz", - "integrity": "sha512-cEQQf24gET3rfhxZ2jJ5xzAOo/xhZwK+mOqtGRg5IowZsMgwvHwnf/mCRapAAkadhM26y+iydgwsXGObBB5ZdA==", - "dev": true, - "dependencies": { - "backo2": "1.0.2", - "base64-arraybuffer": "0.1.5", - "component-bind": "1.0.0", - "component-emitter": "1.2.1", - "debug": "~4.1.0", - "engine.io-client": "~3.4.0", - "has-binary2": "~1.0.2", - "has-cors": "1.1.0", - "indexof": "0.0.1", - "object-component": "0.0.3", - "parseqs": "0.0.5", - "parseuri": "0.0.5", - "socket.io-parser": "~3.3.0", - "to-array": "0.1.4" - } - }, - "node_modules/socket.io-client/node_modules/base64-arraybuffer": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", - "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=", - "dev": true, - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/socket.io-client/node_modules/component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", - "dev": true - }, - "node_modules/socket.io-client/node_modules/debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/socket.io-client/node_modules/isarray": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", - "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", - "dev": true - }, - "node_modules/socket.io-client/node_modules/socket.io-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.1.tgz", - "integrity": "sha512-1QLvVAe8dTz+mKmZ07Swxt+LAo4Y1ff50rlyoEx00TQmDFVQYPfcqGvIDJLGaBdhdNCecXtyKpD+EgKGcmmbuQ==", - "dev": true, - "dependencies": { - "component-emitter": "~1.3.0", - "debug": "~3.1.0", - "isarray": "2.0.1" - } - }, - "node_modules/socket.io-client/node_modules/socket.io-parser/node_modules/component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "dev": true - }, - "node_modules/socket.io-client/node_modules/socket.io-parser/node_modules/debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/socket.io-client/node_modules/socket.io-parser/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/socket.io-parser": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.4.1.tgz", - "integrity": "sha512-11hMgzL+WCLWf1uFtHSNvliI++tcRUWdoeYuwIl+Axvwy9z2gQM+7nJyN3STj1tLj5JyIUH8/gpDGxzAlDdi0A==", - "dev": true, - "dependencies": { - "component-emitter": "1.2.1", - "debug": "~4.1.0", - "isarray": "2.0.1" - } - }, - "node_modules/socket.io-parser/node_modules/component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", - "dev": true - }, - "node_modules/socket.io-parser/node_modules/debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/socket.io-parser/node_modules/isarray": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", - "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", - "dev": true - }, - "node_modules/socket.io/node_modules/debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/sockjs": { - "version": "0.3.20", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.20.tgz", - "integrity": "sha512-SpmVOVpdq0DJc0qArhF3E5xsxvaiqGNb73XfgBpK1y3UD5gs8DSo8aCTsuT5pX8rssdc2NDIzANwP9eCAiSdTA==", - "dev": true, - "dependencies": { - "faye-websocket": "^0.10.0", - "uuid": "^3.4.0", - "websocket-driver": "0.6.5" - } - }, - "node_modules/sockjs-client": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.4.0.tgz", - "integrity": "sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g==", - "dev": true, - "dependencies": { - "debug": "^3.2.5", - "eventsource": "^1.0.7", - "faye-websocket": "~0.11.1", - "inherits": "^2.0.3", - "json3": "^3.3.2", - "url-parse": "^1.4.3" - } - }, - "node_modules/sockjs-client/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/sockjs-client/node_modules/faye-websocket": { - "version": "0.11.3", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz", - "integrity": "sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==", - "dev": true, - "dependencies": { - "websocket-driver": ">=0.5.1" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/socks": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.3.3.tgz", - "integrity": "sha512-o5t52PCNtVdiOvzMry7wU4aOqYWL0PeCXRWBEiJow4/i/wr+wpsJQ9awEu1EonLIqsfGd5qSgDdxEOvCdmBEpA==", - "dev": true, - "dependencies": { - "ip": "1.1.5", - "smart-buffer": "^4.1.0" - }, - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks-proxy-agent": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz", - "integrity": "sha512-NT6syHhI9LmuEMSK6Kd2V7gNv5KFZoLE7V5udWmn0de+3Mkj3UMA/AJPLyeNUVmElCurSHtUdM3ETpR3z770Wg==", - "dev": true, - "dependencies": { - "agent-base": "~4.2.1", - "socks": "~2.3.2" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/socks-proxy-agent/node_modules/agent-base": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz", - "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==", - "dev": true, - "dependencies": { - "es6-promisify": "^5.0.0" - }, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/sort-keys": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", - "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", - "dev": true, - "dependencies": { - "is-plain-obj": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-list-map": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", - "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", - "dev": true - }, - "node_modules/source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/source-map-loader": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-1.0.2.tgz", - "integrity": "sha512-oX8d6ndRjN+tVyjj6PlXSyFPhDdVAPsZA30nD3/II8g4uOv8fCz0DMn5sy8KtVbDfKQxOpGwGJnK3xIW3tauDw==", - "dev": true, - "dependencies": { - "data-urls": "^2.0.0", - "iconv-lite": "^0.6.2", - "loader-utils": "^2.0.0", - "schema-utils": "^2.7.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/source-map-loader/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "dev": true, - "dependencies": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.19", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", - "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", - "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/source-map-support/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-url": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", - "dev": true - }, - "node_modules/sourcemap-codec": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", - "dev": true - }, - "node_modules/spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "dev": true, - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true - }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-license-ids": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz", - "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==", - "dev": true - }, - "node_modules/spdy": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", - "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", - "dev": true, - "dependencies": { - "debug": "^4.1.0", - "handle-thing": "^2.0.0", - "http-deceiver": "^1.2.7", - "select-hose": "^2.0.0", - "spdy-transport": "^3.0.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/spdy-transport": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", - "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", - "dev": true, - "dependencies": { - "debug": "^4.1.0", - "detect-node": "^2.0.4", - "hpack.js": "^2.1.6", - "obuf": "^1.1.2", - "readable-stream": "^3.0.6", - "wbuf": "^1.7.3" - } - }, - "node_modules/spdy-transport/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/speed-measure-webpack-plugin": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/speed-measure-webpack-plugin/-/speed-measure-webpack-plugin-1.3.3.tgz", - "integrity": "sha512-2ljD4Ch/rz2zG3HsLsnPfp23osuPBS0qPuz9sGpkNXTN1Ic4M+W9xB8l8rS8ob2cO4b1L+WTJw/0AJwWYVgcxQ==", - "dev": true, - "dependencies": { - "chalk": "^2.0.1" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dev": true, - "dependencies": { - "extend-shallow": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "node_modules/sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "dev": true, - "dependencies": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - }, - "bin": { - "sshpk-conv": "bin/sshpk-conv", - "sshpk-sign": "bin/sshpk-sign", - "sshpk-verify": "bin/sshpk-verify" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ssri": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.0.tgz", - "integrity": "sha512-aq/pz989nxVYwn16Tsbj1TqFpD5LLrQxHf5zaHuieFV+R0Bbr4y8qUsOA45hXT/N4/9UNXTarBjnjVmjSOVaAA==", - "dev": true, - "dependencies": { - "minipass": "^3.1.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/stable": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", - "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", - "dev": true - }, - "node_modules/static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "dev": true, - "dependencies": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/stream-browserify": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", - "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", - "dev": true, - "dependencies": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" - } - }, - "node_modules/stream-each": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", - "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "stream-shift": "^1.0.0" - } - }, - "node_modules/stream-http": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", - "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", - "dev": true, - "dependencies": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.3.6", - "to-arraybuffer": "^1.0.0", - "xtend": "^4.0.0" - } - }, - "node_modules/stream-shift": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", - "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", - "dev": true - }, - "node_modules/streamroller": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-2.2.4.tgz", - "integrity": "sha512-OG79qm3AujAM9ImoqgWEY1xG4HX+Lw+yY6qZj9R1K2mhF5bEmQ849wvrb+4vt4jLMLzwXttJlQbOdPOQVRv7DQ==", - "dev": true, - "dependencies": { - "date-format": "^2.1.0", - "debug": "^4.1.1", - "fs-extra": "^8.1.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/streamroller/node_modules/date-format": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/date-format/-/date-format-2.1.0.tgz", - "integrity": "sha512-bYQuGLeFxhkxNOF3rcMtiZxvCBAquGzZm6oWA1oZ0g2THUzivaRhv8uOhdr19LmoobSOLoIAxeUK2RdbM8IFTA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/streamroller/node_modules/fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/strict-uri-encode": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "dependencies": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/string-width/node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/string-width/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz", - "integrity": "sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz", - "integrity": "sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3" - } - }, - "node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/style-loader": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-1.2.1.tgz", - "integrity": "sha512-ByHSTQvHLkWE9Ir5+lGbVOXhxX10fbprhLvdg96wedFZb4NDekDPxVKv5Fwmio+QcMlkkNfuK+5W1peQ5CUhZg==", - "dev": true, - "dependencies": { - "loader-utils": "^2.0.0", - "schema-utils": "^2.6.6" - }, - "engines": { - "node": ">= 8.9.0" - } - }, - "node_modules/stylehacks": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz", - "integrity": "sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==", - "dev": true, - "dependencies": { - "browserslist": "^4.0.0", - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/stylehacks/node_modules/postcss-selector-parser": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", - "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", - "dev": true, - "dependencies": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/stylus": { - "version": "0.54.8", - "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.54.8.tgz", - "integrity": "sha512-vr54Or4BZ7pJafo2mpf0ZcwA74rpuYCZbxrHBsH8kbcXOwSfvBFwsRfpGO5OD5fhG5HDCFW737PKaawI7OqEAg==", - "dev": true, - "dependencies": { - "css-parse": "~2.0.0", - "debug": "~3.1.0", - "glob": "^7.1.6", - "mkdirp": "~1.0.4", - "safer-buffer": "^2.1.2", - "sax": "~1.2.4", - "semver": "^6.3.0", - "source-map": "^0.7.3" - }, - "bin": { - "stylus": "bin/stylus" - }, - "engines": { - "node": "*" - } - }, - "node_modules/stylus-loader": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/stylus-loader/-/stylus-loader-3.0.2.tgz", - "integrity": "sha512-+VomPdZ6a0razP+zinir61yZgpw2NfljeSsdUF5kJuEzlo3khXhY19Fn6l8QQz1GRJGtMCo8nG5C04ePyV7SUA==", - "dev": true, - "dependencies": { - "loader-utils": "^1.0.2", - "lodash.clonedeep": "^4.5.0", - "when": "~3.6.x" - } - }, - "node_modules/stylus-loader/node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/stylus-loader/node_modules/loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/stylus/node_modules/debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/stylus/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/stylus/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/stylus/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/svg.draggable.js": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/svg.draggable.js/-/svg.draggable.js-2.2.2.tgz", - "integrity": "sha512-JzNHBc2fLQMzYCZ90KZHN2ohXL0BQJGQimK1kGk6AvSeibuKcIdDX9Kr0dT9+UJ5O8nYA0RB839Lhvk4CY4MZw==", - "dependencies": { - "svg.js": "^2.0.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/svg.easing.js": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/svg.easing.js/-/svg.easing.js-2.0.0.tgz", - "integrity": "sha1-iqmUawqOJ4V6XEChDrpAkeVpHxI=", - "dependencies": { - "svg.js": ">=2.3.x" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/svg.filter.js": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/svg.filter.js/-/svg.filter.js-2.0.2.tgz", - "integrity": "sha1-kQCOFROJ3ZIwd5/L5uLJo2LRwgM=", - "dependencies": { - "svg.js": "^2.2.5" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/svg.js": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/svg.js/-/svg.js-2.7.1.tgz", - "integrity": "sha512-ycbxpizEQktk3FYvn/8BH+6/EuWXg7ZpQREJvgacqn46gIddG24tNNe4Son6omdXCnSOaApnpZw6MPCBA1dODA==" - }, - "node_modules/svg.pathmorphing.js": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/svg.pathmorphing.js/-/svg.pathmorphing.js-0.1.3.tgz", - "integrity": "sha512-49HWI9X4XQR/JG1qXkSDV8xViuTLIWm/B/7YuQELV5KMOPtXjiwH4XPJvr/ghEDibmLQ9Oc22dpWpG0vUDDNww==", - "dependencies": { - "svg.js": "^2.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/svg.resize.js": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/svg.resize.js/-/svg.resize.js-1.4.3.tgz", - "integrity": "sha512-9k5sXJuPKp+mVzXNvxz7U0uC9oVMQrrf7cFsETznzUDDm0x8+77dtZkWdMfRlmbkEEYvUn9btKuZ3n41oNA+uw==", - "dependencies": { - "svg.js": "^2.6.5", - "svg.select.js": "^2.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/svg.resize.js/node_modules/svg.select.js": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/svg.select.js/-/svg.select.js-2.1.2.tgz", - "integrity": "sha512-tH6ABEyJsAOVAhwcCjF8mw4crjXSI1aa7j2VQR8ZuJ37H2MBUbyeqYr5nEO7sSN3cy9AR9DUwNg0t/962HlDbQ==", - "dependencies": { - "svg.js": "^2.2.5" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/svg.select.js": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/svg.select.js/-/svg.select.js-3.0.1.tgz", - "integrity": "sha512-h5IS/hKkuVCbKSieR9uQCj9w+zLHoPh+ce19bBYyqF53g6mnPB8sAtIbe1s9dh2S2fCmYX2xel1Ln3PJBbK4kw==", - "dependencies": { - "svg.js": "^2.6.5" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/svgo": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", - "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", - "dev": true, - "dependencies": { - "chalk": "^2.4.1", - "coa": "^2.0.2", - "css-select": "^2.0.0", - "css-select-base-adapter": "^0.1.1", - "css-tree": "1.0.0-alpha.37", - "csso": "^4.0.2", - "js-yaml": "^3.13.1", - "mkdirp": "~0.5.1", - "object.values": "^1.1.0", - "sax": "~1.2.4", - "stable": "^0.1.8", - "unquote": "~1.1.1", - "util.promisify": "~1.0.0" - }, - "bin": { - "svgo": "bin/svgo" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/symbol-observable": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", - "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/tapable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", - "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/tar": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.0.5.tgz", - "integrity": "sha512-0b4HOimQHj9nXNEAA7zWwMM91Zhhba3pspja6sQbgTpynOJf+bkjBnfybNYzbpLbnwXnbyB4LOREvlyXLkCHSg==", - "dev": true, - "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/tar/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/terser": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.3.0.tgz", - "integrity": "sha512-XTT3D3AwxC54KywJijmY2mxZ8nJiEjBHVYzq8l9OaYuRFWeQNBwvipuzzYEP4e+/AVcd1hqG/CqgsdIRyT45Fg==", - "dev": true, - "dependencies": { - "commander": "^2.20.0", - "source-map": "~0.6.1", - "source-map-support": "~0.5.12" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/terser-webpack-plugin": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-4.1.0.tgz", - "integrity": "sha512-0ZWDPIP8BtEDZdChbufcXUigOYk6dOX/P/X0hWxqDDcVAQLb8Yy/0FAaemSfax3PAA67+DJR778oz8qVbmy4hA==", - "dev": true, - "dependencies": { - "cacache": "^15.0.5", - "find-cache-dir": "^3.3.1", - "jest-worker": "^26.3.0", - "p-limit": "^3.0.2", - "schema-utils": "^2.6.6", - "serialize-javascript": "^4.0.0", - "source-map": "^0.6.1", - "terser": "^5.0.0", - "webpack-sources": "^1.4.3" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/terser-webpack-plugin/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/terser-webpack-plugin/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/terser/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true - }, - "node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "node_modules/thunky": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", - "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", - "dev": true - }, - "node_modules/timers-browserify": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", - "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", - "dev": true, - "dependencies": { - "setimmediate": "^1.0.4" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/timsort": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", - "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=", - "dev": true - }, - "node_modules/tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, - "dependencies": { - "os-tmpdir": "~1.0.2" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/to-array": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", - "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=", - "dev": true - }, - "node_modules/to-arraybuffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", - "dev": true - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-object-path/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dev": true, - "dependencies": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, - "dependencies": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/tr46": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.0.2.tgz", - "integrity": "sha512-3n1qG+/5kg+jrbTzwAykB5yRYtQCTqOGKq5U5PE3b0a1/mzo6snDhjGS0zJVJunO0NrT3Dg1MLy5TjWP/UJppg==", - "dev": true, - "dependencies": { - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/tree-kill": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", - "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", - "dev": true, - "bin": { - "tree-kill": "cli.js" - } - }, - "node_modules/ts-node": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.3.0.tgz", - "integrity": "sha512-dyNS/RqyVTDcmNM4NIBAeDMpsAdaQ+ojdf0GOLqE6nwJOgzEkdRNzJywhDfwnuvB10oa6NLVG1rUJQCpRN7qoQ==", - "dev": true, - "dependencies": { - "arg": "^4.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "source-map-support": "^0.5.6", - "yn": "^3.0.0" - }, - "bin": { - "ts-node": "dist/bin.js" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/ts-pnp": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.2.0.tgz", - "integrity": "sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/tslib": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", - "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==" - }, - "node_modules/tslint": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/tslint/-/tslint-6.1.3.tgz", - "integrity": "sha512-IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.0.0", - "builtin-modules": "^1.1.1", - "chalk": "^2.3.0", - "commander": "^2.12.1", - "diff": "^4.0.1", - "glob": "^7.1.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.3", - "resolve": "^1.3.2", - "semver": "^5.3.0", - "tslib": "^1.13.0", - "tsutils": "^2.29.0" - }, - "bin": { - "tslint": "bin/tslint" - }, - "engines": { - "node": ">=4.8.0" - } - }, - "node_modules/tslint/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/tslint/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/tsutils": { - "version": "2.29.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", - "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", - "dev": true, - "dependencies": { - "tslib": "^1.8.1" - } - }, - "node_modules/tsutils/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/tty-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", - "dev": true - }, - "node_modules/tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true, - "dependencies": { - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true - }, - "node_modules/type": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==", - "dev": true - }, - "node_modules/type-fest": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", - "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dev": true, - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true - }, - "node_modules/typescript": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.0.5.tgz", - "integrity": "sha512-ywmr/VrTVCmNTJ6iV2LwIrfG1P+lv6luD8sUJs+2eI9NLGigaN+nUQc13iHqisq7bra9lnmUSYqbJvegraBOPQ==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/ua-parser-js": { - "version": "0.7.21", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.21.tgz", - "integrity": "sha512-+O8/qh/Qj8CgC6eYBVBykMrNtp5Gebn4dlGD/kKXVkJNDwyrAwSIqwz8CDf+tsAIWVycKcku6gIXJ0qwx/ZXaQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", - "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", - "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", - "dev": true, - "dependencies": { - "unicode-canonical-property-names-ecmascript": "^1.0.4", - "unicode-property-aliases-ecmascript": "^1.0.4" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-value-ecmascript": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz", - "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-property-aliases-ecmascript": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz", - "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "dev": true, - "dependencies": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/uniq": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", - "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", - "dev": true - }, - "node_modules/uniqs": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", - "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", - "dev": true - }, - "node_modules/unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", - "dev": true, - "dependencies": { - "unique-slug": "^2.0.0" - } - }, - "node_modules/unique-slug": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", - "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4" - } - }, - "node_modules/universal-analytics": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/universal-analytics/-/universal-analytics-0.4.23.tgz", - "integrity": "sha512-lgMIH7XBI6OgYn1woDEmxhGdj8yDefMKg7GkWdeATAlQZFrMrNyxSkpDzY57iY0/6fdlzTbBV03OawvvzG+q7A==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "request": "^2.88.2", - "uuid": "^3.0.0" - } - }, - "node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/unquote": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", - "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=", - "dev": true - }, - "node_modules/unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "dev": true, - "dependencies": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "dev": true, - "dependencies": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "dependencies": { - "isarray": "1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/upath": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", - "dev": true, - "engines": { - "node": ">=4", - "yarn": "*" - } - }, - "node_modules/uri-js": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", - "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", - "dev": true, - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "dev": true - }, - "node_modules/url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "dev": true, - "dependencies": { - "punycode": "1.3.2", - "querystring": "0.2.0" - } - }, - "node_modules/url-parse": { - "version": "1.4.7", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz", - "integrity": "sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg==", - "dev": true, - "dependencies": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, - "node_modules/url/node_modules/punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", - "dev": true - }, - "node_modules/use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/util": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", - "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", - "dev": true, - "dependencies": { - "inherits": "2.0.3" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "node_modules/util-promisify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/util-promisify/-/util-promisify-2.1.0.tgz", - "integrity": "sha1-PCI2R2xNMsX/PEcAKt18E7moKlM=", - "dev": true, - "dependencies": { - "object.getownpropertydescriptors": "^2.0.3" - } - }, - "node_modules/util.promisify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", - "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", - "dev": true, - "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.2", - "has-symbols": "^1.0.1", - "object.getownpropertydescriptors": "^2.1.0" - } - }, - "node_modules/util.promisify/node_modules/es-abstract": { - "version": "1.17.7", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", - "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", - "dev": true, - "dependencies": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", - "is-regex": "^1.1.1", - "object-inspect": "^1.8.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.1", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/util/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "dev": true, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true, - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "node_modules/validate-npm-package-name": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", - "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", - "dev": true, - "dependencies": { - "builtins": "^1.0.3" - } - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/vendors": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz", - "integrity": "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==", - "dev": true - }, - "node_modules/verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "dev": true, - "engines": [ - "node >=0.6.0" - ], - "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "node_modules/vm-browserify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", - "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", - "dev": true - }, - "node_modules/void-elements": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", - "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", - "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", - "dev": true, - "dependencies": { - "chokidar": "^3.4.1", - "graceful-fs": "^4.1.2", - "neo-async": "^2.5.0", - "watchpack-chokidar2": "^2.0.1" - }, - "optionalDependencies": { - "watchpack-chokidar2": "^2.0.1" - } - }, - "node_modules/watchpack-chokidar2": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz", - "integrity": "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==", - "dev": true, - "optional": true, - "dependencies": { - "chokidar": "^2.1.8" - } - }, - "node_modules/watchpack-chokidar2/node_modules/anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "optional": true, - "dependencies": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - } - }, - "node_modules/watchpack-chokidar2/node_modules/anymatch/node_modules/normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "optional": true, - "dependencies": { - "remove-trailing-separator": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "optional": true, - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "optional": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "dev": true, - "optional": true, - "dependencies": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "fsevents": "^1.2.7", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - } - }, - "node_modules/watchpack-chokidar2/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "optional": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "optional": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "dependencies": { - "bindings": "^1.5.0", - "nan": "^2.12.1" - }, - "engines": { - "node": ">= 4.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "optional": true, - "dependencies": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/glob-parent/node_modules/is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "optional": true, - "dependencies": { - "is-extglob": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "dev": true, - "optional": true, - "dependencies": { - "binary-extensions": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "optional": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "optional": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "optional": true, - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "dev": true, - "optional": true, - "dependencies": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/watchpack-chokidar2/node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "optional": true, - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wbuf": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", - "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", - "dev": true, - "dependencies": { - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", - "dev": true, - "dependencies": { - "defaults": "^1.0.3" - } - }, - "node_modules/webdriver-js-extender": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/webdriver-js-extender/-/webdriver-js-extender-2.1.0.tgz", - "integrity": "sha512-lcUKrjbBfCK6MNsh7xaY2UAUmZwe+/ib03AjVOpFobX4O7+83BUveSrLfU0Qsyb1DaKJdQRbuU+kM9aZ6QUhiQ==", - "dev": true, - "dependencies": { - "@types/selenium-webdriver": "^3.0.0", - "selenium-webdriver": "^3.0.1" - }, - "engines": { - "node": ">=6.9.x" - } - }, - "node_modules/webidl-conversions": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", - "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", - "dev": true, - "engines": { - "node": ">=10.4" - } - }, - "node_modules/webpack": { - "version": "4.44.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.44.1.tgz", - "integrity": "sha512-4UOGAohv/VGUNQJstzEywwNxqX417FnjZgZJpJQegddzPmTvph37eBIRbRTfdySXzVtJXLJfbMN3mMYhM6GdmQ==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/wasm-edit": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0", - "acorn": "^6.4.1", - "ajv": "^6.10.2", - "ajv-keywords": "^3.4.1", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^4.3.0", - "eslint-scope": "^4.0.3", - "json-parse-better-errors": "^1.0.2", - "loader-runner": "^2.4.0", - "loader-utils": "^1.2.3", - "memory-fs": "^0.4.1", - "micromatch": "^3.1.10", - "mkdirp": "^0.5.3", - "neo-async": "^2.6.1", - "node-libs-browser": "^2.2.1", - "schema-utils": "^1.0.0", - "tapable": "^1.1.3", - "terser-webpack-plugin": "^1.4.3", - "watchpack": "^1.7.4", - "webpack-sources": "^1.4.1" - }, - "bin": { - "webpack": "bin/webpack.js" - }, - "engines": { - "node": ">=6.11.5" - } - }, - "node_modules/webpack-dev-middleware": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz", - "integrity": "sha512-1xC42LxbYoqLNAhV6YzTYacicgMZQTqRd27Sim9wn5hJrX3I5nxYy1SxSd4+gjUFsz1dQFj+yEe6zEVmSkeJjw==", - "dev": true, - "dependencies": { - "memory-fs": "^0.4.1", - "mime": "^2.4.4", - "mkdirp": "^0.5.1", - "range-parser": "^1.2.1", - "webpack-log": "^2.0.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/webpack-dev-middleware/node_modules/memory-fs": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", - "dev": true, - "dependencies": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - }, - "node_modules/webpack-dev-middleware/node_modules/mime": { - "version": "2.4.7", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.7.tgz", - "integrity": "sha512-dhNd1uA2u397uQk3Nv5LM4lm93WYDUXFn3Fu291FJerns4jyTudqhIWe4W04YLy7Uk1tm1Ore04NpjRvQp/NPA==", - "dev": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/webpack-dev-server": { - "version": "3.11.0", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.0.tgz", - "integrity": "sha512-PUxZ+oSTxogFQgkTtFndEtJIPNmml7ExwufBZ9L2/Xyyd5PnOL5UreWe5ZT7IU25DSdykL9p1MLQzmLh2ljSeg==", - "dev": true, - "dependencies": { - "ansi-html": "0.0.7", - "bonjour": "^3.5.0", - "chokidar": "^2.1.8", - "compression": "^1.7.4", - "connect-history-api-fallback": "^1.6.0", - "debug": "^4.1.1", - "del": "^4.1.1", - "express": "^4.17.1", - "html-entities": "^1.3.1", - "http-proxy-middleware": "0.19.1", - "import-local": "^2.0.0", - "internal-ip": "^4.3.0", - "ip": "^1.1.5", - "is-absolute-url": "^3.0.3", - "killable": "^1.0.1", - "loglevel": "^1.6.8", - "opn": "^5.5.0", - "p-retry": "^3.0.1", - "portfinder": "^1.0.26", - "schema-utils": "^1.0.0", - "selfsigned": "^1.10.7", - "semver": "^6.3.0", - "serve-index": "^1.9.1", - "sockjs": "0.3.20", - "sockjs-client": "1.4.0", - "spdy": "^4.0.2", - "strip-ansi": "^3.0.1", - "supports-color": "^6.1.0", - "url": "^0.11.0", - "webpack-dev-middleware": "^3.7.2", - "webpack-log": "^2.0.0", - "ws": "^6.2.1", - "yargs": "^13.3.2" - }, - "bin": { - "webpack-dev-server": "bin/webpack-dev-server.js" - }, - "engines": { - "node": ">= 6.11.5" - } - }, - "node_modules/webpack-dev-server/node_modules/anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "dependencies": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - } - }, - "node_modules/webpack-dev-server/node_modules/anymatch/node_modules/normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "dependencies": { - "remove-trailing-separator": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-dev-server/node_modules/binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-dev-server/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-dev-server/node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-dev-server/node_modules/chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "dev": true, - "dependencies": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "fsevents": "^1.2.7", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - }, - "optionalDependencies": { - "fsevents": "^1.2.7" - } - }, - "node_modules/webpack-dev-server/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-dev-server/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-dev-server/node_modules/fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "dependencies": { - "bindings": "^1.5.0", - "nan": "^2.12.1" - }, - "engines": { - "node": ">= 4.0" - } - }, - "node_modules/webpack-dev-server/node_modules/glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "dependencies": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - } - }, - "node_modules/webpack-dev-server/node_modules/glob-parent/node_modules/is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-dev-server/node_modules/is-absolute-url": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", - "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/webpack-dev-server/node_modules/is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "dev": true, - "dependencies": { - "binary-extensions": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-dev-server/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-dev-server/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-dev-server/node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-dev-server/node_modules/readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/webpack-dev-server/node_modules/schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "dev": true, - "dependencies": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/webpack-dev-server/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/webpack-dev-server/node_modules/supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack-dev-server/node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-log": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz", - "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", - "dev": true, - "dependencies": { - "ansi-colors": "^3.0.0", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/webpack-merge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.2.tgz", - "integrity": "sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g==", - "dev": true, - "dependencies": { - "lodash": "^4.17.15" - } - }, - "node_modules/webpack-sources": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", - "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", - "dev": true, - "dependencies": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - } - }, - "node_modules/webpack-sources/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-subresource-integrity": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/webpack-subresource-integrity/-/webpack-subresource-integrity-1.4.1.tgz", - "integrity": "sha512-XMLFInbGbB1HV7K4vHWANzc1CN0t/c4bBvnlvGxGwV45yE/S/feAXIm8dJsCkzqWtSKnmaEgTp/meyeThxG4Iw==", - "dev": true, - "dependencies": { - "webpack-sources": "^1.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/webpack/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack/node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack/node_modules/cacache": { - "version": "12.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", - "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", - "dev": true, - "dependencies": { - "bluebird": "^3.5.5", - "chownr": "^1.1.1", - "figgy-pudding": "^3.5.1", - "glob": "^7.1.4", - "graceful-fs": "^4.1.15", - "infer-owner": "^1.0.3", - "lru-cache": "^5.1.1", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.3", - "ssri": "^6.0.1", - "unique-filename": "^1.1.1", - "y18n": "^4.0.0" - } - }, - "node_modules/webpack/node_modules/chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true - }, - "node_modules/webpack/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack/node_modules/find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", - "dev": true, - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack/node_modules/is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/webpack/node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/webpack/node_modules/loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/webpack/node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/webpack/node_modules/memory-fs": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", - "dev": true, - "dependencies": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - }, - "node_modules/webpack/node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/webpack/node_modules/schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "dev": true, - "dependencies": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/webpack/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack/node_modules/ssri": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", - "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", - "dev": true, - "dependencies": { - "figgy-pudding": "^3.5.1" - } - }, - "node_modules/webpack/node_modules/terser": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", - "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", - "dev": true, - "dependencies": { - "commander": "^2.20.0", - "source-map": "~0.6.1", - "source-map-support": "~0.5.12" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/webpack/node_modules/terser-webpack-plugin": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz", - "integrity": "sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==", - "dev": true, - "dependencies": { - "cacache": "^12.0.2", - "find-cache-dir": "^2.1.0", - "is-wsl": "^1.1.0", - "schema-utils": "^1.0.0", - "serialize-javascript": "^4.0.0", - "source-map": "^0.6.1", - "terser": "^4.1.2", - "webpack-sources": "^1.4.0", - "worker-farm": "^1.7.0" - }, - "engines": { - "node": ">= 6.9.0" - } - }, - "node_modules/webpack/node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack/node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - }, - "node_modules/websocket-driver": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.6.5.tgz", - "integrity": "sha1-XLJVbOuF9Dc8bYI4qmkchFThOjY=", - "dev": true, - "dependencies": { - "websocket-extensions": ">=0.1.1" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/websocket-extensions": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", - "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/whatwg-mimetype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", - "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", - "dev": true - }, - "node_modules/whatwg-url": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.4.0.tgz", - "integrity": "sha512-vwTUFf6V4zhcPkWp/4CQPr1TW9Ml6SF4lVyaIMBdJw5i6qUUJ1QWM4Z6YYVkfka0OUIzVo/0aNtGVGk256IKWw==", - "dev": true, - "dependencies": { - "lodash.sortby": "^4.7.0", - "tr46": "^2.0.2", - "webidl-conversions": "^6.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/when": { - "version": "3.6.4", - "resolved": "https://registry.npmjs.org/when/-/when-3.6.4.tgz", - "integrity": "sha1-RztRfsFZ4rhQBUl6E5g/CVQS404=", - "dev": true - }, - "node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, - "node_modules/worker-farm": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", - "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", - "dev": true, - "dependencies": { - "errno": "~0.1.7" - } - }, - "node_modules/worker-plugin": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/worker-plugin/-/worker-plugin-5.0.0.tgz", - "integrity": "sha512-AXMUstURCxDD6yGam2r4E34aJg6kW85IiaeX72hi+I1cxyaMUtrvVY6sbfpGKAj5e7f68Acl62BjQF5aOOx2IQ==", - "dev": true, - "dependencies": { - "loader-utils": "^1.1.0" - } - }, - "node_modules/worker-plugin/node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/worker-plugin/node_modules/loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "node_modules/ws": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", - "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", - "dev": true, - "dependencies": { - "async-limiter": "~1.0.0" - } - }, - "node_modules/xml2js": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", - "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", - "dev": true, - "dependencies": { - "sax": ">=0.6.0", - "xmlbuilder": "~11.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/xmlbuilder": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", - "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/xmlhttprequest-ssl": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz", - "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true, - "engines": { - "node": ">=0.4" - } - }, - "node_modules/y18n": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", - "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", - "dev": true - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/yargs": { - "version": "13.3.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", - "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", - "dev": true, - "dependencies": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.2" - } - }, - "node_modules/yargs-parser": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", - "dev": true, - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - }, - "node_modules/yargs-parser/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/yeast": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", - "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=", - "dev": true - }, - "node_modules/yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/zone.js": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.10.3.tgz", - "integrity": "sha512-LXVLVEq0NNOqK/fLJo3d0kfzd4sxwn2/h67/02pjCjfKDxgx1i9QqpvtHD8CrBnSSwMw5+dy11O7FRX5mkO7Cg==" - } - }, "dependencies": { "@angular-devkit/architect": { "version": "0.1002.1", @@ -18183,6 +1987,16 @@ "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", "dev": true }, + "JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "dev": true, + "requires": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + } + }, "abab": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", @@ -18874,9 +2688,9 @@ "dev": true }, "bootstrap": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-3.4.1.tgz", - "integrity": "sha512-yN5oZVmRCwe5aKwzRj6736nSmKDX7pLYwsXiCj/EYmo16hODaBiT4En5btW/jhBF/seV+XMx3aYwukYC3A49DA==" + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.5.3.tgz", + "integrity": "sha512-o9ppKQioXGqhw8Z7mah6KdTYpNQY//tipnkxppWhPbiSWdD+1raYsnhwEZjkTHYbGee4cVQ0Rx65EhOY/HNLcQ==" }, "brace-expansion": { "version": "1.1.11", @@ -23014,16 +6828,6 @@ "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", "dev": true }, - "JSONStream": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", - "dev": true, - "requires": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - } - }, "jsprim": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", @@ -24299,9 +8103,9 @@ "integrity": "sha512-cny9v0+Mq6Tjz+e0erFAB+RYJ/AVGzkjnISiobqP8OWj9c9FLoZZu8/SPSKJWE17F1tk4018wfjV+ZbIbqC7fQ==", "dev": true, "requires": { + "JSONStream": "^1.3.4", "bluebird": "^3.5.1", "figgy-pudding": "^3.4.1", - "JSONStream": "^1.3.4", "lru-cache": "^5.1.1", "make-fetch-happen": "^5.0.0", "npm-package-arg": "^6.1.0", @@ -25119,11 +8923,6 @@ "ts-pnp": "^1.1.6" } }, - "popper.js": { - "version": "1.14.3", - "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.14.3.tgz", - "integrity": "sha1-FDj5jQRqz3tNeM1QK/QYrGTU8JU=" - }, "portfinder": { "version": "1.0.28", "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", @@ -27948,15 +11747,6 @@ "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", "dev": true }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, "string-width": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", @@ -28005,6 +11795,15 @@ "define-properties": "^1.1.3" } }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, "strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", diff --git a/projects/project-3/frontend/package.json b/projects/project-3/frontend/package.json index 371c6be..04f81a0 100644 --- a/projects/project-3/frontend/package.json +++ b/projects/project-3/frontend/package.json @@ -23,13 +23,12 @@ "@angular/platform-browser-dynamic": "~10.2.0", "@angular/router": "~10.2.0", "apexcharts": "^3.23.0", - "bootstrap": "^3.4.1", + "bootstrap": "^4.5.3", "jquery": "^3.5.1", "leaflet": "~1.3.1", "leaflet.heat": "^0.2.0", "leaflet.markercluster": "^1.4.1", "ng-apexcharts": "^1.5.6", - "popper.js": "^1.14.3", "rxjs": "~6.6.0", "seconds-to-human-time": "^1.0.0", "tslib": "^2.0.0", diff --git a/projects/project-3/frontend/src/app/dashboard/dashboard.component.html b/projects/project-3/frontend/src/app/dashboard/dashboard.component.html index e10fb12..5700a18 100644 --- a/projects/project-3/frontend/src/app/dashboard/dashboard.component.html +++ b/projects/project-3/frontend/src/app/dashboard/dashboard.component.html @@ -1,42 +1,36 @@ - + Bike Stations in London - -
+ library_books Wiki - + map back to map - - -
- -
- -
- +
+
+
+ +
-
- +
+
-
- +
+
-
- +
+
- - +
+
diff --git a/projects/project-3/frontend/src/app/dashboard/dashboard.component.scss b/projects/project-3/frontend/src/app/dashboard/dashboard.component.scss index 54dc401..5c61723 100644 --- a/projects/project-3/frontend/src/app/dashboard/dashboard.component.scss +++ b/projects/project-3/frontend/src/app/dashboard/dashboard.component.scss @@ -1,74 +1,16 @@ -mat-sidenav-content { - background: #2f2f2f; -} +.toolbar { + height: 5vh; -.toolbar-spacer { - flex: 1 1 auto; -} + .toolbar-spacer { + flex: 1 1 auto; + } -.button-back:hover, .button-wiki:hover { - background: #086ed2; -} + a:hover { + background: #086ed2; + text-decoration: none; + } -.submit-date { - margin-top: 1em; - margin-left: 4em; -} - -#chart { - margin-right: 16px; -} - -.mat-card { - padding: 1px 1px 1px; - margin: 10px; -} - -.example-header-image { - margin-top: 1em; - margin-left: 1em; - margin-bottom: 1em; - background-image: url('../../assets/bike-point-blue.png'); - background-size: cover; -} - -.mat-card-map { - padding: 1px; -} - -.mat-card-title { - margin-top: 1em; - margin-left: 2em; -} - -.mat-card-subtitle { - margin-left: 39px; -} - -.container-map { - height: 40em; - margin: 1em 2em; -} - -.container-table { - height: 20em; - margin: 1em 3em; -} - -.container-borrow-duration { - height: 41em; - margin: 1em 2em; -} - -.container-borrow-time { - height: 44em; - margin: 1em 2em; -} - -.station-dashboard-borrow-time { - margin: 1em; -} - -.station-dashboard-borrow-duration { - margin: 1em; + .spacer { + flex: 1 1 auto; + } } diff --git a/projects/project-3/frontend/src/app/dashboard/mini-map/mini-map.component.html b/projects/project-3/frontend/src/app/dashboard/mini-map/mini-map.component.html index 5b03655..6cb485e 100644 --- a/projects/project-3/frontend/src/app/dashboard/mini-map/mini-map.component.html +++ b/projects/project-3/frontend/src/app/dashboard/mini-map/mini-map.component.html @@ -1,7 +1,3 @@ - -
-
-
-
-
+ +
diff --git a/projects/project-3/frontend/src/app/dashboard/mini-map/mini-map.component.scss b/projects/project-3/frontend/src/app/dashboard/mini-map/mini-map.component.scss index b0bd2eb..e69de29 100644 --- a/projects/project-3/frontend/src/app/dashboard/mini-map/mini-map.component.scss +++ b/projects/project-3/frontend/src/app/dashboard/mini-map/mini-map.component.scss @@ -1,4 +0,0 @@ -.mat-card { - padding: 1px 1px 1px; - margin: 10px; -} diff --git a/projects/project-3/frontend/src/app/dashboard/rent-duration-chart/rent-duration-chart.component.scss b/projects/project-3/frontend/src/app/dashboard/rent-duration-chart/rent-duration-chart.component.scss index dd9f823..e69de29 100644 --- a/projects/project-3/frontend/src/app/dashboard/rent-duration-chart/rent-duration-chart.component.scss +++ b/projects/project-3/frontend/src/app/dashboard/rent-duration-chart/rent-duration-chart.component.scss @@ -1,17 +0,0 @@ -.station-dashboard-borrow-duration { - margin: 1em; -} - -.mat-card { - padding: 1px 1px 1px; - margin: 10px; -} - -.mat-card-title { - margin-top: 1em; - margin-left: 2em; -} - -.mat-card-subtitle { - margin-left: 39px; -} diff --git a/projects/project-3/frontend/src/app/dashboard/rent-time-chart/rent-time-chart.component.scss b/projects/project-3/frontend/src/app/dashboard/rent-time-chart/rent-time-chart.component.scss index dd9f823..e69de29 100644 --- a/projects/project-3/frontend/src/app/dashboard/rent-time-chart/rent-time-chart.component.scss +++ b/projects/project-3/frontend/src/app/dashboard/rent-time-chart/rent-time-chart.component.scss @@ -1,17 +0,0 @@ -.station-dashboard-borrow-duration { - margin: 1em; -} - -.mat-card { - padding: 1px 1px 1px; - margin: 10px; -} - -.mat-card-title { - margin-top: 1em; - margin-left: 2em; -} - -.mat-card-subtitle { - margin-left: 39px; -} diff --git a/projects/project-3/frontend/src/app/dashboard/table/table.component.html b/projects/project-3/frontend/src/app/dashboard/table/table.component.html index f832e81..f30d61e 100644 --- a/projects/project-3/frontend/src/app/dashboard/table/table.component.html +++ b/projects/project-3/frontend/src/app/dashboard/table/table.component.html @@ -1,91 +1,88 @@ -
- - - - - - - - - +
+
+
- - - station of rental destination{{element.stationName}}
+ + + + + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - -
+ + + station of rental destination + {{element.stationName}} + number of drives {{element.number}} number of drives {{element.number}} average rental duration {{humanizeAvgDuration(element.avgDuration)}} average rental duration {{humanizeAvgDuration(element.avgDuration)}} icon on mapmarker icon on mapmarker
-
- - + + + +
+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + station of rental origin + {{element.stationName}} + number of drives {{element.number}} average rental duration {{humanizeAvgDuration(element.avgDuration)}} icon on mapmarker
+
+ +
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - station of rental origin {{element.stationName}} number of drives {{element.number}} average rental duration {{humanizeAvgDuration(element.avgDuration)}} icon on mapmarker
-
- - -
-
- diff --git a/projects/project-3/frontend/src/app/dashboard/table/table.component.scss b/projects/project-3/frontend/src/app/dashboard/table/table.component.scss index e01303d..10615d6 100644 --- a/projects/project-3/frontend/src/app/dashboard/table/table.component.scss +++ b/projects/project-3/frontend/src/app/dashboard/table/table.component.scss @@ -4,12 +4,9 @@ img { a { color: black; + text-decoration: underline; } -.dashboard-table-to { - margin-right: 1em; -} - -.dashboard-table-from { - margin-left: 1em; +.mat-checkbox-layout label { + margin: 0 !important; } diff --git a/projects/project-3/frontend/src/app/dashboard/user-input/user-input.component.html b/projects/project-3/frontend/src/app/dashboard/user-input/user-input.component.html index 8133809..a5b0219 100644 --- a/projects/project-3/frontend/src/app/dashboard/user-input/user-input.component.html +++ b/projects/project-3/frontend/src/app/dashboard/user-input/user-input.component.html @@ -1,13 +1,15 @@ - - -
- {{bikePoint?.commonName}} + + + +
+ {{bikePoint?.commonName}} +
- -
-
-

Select a range to analyze data

- + +
+

Select a range to analyze data

+ + Enter a range @@ -17,32 +19,28 @@ - -
- -
+
-
-
- -
+
+
diff --git a/projects/project-3/frontend/src/app/dashboard/user-input/user-input.component.scss b/projects/project-3/frontend/src/app/dashboard/user-input/user-input.component.scss index 6f5429f..c54a900 100644 --- a/projects/project-3/frontend/src/app/dashboard/user-input/user-input.component.scss +++ b/projects/project-3/frontend/src/app/dashboard/user-input/user-input.component.scss @@ -1,30 +1,4 @@ .header-image { - margin-top: 1em; - margin-left: 1em; - margin-bottom: 1em; background-image: url('../../../assets/bike-point-blue.png'); background-size: cover; } - -.mat-card { - padding: 1px 1px 1px; - margin: 10px; -} - -.mat-card-title { - margin-top: 1em; - margin-left: 2em; -} - -.mat-card-subtitle { - margin-left: 39px; -} - -#chart { - margin-right: 16px; -} - -.submit-date { - margin-top: 1em; - margin-left: 4em; -} diff --git a/projects/project-3/frontend/src/styles.scss b/projects/project-3/frontend/src/styles.scss index b43caff..c5948d4 100644 --- a/projects/project-3/frontend/src/styles.scss +++ b/projects/project-3/frontend/src/styles.scss @@ -11,6 +11,12 @@ body { @import "~leaflet/dist/leaflet.css"; @import "~leaflet.markercluster/dist/MarkerCluster.css"; @import "~leaflet.markercluster/dist/MarkerCluster.Default.css"; +@import "~bootstrap/scss/bootstrap"; + +/* WTF ANGULAR!?!?!?! WHY DO I HAVE TO DO THIS? (see table.component.html@7 and table.component.html@50) */ +label.mat-checkbox-layout { + margin: 0 !important; +} .legend { padding: 6px 8px; From 8724eaf9147af3682ed43ba26eca996f4d75f2c7 Mon Sep 17 00:00:00 2001 From: Marcel Schwarz Date: Sun, 3 Jan 2021 04:33:31 +0100 Subject: [PATCH 088/104] Remove some more weird fxFlex and fxLayout directives --- .../rent-duration-chart.component.html | 17 ++++++----------- .../rent-time-chart.component.html | 19 +++++++------------ 2 files changed, 13 insertions(+), 23 deletions(-) diff --git a/projects/project-3/frontend/src/app/dashboard/rent-duration-chart/rent-duration-chart.component.html b/projects/project-3/frontend/src/app/dashboard/rent-duration-chart/rent-duration-chart.component.html index f282e7a..5bcf33b 100644 --- a/projects/project-3/frontend/src/app/dashboard/rent-duration-chart/rent-duration-chart.component.html +++ b/projects/project-3/frontend/src/app/dashboard/rent-duration-chart/rent-duration-chart.component.html @@ -1,4 +1,4 @@ - + Rental Duration @@ -6,8 +6,8 @@ The time it takes for a rent which has the current station as origin is displayed here. - -
+ +
+
+ +
-
- - -
diff --git a/projects/project-3/frontend/src/app/dashboard/rent-time-chart/rent-time-chart.component.html b/projects/project-3/frontend/src/app/dashboard/rent-time-chart/rent-time-chart.component.html index 07037d5..c579ad8 100644 --- a/projects/project-3/frontend/src/app/dashboard/rent-time-chart/rent-time-chart.component.html +++ b/projects/project-3/frontend/src/app/dashboard/rent-time-chart/rent-time-chart.component.html @@ -1,5 +1,5 @@ - - + + Rental Time This chart shows the workload of the currently selected station in relation @@ -8,8 +8,8 @@ - -
+ +
+
+ +
-
- - -
From 89d4738da5661e91977e6cc80c7170f6ab00c305 Mon Sep 17 00:00:00 2001 From: Marcel Schwarz Date: Sun, 3 Jan 2021 04:41:23 +0100 Subject: [PATCH 089/104] Add min width and add some more margins --- .../frontend/src/app/dashboard/dashboard.component.html | 5 ++++- .../frontend/src/app/dashboard/table/table.component.html | 2 +- projects/project-3/frontend/src/styles.scss | 1 + 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/projects/project-3/frontend/src/app/dashboard/dashboard.component.html b/projects/project-3/frontend/src/app/dashboard/dashboard.component.html index 5700a18..3f85bf0 100644 --- a/projects/project-3/frontend/src/app/dashboard/dashboard.component.html +++ b/projects/project-3/frontend/src/app/dashboard/dashboard.component.html @@ -17,7 +17,10 @@
- + +
diff --git a/projects/project-3/frontend/src/app/dashboard/table/table.component.html b/projects/project-3/frontend/src/app/dashboard/table/table.component.html index f30d61e..da13573 100644 --- a/projects/project-3/frontend/src/app/dashboard/table/table.component.html +++ b/projects/project-3/frontend/src/app/dashboard/table/table.component.html @@ -1,5 +1,5 @@
-
+
diff --git a/projects/project-3/frontend/src/styles.scss b/projects/project-3/frontend/src/styles.scss index c5948d4..e24de31 100644 --- a/projects/project-3/frontend/src/styles.scss +++ b/projects/project-3/frontend/src/styles.scss @@ -1,5 +1,6 @@ html, body { height: 100vh; + min-width: 600px; } body { From 210061442f5e584356059bcec22dcdde96a4f200 Mon Sep 17 00:00:00 2001 From: tim-herbst Date: Sun, 3 Jan 2021 14:20:39 +0100 Subject: [PATCH 090/104] fix error with color for polyline after change of date-span --- .../src/app/dashboard/table/table.component.ts | 14 ++++++++++---- .../frontend/src/app/service/map.service.ts | 2 +- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/projects/project-3/frontend/src/app/dashboard/table/table.component.ts b/projects/project-3/frontend/src/app/dashboard/table/table.component.ts index 597761f..dc1bc2f 100644 --- a/projects/project-3/frontend/src/app/dashboard/table/table.component.ts +++ b/projects/project-3/frontend/src/app/dashboard/table/table.component.ts @@ -79,13 +79,19 @@ export class TableComponent implements OnInit { await this.service.fetchDashboardStationTo(this.bikePoint.id, actualStartDate, actualEndDate).then((source) => { this.colors = ['black', 'gray', 'green', 'orange', 'purple', 'red']; this.isLoadingToSource = false; - this.stationToSource = source; - this.iterableToSource = this.setBikePointColorToSource(source); + this.stationToSource = this.setBikePointColorFromSource(source); + this.iterableToSource = source; + this.iterableToSource.forEach(bikePoint => { + bikePoint.polyLineColor = 'green'; + }); }); this.service.fetchDashboardStationFrom(this.bikePoint.id, actualStartDate, actualEndDate).then((source) => { this.isLoadingFromSource = false; - this.stationFromSource = source; - this.iterableFromSource = this.setBikePointColorFromSource(source); + this.stationFromSource = this.setBikePointColorFromSource(source); + this.iterableFromSource = source; + this.iterableFromSource.forEach(bikePoint => { + bikePoint.polyLineColor = 'red'; + }); }); } diff --git a/projects/project-3/frontend/src/app/service/map.service.ts b/projects/project-3/frontend/src/app/service/map.service.ts index 15c5cbc..aad157d 100644 --- a/projects/project-3/frontend/src/app/service/map.service.ts +++ b/projects/project-3/frontend/src/app/service/map.service.ts @@ -161,7 +161,7 @@ export class MapService { } drawLegend(): void { - this.legend.onAdd = map => { + this.legend.onAdd = () => { const div = L.DomUtil.create('div', 'legend'); div.innerHTML += `

trips from/to bike station

`; div.innerHTML += `rents with ${this.dashBoardBikePoint.commonName} as destination
`; From 8ef1b34c3b6e30508b91e965ac2b56bf52d9ae15 Mon Sep 17 00:00:00 2001 From: tim-herbst Date: Sun, 3 Jan 2021 14:45:14 +0100 Subject: [PATCH 091/104] dynamically add and remove legend with checkbox-toggle --- .../project-3/frontend/src/app/service/map.service.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/projects/project-3/frontend/src/app/service/map.service.ts b/projects/project-3/frontend/src/app/service/map.service.ts index aad157d..daee81b 100644 --- a/projects/project-3/frontend/src/app/service/map.service.ts +++ b/projects/project-3/frontend/src/app/service/map.service.ts @@ -155,9 +155,13 @@ export class MapService { marker.on('mouseout', e => e.target.closePopup()); this.drawLineOnMiniMap(marker, point); this.markerLayer.push(marker); - this.miniMap.fitBounds(L.featureGroup([...this.markerLayer, this.dashBoardMarker]).getBounds()); + this.miniMap.fitBounds(L.featureGroup([this.dashBoardMarker, ...this.markerLayer]).getBounds()); + } + if (this.polylineLayer.length === 0) { + this.legend.remove(); + } else { + this.drawLegend(); } - this.drawLegend(); } drawLegend(): void { From abfc5424a31c33c2feb1a9bafaa299428b7b496b Mon Sep 17 00:00:00 2001 From: tim-herbst Date: Sun, 3 Jan 2021 15:16:44 +0100 Subject: [PATCH 092/104] fix error with auto-refresh * if layer is toggled with auto-refresh, the layer will be drawn after refresh --- .../auto-refresh/auto-refresh.component.ts | 4 ++-- .../frontend/src/app/service/map.service.ts | 23 ++++++++++++++++--- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/projects/project-3/frontend/src/app/map/auto-refresh/auto-refresh.component.ts b/projects/project-3/frontend/src/app/map/auto-refresh/auto-refresh.component.ts index 477d29f..7156d5a 100644 --- a/projects/project-3/frontend/src/app/map/auto-refresh/auto-refresh.component.ts +++ b/projects/project-3/frontend/src/app/map/auto-refresh/auto-refresh.component.ts @@ -23,9 +23,9 @@ export class AutoRefreshComponent implements OnInit, OnDestroy { ngOnInit(): void { this.interval = setInterval(() => { if (this.isFlagActive) { - this.map.autoRefresh(); + this.map.autoRefresh().catch(error => console.log(error)); } - }, 30000); + }, 10000); } ngOnDestroy(): void { diff --git a/projects/project-3/frontend/src/app/service/map.service.ts b/projects/project-3/frontend/src/app/service/map.service.ts index daee81b..381aa74 100644 --- a/projects/project-3/frontend/src/app/service/map.service.ts +++ b/projects/project-3/frontend/src/app/service/map.service.ts @@ -7,6 +7,7 @@ import {environment} from '../../environments/environment'; import {PopUpService} from './pop-up.service'; import {IMapBikePoint} from './domain/map-bike-point'; import {IDashboardCommonBikePoint} from './domain/dashboard-common-bike-point'; +import {writeErrorToLogFile} from "@angular/cli/utilities/log-file"; const createIcon = color => L.icon({ @@ -25,6 +26,7 @@ export class MapService { public miniMap; bikePoints: Array = []; mapOverlays: any = {}; + layerToDisplay: any = {}; miniMapMarker: L.layerGroup; markerLayer = []; polylineLayer = []; @@ -40,7 +42,15 @@ export class MapService { } public async autoRefresh(): Promise { + this.layerToDisplay = {}; for (const name in this.mapOverlays) { + if (this.map.hasLayer(this.mapOverlays[name])) { + if (this.mapOverlays.Heatmap === this.mapOverlays[name]) { + this.layerToDisplay.Heatmap = this.mapOverlays[name]; + } else if (this.mapOverlays.Accidents === this.mapOverlays[name]) { + this.layerToDisplay.Accidents = this.mapOverlays[name]; + } + } this.map.removeLayer(this.mapOverlays[name]); } await this.drawStationMarkers(); @@ -102,11 +112,14 @@ export class MapService { bikePoint.lon, bikePoint.status.NbBikes ])); - - this.mapOverlays.Heatmap = L.heatLayer(heatPoints, { + const heatmap = L.heatLayer(heatPoints, { max: 5, radius: 90 }); + if (this.layerToDisplay.Heatmap) { + this.map.addLayer(heatmap); + } + this.mapOverlays.Heatmap = heatmap; } public drawAccidents(): void { @@ -124,7 +137,11 @@ export class MapService { }); accidents.push(accidentMarker); } - this.mapOverlays.Accidents = L.layerGroup(accidents); + const accidentLayer = L.layerGroup(accidents); + if (this.layerToDisplay.Accidents) { + this.map.addLayer(accidentLayer); + } + this.mapOverlays.Accidents = accidentLayer; this.drawMapControl(); }); } From 493cdd9ea70ce2059de4bd8426bfe64d52b4e72f Mon Sep 17 00:00:00 2001 From: Marcel Schwarz Date: Fri, 8 Jan 2021 12:35:09 +0100 Subject: [PATCH 093/104] Use promise.all in table component to sync the table loading --- .../app/dashboard/table/table.component.ts | 74 ++++++++++--------- 1 file changed, 39 insertions(+), 35 deletions(-) diff --git a/projects/project-3/frontend/src/app/dashboard/table/table.component.ts b/projects/project-3/frontend/src/app/dashboard/table/table.component.ts index dc1bc2f..6509a30 100644 --- a/projects/project-3/frontend/src/app/dashboard/table/table.component.ts +++ b/projects/project-3/frontend/src/app/dashboard/table/table.component.ts @@ -26,8 +26,8 @@ export class TableComponent implements OnInit { bikePoint: IDashboardCommonBikePoint; maxStartDate: Date; maxEndDate: Date; - isLoadingToSource: boolean; - isLoadingFromSource: boolean; + isLoadingToSource = true; + isLoadingFromSource = true; constructor( private route: ActivatedRoute, @@ -54,45 +54,49 @@ export class TableComponent implements OnInit { this.selectionModel.clear(); this.map.removeOverlayOnMiniMap(); const initDate = this.maxEndDate.toISOString().substring(0, 10); - await this.service.fetchDashboardStationTo(this.bikePoint.id, initDate, initDate).then(source => { - this.isLoadingToSource = false; - this.stationToSource = this.setBikePointColorToSource(source); - this.iterableToSource = source; - this.iterableToSource.forEach(bikePoint => { - bikePoint.polyLineColor = 'green'; - }); - }); - this.service.fetchDashboardStationFrom(this.bikePoint.id, initDate, initDate).then(source => { - this.isLoadingFromSource = false; - this.stationFromSource = this.setBikePointColorFromSource(source); - this.iterableFromSource = source; - this.iterableFromSource.forEach(bikePoint => { - bikePoint.polyLineColor = 'red'; - }); - }); + + const [stationTo, stationFrom] = await Promise.all([ + this.service.fetchDashboardStationTo(this.bikePoint.id, initDate, initDate), + this.service.fetchDashboardStationFrom(this.bikePoint.id, initDate, initDate) + ]); + + this.isLoadingToSource = false; + this.isLoadingFromSource = false; + + this.stationToSource = this.setBikePointColorToSource(stationTo); + this.iterableToSource = stationTo; + this.iterableToSource.forEach(bikePoint => bikePoint.polyLineColor = 'red'); + + this.stationFromSource = this.setBikePointColorFromSource(stationFrom); + this.iterableFromSource = stationFrom; + this.iterableFromSource.forEach(bikePoint => bikePoint.polyLineColor = 'green'); } async onSubmit(actualStartDate: string, actualEndDate: string): Promise { this.resetTableSourcesToDisplaySpinner(); this.selectionModel.clear(); this.map.removeOverlayOnMiniMap(); - await this.service.fetchDashboardStationTo(this.bikePoint.id, actualStartDate, actualEndDate).then((source) => { - this.colors = ['black', 'gray', 'green', 'orange', 'purple', 'red']; - this.isLoadingToSource = false; - this.stationToSource = this.setBikePointColorFromSource(source); - this.iterableToSource = source; - this.iterableToSource.forEach(bikePoint => { - bikePoint.polyLineColor = 'green'; - }); - }); - this.service.fetchDashboardStationFrom(this.bikePoint.id, actualStartDate, actualEndDate).then((source) => { - this.isLoadingFromSource = false; - this.stationFromSource = this.setBikePointColorFromSource(source); - this.iterableFromSource = source; - this.iterableFromSource.forEach(bikePoint => { - bikePoint.polyLineColor = 'red'; - }); - }); + + this.isLoadingToSource = true; + this.isLoadingFromSource = true; + + const [stationTo, stationFrom] = await Promise.all([ + this.service.fetchDashboardStationTo(this.bikePoint.id, actualStartDate, actualEndDate), + this.service.fetchDashboardStationFrom(this.bikePoint.id, actualStartDate, actualEndDate) + ]); + + this.isLoadingToSource = false; + this.isLoadingFromSource = false; + + this.colors = ['black', 'gray', 'green', 'orange', 'purple', 'red']; + this.stationToSource = this.setBikePointColorToSource(stationTo); + this.iterableToSource = stationTo; + this.iterableToSource.forEach(bikePoint => bikePoint.polyLineColor = 'green'); + + this.stationFromSource = this.setBikePointColorFromSource(stationFrom); + this.iterableFromSource = stationFrom; + this.iterableFromSource.forEach(bikePoint => bikePoint.polyLineColor = 'red'); + } resetTableSourcesToDisplaySpinner(): void { From 9686dc2ea5dbf0d95fdf7a87a81d8125fe7ce3b7 Mon Sep 17 00:00:00 2001 From: Marcel Schwarz Date: Fri, 8 Jan 2021 12:36:03 +0100 Subject: [PATCH 094/104] Adjust styling and wording in some places --- .../app/dashboard/dashboard.component.html | 2 +- .../frontend/src/app/map/map.component.html | 2 +- .../frontend/src/app/map/map.component.scss | 4 ++++ .../src/app/map/pop-up/pop-up.component.html | 19 +++++++------------ .../frontend/src/app/service/map.service.ts | 6 +++--- projects/project-3/frontend/src/styles.scss | 6 +++++- 6 files changed, 21 insertions(+), 18 deletions(-) diff --git a/projects/project-3/frontend/src/app/dashboard/dashboard.component.html b/projects/project-3/frontend/src/app/dashboard/dashboard.component.html index 3f85bf0..4b176ae 100644 --- a/projects/project-3/frontend/src/app/dashboard/dashboard.component.html +++ b/projects/project-3/frontend/src/app/dashboard/dashboard.component.html @@ -1,6 +1,6 @@ - Bike Stations in London + - Bike Stations in London + - - - {{station?.commonName}} - + + + {{station?.commonName}} - -
+ +
-
- -
+
- - diff --git a/projects/project-3/frontend/src/app/service/map.service.ts b/projects/project-3/frontend/src/app/service/map.service.ts index 381aa74..c4ef9da 100644 --- a/projects/project-3/frontend/src/app/service/map.service.ts +++ b/projects/project-3/frontend/src/app/service/map.service.ts @@ -185,9 +185,9 @@ export class MapService { this.legend.onAdd = () => { const div = L.DomUtil.create('div', 'legend'); div.innerHTML += `

trips from/to bike station

`; - div.innerHTML += `rents with ${this.dashBoardBikePoint.commonName} as destination
`; - div.innerHTML += `rents with ${this.dashBoardBikePoint.commonName} as start
`; - div.innerHTML += `rents with ${this.dashBoardBikePoint.commonName} as destination and start`; + div.innerHTML += `inbound to ${this.dashBoardBikePoint.commonName}
`; + div.innerHTML += `outbound from ${this.dashBoardBikePoint.commonName}
`; + div.innerHTML += `in- and outbound traffic line`; return div; }; this.legend.addTo(this.miniMap); diff --git a/projects/project-3/frontend/src/styles.scss b/projects/project-3/frontend/src/styles.scss index e24de31..1a4c807 100644 --- a/projects/project-3/frontend/src/styles.scss +++ b/projects/project-3/frontend/src/styles.scss @@ -16,7 +16,11 @@ body { /* WTF ANGULAR!?!?!?! WHY DO I HAVE TO DO THIS? (see table.component.html@7 and table.component.html@50) */ label.mat-checkbox-layout { - margin: 0 !important; + margin: 0; +} + +#logo { + cursor: pointer; } .legend { From b6b02f2c01002d72172b05a6427439c071434126 Mon Sep 17 00:00:00 2001 From: tim-herbst Date: Fri, 8 Jan 2021 14:26:05 +0100 Subject: [PATCH 095/104] adjust Title and browser-tab title and add white bike-logo --- .../project-3/frontend/src/app/app.component.ts | 8 ++++++-- .../src/app/dashboard/dashboard.component.html | 2 +- .../frontend/src/app/map/map.component.html | 2 +- projects/project-3/frontend/src/assets/Logo.png | Bin 0 -> 91058 bytes 4 files changed, 8 insertions(+), 4 deletions(-) create mode 100644 projects/project-3/frontend/src/assets/Logo.png diff --git a/projects/project-3/frontend/src/app/app.component.ts b/projects/project-3/frontend/src/app/app.component.ts index 0c5a793..ecb61f9 100644 --- a/projects/project-3/frontend/src/app/app.component.ts +++ b/projects/project-3/frontend/src/app/app.component.ts @@ -1,4 +1,5 @@ -import { Component } from '@angular/core'; +import {Component} from '@angular/core'; +import {Title} from '@angular/platform-browser'; @Component({ selector: 'app-root', @@ -6,5 +7,8 @@ import { Component } from '@angular/core'; styleUrls: ['./app.component.scss'] }) export class AppComponent { - title = 'frontend'; + + public constructor(private title: Title) { + this.title.setTitle('Bike Stations in London'); + } } diff --git a/projects/project-3/frontend/src/app/dashboard/dashboard.component.html b/projects/project-3/frontend/src/app/dashboard/dashboard.component.html index 4b176ae..68eff0b 100644 --- a/projects/project-3/frontend/src/app/dashboard/dashboard.component.html +++ b/projects/project-3/frontend/src/app/dashboard/dashboard.component.html @@ -1,6 +1,6 @@ - +
- + gf{h3Wl5>cTZ9J}1y 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
diff --git a/projects/project-3/frontend/src/app/dashboard/dashboard.component.scss b/projects/project-3/frontend/src/app/dashboard/dashboard.component.scss index 5c61723..8b13789 100644 --- a/projects/project-3/frontend/src/app/dashboard/dashboard.component.scss +++ b/projects/project-3/frontend/src/app/dashboard/dashboard.component.scss @@ -1,16 +1 @@ -.toolbar { - height: 5vh; - .toolbar-spacer { - flex: 1 1 auto; - } - - a:hover { - background: #086ed2; - text-decoration: none; - } - - .spacer { - flex: 1 1 auto; - } -} diff --git a/projects/project-3/frontend/src/app/map/map.component.html b/projects/project-3/frontend/src/app/map/map.component.html index 210640e..281ec19 100644 --- a/projects/project-3/frontend/src/app/map/map.component.html +++ b/projects/project-3/frontend/src/app/map/map.component.html @@ -1,19 +1,6 @@ -
- - - - - - library_books - Wiki - - -
-
-
-
+
+
+
diff --git a/projects/project-3/frontend/src/app/map/map.component.scss b/projects/project-3/frontend/src/app/map/map.component.scss index e955d93..7d7830e 100644 --- a/projects/project-3/frontend/src/app/map/map.component.scss +++ b/projects/project-3/frontend/src/app/map/map.component.scss @@ -1,24 +1,3 @@ -.myApp { - margin: 0; - height: 100%; -} - -.toolbar-spacer { - flex: 1 1 auto; -} - -.button-wiki:hover { - background: #086ed2; -} - -.mat-toolbar { - height: 5vh; -} - #map { height: 95vh; } - -#logo { - cursor: pointer; -} diff --git a/projects/project-3/frontend/src/app/toolbar/dashboard-interaction/dashboard-interaction.component.html b/projects/project-3/frontend/src/app/toolbar/dashboard-interaction/dashboard-interaction.component.html new file mode 100644 index 0000000..4ecee5d --- /dev/null +++ b/projects/project-3/frontend/src/app/toolbar/dashboard-interaction/dashboard-interaction.component.html @@ -0,0 +1,13 @@ + diff --git a/projects/project-3/frontend/src/app/toolbar/dashboard-interaction/dashboard-interaction.component.scss b/projects/project-3/frontend/src/app/toolbar/dashboard-interaction/dashboard-interaction.component.scss new file mode 100644 index 0000000..7dd44bc --- /dev/null +++ b/projects/project-3/frontend/src/app/toolbar/dashboard-interaction/dashboard-interaction.component.scss @@ -0,0 +1,4 @@ +a:hover { + background: #086ed2; + text-decoration: none; +} diff --git a/projects/project-3/frontend/src/app/toolbar/dashboard-interaction/dashboard-interaction.component.spec.ts b/projects/project-3/frontend/src/app/toolbar/dashboard-interaction/dashboard-interaction.component.spec.ts new file mode 100644 index 0000000..1bd6cf0 --- /dev/null +++ b/projects/project-3/frontend/src/app/toolbar/dashboard-interaction/dashboard-interaction.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { DashboardInteractionComponent } from './dashboard-interaction.component'; + +describe('DashboardInteractionComponent', () => { + let component: DashboardInteractionComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ DashboardInteractionComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(DashboardInteractionComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/projects/project-3/frontend/src/app/toolbar/dashboard-interaction/dashboard-interaction.component.ts b/projects/project-3/frontend/src/app/toolbar/dashboard-interaction/dashboard-interaction.component.ts new file mode 100644 index 0000000..cc8c246 --- /dev/null +++ b/projects/project-3/frontend/src/app/toolbar/dashboard-interaction/dashboard-interaction.component.ts @@ -0,0 +1,15 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-dashboard-interaction', + templateUrl: './dashboard-interaction.component.html', + styleUrls: ['./dashboard-interaction.component.scss'] +}) +export class DashboardInteractionComponent implements OnInit { + + constructor() { } + + ngOnInit(): void { + } + +} diff --git a/projects/project-3/frontend/src/app/toolbar/map-interaction/map-interaction.component.html b/projects/project-3/frontend/src/app/toolbar/map-interaction/map-interaction.component.html new file mode 100644 index 0000000..b2176a8 --- /dev/null +++ b/projects/project-3/frontend/src/app/toolbar/map-interaction/map-interaction.component.html @@ -0,0 +1,9 @@ + diff --git a/projects/project-3/frontend/src/app/toolbar/map-interaction/map-interaction.component.scss b/projects/project-3/frontend/src/app/toolbar/map-interaction/map-interaction.component.scss new file mode 100644 index 0000000..0456e7e --- /dev/null +++ b/projects/project-3/frontend/src/app/toolbar/map-interaction/map-interaction.component.scss @@ -0,0 +1,3 @@ +.button-wiki:hover { + background: #086ed2; +} diff --git a/projects/project-3/frontend/src/app/toolbar/map-interaction/map-interaction.component.spec.ts b/projects/project-3/frontend/src/app/toolbar/map-interaction/map-interaction.component.spec.ts new file mode 100644 index 0000000..46334a5 --- /dev/null +++ b/projects/project-3/frontend/src/app/toolbar/map-interaction/map-interaction.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { MapInteractionComponent } from './map-interaction.component'; + +describe('InteractionComponent', () => { + let component: MapInteractionComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ MapInteractionComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(MapInteractionComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/projects/project-3/frontend/src/app/toolbar/map-interaction/map-interaction.component.ts b/projects/project-3/frontend/src/app/toolbar/map-interaction/map-interaction.component.ts new file mode 100644 index 0000000..eeb1fd9 --- /dev/null +++ b/projects/project-3/frontend/src/app/toolbar/map-interaction/map-interaction.component.ts @@ -0,0 +1,15 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-map-interaction', + templateUrl: './map-interaction.component.html', + styleUrls: ['./map-interaction.component.scss'] +}) +export class MapInteractionComponent implements OnInit { + + constructor() { } + + ngOnInit(): void { + } + +} diff --git a/projects/project-3/frontend/src/app/toolbar/toolbar.component.html b/projects/project-3/frontend/src/app/toolbar/toolbar.component.html new file mode 100644 index 0000000..875cd5f --- /dev/null +++ b/projects/project-3/frontend/src/app/toolbar/toolbar.component.html @@ -0,0 +1,10 @@ + + + +
+ +
+
+ +
+
diff --git a/projects/project-3/frontend/src/app/toolbar/toolbar.component.scss b/projects/project-3/frontend/src/app/toolbar/toolbar.component.scss new file mode 100644 index 0000000..1f25ffa --- /dev/null +++ b/projects/project-3/frontend/src/app/toolbar/toolbar.component.scss @@ -0,0 +1,11 @@ +.toolbar-spacer { + flex: 1 1 auto; +} + +.mat-toolbar { + height: 5vh; +} + +#logo { + cursor: pointer; +} diff --git a/projects/project-3/frontend/src/app/toolbar/toolbar.component.spec.ts b/projects/project-3/frontend/src/app/toolbar/toolbar.component.spec.ts new file mode 100644 index 0000000..3acf866 --- /dev/null +++ b/projects/project-3/frontend/src/app/toolbar/toolbar.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { ToolbarComponent } from './toolbar.component'; + +describe('ToolbarComponent', () => { + let component: ToolbarComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ ToolbarComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(ToolbarComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/projects/project-3/frontend/src/app/toolbar/toolbar.component.ts b/projects/project-3/frontend/src/app/toolbar/toolbar.component.ts new file mode 100644 index 0000000..b34860d --- /dev/null +++ b/projects/project-3/frontend/src/app/toolbar/toolbar.component.ts @@ -0,0 +1,20 @@ +import { Component, OnInit } from '@angular/core'; +import {Router} from '@angular/router'; + +@Component({ + selector: 'app-toolbar', + templateUrl: './toolbar.component.html', + styleUrls: ['./toolbar.component.scss'] +}) +export class ToolbarComponent implements OnInit { + + constructor(private router: Router) { } + + ngOnInit(): void { + } + + hasRoute(route: string): boolean { + return this.router.url.includes(route); + } + +} From 83e136b61cdfbd30b353e9b6bf72417299649f1e Mon Sep 17 00:00:00 2001 From: tim-herbst Date: Sun, 10 Jan 2021 16:36:10 +0100 Subject: [PATCH 098/104] add footer-component to add copyright --- .../frontend/src/app/app.component.html | 1 + .../project-3/frontend/src/app/app.module.ts | 4 ++- .../src/app/footer/footer.component.html | 5 ++++ .../src/app/footer/footer.component.scss | 8 ++++++ .../src/app/footer/footer.component.spec.ts | 25 +++++++++++++++++++ .../src/app/footer/footer.component.ts | 15 +++++++++++ .../frontend/src/app/map/map.component.scss | 2 +- 7 files changed, 58 insertions(+), 2 deletions(-) create mode 100644 projects/project-3/frontend/src/app/footer/footer.component.html create mode 100644 projects/project-3/frontend/src/app/footer/footer.component.scss create mode 100644 projects/project-3/frontend/src/app/footer/footer.component.spec.ts create mode 100644 projects/project-3/frontend/src/app/footer/footer.component.ts diff --git a/projects/project-3/frontend/src/app/app.component.html b/projects/project-3/frontend/src/app/app.component.html index 21f8668..0e0f37f 100644 --- a/projects/project-3/frontend/src/app/app.component.html +++ b/projects/project-3/frontend/src/app/app.component.html @@ -1,2 +1,3 @@ + diff --git a/projects/project-3/frontend/src/app/app.module.ts b/projects/project-3/frontend/src/app/app.module.ts index ea21c0c..399c889 100644 --- a/projects/project-3/frontend/src/app/app.module.ts +++ b/projects/project-3/frontend/src/app/app.module.ts @@ -37,6 +37,7 @@ import { MiniMapComponent } from './dashboard/mini-map/mini-map.component'; import { ToolbarComponent } from './toolbar/toolbar.component'; import { MapInteractionComponent } from './toolbar/map-interaction/map-interaction.component'; import { DashboardInteractionComponent } from './toolbar/dashboard-interaction/dashboard-interaction.component'; +import { FooterComponent } from './footer/footer.component'; @NgModule({ declarations: [ @@ -52,7 +53,8 @@ import { DashboardInteractionComponent } from './toolbar/dashboard-interaction/d MiniMapComponent, ToolbarComponent, MapInteractionComponent, - DashboardInteractionComponent + DashboardInteractionComponent, + FooterComponent ], imports: [ BrowserModule, diff --git a/projects/project-3/frontend/src/app/footer/footer.component.html b/projects/project-3/frontend/src/app/footer/footer.component.html new file mode 100644 index 0000000..6f2fd34 --- /dev/null +++ b/projects/project-3/frontend/src/app/footer/footer.component.html @@ -0,0 +1,5 @@ + diff --git a/projects/project-3/frontend/src/app/footer/footer.component.scss b/projects/project-3/frontend/src/app/footer/footer.component.scss new file mode 100644 index 0000000..daf39fc --- /dev/null +++ b/projects/project-3/frontend/src/app/footer/footer.component.scss @@ -0,0 +1,8 @@ +.footer { + height: 2vh; + background: #2f2f2f; + + .copyright { + color: white; + } +} diff --git a/projects/project-3/frontend/src/app/footer/footer.component.spec.ts b/projects/project-3/frontend/src/app/footer/footer.component.spec.ts new file mode 100644 index 0000000..a3c4af9 --- /dev/null +++ b/projects/project-3/frontend/src/app/footer/footer.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { FooterComponent } from './footer.component'; + +describe('FooterComponent', () => { + let component: FooterComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ FooterComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(FooterComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/projects/project-3/frontend/src/app/footer/footer.component.ts b/projects/project-3/frontend/src/app/footer/footer.component.ts new file mode 100644 index 0000000..c7a7ec5 --- /dev/null +++ b/projects/project-3/frontend/src/app/footer/footer.component.ts @@ -0,0 +1,15 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-footer', + templateUrl: './footer.component.html', + styleUrls: ['./footer.component.scss'] +}) +export class FooterComponent implements OnInit { + + constructor() { } + + ngOnInit(): void { + } + +} diff --git a/projects/project-3/frontend/src/app/map/map.component.scss b/projects/project-3/frontend/src/app/map/map.component.scss index 7d7830e..26d8497 100644 --- a/projects/project-3/frontend/src/app/map/map.component.scss +++ b/projects/project-3/frontend/src/app/map/map.component.scss @@ -1,3 +1,3 @@ #map { - height: 95vh; + height: 93vh; } From 2edc3b0a830245b81f8c5876d40d80eda1daf260 Mon Sep 17 00:00:00 2001 From: tim-herbst Date: Sun, 10 Jan 2021 16:36:28 +0100 Subject: [PATCH 099/104] remove last duplicates --- .../project-3/frontend/src/app/toolbar/toolbar.component.scss | 4 ---- projects/project-3/frontend/src/styles.scss | 1 - 2 files changed, 5 deletions(-) diff --git a/projects/project-3/frontend/src/app/toolbar/toolbar.component.scss b/projects/project-3/frontend/src/app/toolbar/toolbar.component.scss index 1f25ffa..962d5b3 100644 --- a/projects/project-3/frontend/src/app/toolbar/toolbar.component.scss +++ b/projects/project-3/frontend/src/app/toolbar/toolbar.component.scss @@ -5,7 +5,3 @@ .mat-toolbar { height: 5vh; } - -#logo { - cursor: pointer; -} diff --git a/projects/project-3/frontend/src/styles.scss b/projects/project-3/frontend/src/styles.scss index 1a4c807..09cae2f 100644 --- a/projects/project-3/frontend/src/styles.scss +++ b/projects/project-3/frontend/src/styles.scss @@ -14,7 +14,6 @@ body { @import "~leaflet.markercluster/dist/MarkerCluster.Default.css"; @import "~bootstrap/scss/bootstrap"; -/* WTF ANGULAR!?!?!?! WHY DO I HAVE TO DO THIS? (see table.component.html@7 and table.component.html@50) */ label.mat-checkbox-layout { margin: 0; } From 47d53ecc5499b3bec6aba3ec80b67783162cc91b Mon Sep 17 00:00:00 2001 From: tim-herbst Date: Sun, 10 Jan 2021 16:41:18 +0100 Subject: [PATCH 100/104] refactor copyright to match alphabetical order of devs --- .../project-3/frontend/src/app/footer/footer.component.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/projects/project-3/frontend/src/app/footer/footer.component.html b/projects/project-3/frontend/src/app/footer/footer.component.html index 6f2fd34..e599496 100644 --- a/projects/project-3/frontend/src/app/footer/footer.component.html +++ b/projects/project-3/frontend/src/app/footer/footer.component.html @@ -1,5 +1,5 @@ -

8)eP#B9M_gJ79ih7K)O}_7-rG5 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 Date: Fri, 8 Jan 2021 14:56:18 +0100 Subject: [PATCH 096/104] Extract common code for table loading Preselect dashboard station in table selection model --- .../app/dashboard/table/table.component.ts | 52 +++++++------------ 1 file changed, 19 insertions(+), 33 deletions(-) diff --git a/projects/project-3/frontend/src/app/dashboard/table/table.component.ts b/projects/project-3/frontend/src/app/dashboard/table/table.component.ts index 6509a30..03c5ab6 100644 --- a/projects/project-3/frontend/src/app/dashboard/table/table.component.ts +++ b/projects/project-3/frontend/src/app/dashboard/table/table.component.ts @@ -16,8 +16,8 @@ import {ActivatedRoute} from '@angular/router'; export class TableComponent implements OnInit { displayedColumnsTo: string[] = ['select', 'endStationName', 'number', 'avgDuration', 'marker']; displayedColumnsFrom: string[] = ['select', 'startStationName', 'number', 'avgDuration', 'marker']; - stationToSource = new MatTableDataSource(); + stationToSource = new MatTableDataSource(); iterableToSource: any[]; stationFromSource = new MatTableDataSource(); iterableFromSource: any[]; @@ -37,8 +37,6 @@ export class TableComponent implements OnInit { } ngOnInit(): void { - this.isLoadingToSource = true; - this.isLoadingFromSource = true; this.route.params.subscribe(params => { this.colors = ['black', 'gray', 'green', 'orange', 'purple', 'red']; this.service.fetchDashboardInit(params.id).then(data => { @@ -50,33 +48,30 @@ export class TableComponent implements OnInit { }); } - async initTable(): Promise { + initTable(): void { this.selectionModel.clear(); this.map.removeOverlayOnMiniMap(); const initDate = this.maxEndDate.toISOString().substring(0, 10); - - const [stationTo, stationFrom] = await Promise.all([ - this.service.fetchDashboardStationTo(this.bikePoint.id, initDate, initDate), - this.service.fetchDashboardStationFrom(this.bikePoint.id, initDate, initDate) - ]); - - this.isLoadingToSource = false; - this.isLoadingFromSource = false; - - this.stationToSource = this.setBikePointColorToSource(stationTo); - this.iterableToSource = stationTo; - this.iterableToSource.forEach(bikePoint => bikePoint.polyLineColor = 'red'); - - this.stationFromSource = this.setBikePointColorFromSource(stationFrom); - this.iterableFromSource = stationFrom; - this.iterableFromSource.forEach(bikePoint => bikePoint.polyLineColor = 'green'); + this.loadData(initDate, initDate); } - async onSubmit(actualStartDate: string, actualEndDate: string): Promise { + onSubmit(actualStartDate: string, actualEndDate: string): void { this.resetTableSourcesToDisplaySpinner(); this.selectionModel.clear(); this.map.removeOverlayOnMiniMap(); + this.loadData(actualStartDate, actualEndDate); + } + resetTableSourcesToDisplaySpinner(): void { + this.isLoadingToSource = true; + this.isLoadingFromSource = true; + this.stationToSource = null; + this.stationFromSource = null; + this.iterableToSource = []; + this.iterableFromSource = []; + } + + async loadData(actualStartDate: string, actualEndDate: string): Promise { this.isLoadingToSource = true; this.isLoadingFromSource = true; @@ -97,15 +92,8 @@ export class TableComponent implements OnInit { this.iterableFromSource = stationFrom; this.iterableFromSource.forEach(bikePoint => bikePoint.polyLineColor = 'red'); - } - - resetTableSourcesToDisplaySpinner(): void { - this.isLoadingToSource = true; - this.isLoadingFromSource = true; - this.stationToSource = null; - this.stationFromSource = null; - this.iterableToSource = []; - this.iterableFromSource = []; + this.selectionModel.select(...this.iterableFromSource.filter(bikePoint => bikePoint.stationId === this.bikePoint.id)); + this.selectionModel.select(...this.iterableToSource.filter(bikePoint => bikePoint.stationId === this.bikePoint.id)); } public drawIconInTable(bikePoint: any): string { @@ -137,9 +125,7 @@ export class TableComponent implements OnInit { changePolyLineColorForDuplicateBikePoints(array: any[]): any[] { const id = array.map(item => item.stationId); - const duplicates = id.filter((value, index) => { - return id.indexOf(value) !== index; - }); + const duplicates = id.filter((value, index) => id.indexOf(value) !== index); duplicates.forEach(stationId => { array.forEach(bikePoint => { if (bikePoint.stationId === stationId) { From a8bff8965cc7f039913ecf1fa4479ce58c97ddbf Mon Sep 17 00:00:00 2001 From: tim-herbst Date: Sun, 10 Jan 2021 14:59:12 +0100 Subject: [PATCH 097/104] refactor toolbar to match modern code patterns and make app to a god damn spa * outsource toolbar to own component * ngIf to listen to activated route => display user-interaction based on route * remove unecessary code --- projects/project-3/frontend/package-lock.json | 16229 +++++++++++++++- .../frontend/src/app/app.component.html | 1 + .../project-3/frontend/src/app/app.module.ts | 8 +- .../app/dashboard/dashboard.component.html | 15 - .../app/dashboard/dashboard.component.scss | 15 - .../frontend/src/app/map/map.component.html | 19 +- .../frontend/src/app/map/map.component.scss | 21 - .../dashboard-interaction.component.html | 13 + .../dashboard-interaction.component.scss | 4 + .../dashboard-interaction.component.spec.ts | 25 + .../dashboard-interaction.component.ts | 15 + .../map-interaction.component.html | 9 + .../map-interaction.component.scss | 3 + .../map-interaction.component.spec.ts | 25 + .../map-interaction.component.ts | 15 + .../src/app/toolbar/toolbar.component.html | 10 + .../src/app/toolbar/toolbar.component.scss | 11 + .../src/app/toolbar/toolbar.component.spec.ts | 25 + .../src/app/toolbar/toolbar.component.ts | 20 + 19 files changed, 16394 insertions(+), 89 deletions(-) create mode 100644 projects/project-3/frontend/src/app/toolbar/dashboard-interaction/dashboard-interaction.component.html create mode 100644 projects/project-3/frontend/src/app/toolbar/dashboard-interaction/dashboard-interaction.component.scss create mode 100644 projects/project-3/frontend/src/app/toolbar/dashboard-interaction/dashboard-interaction.component.spec.ts create mode 100644 projects/project-3/frontend/src/app/toolbar/dashboard-interaction/dashboard-interaction.component.ts create mode 100644 projects/project-3/frontend/src/app/toolbar/map-interaction/map-interaction.component.html create mode 100644 projects/project-3/frontend/src/app/toolbar/map-interaction/map-interaction.component.scss create mode 100644 projects/project-3/frontend/src/app/toolbar/map-interaction/map-interaction.component.spec.ts create mode 100644 projects/project-3/frontend/src/app/toolbar/map-interaction/map-interaction.component.ts create mode 100644 projects/project-3/frontend/src/app/toolbar/toolbar.component.html create mode 100644 projects/project-3/frontend/src/app/toolbar/toolbar.component.scss create mode 100644 projects/project-3/frontend/src/app/toolbar/toolbar.component.spec.ts create mode 100644 projects/project-3/frontend/src/app/toolbar/toolbar.component.ts diff --git a/projects/project-3/frontend/package-lock.json b/projects/project-3/frontend/package-lock.json index d6e2ebb..e828f15 100644 --- a/projects/project-3/frontend/package-lock.json +++ b/projects/project-3/frontend/package-lock.json @@ -1,8 +1,16195 @@ { "name": "frontend", "version": "0.0.0", - "lockfileVersion": 1, + "lockfileVersion": 2, "requires": true, + "packages": { + "": { + "version": "0.0.0", + "dependencies": { + "@angular/animations": "~10.2.0", + "@angular/cdk": "^10.2.7", + "@angular/common": "~10.2.0", + "@angular/compiler": "~10.2.0", + "@angular/core": "~10.2.0", + "@angular/flex-layout": "^10.0.0-beta.32", + "@angular/forms": "~10.2.0", + "@angular/material": "^10.2.7", + "@angular/platform-browser": "~10.2.0", + "@angular/platform-browser-dynamic": "~10.2.0", + "@angular/router": "~10.2.0", + "apexcharts": "^3.23.0", + "bootstrap": "^4.5.3", + "jquery": "^3.5.1", + "leaflet": "~1.3.1", + "leaflet.heat": "^0.2.0", + "leaflet.markercluster": "^1.4.1", + "ng-apexcharts": "^1.5.6", + "rxjs": "~6.6.0", + "seconds-to-human-time": "^1.0.0", + "tslib": "^2.0.0", + "zone.js": "~0.10.2" + }, + "devDependencies": { + "@angular-devkit/build-angular": "~0.1002.0", + "@angular/cli": "~10.2.0", + "@angular/compiler-cli": "~10.2.0", + "@types/jasmine": "~3.5.0", + "@types/jasminewd2": "~2.0.3", + "@types/node": "^12.11.1", + "codelyzer": "^6.0.0", + "jasmine-core": "~3.6.0", + "jasmine-spec-reporter": "~5.0.0", + "karma": "~5.0.0", + "karma-chrome-launcher": "~3.1.0", + "karma-coverage-istanbul-reporter": "~3.0.2", + "karma-jasmine": "~4.0.0", + "karma-jasmine-html-reporter": "^1.5.0", + "protractor": "~7.0.0", + "ts-node": "~8.3.0", + "tslint": "~6.1.0", + "typescript": "~4.0.2" + } + }, + "node_modules/@angular-devkit/architect": { + "version": "0.1002.1", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1002.1.tgz", + "integrity": "sha512-vP27xCe++p3zm+zwSDXDm9/rsM71Q4MYidLLi0MQfo8wxsWS/4mWXycCBoMwDkvW44SPJ4Ds1/F46bb3/xRDvA==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "10.2.1", + "rxjs": "6.6.2" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 6.11.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular-devkit/architect/node_modules/rxjs": { + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.2.tgz", + "integrity": "sha512-BHdBMVoWC2sL26w//BCu3YzKT4s2jip/WhwsGEDmeKYBhKDZeYezVUnHatYB7L85v5xs0BAQmg6BEYJEKxBabg==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/@angular-devkit/architect/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/@angular-devkit/build-angular": { + "version": "0.1002.1", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-0.1002.1.tgz", + "integrity": "sha512-z5asIOrkxandGT2NgVH3B5uiV0ncURfHpXer/E8q1q5pwY2pCCmvqF2f7tMWrR6j+1Q/Dy1jrpXTWdOUlUCFqw==", + "dev": true, + "dependencies": { + "@angular-devkit/architect": "0.1002.1", + "@angular-devkit/build-optimizer": "0.1002.1", + "@angular-devkit/build-webpack": "0.1002.1", + "@angular-devkit/core": "10.2.1", + "@babel/core": "7.11.1", + "@babel/generator": "7.11.0", + "@babel/plugin-transform-runtime": "7.11.0", + "@babel/preset-env": "7.11.0", + "@babel/runtime": "7.11.2", + "@babel/template": "7.10.4", + "@jsdevtools/coverage-istanbul-loader": "3.0.5", + "@ngtools/webpack": "10.2.1", + "autoprefixer": "9.8.6", + "babel-loader": "8.1.0", + "browserslist": "^4.9.1", + "cacache": "15.0.5", + "caniuse-lite": "^1.0.30001032", + "circular-dependency-plugin": "5.2.0", + "copy-webpack-plugin": "6.0.3", + "core-js": "3.6.4", + "css-loader": "4.2.2", + "cssnano": "4.1.10", + "file-loader": "6.0.0", + "find-cache-dir": "3.3.1", + "glob": "7.1.6", + "jest-worker": "26.3.0", + "karma-source-map-support": "1.4.0", + "less-loader": "6.2.0", + "license-webpack-plugin": "2.3.0", + "loader-utils": "2.0.0", + "mini-css-extract-plugin": "0.10.0", + "minimatch": "3.0.4", + "open": "7.2.0", + "parse5": "6.0.1", + "parse5-htmlparser2-tree-adapter": "6.0.1", + "pnp-webpack-plugin": "1.6.4", + "postcss": "7.0.32", + "postcss-import": "12.0.1", + "postcss-loader": "3.0.0", + "raw-loader": "4.0.1", + "regenerator-runtime": "0.13.7", + "resolve-url-loader": "3.1.2", + "rimraf": "3.0.2", + "rollup": "2.26.5", + "rxjs": "6.6.2", + "sass": "1.26.10", + "sass-loader": "10.0.1", + "semver": "7.3.2", + "source-map": "0.7.3", + "source-map-loader": "1.0.2", + "source-map-support": "0.5.19", + "speed-measure-webpack-plugin": "1.3.3", + "style-loader": "1.2.1", + "stylus": "0.54.8", + "stylus-loader": "3.0.2", + "terser": "5.3.0", + "terser-webpack-plugin": "4.1.0", + "tree-kill": "1.2.2", + "webpack": "4.44.1", + "webpack-dev-middleware": "3.7.2", + "webpack-dev-server": "3.11.0", + "webpack-merge": "4.2.2", + "webpack-sources": "1.4.3", + "webpack-subresource-integrity": "1.4.1", + "worker-plugin": "5.0.0" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 6.11.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/rxjs": { + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.2.tgz", + "integrity": "sha512-BHdBMVoWC2sL26w//BCu3YzKT4s2jip/WhwsGEDmeKYBhKDZeYezVUnHatYB7L85v5xs0BAQmg6BEYJEKxBabg==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/@angular-devkit/build-optimizer": { + "version": "0.1002.1", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.1002.1.tgz", + "integrity": "sha512-9TLbHVGlux/b/eAubiyd3MNS5xog+8MDABG/Y4vWQInWZVNfcSUY7fycbvlCAXLguSVUvjYP2AoPBGPow4mIMw==", + "dev": true, + "dependencies": { + "loader-utils": "2.0.0", + "source-map": "0.7.3", + "tslib": "2.0.1", + "typescript": "4.0.2", + "webpack-sources": "1.4.3" + }, + "bin": { + "build-optimizer": "src/build-optimizer/cli.js" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 6.11.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular-devkit/build-optimizer/node_modules/tslib": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.1.tgz", + "integrity": "sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ==", + "dev": true + }, + "node_modules/@angular-devkit/build-optimizer/node_modules/typescript": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.0.2.tgz", + "integrity": "sha512-e4ERvRV2wb+rRZ/IQeb3jm2VxBsirQLpQhdxplZ2MEzGvDkkMmPglecnNDfSUBivMjP93vRbngYYDQqQ/78bcQ==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/@angular-devkit/build-webpack": { + "version": "0.1002.1", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1002.1.tgz", + "integrity": "sha512-RgTIgwGoHY+fBUEwZGhYrAi2RqqvLe5eHAPxRIG33nydZ6KLxD4XozqmCEx7EJwDws+HFiOhlAYoW12QhimK7w==", + "dev": true, + "dependencies": { + "@angular-devkit/architect": "0.1002.1", + "@angular-devkit/core": "10.2.1", + "rxjs": "6.6.2" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 6.11.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular-devkit/build-webpack/node_modules/rxjs": { + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.2.tgz", + "integrity": "sha512-BHdBMVoWC2sL26w//BCu3YzKT4s2jip/WhwsGEDmeKYBhKDZeYezVUnHatYB7L85v5xs0BAQmg6BEYJEKxBabg==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/@angular-devkit/build-webpack/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/@angular-devkit/core": { + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-10.2.1.tgz", + "integrity": "sha512-dzlF9Gl7KNt9sPYT2HYq6ySZYwKzkyYR5mrBj3DZOD0OQsoc21LvLkWAHNSL2iYGdHJQS1oJDNs8iRYxYIOY3w==", + "dev": true, + "dependencies": { + "ajv": "6.12.4", + "fast-json-stable-stringify": "2.1.0", + "magic-string": "0.25.7", + "rxjs": "6.6.2", + "source-map": "0.7.3" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 6.11.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular-devkit/core/node_modules/rxjs": { + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.2.tgz", + "integrity": "sha512-BHdBMVoWC2sL26w//BCu3YzKT4s2jip/WhwsGEDmeKYBhKDZeYezVUnHatYB7L85v5xs0BAQmg6BEYJEKxBabg==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/@angular-devkit/core/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/@angular-devkit/schematics": { + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-10.2.1.tgz", + "integrity": "sha512-0oMhB1eM7hg5Xf4U7r193zrNTGyxfzl2okBsLJPuVmkb3KCBGQOyHYmU5HjDNadPc5iCFc+Xo2+DSDvXGuLmaA==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "10.2.1", + "ora": "5.0.0", + "rxjs": "6.6.2" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 6.11.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular-devkit/schematics/node_modules/rxjs": { + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.2.tgz", + "integrity": "sha512-BHdBMVoWC2sL26w//BCu3YzKT4s2jip/WhwsGEDmeKYBhKDZeYezVUnHatYB7L85v5xs0BAQmg6BEYJEKxBabg==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/@angular-devkit/schematics/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/@angular/animations": { + "version": "10.2.4", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-10.2.4.tgz", + "integrity": "sha512-ovlfHxY1C6yH6SdfWIG1WqB77GHfuJ4i3jItvf0qFSvbOHG8OOzrSOR6EVRJYTnre4r4pQ3V8cDFy3igBlWXUw==", + "dependencies": { + "tslib": "^2.0.0" + } + }, + "node_modules/@angular/cdk": { + "version": "10.2.7", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-10.2.7.tgz", + "integrity": "sha512-ZQjDfTRTn7JuAKsf3jiIdU2XBaxxGBi/ZWYv5Pb3HCl6B4PISsIE5VWRhkoUogoAB0MiFHpjnWeIqknJEm11YQ==", + "dependencies": { + "parse5": "^5.0.0", + "tslib": "^2.0.0" + }, + "optionalDependencies": { + "parse5": "^5.0.0" + } + }, + "node_modules/@angular/cdk/node_modules/parse5": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", + "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==", + "optional": true + }, + "node_modules/@angular/cli": { + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-10.2.1.tgz", + "integrity": "sha512-9u/IVZqESiNX7qsLDW31MPBFUJUqvc+zqq+ekEtjRopq32RQpAGFWfvRZCR6GyJd06gzUWcYeYKkpl1XFNBXUg==", + "dev": true, + "dependencies": { + "@angular-devkit/architect": "0.1002.1", + "@angular-devkit/core": "10.2.1", + "@angular-devkit/schematics": "10.2.1", + "@schematics/angular": "10.2.1", + "@schematics/update": "0.1002.1", + "@yarnpkg/lockfile": "1.1.0", + "ansi-colors": "4.1.1", + "debug": "4.1.1", + "ini": "1.3.6", + "inquirer": "7.3.3", + "npm-package-arg": "8.0.1", + "npm-pick-manifest": "6.1.0", + "open": "7.2.0", + "pacote": "9.5.12", + "read-package-tree": "5.3.1", + "rimraf": "3.0.2", + "semver": "7.3.2", + "symbol-observable": "1.2.0", + "universal-analytics": "0.4.23", + "uuid": "8.3.0" + }, + "bin": { + "ng": "bin/ng" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 6.11.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular/cli/node_modules/ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@angular/cli/node_modules/debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/@angular/cli/node_modules/uuid": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.0.tgz", + "integrity": "sha512-fX6Z5o4m6XsXBdli9g7DtWgAx+osMsRRZFKma1mIUsLCz6vRvv+pz5VNbyu9UEDzpMWulZfvpgb/cmDXVulYFQ==", + "dev": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@angular/common": { + "version": "10.2.4", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-10.2.4.tgz", + "integrity": "sha512-bBfsLJNDQaC2OI1mReDJuSZ/uBb7Pf3HVpRmlQKNIPllIxqX1hLH8I3Plodrns9m32JMJ6FMsQthcP0KMdRCJA==", + "dependencies": { + "tslib": "^2.0.0" + } + }, + "node_modules/@angular/compiler": { + "version": "10.2.4", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-10.2.4.tgz", + "integrity": "sha512-xkpDQJt9047eT+HPEoJoJ7TVN+yXIFL0EcYP9pE+jG/f7H8re6Nwf2sBXa91dyCYBanXGMRbivbXIjqLGOfzbA==", + "dependencies": { + "tslib": "^2.0.0" + } + }, + "node_modules/@angular/compiler-cli": { + "version": "10.2.4", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-10.2.4.tgz", + "integrity": "sha512-gpw7Px6c2EaVUiDrU4PLaxf5zk8oJ72Yq62YZ8k4Jd7Vhl39Bhx9a9/I3GFQzZ8X6W/VJMWfZRs3E7bm1krRkw==", + "dev": true, + "dependencies": { + "canonical-path": "1.0.0", + "chokidar": "^3.0.0", + "convert-source-map": "^1.5.1", + "dependency-graph": "^0.7.2", + "fs-extra": "4.0.2", + "magic-string": "^0.25.0", + "minimist": "^1.2.0", + "reflect-metadata": "^0.1.2", + "semver": "^6.3.0", + "source-map": "^0.6.1", + "sourcemap-codec": "^1.4.8", + "tslib": "^2.0.0", + "yargs": "^16.1.1" + }, + "bin": { + "ivy-ngcc": "ngcc/main-ivy-ngcc.js", + "ng-xi18n": "src/extract_i18n.js", + "ngc": "src/main.js", + "ngcc": "ngcc/main-ngcc.js" + }, + "engines": { + "node": ">=10.0" + } + }, + "node_modules/@angular/compiler-cli/node_modules/ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@angular/compiler-cli/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@angular/compiler-cli/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/@angular/compiler-cli/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@angular/compiler-cli/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@angular/compiler-cli/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/@angular/compiler-cli/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@angular/compiler-cli/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@angular/compiler-cli/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@angular/compiler-cli/node_modules/string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@angular/compiler-cli/node_modules/strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@angular/compiler-cli/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@angular/compiler-cli/node_modules/y18n": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.5.tgz", + "integrity": "sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/@angular/compiler-cli/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@angular/compiler-cli/node_modules/yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/@angular/core": { + "version": "10.2.4", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-10.2.4.tgz", + "integrity": "sha512-5xpAvmZwD9nZ8eWx10urjibqEeePGEiFXVMEn3IaJWgfdOcMmeSoioW9JUllT3w85+DlNVWbRbhz0YfE9a4jyw==", + "dependencies": { + "tslib": "^2.0.0" + } + }, + "node_modules/@angular/flex-layout": { + "version": "10.0.0-beta.32", + "resolved": "https://registry.npmjs.org/@angular/flex-layout/-/flex-layout-10.0.0-beta.32.tgz", + "integrity": "sha512-JvuY4dUoy5jyCTIrFiq7n30Znakh1pD3nbg0h0hs2r3t1OiDQb0ZSI1wcumosG/vYHsuJQTuNhbfaIZzA1x8nA==", + "dependencies": { + "tslib": "^2.0.0" + } + }, + "node_modules/@angular/forms": { + "version": "10.2.4", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-10.2.4.tgz", + "integrity": "sha512-nrag/3+sjclH5mYqgM9UKzjotMGDCYBlPMqLt2Mj8rIxtAPRxfKmzAhxf4lRw3RTzMvOLM0rBRJagpi5glyLEw==", + "dependencies": { + "tslib": "^2.0.0" + } + }, + "node_modules/@angular/material": { + "version": "10.2.7", + "resolved": "https://registry.npmjs.org/@angular/material/-/material-10.2.7.tgz", + "integrity": "sha512-uk6JkRrKHaM9VFMzX7pWC83YNLVgXPB3D8U1yjSOafCdWwrRZgUHGr8MPlSILCr3o2nxgg5SsKdWcWwHuXXUZA==", + "dependencies": { + "tslib": "^2.0.0" + } + }, + "node_modules/@angular/platform-browser": { + "version": "10.2.4", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-10.2.4.tgz", + "integrity": "sha512-gYewLxoTnxOxX3XXK959YiDaw8CEnksKIbK6RYuofIcB8dTL9AlS9/l22xdGifTXTkFjs8noO6i/WT5hCt49Ww==", + "dependencies": { + "tslib": "^2.0.0" + } + }, + "node_modules/@angular/platform-browser-dynamic": { + "version": "10.2.4", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-10.2.4.tgz", + "integrity": "sha512-+oON9ujv9EOC3yJVgnV/vy3262dpMKBFlQ+dHcr5rfk2WpsnyJ26R+Nhkaug9FEdmSo9w+GqowF5bodrtTOTlA==", + "dependencies": { + "tslib": "^2.0.0" + } + }, + "node_modules/@angular/router": { + "version": "10.2.4", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-10.2.4.tgz", + "integrity": "sha512-y3xMwZHWS84fbm3FoU8vTAeXaTuPd4ZfmZ3dhkG9c1tkVq/jCmc6pkqNxjv3L1iPenKrvt2bFhh+wCs+bcUPhw==", + "dependencies": { + "tslib": "^2.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.10.4" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.12.7.tgz", + "integrity": "sha512-YaxPMGs/XIWtYqrdEOZOCPsVWfEoriXopnsz3/i7apYPXQ3698UFhS6dVT1KN5qOsWmVgw/FOrmQgpRaZayGsw==", + "dev": true + }, + "node_modules/@babel/core": { + "version": "7.11.1", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.11.1.tgz", + "integrity": "sha512-XqF7F6FWQdKGGWAzGELL+aCO1p+lRY5Tj5/tbT3St1G8NaH70jhhDIKknIZaDans0OQBG5wRAldROLHSt44BgQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.11.0", + "@babel/helper-module-transforms": "^7.11.0", + "@babel/helpers": "^7.10.4", + "@babel/parser": "^7.11.1", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.11.0", + "@babel/types": "^7.11.0", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.2", + "lodash": "^4.17.19", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/@babel/core/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/generator": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.11.0.tgz", + "integrity": "sha512-fEm3Uzw7Mc9Xi//qU20cBKatTfs2aOtKqmvy/Vm7RkJEGFQ4xc9myCfbXxqK//ZS8MR/ciOHw6meGASJuKmDfQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.11.0", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "node_modules/@babel/generator/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.10.tgz", + "integrity": "sha512-XplmVbC1n+KY6jL8/fgLVXXUauDIB+lD5+GsQEh6F6GBF1dq1qy4DP4yXWzDKcoqXB3X58t61e85Fitoww4JVQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.12.10" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz", + "integrity": "sha512-L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg==", + "dev": true, + "dependencies": { + "@babel/helper-explode-assignable-expression": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.12.5.tgz", + "integrity": "sha512-+qH6NrscMolUlzOYngSBMIOQpKUGPPsc61Bu5W10mg84LxZ7cmvnBHzARKbDoFxVvqqAbj6Tg6N7bSrWSPXMyw==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.12.5", + "@babel/helper-validator-option": "^7.12.1", + "browserslist": "^4.14.5", + "semver": "^5.5.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.12.1.tgz", + "integrity": "sha512-hkL++rWeta/OVOBTRJc9a5Azh5mt5WgZUGAKMD8JM141YsE08K//bp1unBBieO6rUKkIPyUE0USQ30jAy3Sk1w==", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-member-expression-to-functions": "^7.12.1", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/helper-replace-supers": "^7.12.1", + "@babel/helper-split-export-declaration": "^7.10.4" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.7.tgz", + "integrity": "sha512-idnutvQPdpbduutvi3JVfEgcVIHooQnhvhx0Nk9isOINOIGYkZea1Pk2JlJRiUnMefrlvr0vkByATBY/mB4vjQ==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "regexpu-core": "^4.7.1" + } + }, + "node_modules/@babel/helper-define-map": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz", + "integrity": "sha512-fMw4kgFB720aQFXSVaXr79pjjcW5puTCM16+rECJ/plGS+zByelE8l9nCpV1GibxTnFVmUuYG9U8wYfQHdzOEQ==", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.10.4", + "@babel/types": "^7.10.5", + "lodash": "^4.17.19" + } + }, + "node_modules/@babel/helper-explode-assignable-expression": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.12.1.tgz", + "integrity": "sha512-dmUwH8XmlrUpVqgtZ737tK88v07l840z9j3OEhCLwKTkjlvKpfqXVIZ0wpK3aeOxspwGrf/5AP5qLx4rO3w5rA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.12.1" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.11.tgz", + "integrity": "sha512-AtQKjtYNolKNi6nNNVLQ27CP6D9oFR6bq/HPYSizlzbp7uC1M59XJe8L+0uXjbIaZaUJF99ruHqVGiKXU/7ybA==", + "dev": true, + "dependencies": { + "@babel/helper-get-function-arity": "^7.12.10", + "@babel/template": "^7.12.7", + "@babel/types": "^7.12.11" + } + }, + "node_modules/@babel/helper-function-name/node_modules/@babel/template": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.7.tgz", + "integrity": "sha512-GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.12.7", + "@babel/types": "^7.12.7" + } + }, + "node_modules/@babel/helper-get-function-arity": { + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.10.tgz", + "integrity": "sha512-mm0n5BPjR06wh9mPQaDdXWDoll/j5UpCAPl1x8fS71GHm7HA6Ua2V4ylG1Ju8lvcTOietbPNNPaSilKj+pj+Ag==", + "dev": true, + "dependencies": { + "@babel/types": "^7.12.10" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz", + "integrity": "sha512-wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.10.4" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.7.tgz", + "integrity": "sha512-DCsuPyeWxeHgh1Dus7APn7iza42i/qXqiFPWyBDdOFtvS581JQePsc1F/nD+fHrcswhLlRc2UpYS1NwERxZhHw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.12.7" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz", + "integrity": "sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.12.5" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz", + "integrity": "sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-replace-supers": "^7.12.1", + "@babel/helper-simple-access": "^7.12.1", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/helper-validator-identifier": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.1", + "@babel/types": "^7.12.1", + "lodash": "^4.17.19" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.10.tgz", + "integrity": "sha512-4tpbU0SrSTjjt65UMWSrUOPZTsgvPgGG4S8QSTNHacKzpS51IVWGDj0yCwyeZND/i+LSN2g/O63jEXEWm49sYQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.12.10" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.12.1.tgz", + "integrity": "sha512-9d0KQCRM8clMPcDwo8SevNs+/9a8yWVVmaE80FGJcEP8N1qToREmWEGnBn8BUlJhYRFz6fqxeRL1sl5Ogsed7A==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-wrap-function": "^7.10.4", + "@babel/types": "^7.12.1" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.11.tgz", + "integrity": "sha512-q+w1cqmhL7R0FNzth/PLLp2N+scXEK/L2AHbXUyydxp828F4FEa5WcVoqui9vFRiHDQErj9Zof8azP32uGVTRA==", + "dev": true, + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.12.7", + "@babel/helper-optimise-call-expression": "^7.12.10", + "@babel/traverse": "^7.12.10", + "@babel/types": "^7.12.11" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz", + "integrity": "sha512-OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.12.1" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz", + "integrity": "sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.12.1" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.11.tgz", + "integrity": "sha512-LsIVN8j48gHgwzfocYUSkO/hjYAOJqlpJEc7tGXcIm4cubjVUf8LGW6eWRyxEu7gA25q02p0rQUWoCI33HNS5g==", + "dev": true, + "dependencies": { + "@babel/types": "^7.12.11" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", + "dev": true + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.11.tgz", + "integrity": "sha512-TBFCyj939mFSdeX7U7DDj32WtzYY7fDcalgq8v3fBZMNOJQNn7nOYzMaUCiPxPYfCup69mtIpqlKgMZLvQ8Xhw==", + "dev": true + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.12.3", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.12.3.tgz", + "integrity": "sha512-Cvb8IuJDln3rs6tzjW3Y8UeelAOdnpB8xtQ4sme2MSZ9wOxrbThporC0y/EtE16VAtoyEfLM404Xr1e0OOp+ow==", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "node_modules/@babel/helpers": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.5.tgz", + "integrity": "sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA==", + "dev": true, + "dependencies": { + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.5", + "@babel/types": "^7.12.5" + } + }, + "node_modules/@babel/highlight": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.10.4", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.11.tgz", + "integrity": "sha512-N3UxG+uuF4CMYoNj8AhnbAcJF0PiuJ9KHuy1lQmkYsxTer/MAH9UBNHsBoAX/4s6NvlDD047No8mYVGGzLL4hg==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-proposal-async-generator-functions": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.12.1.tgz", + "integrity": "sha512-d+/o30tJxFxrA1lhzJqiUcEJdI6jKlNregCv5bASeGf2Q4MXmnwH7viDo7nhx1/ohf09oaH8j1GVYG/e3Yqk6A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-remap-async-to-generator": "^7.12.1", + "@babel/plugin-syntax-async-generators": "^7.8.0" + } + }, + "node_modules/@babel/plugin-proposal-class-properties": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.12.1.tgz", + "integrity": "sha512-cKp3dlQsFsEs5CWKnN7BnSHOd0EOW8EKpEjkoz1pO2E5KzIDNV9Ros1b0CnmbVgAGXJubOYVBOGCT1OmJwOI7w==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-proposal-dynamic-import": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.12.1.tgz", + "integrity": "sha512-a4rhUSZFuq5W8/OO8H7BL5zspjnc1FLd9hlOxIK/f7qG4a0qsqk8uvF/ywgBA8/OmjsapjpvaEOYItfGG1qIvQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-dynamic-import": "^7.8.0" + } + }, + "node_modules/@babel/plugin-proposal-export-namespace-from": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.1.tgz", + "integrity": "sha512-6CThGf0irEkzujYS5LQcjBx8j/4aQGiVv7J9+2f7pGfxqyKh3WnmVJYW3hdrQjyksErMGBPQrCnHfOtna+WLbw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + } + }, + "node_modules/@babel/plugin-proposal-json-strings": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.12.1.tgz", + "integrity": "sha512-GoLDUi6U9ZLzlSda2Df++VSqDJg3CG+dR0+iWsv6XRw1rEq+zwt4DirM9yrxW6XWaTpmai1cWJLMfM8qQJf+yw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.0" + } + }, + "node_modules/@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.12.1.tgz", + "integrity": "sha512-k8ZmVv0JU+4gcUGeCDZOGd0lCIamU/sMtIiX3UWnUc5yzgq6YUGyEolNYD+MLYKfSzgECPcqetVcJP9Afe/aCA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + } + }, + "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.12.1.tgz", + "integrity": "sha512-nZY0ESiaQDI1y96+jk6VxMOaL4LPo/QDHBqL+SF3/vl6dHkTwHlOI8L4ZwuRBHgakRBw5zsVylel7QPbbGuYgg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" + } + }, + "node_modules/@babel/plugin-proposal-numeric-separator": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.7.tgz", + "integrity": "sha512-8c+uy0qmnRTeukiGsjLGy6uVs/TFjJchGXUeBqlG4VWYOdJWkhhVPdQ3uHwbmalfJwv2JsV0qffXP4asRfL2SQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + } + }, + "node_modules/@babel/plugin-proposal-object-rest-spread": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz", + "integrity": "sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-transform-parameters": "^7.12.1" + } + }, + "node_modules/@babel/plugin-proposal-optional-catch-binding": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.12.1.tgz", + "integrity": "sha512-hFvIjgprh9mMw5v42sJWLI1lzU5L2sznP805zeT6rySVRA0Y18StRhDqhSxlap0oVgItRsB6WSROp4YnJTJz0g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" + } + }, + "node_modules/@babel/plugin-proposal-optional-chaining": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.12.7.tgz", + "integrity": "sha512-4ovylXZ0PWmwoOvhU2vhnzVNnm88/Sm9nx7V8BPgMvAzn5zDou3/Awy0EjglyubVHasJj+XCEkr/r1X3P5elCA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1", + "@babel/plugin-syntax-optional-chaining": "^7.8.0" + } + }, + "node_modules/@babel/plugin-proposal-private-methods": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.12.1.tgz", + "integrity": "sha512-mwZ1phvH7/NHK6Kf8LP7MYDogGV+DKB1mryFOEwx5EBNQrosvIczzZFTUmWaeujd5xT6G1ELYWUz3CutMhjE1w==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-proposal-unicode-property-regex": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.1.tgz", + "integrity": "sha512-MYq+l+PvHuw/rKUz1at/vb6nCnQ2gmJBNaM62z0OgH7B2W1D9pvkpYtlti9bGtizNIU1K3zm4bZF9F91efVY0w==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.1.tgz", + "integrity": "sha512-U40A76x5gTwmESz+qiqssqmeEsKvcSyvtgktrm0uzcARAmM9I1jR221f6Oq+GmHrcD+LvZDag1UTOTe2fL3TeA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.1.tgz", + "integrity": "sha512-i7ooMZFS+a/Om0crxZodrTzNEPJHZrlMVGMTEpFAj6rYY/bKCddB0Dk/YxfPuYXOopuhKk/e1jV6h+WUU9XN3A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.12.1.tgz", + "integrity": "sha512-5QB50qyN44fzzz4/qxDPQMBCTHgxg3n0xRBLJUmBlLoU/sFvxVWGZF/ZUfMVDQuJUKXaBhbupxIzIfZ6Fwk/0A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.12.1.tgz", + "integrity": "sha512-SDtqoEcarK1DFlRJ1hHRY5HvJUj5kX4qmtpMAm2QnhOlyuMC4TMdCRgW6WXpv93rZeYNeLP22y8Aq2dbcDRM1A==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-remap-async-to-generator": "^7.12.1" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.1.tgz", + "integrity": "sha512-5OpxfuYnSgPalRpo8EWGPzIYf0lHBWORCkj5M0oLBwHdlux9Ri36QqGW3/LR13RSVOAoUUMzoPI/jpE4ABcHoA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.11.tgz", + "integrity": "sha512-atR1Rxc3hM+VPg/NvNvfYw0npQEAcHuJ+MGZnFn6h3bo+1U3BWXMdFMlvVRApBTWKQMX7SOwRJZA5FBF/JQbvA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.12.1.tgz", + "integrity": "sha512-/74xkA7bVdzQTBeSUhLLJgYIcxw/dpEpCdRDiHgPJ3Mv6uC11UhjpOhl72CgqbBCmt1qtssCyB2xnJm1+PFjog==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-define-map": "^7.10.4", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-replace-supers": "^7.12.1", + "@babel/helper-split-export-declaration": "^7.10.4", + "globals": "^11.1.0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.12.1.tgz", + "integrity": "sha512-vVUOYpPWB7BkgUWPo4C44mUQHpTZXakEqFjbv8rQMg7TC6S6ZhGZ3otQcRH6u7+adSlE5i0sp63eMC/XGffrzg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.12.1.tgz", + "integrity": "sha512-fRMYFKuzi/rSiYb2uRLiUENJOKq4Gnl+6qOv5f8z0TZXg3llUwUhsNNwrwaT/6dUhJTzNpBr+CUvEWBtfNY1cw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.1.tgz", + "integrity": "sha512-B2pXeRKoLszfEW7J4Hg9LoFaWEbr/kzo3teWHmtFCszjRNa/b40f9mfeqZsIDLLt/FjwQ6pz/Gdlwy85xNckBA==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.1.tgz", + "integrity": "sha512-iRght0T0HztAb/CazveUpUQrZY+aGKKaWXMJ4uf9YJtqxSUe09j3wteztCUDRHs+SRAL7yMuFqUsLoAKKzgXjw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.1.tgz", + "integrity": "sha512-7tqwy2bv48q+c1EHbXK0Zx3KXd2RVQp6OC7PbwFNt/dPTAV3Lu5sWtWuAj8owr5wqtWnqHfl2/mJlUmqkChKug==", + "dev": true, + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.12.1.tgz", + "integrity": "sha512-Zaeq10naAsuHo7heQvyV0ptj4dlZJwZgNAtBYBnu5nNKJoW62m0zKcIEyVECrUKErkUkg6ajMy4ZfnVZciSBhg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.1.tgz", + "integrity": "sha512-JF3UgJUILoFrFMEnOJLJkRHSk6LUSXLmEFsA23aR2O5CSLUxbeUX1IZ1YQ7Sn0aXb601Ncwjx73a+FVqgcljVw==", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.1.tgz", + "integrity": "sha512-+PxVGA+2Ag6uGgL0A5f+9rklOnnMccwEBzwYFL3EUaKuiyVnUipyXncFcfjSkbimLrODoqki1U9XxZzTvfN7IQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.1.tgz", + "integrity": "sha512-1sxePl6z9ad0gFMB9KqmYofk34flq62aqMt9NqliS/7hPEpURUCMbyHXrMPlo282iY7nAvUB1aQd5mg79UD9Jg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.12.1.tgz", + "integrity": "sha512-tDW8hMkzad5oDtzsB70HIQQRBiTKrhfgwC/KkJeGsaNFTdWhKNt/BiE8c5yj19XiGyrxpbkOfH87qkNg1YGlOQ==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.12.1.tgz", + "integrity": "sha512-dY789wq6l0uLY8py9c1B48V8mVL5gZh/+PQ5ZPrylPYsnAvnEMjqsUXkuoDVPeVK+0VyGar+D08107LzDQ6pag==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-simple-access": "^7.12.1", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.12.1.tgz", + "integrity": "sha512-Hn7cVvOavVh8yvW6fLwveFqSnd7rbQN3zJvoPNyNaQSvgfKmDBO9U1YL9+PCXGRlZD9tNdWTy5ACKqMuzyn32Q==", + "dev": true, + "dependencies": { + "@babel/helper-hoist-variables": "^7.10.4", + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-validator-identifier": "^7.10.4", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.12.1.tgz", + "integrity": "sha512-aEIubCS0KHKM0zUos5fIoQm+AZUMt1ZvMpqz0/H5qAQ7vWylr9+PLYurT+Ic7ID/bKLd4q8hDovaG3Zch2uz5Q==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.1.tgz", + "integrity": "sha512-tB43uQ62RHcoDp9v2Nsf+dSM8sbNodbEicbQNA53zHz8pWUhsgHSJCGpt7daXxRydjb0KnfmB+ChXOv3oADp1Q==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.12.1" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.1.tgz", + "integrity": "sha512-+eW/VLcUL5L9IvJH7rT1sT0CzkdUTvPrXC2PXTn/7z7tXLBuKvezYbGdxD5WMRoyvyaujOq2fWoKl869heKjhw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.1.tgz", + "integrity": "sha512-AvypiGJH9hsquNUn+RXVcBdeE3KHPZexWRdimhuV59cSoOt5kFBmqlByorAeUlGG2CJWd0U+4ZtNKga/TB0cAw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-replace-supers": "^7.12.1" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.12.1.tgz", + "integrity": "sha512-xq9C5EQhdPK23ZeCdMxl8bbRnAgHFrw5EOC3KJUsSylZqdkCaFEXxGSBuTSObOpiiHHNyb82es8M1QYgfQGfNg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.1.tgz", + "integrity": "sha512-6MTCR/mZ1MQS+AwZLplX4cEySjCpnIF26ToWo942nqn8hXSm7McaHQNeGx/pt7suI1TWOWMfa/NgBhiqSnX0cQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.1.tgz", + "integrity": "sha512-gYrHqs5itw6i4PflFX3OdBPMQdPbF4bj2REIUxlMRUFk0/ZOAIpDFuViuxPjUL7YC8UPnf+XG7/utJvqXdPKng==", + "dev": true, + "dependencies": { + "regenerator-transform": "^0.14.2" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.1.tgz", + "integrity": "sha512-pOnUfhyPKvZpVyBHhSBoX8vfA09b7r00Pmm1sH+29ae2hMTKVmSp4Ztsr8KBKjLjx17H0eJqaRC3bR2iThM54A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-runtime": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.11.0.tgz", + "integrity": "sha512-LFEsP+t3wkYBlis8w6/kmnd6Kb1dxTd+wGJ8MlxTGzQo//ehtqlVL4S9DNUa53+dtPSQobN2CXx4d81FqC58cw==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "resolve": "^1.8.1", + "semver": "^5.5.1" + } + }, + "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.1.tgz", + "integrity": "sha512-GFZS3c/MhX1OusqB1MZ1ct2xRzX5ppQh2JU1h2Pnfk88HtFTM+TWQqJNfwkmxtPQtb/s1tk87oENfXJlx7rSDw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.12.1.tgz", + "integrity": "sha512-vuLp8CP0BE18zVYjsEBZ5xoCecMK6LBMMxYzJnh01rxQRvhNhH1csMMmBfNo5tGpGO+NhdSNW2mzIvBu3K1fng==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.7.tgz", + "integrity": "sha512-VEiqZL5N/QvDbdjfYQBhruN0HYjSPjC4XkeqW4ny/jNtH9gcbgaqBIXYEZCNnESMAGs0/K/R7oFGMhOyu/eIxg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.12.1.tgz", + "integrity": "sha512-b4Zx3KHi+taXB1dVRBhVJtEPi9h1THCeKmae2qP0YdUHIFhVjtpqqNfxeVAa1xeHVhAy4SbHxEwx5cltAu5apw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.10.tgz", + "integrity": "sha512-JQ6H8Rnsogh//ijxspCjc21YPd3VLVoYtAwv3zQmqAt8YGYUtdo5usNhdl4b9/Vir2kPFZl6n1h0PfUz4hJhaA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.1.tgz", + "integrity": "sha512-I8gNHJLIc7GdApm7wkVnStWssPNbSRMPtgHdmH3sRM1zopz09UWPS4x5V4n1yz/MIWTVnJ9sp6IkuXdWM4w+2Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.1.tgz", + "integrity": "sha512-SqH4ClNngh/zGwHZOOQMTD+e8FGWexILV+ePMyiDJttAWRh5dhDL8rcl5lSgU3Huiq6Zn6pWTMvdPAb21Dwdyg==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.11.0.tgz", + "integrity": "sha512-2u1/k7rG/gTh02dylX2kL3S0IJNF+J6bfDSp4DI2Ma8QN6Y9x9pmAax59fsCk6QUQG0yqH47yJWA+u1I1LccAg==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.11.0", + "@babel/helper-compilation-targets": "^7.10.4", + "@babel/helper-module-imports": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-proposal-async-generator-functions": "^7.10.4", + "@babel/plugin-proposal-class-properties": "^7.10.4", + "@babel/plugin-proposal-dynamic-import": "^7.10.4", + "@babel/plugin-proposal-export-namespace-from": "^7.10.4", + "@babel/plugin-proposal-json-strings": "^7.10.4", + "@babel/plugin-proposal-logical-assignment-operators": "^7.11.0", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.10.4", + "@babel/plugin-proposal-numeric-separator": "^7.10.4", + "@babel/plugin-proposal-object-rest-spread": "^7.11.0", + "@babel/plugin-proposal-optional-catch-binding": "^7.10.4", + "@babel/plugin-proposal-optional-chaining": "^7.11.0", + "@babel/plugin-proposal-private-methods": "^7.10.4", + "@babel/plugin-proposal-unicode-property-regex": "^7.10.4", + "@babel/plugin-syntax-async-generators": "^7.8.0", + "@babel/plugin-syntax-class-properties": "^7.10.4", + "@babel/plugin-syntax-dynamic-import": "^7.8.0", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.0", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.0", + "@babel/plugin-syntax-top-level-await": "^7.10.4", + "@babel/plugin-transform-arrow-functions": "^7.10.4", + "@babel/plugin-transform-async-to-generator": "^7.10.4", + "@babel/plugin-transform-block-scoped-functions": "^7.10.4", + "@babel/plugin-transform-block-scoping": "^7.10.4", + "@babel/plugin-transform-classes": "^7.10.4", + "@babel/plugin-transform-computed-properties": "^7.10.4", + "@babel/plugin-transform-destructuring": "^7.10.4", + "@babel/plugin-transform-dotall-regex": "^7.10.4", + "@babel/plugin-transform-duplicate-keys": "^7.10.4", + "@babel/plugin-transform-exponentiation-operator": "^7.10.4", + "@babel/plugin-transform-for-of": "^7.10.4", + "@babel/plugin-transform-function-name": "^7.10.4", + "@babel/plugin-transform-literals": "^7.10.4", + "@babel/plugin-transform-member-expression-literals": "^7.10.4", + "@babel/plugin-transform-modules-amd": "^7.10.4", + "@babel/plugin-transform-modules-commonjs": "^7.10.4", + "@babel/plugin-transform-modules-systemjs": "^7.10.4", + "@babel/plugin-transform-modules-umd": "^7.10.4", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.10.4", + "@babel/plugin-transform-new-target": "^7.10.4", + "@babel/plugin-transform-object-super": "^7.10.4", + "@babel/plugin-transform-parameters": "^7.10.4", + "@babel/plugin-transform-property-literals": "^7.10.4", + "@babel/plugin-transform-regenerator": "^7.10.4", + "@babel/plugin-transform-reserved-words": "^7.10.4", + "@babel/plugin-transform-shorthand-properties": "^7.10.4", + "@babel/plugin-transform-spread": "^7.11.0", + "@babel/plugin-transform-sticky-regex": "^7.10.4", + "@babel/plugin-transform-template-literals": "^7.10.4", + "@babel/plugin-transform-typeof-symbol": "^7.10.4", + "@babel/plugin-transform-unicode-escapes": "^7.10.4", + "@babel/plugin-transform-unicode-regex": "^7.10.4", + "@babel/preset-modules": "^0.1.3", + "@babel/types": "^7.11.0", + "browserslist": "^4.12.0", + "core-js-compat": "^3.6.2", + "invariant": "^2.2.2", + "levenary": "^1.1.1", + "semver": "^5.5.0" + } + }, + "node_modules/@babel/preset-env/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.4.tgz", + "integrity": "sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + } + }, + "node_modules/@babel/runtime": { + "version": "7.11.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.11.2.tgz", + "integrity": "sha512-TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw==", + "dev": true, + "dependencies": { + "regenerator-runtime": "^0.13.4" + } + }, + "node_modules/@babel/template": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", + "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "node_modules/@babel/traverse": { + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.10.tgz", + "integrity": "sha512-6aEtf0IeRgbYWzta29lePeYSk+YAFIC3kyqESeft8o5CkFlYIMX+EQDDWEiAQ9LHOA3d0oHdgrSsID/CKqXJlg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.10", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/parser": "^7.12.10", + "@babel/types": "^7.12.10", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.19" + } + }, + "node_modules/@babel/traverse/node_modules/@babel/generator": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.11.tgz", + "integrity": "sha512-Ggg6WPOJtSi8yYQvLVjG8F/TlpWDlKx0OpS4Kt+xMQPs5OaGYWy+v1A+1TvxI6sAMGZpKWWoAQ1DaeQbImlItA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.12.11", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "node_modules/@babel/traverse/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/types": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.11.tgz", + "integrity": "sha512-ukA9SQtKThINm++CX1CwmliMrE54J6nIYB5XTwL5f/CLFW9owfls+YSU8tVW15RQ2w+a3fSbPjC6HdQNtWZkiA==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz", + "integrity": "sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jsdevtools/coverage-istanbul-loader": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@jsdevtools/coverage-istanbul-loader/-/coverage-istanbul-loader-3.0.5.tgz", + "integrity": "sha512-EUCPEkaRPvmHjWAAZkWMT7JDzpw7FKB00WTISaiXsbNOd5hCHg77XLA8sLYLFDo1zepYLo2w7GstN8YBqRXZfA==", + "dev": true, + "dependencies": { + "convert-source-map": "^1.7.0", + "istanbul-lib-instrument": "^4.0.3", + "loader-utils": "^2.0.0", + "merge-source-map": "^1.1.0", + "schema-utils": "^2.7.0" + } + }, + "node_modules/@ngtools/webpack": { + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-10.2.1.tgz", + "integrity": "sha512-RKJSoQufHHpLpsGWUas3WEYtFhnCXmf5GiYCEv8d36ITNRKHhQv38FHLq1aen8Jd7F0b3eZFX5JmGvb7JJmVVg==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "10.2.1", + "enhanced-resolve": "4.3.0", + "webpack-sources": "1.4.3" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 6.11.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz", + "integrity": "sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.3", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz", + "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz", + "integrity": "sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.3", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@npmcli/move-file": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.0.1.tgz", + "integrity": "sha512-Uv6h1sT+0DrblvIrolFtbvM1FgWm+/sy4B3pvLp67Zys+thcukzS5ekn7HsZFGpWP4Q3fYJCljbWQE/XivMRLw==", + "dev": true, + "dependencies": { + "mkdirp": "^1.0.4" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@npmcli/move-file/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@schematics/angular": { + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-10.2.1.tgz", + "integrity": "sha512-hmhZ6zPJshP1ATYc/EzJPwaFas0D+T6eeWEFyHAgIV2GmNdJNyBdKHQtizGRQBpfWvBdI4/krvX+a71VnkU8oA==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "10.2.1", + "@angular-devkit/schematics": "10.2.1", + "jsonc-parser": "2.3.0" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 6.11.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@schematics/update": { + "version": "0.1002.1", + "resolved": "https://registry.npmjs.org/@schematics/update/-/update-0.1002.1.tgz", + "integrity": "sha512-RbC01VKb9q7Db5rpbrQLBOVkIzv3TPWMjRUSgg/LlLFEDVO3LPn5nX9bYnb6E0HeIqUW+zAU5Qaz9ob/Py06LA==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "10.2.1", + "@angular-devkit/schematics": "10.2.1", + "@yarnpkg/lockfile": "1.1.0", + "ini": "1.3.6", + "npm-package-arg": "^8.0.0", + "pacote": "9.5.12", + "semver": "7.3.2", + "semver-intersect": "1.4.0" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 6.11.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@types/glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==", + "dev": true, + "dependencies": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "node_modules/@types/jasmine": { + "version": "3.5.14", + "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-3.5.14.tgz", + "integrity": "sha512-Fkgk536sHPqcOtd+Ow+WiUNuk0TSo/BntKkF8wSvcd6M2FvPjeXcUE6Oz/bwDZiUZEaXLslAgw00Q94Pnx6T4w==", + "dev": true + }, + "node_modules/@types/jasminewd2": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@types/jasminewd2/-/jasminewd2-2.0.8.tgz", + "integrity": "sha512-d9p31r7Nxk0ZH0U39PTH0hiDlJ+qNVGjlt1ucOoTUptxb2v+Y5VMnsxfwN+i3hK4yQnqBi3FMmoMFcd1JHDxdg==", + "dev": true, + "dependencies": { + "@types/jasmine": "*" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.6.tgz", + "integrity": "sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw==", + "dev": true + }, + "node_modules/@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, + "node_modules/@types/node": { + "version": "12.19.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.19.9.tgz", + "integrity": "sha512-yj0DOaQeUrk3nJ0bd3Y5PeDRJ6W0r+kilosLA+dzF3dola/o9hxhMSg2sFvVcA2UHS5JSOsZp4S0c1OEXc4m1Q==", + "dev": true + }, + "node_modules/@types/q": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz", + "integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==", + "dev": true + }, + "node_modules/@types/selenium-webdriver": { + "version": "3.0.17", + "resolved": "https://registry.npmjs.org/@types/selenium-webdriver/-/selenium-webdriver-3.0.17.tgz", + "integrity": "sha512-tGomyEuzSC1H28y2zlW6XPCaDaXFaD6soTdb4GNdmte2qfHtrKqhy0ZFs4r/1hpazCfEZqeTSRLvSasmEx89uw==", + "dev": true + }, + "node_modules/@types/source-list-map": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz", + "integrity": "sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==", + "dev": true + }, + "node_modules/@types/webpack-sources": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-0.1.8.tgz", + "integrity": "sha512-JHB2/xZlXOjzjBB6fMOpH1eQAfsrpqVVIbneE0Rok16WXwFaznaI5vfg75U5WgGJm7V9W1c4xeRQDjX/zwvghA==", + "dev": true, + "dependencies": { + "@types/node": "*", + "@types/source-list-map": "*", + "source-map": "^0.6.1" + } + }, + "node_modules/@types/webpack-sources/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", + "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", + "dev": true, + "dependencies": { + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz", + "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", + "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", + "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-code-frame": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz", + "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==", + "dev": true, + "dependencies": { + "@webassemblyjs/wast-printer": "1.9.0" + } + }, + "node_modules/@webassemblyjs/helper-fsm": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz", + "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-module-context": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz", + "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.9.0" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", + "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", + "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", + "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", + "dev": true, + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", + "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", + "dev": true, + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", + "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==", + "dev": true + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", + "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/helper-wasm-section": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-opt": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "@webassemblyjs/wast-printer": "1.9.0" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", + "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", + "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", + "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" + } + }, + "node_modules/@webassemblyjs/wast-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz", + "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/floating-point-hex-parser": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-code-frame": "1.9.0", + "@webassemblyjs/helper-fsm": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", + "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "node_modules/@yarnpkg/lockfile": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", + "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", + "dev": true + }, + "node_modules/abab": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", + "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", + "dev": true + }, + "node_modules/accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "dev": true, + "dependencies": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", + "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/adjust-sourcemap-loader": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-3.0.0.tgz", + "integrity": "sha512-YBrGyT2/uVQ/c6Rr+t6ZJXniY03YtHGMJQYal368burRGYKqhx9qGTWqcBU5s1CwYY9E/ri63RYyG1IacMZtqw==", + "dev": true, + "dependencies": { + "loader-utils": "^2.0.0", + "regex-parser": "^2.2.11" + }, + "engines": { + "node": ">=8.9" + } + }, + "node_modules/adm-zip": { + "version": "0.4.16", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz", + "integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==", + "dev": true, + "engines": { + "node": ">=0.3.0" + } + }, + "node_modules/after": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", + "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=", + "dev": true + }, + "node_modules/agent-base": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", + "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", + "dev": true, + "dependencies": { + "es6-promisify": "^5.0.0" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/agentkeepalive": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-3.5.2.tgz", + "integrity": "sha512-e0L/HNe6qkQ7H19kTlRRqUibEAwDK5AFk6y3PtMsuut2VAH6+Q4xZml1tNDJD7kSAyqmbG/K08K5WEJYtUrSlQ==", + "dev": true, + "dependencies": { + "humanize-ms": "^1.2.1" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "6.12.4", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.4.tgz", + "integrity": "sha512-eienB2c9qVQs2KWexhkrdMLVDoIQCz5KSeLxwg9Lzk4DOfBtIK9PQwwufcsn1jjGuf9WZmqPMbGxOzfcuphJCQ==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "node_modules/ajv-errors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", + "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", + "dev": true + }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true + }, + "node_modules/alphanum-sort": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", + "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", + "dev": true + }, + "node_modules/ansi-colors": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", + "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", + "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", + "dev": true, + "dependencies": { + "type-fest": "^0.11.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-html": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", + "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=", + "dev": true, + "engines": [ + "node >= 0.8.0" + ], + "bin": { + "ansi-html": "bin/ansi-html" + } + }, + "node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/apexcharts": { + "version": "3.23.0", + "resolved": "https://registry.npmjs.org/apexcharts/-/apexcharts-3.23.0.tgz", + "integrity": "sha512-1mV6qouuopvYR6UFSXi/Ge4jRMe//zyAN3aK05mAs4Iuet8mA0w31Q6OU6syD77bawt9p3YKNOmNF7OO2u9w0g==", + "dependencies": { + "svg.draggable.js": "^2.2.2", + "svg.easing.js": "^2.0.0", + "svg.filter.js": "^2.0.2", + "svg.pathmorphing.js": "^0.1.3", + "svg.resize.js": "^1.4.3", + "svg.select.js": "^3.0.1" + } + }, + "node_modules/app-root-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-3.0.0.tgz", + "integrity": "sha512-qMcx+Gy2UZynHjOHOIXPNvpf+9cjvk3cWrBBK7zg4gH9+clobJRb9NGzcT7mQTcV/6Gm/1WelUtqxVXnNlrwcw==", + "dev": true, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true + }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/aria-query": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-3.0.0.tgz", + "integrity": "sha1-ZbP8wcoRVajJrmTW7uKX8V1RM8w=", + "dev": true, + "dependencies": { + "ast-types-flow": "0.0.7", + "commander": "^2.11.0" + } + }, + "node_modules/arity-n": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/arity-n/-/arity-n-1.0.4.tgz", + "integrity": "sha1-2edrEXM+CFacCEeuezmyhgswt0U=", + "dev": true + }, + "node_modules/arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", + "dev": true + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arraybuffer.slice": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz", + "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==", + "dev": true + }, + "node_modules/arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", + "dev": true + }, + "node_modules/asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "dev": true, + "dependencies": { + "safer-buffer": "~2.1.0" + } + }, + "node_modules/asn1.js": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", + "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", + "dev": true, + "dependencies": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/asn1.js/node_modules/bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + }, + "node_modules/assert": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", + "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", + "dev": true, + "dependencies": { + "object-assign": "^4.1.1", + "util": "0.10.3" + } + }, + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/assert/node_modules/inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", + "dev": true + }, + "node_modules/assert/node_modules/util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "dev": true, + "dependencies": { + "inherits": "2.0.1" + } + }, + "node_modules/assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ast-types-flow": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", + "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=", + "dev": true + }, + "node_modules/async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "dev": true, + "dependencies": { + "lodash": "^4.17.14" + } + }, + "node_modules/async-each": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", + "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", + "dev": true + }, + "node_modules/async-limiter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", + "dev": true + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "node_modules/atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true, + "bin": { + "atob": "bin/atob.js" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/autoprefixer": { + "version": "9.8.6", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.6.tgz", + "integrity": "sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg==", + "dev": true, + "dependencies": { + "browserslist": "^4.12.0", + "caniuse-lite": "^1.0.30001109", + "colorette": "^1.2.1", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "postcss": "^7.0.32", + "postcss-value-parser": "^4.1.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + } + }, + "node_modules/aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/aws4": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", + "dev": true + }, + "node_modules/axobject-query": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.0.2.tgz", + "integrity": "sha512-MCeek8ZH7hKyO1rWUbKNQBbl4l2eY0ntk7OGi+q0RlafrCnfPxC06WZA+uebCfmYp4mNU9jRBP1AhGyf8+W3ww==", + "dev": true, + "dependencies": { + "ast-types-flow": "0.0.7" + } + }, + "node_modules/babel-loader": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.1.0.tgz", + "integrity": "sha512-7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw==", + "dev": true, + "dependencies": { + "find-cache-dir": "^2.1.0", + "loader-utils": "^1.4.0", + "mkdirp": "^0.5.3", + "pify": "^4.0.1", + "schema-utils": "^2.6.5" + }, + "engines": { + "node": ">= 6.9" + } + }, + "node_modules/babel-loader/node_modules/find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "dev": true, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/babel-loader/node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/babel-loader/node_modules/loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "dev": true, + "dependencies": { + "object.assign": "^4.1.0" + } + }, + "node_modules/backo2": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", + "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=", + "dev": true + }, + "node_modules/balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "node_modules/base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "dependencies": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base64-arraybuffer": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz", + "integrity": "sha1-mBjHngWbE1X5fgQooBfIOOkLqBI=", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true + }, + "node_modules/base64id": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", + "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", + "dev": true, + "engines": { + "node": "^4.5.0 || >= 5.9" + } + }, + "node_modules/batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", + "dev": true + }, + "node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dev": true, + "dependencies": { + "tweetnacl": "^0.14.3" + } + }, + "node_modules/better-assert": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", + "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=", + "dev": true, + "dependencies": { + "callsite": "1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", + "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dev": true, + "optional": true, + "dependencies": { + "file-uri-to-path": "1.0.0" + } + }, + "node_modules/blob": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz", + "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==", + "dev": true + }, + "node_modules/blocking-proxy": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/blocking-proxy/-/blocking-proxy-1.0.1.tgz", + "integrity": "sha512-KE8NFMZr3mN2E0HcvCgRtX7DjhiIQrwle+nSVJVC/yqFb9+xznHl2ZcoBp2L9qzkI4t4cBFJ1efXF8Dwi132RA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "blocking-proxy": "built/lib/bin.js" + }, + "engines": { + "node": ">=6.9.x" + } + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, + "node_modules/bn.js": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.3.tgz", + "integrity": "sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ==", + "dev": true + }, + "node_modules/body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "dev": true, + "dependencies": { + "bytes": "3.1.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/body-parser/node_modules/bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/bonjour": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", + "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", + "dev": true, + "dependencies": { + "array-flatten": "^2.1.0", + "deep-equal": "^1.0.1", + "dns-equal": "^1.0.0", + "dns-txt": "^2.0.2", + "multicast-dns": "^6.0.1", + "multicast-dns-service-types": "^1.1.0" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", + "dev": true + }, + "node_modules/bootstrap": { + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.5.3.tgz", + "integrity": "sha512-o9ppKQioXGqhw8Z7mah6KdTYpNQY//tipnkxppWhPbiSWdD+1raYsnhwEZjkTHYbGee4cVQ0Rx65EhOY/HNLcQ==" + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", + "dev": true + }, + "node_modules/browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dev": true, + "dependencies": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "dev": true, + "dependencies": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "node_modules/browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "dev": true, + "dependencies": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/browserify-rsa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", + "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", + "dev": true, + "dependencies": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + } + }, + "node_modules/browserify-sign": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", + "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", + "dev": true, + "dependencies": { + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.3", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + } + }, + "node_modules/browserify-sign/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/browserify-sign/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + }, + "node_modules/browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "dev": true, + "dependencies": { + "pako": "~1.0.5" + } + }, + "node_modules/browserslist": { + "version": "4.16.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.0.tgz", + "integrity": "sha512-/j6k8R0p3nxOC6kx5JGAxsnhc9ixaWJfYc+TNTzxg6+ARaESAvQGV7h0uNOB4t+pLQJZWzcrMxXOxjgsCj3dqQ==", + "dev": true, + "dependencies": { + "caniuse-lite": "^1.0.30001165", + "colorette": "^1.2.1", + "electron-to-chromium": "^1.3.621", + "escalade": "^3.1.1", + "node-releases": "^1.1.67" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/browserstack": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/browserstack/-/browserstack-1.6.1.tgz", + "integrity": "sha512-GxtFjpIaKdbAyzHfFDKixKO8IBT7wR3NjbzrGc78nNs/Ciys9wU3/nBtsqsWv5nDSrdI5tz0peKuzCPuNXNUiw==", + "dev": true, + "dependencies": { + "https-proxy-agent": "^2.2.1" + } + }, + "node_modules/buffer": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "dev": true, + "dependencies": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "node_modules/buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "dev": true + }, + "node_modules/buffer-indexof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", + "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", + "dev": true + }, + "node_modules/buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", + "dev": true + }, + "node_modules/builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", + "dev": true + }, + "node_modules/builtins": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", + "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=", + "dev": true + }, + "node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cacache": { + "version": "15.0.5", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.0.5.tgz", + "integrity": "sha512-lloiL22n7sOjEEXdL8NAjTgv9a1u43xICE9/203qonkZUCj5X1UEWIdf2/Y0d6QcCtMzbKQyhrcDbdvlZTs/+A==", + "dev": true, + "dependencies": { + "@npmcli/move-file": "^1.0.1", + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "infer-owner": "^1.0.4", + "lru-cache": "^6.0.0", + "minipass": "^3.1.1", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^1.0.3", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^8.0.0", + "tar": "^6.0.2", + "unique-filename": "^1.1.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/cacache/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "dependencies": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/call-bind": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.0.tgz", + "integrity": "sha512-AEXsYIyyDY3MCzbwdhzG3Jx1R0J2wetQyUynn6dYHAO+bg8l1k7jwZtRv4ryryFs7EP+NDlikJlVe59jr0cM2w==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.0" + } + }, + "node_modules/caller-callsite": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", + "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", + "dev": true, + "dependencies": { + "callsites": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/caller-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", + "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", + "dev": true, + "dependencies": { + "caller-callsite": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/callsite": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", + "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/callsites": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", + "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/camelcase": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", + "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "dev": true, + "dependencies": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001168", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001168.tgz", + "integrity": "sha512-P2zmX7swIXKu+GMMR01TWa4csIKELTNnZKc+f1CjebmZJQtTAEXmpQSoKVJVVcvPGAA0TEYTOUp3VehavZSFPQ==", + "dev": true + }, + "node_modules/canonical-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/canonical-path/-/canonical-path-1.0.0.tgz", + "integrity": "sha512-feylzsbDxi1gPZ1IjystzIQZagYYLvfKrSuygUCgf7z6x790VEzze5QEkdSV1U58RA7Hi0+v6fv4K54atOzATg==", + "dev": true + }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, + "node_modules/chokidar": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.3.tgz", + "integrity": "sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ==", + "dev": true, + "dependencies": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.1.2", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.5.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.1.2" + } + }, + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz", + "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/chrome-trace-event/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/circular-dependency-plugin": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/circular-dependency-plugin/-/circular-dependency-plugin-5.2.0.tgz", + "integrity": "sha512-7p4Kn/gffhQaavNfyDFg7LS5S/UT1JAjyGd4UqR2+jzoYF02eDkj0Ec3+48TsIa4zghjLY87nQHIh/ecK9qLdw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "dependencies": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-spinners": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.5.0.tgz", + "integrity": "sha512-PC+AmIuK04E6aeSs/pUccSujsTzBhu4HzC2dL+CfJB/Jcc2qTRbEwZQDfIUpt2Xl8BodYBEq8w4fc0kU2I9DjQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "dependencies": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + } + }, + "node_modules/cliui/node_modules/ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/cliui/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/coa": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", + "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", + "dev": true, + "dependencies": { + "@types/q": "^1.5.1", + "chalk": "^2.4.1", + "q": "^1.1.2" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/codelyzer": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/codelyzer/-/codelyzer-6.0.1.tgz", + "integrity": "sha512-cOyGQgMdhnRYtW2xrJUNrNYDjEgwQ+BrE2y93Bwz3h4DJ6vJRLfupemU5N3pbYsUlBHJf0u1j1UGk+NLW4d97g==", + "dev": true, + "dependencies": { + "@angular/compiler": "9.0.0", + "@angular/core": "9.0.0", + "app-root-path": "^3.0.0", + "aria-query": "^3.0.0", + "axobject-query": "2.0.2", + "css-selector-tokenizer": "^0.7.1", + "cssauron": "^1.4.0", + "damerau-levenshtein": "^1.0.4", + "rxjs": "^6.5.3", + "semver-dsl": "^1.0.1", + "source-map": "^0.5.7", + "sprintf-js": "^1.1.2", + "tslib": "^1.10.0", + "zone.js": "~0.10.3" + } + }, + "node_modules/codelyzer/node_modules/@angular/compiler": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-9.0.0.tgz", + "integrity": "sha512-ctjwuntPfZZT2mNj2NDIVu51t9cvbhl/16epc5xEwyzyDt76pX9UgwvY+MbXrf/C/FWwdtmNtfP698BKI+9leQ==", + "dev": true + }, + "node_modules/codelyzer/node_modules/@angular/core": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-9.0.0.tgz", + "integrity": "sha512-6Pxgsrf0qF9iFFqmIcWmjJGkkCaCm6V5QNnxMy2KloO3SDq6QuMVRbN9RtC8Urmo25LP+eZ6ZgYqFYpdD8Hd9w==", + "dev": true + }, + "node_modules/codelyzer/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/codelyzer/node_modules/sprintf-js": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", + "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", + "dev": true + }, + "node_modules/codelyzer/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "dependencies": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/color": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/color/-/color-3.1.3.tgz", + "integrity": "sha512-xgXAcTHa2HeFCGLE9Xs/R82hujGtu9Jd9x4NW3T34+OMs7VoPsjwzRczKHvTAHeJwWFwX5j15+MgAppE8ztObQ==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.1", + "color-string": "^1.5.4" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "node_modules/color-string": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.4.tgz", + "integrity": "sha512-57yF5yt8Xa3czSEW1jfQDE79Idk0+AkN/4KWad6tbdxUmAs3MvjxlWSWD4deYytcRfoZ9nhKyFl1kj5tBvidbw==", + "dev": true, + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "node_modules/colorette": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz", + "integrity": "sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==", + "dev": true + }, + "node_modules/colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "dev": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, + "node_modules/component-bind": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", + "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=", + "dev": true + }, + "node_modules/component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true + }, + "node_modules/component-inherit": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", + "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=", + "dev": true + }, + "node_modules/compose-function": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/compose-function/-/compose-function-3.0.3.tgz", + "integrity": "sha1-ntZ18TzFRQHTCVCkhv9qe6OrGF8=", + "dev": true, + "dependencies": { + "arity-n": "^1.0.4" + } + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dev": true, + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dev": true, + "dependencies": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "engines": [ + "node >= 0.8" + ], + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/connect": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", + "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "finalhandler": "1.1.2", + "parseurl": "~1.3.3", + "utils-merge": "1.0.1" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/connect-history-api-fallback": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/connect/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/connect/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", + "dev": true + }, + "node_modules/constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", + "dev": true + }, + "node_modules/content-disposition": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", + "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", + "dev": true, + "dependencies": { + "safe-buffer": "5.1.2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.1" + } + }, + "node_modules/cookie": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", + "dev": true + }, + "node_modules/copy-anything": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.1.tgz", + "integrity": "sha512-lA57e7viQHOdPQcrytv5jFeudZZOXuyk47lZym279FiDQ8jeZomXiGuVf6ffMKkJ+3TIai3J1J3yi6M+/4U35g==", + "dev": true, + "dependencies": { + "is-what": "^3.7.1" + } + }, + "node_modules/copy-concurrently": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", + "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", + "dev": true, + "dependencies": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + } + }, + "node_modules/copy-concurrently/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/copy-webpack-plugin": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-6.0.3.tgz", + "integrity": "sha512-q5m6Vz4elsuyVEIUXr7wJdIdePWTubsqVbEMvf1WQnHGv0Q+9yPRu7MtYFPt+GBOXRav9lvIINifTQ1vSCs+eA==", + "dev": true, + "dependencies": { + "cacache": "^15.0.4", + "fast-glob": "^3.2.4", + "find-cache-dir": "^3.3.1", + "glob-parent": "^5.1.1", + "globby": "^11.0.1", + "loader-utils": "^2.0.0", + "normalize-path": "^3.0.0", + "p-limit": "^3.0.1", + "schema-utils": "^2.7.0", + "serialize-javascript": "^4.0.0", + "webpack-sources": "^1.4.3" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/copy-webpack-plugin/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/core-js": { + "version": "3.6.4", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.4.tgz", + "integrity": "sha512-4paDGScNgZP2IXXilaffL9X7968RuvwlkK3xWtZRVqgd8SYNiVKRJvkFd1aqqEuPfN7E68ZHEp9hDj6lHj4Hyw==", + "dev": true + }, + "node_modules/core-js-compat": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.8.1.tgz", + "integrity": "sha512-a16TLmy9NVD1rkjUGbwuyWkiDoN0FDpAwrfLONvHFQx0D9k7J9y0srwMT8QP/Z6HE3MIFaVynEeYwZwPX1o5RQ==", + "dev": true, + "dependencies": { + "browserslist": "^4.15.0", + "semver": "7.0.0" + } + }, + "node_modules/core-js-compat/node_modules/semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "node_modules/cosmiconfig": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", + "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", + "dev": true, + "dependencies": { + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "dev": true, + "dependencies": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + } + }, + "node_modules/create-ecdh/node_modules/bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + }, + "node_modules/create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dev": true, + "dependencies": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "node_modules/create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dev": true, + "dependencies": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "node_modules/cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/cross-spawn/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "dev": true, + "dependencies": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + }, + "engines": { + "node": "*" + } + }, + "node_modules/css": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz", + "integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "source-map": "^0.6.1", + "source-map-resolve": "^0.5.2", + "urix": "^0.1.0" + } + }, + "node_modules/css-color-names": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", + "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/css-declaration-sorter": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz", + "integrity": "sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==", + "dev": true, + "dependencies": { + "postcss": "^7.0.1", + "timsort": "^0.3.0" + }, + "engines": { + "node": ">4" + } + }, + "node_modules/css-loader": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-4.2.2.tgz", + "integrity": "sha512-omVGsTkZPVwVRpckeUnLshPp12KsmMSLqYxs12+RzM9jRR5Y+Idn/tBffjXRvOE+qW7if24cuceFJqYR5FmGBg==", + "dev": true, + "dependencies": { + "camelcase": "^6.0.0", + "cssesc": "^3.0.0", + "icss-utils": "^4.1.1", + "loader-utils": "^2.0.0", + "postcss": "^7.0.32", + "postcss-modules-extract-imports": "^2.0.0", + "postcss-modules-local-by-default": "^3.0.3", + "postcss-modules-scope": "^2.2.0", + "postcss-modules-values": "^3.0.0", + "postcss-value-parser": "^4.1.0", + "schema-utils": "^2.7.0", + "semver": "^7.3.2" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/css-parse": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/css-parse/-/css-parse-2.0.0.tgz", + "integrity": "sha1-pGjuZnwW2BzPBcWMONKpfHgNv9Q=", + "dev": true, + "dependencies": { + "css": "^2.0.0" + } + }, + "node_modules/css-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", + "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^3.2.1", + "domutils": "^1.7.0", + "nth-check": "^1.0.2" + } + }, + "node_modules/css-select-base-adapter": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", + "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==", + "dev": true + }, + "node_modules/css-selector-tokenizer": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.3.tgz", + "integrity": "sha512-jWQv3oCEL5kMErj4wRnK/OPoBi0D+P1FR2cDCKYPaMeD2eW3/mttav8HT4hT1CKopiJI/psEULjkClhvJo4Lvg==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "fastparse": "^1.1.2" + } + }, + "node_modules/css-tree": { + "version": "1.0.0-alpha.37", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", + "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", + "dev": true, + "dependencies": { + "mdn-data": "2.0.4", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/css-tree/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/css-what": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", + "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/css/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cssauron": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/cssauron/-/cssauron-1.4.0.tgz", + "integrity": "sha1-pmAt/34EqDBtwNuaVR6S6LVmKtg=", + "dev": true, + "dependencies": { + "through": "X.X.X" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssnano": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.10.tgz", + "integrity": "sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ==", + "dev": true, + "dependencies": { + "cosmiconfig": "^5.0.0", + "cssnano-preset-default": "^4.0.7", + "is-resolvable": "^1.0.0", + "postcss": "^7.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/cssnano-preset-default": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz", + "integrity": "sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA==", + "dev": true, + "dependencies": { + "css-declaration-sorter": "^4.0.1", + "cssnano-util-raw-cache": "^4.0.1", + "postcss": "^7.0.0", + "postcss-calc": "^7.0.1", + "postcss-colormin": "^4.0.3", + "postcss-convert-values": "^4.0.1", + "postcss-discard-comments": "^4.0.2", + "postcss-discard-duplicates": "^4.0.2", + "postcss-discard-empty": "^4.0.1", + "postcss-discard-overridden": "^4.0.1", + "postcss-merge-longhand": "^4.0.11", + "postcss-merge-rules": "^4.0.3", + "postcss-minify-font-values": "^4.0.2", + "postcss-minify-gradients": "^4.0.2", + "postcss-minify-params": "^4.0.2", + "postcss-minify-selectors": "^4.0.2", + "postcss-normalize-charset": "^4.0.1", + "postcss-normalize-display-values": "^4.0.2", + "postcss-normalize-positions": "^4.0.2", + "postcss-normalize-repeat-style": "^4.0.2", + "postcss-normalize-string": "^4.0.2", + "postcss-normalize-timing-functions": "^4.0.2", + "postcss-normalize-unicode": "^4.0.1", + "postcss-normalize-url": "^4.0.1", + "postcss-normalize-whitespace": "^4.0.2", + "postcss-ordered-values": "^4.1.2", + "postcss-reduce-initial": "^4.0.3", + "postcss-reduce-transforms": "^4.0.2", + "postcss-svgo": "^4.0.2", + "postcss-unique-selectors": "^4.0.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/cssnano-util-get-arguments": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz", + "integrity": "sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/cssnano-util-get-match": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz", + "integrity": "sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/cssnano-util-raw-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz", + "integrity": "sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==", + "dev": true, + "dependencies": { + "postcss": "^7.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/cssnano-util-same-parent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz", + "integrity": "sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "dev": true, + "dependencies": { + "css-tree": "^1.1.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/csso/node_modules/css-tree": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.2.tgz", + "integrity": "sha512-wCoWush5Aeo48GLhfHPbmvZs59Z+M7k5+B1xDnXbdWNcEF423DoFdqSWE0PM5aNk5nI5cp1q7ms36zGApY/sKQ==", + "dev": true, + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/csso/node_modules/mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", + "dev": true + }, + "node_modules/csso/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/custom-event": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", + "integrity": "sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU=", + "dev": true + }, + "node_modules/cyclist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", + "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", + "dev": true + }, + "node_modules/d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "dev": true, + "dependencies": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + }, + "node_modules/damerau-levenshtein": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz", + "integrity": "sha512-JVrozIeElnj3QzfUIt8tB8YMluBJom4Vw9qTPpjGYQ9fYlB3D/rb6OordUxf3xeFB35LKWs0xqcO5U6ySvBtug==", + "dev": true + }, + "node_modules/dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/data-urls": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", + "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "dev": true, + "dependencies": { + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/date-format": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-3.0.0.tgz", + "integrity": "sha512-eyTcpKOcamdhWJXj56DpQMo1ylSQpcGtGKXcU0Tb97+K56/CF5amAqqqNj0+KvA0iw2ynxtHWFsPDSClCxe48w==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/debuglog": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz", + "integrity": "sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/deep-equal": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", + "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", + "dev": true, + "dependencies": { + "is-arguments": "^1.0.4", + "is-date-object": "^1.0.1", + "is-regex": "^1.0.4", + "object-is": "^1.0.1", + "object-keys": "^1.1.1", + "regexp.prototype.flags": "^1.2.0" + } + }, + "node_modules/default-gateway": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", + "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==", + "dev": true, + "dependencies": { + "execa": "^1.0.0", + "ip-regex": "^2.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/defaults": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "dev": true, + "dependencies": { + "clone": "^1.0.2" + } + }, + "node_modules/defaults/node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "dependencies": { + "object-keys": "^1.0.12" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/del": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", + "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", + "dev": true, + "dependencies": { + "@types/glob": "^7.1.1", + "globby": "^6.1.0", + "is-path-cwd": "^2.0.0", + "is-path-in-cwd": "^2.0.0", + "p-map": "^2.0.0", + "pify": "^4.0.1", + "rimraf": "^2.6.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/del/node_modules/array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, + "dependencies": { + "array-uniq": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/del/node_modules/globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "dev": true, + "dependencies": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/del/node_modules/globby/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/del/node_modules/p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/del/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/dependency-graph": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.7.2.tgz", + "integrity": "sha512-KqtH4/EZdtdfWX0p6MGP9jljvxSY6msy/pRUD4jgNwVpv3v1QmNLlsB3LDSSUg79BRVSn7jI1QPRtArGABovAQ==", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/des.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", + "dev": true + }, + "node_modules/detect-node": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz", + "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==", + "dev": true + }, + "node_modules/dezalgo": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz", + "integrity": "sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY=", + "dev": true, + "dependencies": { + "asap": "^2.0.0", + "wrappy": "1" + } + }, + "node_modules/di": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", + "integrity": "sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw=", + "dev": true + }, + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "dev": true, + "dependencies": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + } + }, + "node_modules/diffie-hellman/node_modules/bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=", + "dev": true + }, + "node_modules/dns-packet": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz", + "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==", + "dev": true, + "dependencies": { + "ip": "^1.1.0", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/dns-txt": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", + "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", + "dev": true, + "dependencies": { + "buffer-indexof": "^1.0.0" + } + }, + "node_modules/dom-serialize": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", + "integrity": "sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs=", + "dev": true, + "dependencies": { + "custom-event": "~1.0.0", + "ent": "~2.2.0", + "extend": "^3.0.0", + "void-elements": "^2.0.0" + } + }, + "node_modules/dom-serializer": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", + "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "dev": true, + "dependencies": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + } + }, + "node_modules/dom-serializer/node_modules/domelementtype": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.1.0.tgz", + "integrity": "sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w==", + "dev": true + }, + "node_modules/domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", + "dev": true, + "engines": { + "node": ">=0.4", + "npm": ">=1.2" + } + }, + "node_modules/domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", + "dev": true + }, + "node_modules/domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "dev": true, + "dependencies": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "node_modules/dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dev": true, + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "node_modules/ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "dev": true, + "dependencies": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "dev": true + }, + "node_modules/electron-to-chromium": { + "version": "1.3.629", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.629.tgz", + "integrity": "sha512-iSPPJtPvHrMAvYOt+9cdbDmTasPqwnwz4lkP8Dn200gDNUBQOLQ96xUsWXBwXslAo5XxdoXAoQQ3RAy4uao9IQ==", + "dev": true + }, + "node_modules/elliptic": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", + "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", + "dev": true, + "dependencies": { + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" + } + }, + "node_modules/elliptic/node_modules/bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "dev": true, + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/engine.io": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.4.2.tgz", + "integrity": "sha512-b4Q85dFkGw+TqgytGPrGgACRUhsdKc9S9ErRAXpPGy/CXKs4tYoHDkvIRdsseAF7NjfVwjRFIn6KTnbw7LwJZg==", + "dev": true, + "dependencies": { + "accepts": "~1.3.4", + "base64id": "2.0.0", + "cookie": "0.3.1", + "debug": "~4.1.0", + "engine.io-parser": "~2.2.0", + "ws": "^7.1.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/engine.io-client": { + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.4.4.tgz", + "integrity": "sha512-iU4CRr38Fecj8HoZEnFtm2EiKGbYZcPn3cHxqNGl/tmdWRf60KhK+9vE0JeSjgnlS/0oynEfLgKbT9ALpim0sQ==", + "dev": true, + "dependencies": { + "component-emitter": "~1.3.0", + "component-inherit": "0.0.3", + "debug": "~3.1.0", + "engine.io-parser": "~2.2.0", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "parseqs": "0.0.6", + "parseuri": "0.0.6", + "ws": "~6.1.0", + "xmlhttprequest-ssl": "~1.5.4", + "yeast": "0.1.2" + } + }, + "node_modules/engine.io-client/node_modules/debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/engine.io-client/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/engine.io-client/node_modules/parseqs": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.6.tgz", + "integrity": "sha512-jeAGzMDbfSHHA091hr0r31eYfTig+29g3GKKE/PPbEQ65X0lmMwlEoqmhzu0iztID5uJpZsFlUPDP8ThPL7M8w==", + "dev": true + }, + "node_modules/engine.io-client/node_modules/parseuri": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.6.tgz", + "integrity": "sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow==", + "dev": true + }, + "node_modules/engine.io-client/node_modules/ws": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.1.4.tgz", + "integrity": "sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA==", + "dev": true, + "dependencies": { + "async-limiter": "~1.0.0" + } + }, + "node_modules/engine.io-parser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.2.1.tgz", + "integrity": "sha512-x+dN/fBH8Ro8TFwJ+rkB2AmuVw9Yu2mockR/p3W8f8YtExwFgDvBDi0GWyb4ZLkpahtDGZgtr3zLovanJghPqg==", + "dev": true, + "dependencies": { + "after": "0.8.2", + "arraybuffer.slice": "~0.0.7", + "base64-arraybuffer": "0.1.4", + "blob": "0.0.5", + "has-binary2": "~1.0.2" + } + }, + "node_modules/engine.io/node_modules/cookie": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", + "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/engine.io/node_modules/debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/engine.io/node_modules/ws": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.1.tgz", + "integrity": "sha512-pTsP8UAfhy3sk1lSk/O/s4tjD0CRwvMnzvwr4OKGX7ZvqZtUyx4KIJB5JWbkykPoc55tixMGgTNoh3k4FkNGFQ==", + "dev": true, + "engines": { + "node": ">=8.3.0" + } + }, + "node_modules/enhanced-resolve": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz", + "integrity": "sha512-3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.5.0", + "tapable": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/ent": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", + "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=", + "dev": true + }, + "node_modules/entities": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", + "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", + "dev": true + }, + "node_modules/err-code": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz", + "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=", + "dev": true + }, + "node_modules/errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "dev": true, + "dependencies": { + "prr": "~1.0.1" + }, + "bin": { + "errno": "cli.js" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.18.0-next.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz", + "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==", + "dev": true, + "dependencies": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-negative-zero": "^2.0.0", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es5-ext": { + "version": "0.10.53", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", + "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", + "dev": true, + "dependencies": { + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.3", + "next-tick": "~1.0.0" + } + }, + "node_modules/es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "dev": true, + "dependencies": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "node_modules/es6-promise": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", + "dev": true + }, + "node_modules/es6-promisify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", + "dev": true, + "dependencies": { + "es6-promise": "^4.0.3" + } + }, + "node_modules/es6-symbol": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", + "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "dev": true, + "dependencies": { + "d": "^1.0.1", + "ext": "^1.1.2" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "dev": true + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint-scope": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", + "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", + "dev": true, + "dependencies": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + }, + "node_modules/events": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz", + "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==", + "dev": true, + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/eventsource": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz", + "integrity": "sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ==", + "dev": true, + "dependencies": { + "original": "^1.0.0" + }, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dev": true, + "dependencies": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "dependencies": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "dependencies": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/expand-brackets/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/express": { + "version": "4.17.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", + "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", + "dev": true, + "dependencies": { + "accepts": "~1.3.7", + "array-flatten": "1.1.1", + "body-parser": "1.19.0", + "content-disposition": "0.5.3", + "content-type": "~1.0.4", + "cookie": "0.4.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.5", + "qs": "6.7.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.1.2", + "send": "0.17.1", + "serve-static": "1.14.1", + "setprototypeof": "1.1.1", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", + "dev": true + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/ext": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", + "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==", + "dev": true, + "dependencies": { + "type": "^2.0.0" + } + }, + "node_modules/ext/node_modules/type": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/type/-/type-2.1.0.tgz", + "integrity": "sha512-G9absDWvhAWCV2gmF1zKud3OyC61nZDwWvBL2DApaVFogI07CprggiQAOOjvp2NRjYWFzPyu7vwtDrQFq8jeSA==", + "dev": true + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extend-shallow/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "dependencies": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/external-editor/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "dependencies": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true, + "engines": [ + "node >=0.6.0" + ] + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz", + "integrity": "sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.0", + "merge2": "^1.3.0", + "micromatch": "^4.0.2", + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fastparse": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", + "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.9.0.tgz", + "integrity": "sha512-i7FVWL8HhVY+CTkwFxkN2mk3h+787ixS5S63eb78diVRc1MCssarHq3W5cj0av7YDSwmaV928RNag+U1etRQ7w==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/faye-websocket": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", + "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", + "dev": true, + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/figgy-pudding": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", + "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", + "dev": true + }, + "node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/file-loader": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.0.0.tgz", + "integrity": "sha512-/aMOAYEFXDdjG0wytpTL5YQLfZnnTmLNjn+AIrJ/6HVnTfDqLsVKUUwkDf4I4kgex36BvjuXEn/TX9B/1ESyqQ==", + "dev": true, + "dependencies": { + "loader-utils": "^2.0.0", + "schema-utils": "^2.6.5" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true, + "optional": true + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/find-cache-dir": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", + "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", + "dev": true, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-cache-dir/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-cache-dir/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-cache-dir/node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-cache-dir/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-cache-dir/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-cache-dir/node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-cache-dir/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/flatted": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", + "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", + "dev": true + }, + "node_modules/flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + } + }, + "node_modules/follow-redirects": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.1.tgz", + "integrity": "sha512-SSG5xmZh1mkPGyKzjZP8zLjltIfpW32Y5QpdNJyjcfGxK3qo3NDDkZOZSFiGn1A6SclQxY9GzEwAHQ3dmYRWpg==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "dependencies": { + "map-cache": "^0.2.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "node_modules/fs-extra": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.2.tgz", + "integrity": "sha1-+RcExT0bRh+JNFKwwwfZmXZHq2s=", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/fs-write-stream-atomic": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/genfun": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/genfun/-/genfun-5.0.0.tgz", + "integrity": "sha512-KGDOARWVga7+rnB3z9Sd2Letx515owfk0hSxHGuqjANb1M+x2bGZGqHLiozPsYMdM2OubeMni/Hpwmjq6qIUhA==", + "dev": true + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.0.2.tgz", + "integrity": "sha512-aeX0vrFm21ILl3+JpFFRNe9aUvp6VFZb2/CTbgLb8j75kOhvoNYjt9d8KA/tJG4gSo8nzEDedRl0h7vDmBYRVg==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, + "node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0" + } + }, + "node_modules/glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/glob-parent": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/globby": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.1.tgz", + "integrity": "sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.1.1", + "ignore": "^5.1.4", + "merge2": "^1.3.0", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "dev": true + }, + "node_modules/handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", + "dev": true + }, + "node_modules/har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "dev": true, + "dependencies": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-binary2": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz", + "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==", + "dev": true, + "dependencies": { + "isarray": "2.0.1" + } + }, + "node_modules/has-binary2/node_modules/isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", + "dev": true + }, + "node_modules/has-cors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", + "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=", + "dev": true + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "dependencies": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "dependencies": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/hash-base/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/hash-base/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + }, + "node_modules/hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "node_modules/hex-color-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz", + "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==", + "dev": true + }, + "node_modules/hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "dev": true, + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/hosted-git-info": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.7.tgz", + "integrity": "sha512-fWqc0IcuXs+BmE9orLDyVykAG9GJtGLGuZAAqgcckPgv5xad4AcXGIv8galtQvlwutxSlaMcdw7BUtq2EIvqCQ==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "node_modules/hsl-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz", + "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=", + "dev": true + }, + "node_modules/hsla-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz", + "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=", + "dev": true + }, + "node_modules/html-comment-regex": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz", + "integrity": "sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==", + "dev": true + }, + "node_modules/html-entities": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.4.0.tgz", + "integrity": "sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA==", + "dev": true + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "node_modules/http-cache-semantics": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", + "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==", + "dev": true + }, + "node_modules/http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", + "dev": true + }, + "node_modules/http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "dev": true, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/http-errors/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dev": true, + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-proxy-agent": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz", + "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", + "dev": true, + "dependencies": { + "agent-base": "4", + "debug": "3.1.0" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/http-proxy-agent/node_modules/debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/http-proxy-agent/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/http-proxy-middleware": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz", + "integrity": "sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==", + "dev": true, + "dependencies": { + "http-proxy": "^1.17.0", + "is-glob": "^4.0.0", + "lodash": "^4.17.11", + "micromatch": "^3.1.10" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/http-proxy-middleware/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/http-proxy-middleware/node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/http-proxy-middleware/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/http-proxy-middleware/node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/http-proxy-middleware/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/http-proxy-middleware/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/http-proxy-middleware/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/http-proxy-middleware/node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + }, + "engines": { + "node": ">=0.8", + "npm": ">=1.3.7" + } + }, + "node_modules/https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", + "dev": true + }, + "node_modules/https-proxy-agent": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", + "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", + "dev": true, + "dependencies": { + "agent-base": "^4.3.0", + "debug": "^3.1.0" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/https-proxy-agent/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", + "dev": true, + "dependencies": { + "ms": "^2.0.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz", + "integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/icss-utils": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz", + "integrity": "sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA==", + "dev": true, + "dependencies": { + "postcss": "^7.0.14" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true + }, + "node_modules/iferr": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", + "dev": true + }, + "node_modules/ignore": { + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", + "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/ignore-walk": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz", + "integrity": "sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==", + "dev": true, + "dependencies": { + "minimatch": "^3.0.4" + } + }, + "node_modules/image-size": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", + "dev": true, + "optional": true, + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=", + "dev": true + }, + "node_modules/import-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz", + "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", + "dev": true, + "dependencies": { + "import-from": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", + "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", + "dev": true, + "dependencies": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/import-from": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz", + "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", + "dev": true, + "dependencies": { + "resolve-from": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/import-local": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", + "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", + "dev": true, + "dependencies": { + "pkg-dir": "^3.0.0", + "resolve-cwd": "^2.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/indexes-of": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", + "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", + "dev": true + }, + "node_modules/indexof": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", + "dev": true + }, + "node_modules/infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "dev": true + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/ini": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.6.tgz", + "integrity": "sha512-IZUoxEjNjubzrmvzZU4lKP7OnYmX72XRl3sqkfJhBKweKi5rnGi5+IUdlj/H1M+Ip5JQ1WzaDMOBRY90Ajc5jg==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/inquirer": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", + "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", + "dev": true, + "dependencies": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.19", + "mute-stream": "0.0.8", + "run-async": "^2.4.0", + "rxjs": "^6.6.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/inquirer/node_modules/ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/inquirer/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/inquirer/node_modules/chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/inquirer/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/inquirer/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/inquirer/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/inquirer/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/inquirer/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/inquirer/node_modules/string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/inquirer/node_modules/strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/inquirer/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/internal-ip": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", + "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==", + "dev": true, + "dependencies": { + "default-gateway": "^4.2.0", + "ipaddr.js": "^1.9.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/ip": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", + "dev": true + }, + "node_modules/ip-regex": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", + "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-absolute-url": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", + "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-arguments": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz", + "integrity": "sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "node_modules/is-callable": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz", + "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-color-stop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz", + "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=", + "dev": true, + "dependencies": { + "css-color-names": "^0.0.4", + "hex-color-regex": "^1.1.0", + "hsl-regex": "^1.0.0", + "hsla-regex": "^1.0.0", + "rgb-regex": "^1.0.1", + "rgba-regex": "^1.0.0" + } + }, + "node_modules/is-core-module": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", + "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + } + }, + "node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-date-object": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-descriptor/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", + "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-docker": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.1.1.tgz", + "integrity": "sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", + "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-path-in-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", + "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", + "dev": true, + "dependencies": { + "is-path-inside": "^2.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-path-inside": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", + "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", + "dev": true, + "dependencies": { + "path-is-inside": "^1.0.2" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-regex": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", + "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-resolvable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", + "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", + "dev": true + }, + "node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-svg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-3.0.0.tgz", + "integrity": "sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ==", + "dev": true, + "dependencies": { + "html-comment-regex": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "node_modules/is-what": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.12.0.tgz", + "integrity": "sha512-2ilQz5/f/o9V7WRWJQmpFYNmQFZ9iM+OXRonZKcYgTkCzjb949Vi4h282PD1UfmgHk666rcWonbRJ++KI41VGw==", + "dev": true + }, + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "node_modules/isbinaryfile": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.6.tgz", + "integrity": "sha512-ORrEy+SNVqUhrCaal4hA4fBzhggQQ+BaLntyPOdoEiwlKZW9BZiJXjg3RMiruE4tPEI3pyVPpySHQF/dKWperg==", + "dev": true, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", + "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", + "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", + "dev": true, + "dependencies": { + "@babel/core": "^7.7.5", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.0.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report/node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/istanbul-lib-report/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz", + "integrity": "sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^2.0.5", + "make-dir": "^2.1.0", + "rimraf": "^2.6.3", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/istanbul-lib-coverage": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz", + "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-reports": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz", + "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==", + "dev": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jasmine": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-2.8.0.tgz", + "integrity": "sha1-awicChFXax8W3xG4AUbZHU6Lij4=", + "dev": true, + "dependencies": { + "exit": "^0.1.2", + "glob": "^7.0.6", + "jasmine-core": "~2.8.0" + }, + "bin": { + "jasmine": "bin/jasmine.js" + } + }, + "node_modules/jasmine-core": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-3.6.0.tgz", + "integrity": "sha512-8uQYa7zJN8hq9z+g8z1bqCfdC8eoDAeVnM5sfqs7KHv9/ifoJ500m018fpFc7RDaO6SWCLCXwo/wPSNcdYTgcw==", + "dev": true + }, + "node_modules/jasmine-spec-reporter": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/jasmine-spec-reporter/-/jasmine-spec-reporter-5.0.2.tgz", + "integrity": "sha512-6gP1LbVgJ+d7PKksQBc2H0oDGNRQI3gKUsWlswKaQ2fif9X5gzhQcgM5+kiJGCQVurOG09jqNhk7payggyp5+g==", + "dev": true, + "dependencies": { + "colors": "1.4.0" + } + }, + "node_modules/jasmine/node_modules/jasmine-core": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.8.0.tgz", + "integrity": "sha1-vMl5rh+f0FcB5F5S5l06XWPxok4=", + "dev": true + }, + "node_modules/jasminewd2": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/jasminewd2/-/jasminewd2-2.2.0.tgz", + "integrity": "sha1-43zwsX8ZnM4jvqcbIDk5Uka07E4=", + "dev": true, + "engines": { + "node": ">= 6.9.x" + } + }, + "node_modules/jest-worker": { + "version": "26.3.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.3.0.tgz", + "integrity": "sha512-Vmpn2F6IASefL+DVBhPzI2J9/GJUsqzomdeN+P+dK8/jKxbh8R3BtFnx3FIta7wYlPU62cpJMJQo4kuOowcMnw==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jquery": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.5.1.tgz", + "integrity": "sha512-XwIBPqcMn57FxfT+Go5pzySnm4KWkT1Tv7gjrpT1srtf8Weynl6R273VJ5GjkRb51IzMp5nbaPjJXMWeju2MKg==" + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, + "node_modules/json3": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz", + "integrity": "sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==", + "dev": true + }, + "node_modules/json5": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", + "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonc-parser": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-2.3.0.tgz", + "integrity": "sha512-b0EBt8SWFNnixVdvoR2ZtEGa9ZqLhbJnOjezn+WP+8kspFm+PFYDN8Z4Bc7pRlDjvuVcADSUkroIuTWWn/YiIA==", + "dev": true + }, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", + "dev": true, + "engines": [ + "node >= 0.2.0" + ] + }, + "node_modules/JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "dev": true, + "dependencies": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + }, + "bin": { + "JSONStream": "bin.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "node_modules/jszip": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.5.0.tgz", + "integrity": "sha512-WRtu7TPCmYePR1nazfrtuF216cIVon/3GWOvHS9QR5bIwSbnxtdpma6un3jyGGNhHsKCSzn5Ypk+EkDRvTGiFA==", + "dev": true, + "dependencies": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "set-immediate-shim": "~1.0.1" + } + }, + "node_modules/karma": { + "version": "5.0.9", + "resolved": "https://registry.npmjs.org/karma/-/karma-5.0.9.tgz", + "integrity": "sha512-dUA5z7Lo7G4FRSe1ZAXqOINEEWxmCjDBbfRBmU/wYlSMwxUQJP/tEEP90yJt3Uqo03s9rCgVnxtlfq+uDhxSPg==", + "dev": true, + "dependencies": { + "body-parser": "^1.19.0", + "braces": "^3.0.2", + "chokidar": "^3.0.0", + "colors": "^1.4.0", + "connect": "^3.7.0", + "di": "^0.0.1", + "dom-serialize": "^2.2.1", + "flatted": "^2.0.2", + "glob": "^7.1.6", + "graceful-fs": "^4.2.4", + "http-proxy": "^1.18.1", + "isbinaryfile": "^4.0.6", + "lodash": "^4.17.15", + "log4js": "^6.2.1", + "mime": "^2.4.5", + "minimatch": "^3.0.4", + "qjobs": "^1.2.0", + "range-parser": "^1.2.1", + "rimraf": "^3.0.2", + "socket.io": "^2.3.0", + "source-map": "^0.6.1", + "tmp": "0.2.1", + "ua-parser-js": "0.7.21", + "yargs": "^15.3.1" + }, + "bin": { + "karma": "bin/karma" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/karma-chrome-launcher": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.1.0.tgz", + "integrity": "sha512-3dPs/n7vgz1rxxtynpzZTvb9y/GIaW8xjAwcIGttLbycqoFtI7yo1NGnQi6oFTherRE+GIhCAHZC4vEqWGhNvg==", + "dev": true, + "dependencies": { + "which": "^1.2.1" + } + }, + "node_modules/karma-coverage-istanbul-reporter": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/karma-coverage-istanbul-reporter/-/karma-coverage-istanbul-reporter-3.0.3.tgz", + "integrity": "sha512-wE4VFhG/QZv2Y4CdAYWDbMmcAHeS926ZIji4z+FkB2aF/EposRb6DP6G5ncT/wXhqUfAb/d7kZrNKPonbvsATw==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^3.0.6", + "istanbul-reports": "^3.0.2", + "minimatch": "^3.0.4" + } + }, + "node_modules/karma-jasmine": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-4.0.1.tgz", + "integrity": "sha512-h8XDAhTiZjJKzfkoO1laMH+zfNlra+dEQHUAjpn5JV1zCPtOIVWGQjLBrqhnzQa/hrU2XrZwSyBa6XjEBzfXzw==", + "dev": true, + "dependencies": { + "jasmine-core": "^3.6.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/karma-jasmine-html-reporter": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-1.5.4.tgz", + "integrity": "sha512-PtilRLno5O6wH3lDihRnz0Ba8oSn0YUJqKjjux1peoYGwo0AQqrWRbdWk/RLzcGlb+onTyXAnHl6M+Hu3UxG/Q==", + "dev": true + }, + "node_modules/karma-source-map-support": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.4.0.tgz", + "integrity": "sha512-RsBECncGO17KAoJCYXjv+ckIz+Ii9NCi+9enk+rq6XC81ezYkb4/RHE6CTXdA7IOJqoF3wcaLfVG0CPmE5ca6A==", + "dev": true, + "dependencies": { + "source-map-support": "^0.5.5" + } + }, + "node_modules/karma/node_modules/ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/karma/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/karma/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/karma/node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/karma/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/karma/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/karma/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/karma/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/karma/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/karma/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/karma/node_modules/mime": { + "version": "2.4.7", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.7.tgz", + "integrity": "sha512-dhNd1uA2u397uQk3Nv5LM4lm93WYDUXFn3Fu291FJerns4jyTudqhIWe4W04YLy7Uk1tm1Ore04NpjRvQp/NPA==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/karma/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/karma/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/karma/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/karma/node_modules/string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/karma/node_modules/strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/karma/node_modules/tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "dev": true, + "dependencies": { + "rimraf": "^3.0.0" + }, + "engines": { + "node": ">=8.17.0" + } + }, + "node_modules/karma/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/karma/node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/karma/node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/killable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", + "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==", + "dev": true + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/klona": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.4.tgz", + "integrity": "sha512-ZRbnvdg/NxqzC7L9Uyqzf4psi1OM4Cuc+sJAkQPjO6XkQIJTNbfK2Rsmbw8fx1p2mkZdp2FZYo2+LwXYY/uwIA==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/leaflet": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/leaflet/-/leaflet-1.3.4.tgz", + "integrity": "sha512-FYL1LGFdj6v+2Ifpw+AcFIuIOqjNggfoLUwuwQv6+3sS21Za7Wvapq+LhbSE4NDXrEj6eYnW3y7LsaBICpyXtw==" + }, + "node_modules/leaflet.heat": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/leaflet.heat/-/leaflet.heat-0.2.0.tgz", + "integrity": "sha1-EJ2M9Ybwre5B8Fr/Ax4np3/swik=" + }, + "node_modules/leaflet.markercluster": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/leaflet.markercluster/-/leaflet.markercluster-1.4.1.tgz", + "integrity": "sha512-ZSEpE/EFApR0bJ1w/dUGwTSUvWlpalKqIzkaYdYB7jaftQA/Y2Jav+eT4CMtEYFj+ZK4mswP13Q2acnPBnhGOw==" + }, + "node_modules/less": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/less/-/less-3.13.1.tgz", + "integrity": "sha512-SwA1aQXGUvp+P5XdZslUOhhLnClSLIjWvJhmd+Vgib5BFIr9lMNlQwmwUNOjXThF/A0x+MCYYPeWEfeWiLRnTw==", + "dev": true, + "dependencies": { + "copy-anything": "^2.0.1", + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "make-dir": "^2.1.0", + "mime": "^1.4.1", + "native-request": "^1.0.5", + "source-map": "~0.6.0", + "tslib": "^1.10.0" + }, + "bin": { + "lessc": "bin/lessc" + }, + "engines": { + "node": ">=6" + }, + "optionalDependencies": { + "image-size": "~0.5.0", + "native-request": "^1.0.5", + "source-map": "~0.6.0" + } + }, + "node_modules/less-loader": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-6.2.0.tgz", + "integrity": "sha512-Cl5h95/Pz/PWub/tCBgT1oNMFeH1WTD33piG80jn5jr12T4XbxZcjThwNXDQ7AG649WEynuIzO4b0+2Tn9Qolg==", + "dev": true, + "dependencies": { + "clone": "^2.1.2", + "less": "^3.11.3", + "loader-utils": "^2.0.0", + "schema-utils": "^2.7.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/less/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/less/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/levenary": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/levenary/-/levenary-1.1.1.tgz", + "integrity": "sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ==", + "dev": true, + "dependencies": { + "leven": "^3.1.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/license-webpack-plugin": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-2.3.0.tgz", + "integrity": "sha512-JK/DXrtN6UeYQSgkg5q1+pgJ8aiKPL9tnz9Wzw+Ikkf+8mJxG56x6t8O+OH/tAeF/5NREnelTEMyFtbJNkjH4w==", + "dev": true, + "dependencies": { + "@types/webpack-sources": "^0.1.5", + "webpack-sources": "^1.2.0" + } + }, + "node_modules/lie": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "dev": true, + "dependencies": { + "immediate": "~3.0.5" + } + }, + "node_modules/loader-runner": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", + "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", + "dev": true, + "engines": { + "node": ">=4.3.0 <5.0.0 || >=5.10" + } + }, + "node_modules/loader-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", + "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/lodash": { + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", + "dev": true + }, + "node_modules/lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", + "dev": true + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "dev": true + }, + "node_modules/lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", + "dev": true + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", + "dev": true + }, + "node_modules/log-symbols": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz", + "integrity": "sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/log-symbols/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/log-symbols/node_modules/chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/log-symbols/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/log-symbols/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/log-symbols/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/log-symbols/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/log4js": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.3.0.tgz", + "integrity": "sha512-Mc8jNuSFImQUIateBFwdOQcmC6Q5maU0VVvdC2R6XMb66/VnT+7WS4D/0EeNMZu1YODmJe5NIn2XftCzEocUgw==", + "dev": true, + "dependencies": { + "date-format": "^3.0.0", + "debug": "^4.1.1", + "flatted": "^2.0.1", + "rfdc": "^1.1.4", + "streamroller": "^2.2.4" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/loglevel": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.7.1.tgz", + "integrity": "sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw==", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/magic-string": { + "version": "0.25.7", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", + "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", + "dev": true, + "dependencies": { + "sourcemap-codec": "^1.4.4" + } + }, + "node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "node_modules/make-fetch-happen": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-5.0.2.tgz", + "integrity": "sha512-07JHC0r1ykIoruKO8ifMXu+xEU8qOXDFETylktdug6vJDACnP+HKevOu3PXyNPzFyTSlz8vrBYlBO1JZRe8Cag==", + "dev": true, + "dependencies": { + "agentkeepalive": "^3.4.1", + "cacache": "^12.0.0", + "http-cache-semantics": "^3.8.1", + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^2.2.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "node-fetch-npm": "^2.0.2", + "promise-retry": "^1.1.1", + "socks-proxy-agent": "^4.0.0", + "ssri": "^6.0.0" + } + }, + "node_modules/make-fetch-happen/node_modules/cacache": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", + "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", + "dev": true, + "dependencies": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } + }, + "node_modules/make-fetch-happen/node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, + "node_modules/make-fetch-happen/node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/make-fetch-happen/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/make-fetch-happen/node_modules/ssri": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", + "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "dev": true, + "dependencies": { + "figgy-pudding": "^3.5.1" + } + }, + "node_modules/make-fetch-happen/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "dependencies": { + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dev": true, + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/mdn-data": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", + "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==", + "dev": true + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memory-fs": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", + "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", + "dev": true, + "dependencies": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + }, + "engines": { + "node": ">=4.3.0 <5.0.0 || >=5.10" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", + "dev": true + }, + "node_modules/merge-source-map": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", + "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", + "dev": true, + "dependencies": { + "source-map": "^0.6.1" + } + }, + "node_modules/merge-source-map/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "dev": true, + "dependencies": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dev": true, + "dependencies": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "bin": { + "miller-rabin": "bin/miller-rabin" + } + }, + "node_modules/miller-rabin/node_modules/bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", + "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.27", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", + "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", + "dev": true, + "dependencies": { + "mime-db": "1.44.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/mini-css-extract-plugin": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.10.0.tgz", + "integrity": "sha512-QgKgJBjaJhxVPwrLNqqwNS0AGkuQQ31Hp4xGXEK/P7wehEg6qmNtReHKai3zRXqY60wGVWLYcOMJK2b98aGc3A==", + "dev": true, + "dependencies": { + "loader-utils": "^1.1.0", + "normalize-url": "1.9.1", + "schema-utils": "^1.0.0", + "webpack-sources": "^1.1.0" + }, + "engines": { + "node": ">= 6.9.0" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/normalize-url": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", + "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", + "dev": true, + "dependencies": { + "object-assign": "^4.0.1", + "prepend-http": "^1.0.0", + "query-string": "^4.1.0", + "sort-keys": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "dependencies": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", + "dev": true + }, + "node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "node_modules/minipass": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", + "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/mississippi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", + "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", + "dev": true, + "dependencies": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, + "dependencies": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mixin-deep/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", + "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", + "dev": true, + "dependencies": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + } + }, + "node_modules/move-concurrently/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/multicast-dns": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", + "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", + "dev": true, + "dependencies": { + "dns-packet": "^1.3.1", + "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" + } + }, + "node_modules/multicast-dns-service-types": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", + "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", + "dev": true + }, + "node_modules/mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true + }, + "node_modules/nan": { + "version": "2.14.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", + "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==", + "dev": true, + "optional": true + }, + "node_modules/nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/native-request": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/native-request/-/native-request-1.0.8.tgz", + "integrity": "sha512-vU2JojJVelUGp6jRcLwToPoWGxSx23z/0iX+I77J3Ht17rf2INGjrhOoQnjVo60nQd8wVsgzKkPfRXBiVdD2ag==", + "dev": true, + "optional": true + }, + "node_modules/negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "node_modules/next-tick": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", + "dev": true + }, + "node_modules/ng-apexcharts": { + "version": "1.5.6", + "resolved": "https://registry.npmjs.org/ng-apexcharts/-/ng-apexcharts-1.5.6.tgz", + "integrity": "sha512-78vmZvrT9iqfZXE00+T8NTvR+EHV0wo4qqf0Zfu1/2KiwazCU9S5EROcmgqMQ1eCO7Sz4GiR19rLTMdtWL/WmQ==", + "dependencies": { + "tslib": "^1.10.0" + } + }, + "node_modules/ng-apexcharts/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "node_modules/node-fetch-npm": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/node-fetch-npm/-/node-fetch-npm-2.0.4.tgz", + "integrity": "sha512-iOuIQDWDyjhv9qSDrj9aq/klt6F9z1p2otB3AV7v3zBDcL/x+OfGsvGQZZCcMZbUf4Ujw1xGNQkjvGnVT22cKg==", + "dev": true, + "dependencies": { + "encoding": "^0.1.11", + "json-parse-better-errors": "^1.0.0", + "safe-buffer": "^5.1.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/node-forge": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", + "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==", + "dev": true, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/node-libs-browser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", + "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", + "dev": true, + "dependencies": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.1", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "^1.0.1" + } + }, + "node_modules/node-libs-browser/node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + }, + "node_modules/node-releases": { + "version": "1.1.67", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.67.tgz", + "integrity": "sha512-V5QF9noGFl3EymEwUYzO+3NTDpGfQB4ve6Qfnzf3UNydMhjQRVPR1DZTuvWiLzaFJYw2fmDwAfnRNEVb64hSIg==", + "dev": true + }, + "node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/normalize-package-data/node_modules/hosted-git-info": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", + "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", + "dev": true + }, + "node_modules/normalize-package-data/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz", + "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/npm-bundled": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.1.tgz", + "integrity": "sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA==", + "dev": true, + "dependencies": { + "npm-normalize-package-bin": "^1.0.1" + } + }, + "node_modules/npm-install-checks": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-4.0.0.tgz", + "integrity": "sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w==", + "dev": true, + "dependencies": { + "semver": "^7.1.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm-normalize-package-bin": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", + "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", + "dev": true + }, + "node_modules/npm-package-arg": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.0.1.tgz", + "integrity": "sha512-/h5Fm6a/exByzFSTm7jAyHbgOqErl9qSNJDQF32Si/ZzgwT2TERVxRxn3Jurw1wflgyVVAxnFR4fRHPM7y1ClQ==", + "dev": true, + "dependencies": { + "hosted-git-info": "^3.0.2", + "semver": "^7.0.0", + "validate-npm-package-name": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm-packlist": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz", + "integrity": "sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==", + "dev": true, + "dependencies": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1", + "npm-normalize-package-bin": "^1.0.1" + } + }, + "node_modules/npm-pick-manifest": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-6.1.0.tgz", + "integrity": "sha512-ygs4k6f54ZxJXrzT0x34NybRlLeZ4+6nECAIbr2i0foTnijtS1TJiyzpqtuUAJOps/hO0tNDr8fRV5g+BtRlTw==", + "dev": true, + "dependencies": { + "npm-install-checks": "^4.0.0", + "npm-package-arg": "^8.0.0", + "semver": "^7.0.0" + } + }, + "node_modules/npm-registry-fetch": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-4.0.7.tgz", + "integrity": "sha512-cny9v0+Mq6Tjz+e0erFAB+RYJ/AVGzkjnISiobqP8OWj9c9FLoZZu8/SPSKJWE17F1tk4018wfjV+ZbIbqC7fQ==", + "dev": true, + "dependencies": { + "bluebird": "^3.5.1", + "figgy-pudding": "^3.4.1", + "JSONStream": "^1.3.4", + "lru-cache": "^5.1.1", + "make-fetch-happen": "^5.0.0", + "npm-package-arg": "^6.1.0", + "safe-buffer": "^5.2.0" + } + }, + "node_modules/npm-registry-fetch/node_modules/hosted-git-info": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", + "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", + "dev": true + }, + "node_modules/npm-registry-fetch/node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/npm-registry-fetch/node_modules/npm-package-arg": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.1.tgz", + "integrity": "sha512-qBpssaL3IOZWi5vEKUKW0cO7kzLeT+EQO9W8RsLOZf76KF9E/K9+wH0C7t06HXPpaH8WH5xF1MExLuCwbTqRUg==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.7.1", + "osenv": "^0.1.5", + "semver": "^5.6.0", + "validate-npm-package-name": "^3.0.0" + } + }, + "node_modules/npm-registry-fetch/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + }, + "node_modules/npm-registry-fetch/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/npm-registry-fetch/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, + "dependencies": { + "path-key": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/nth-check": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", + "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", + "dev": true, + "dependencies": { + "boolbase": "~1.0.0" + } + }, + "node_modules/num2fraction": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", + "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", + "dev": true + }, + "node_modules/oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-component": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", + "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=", + "dev": true + }, + "node_modules/object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "dependencies": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz", + "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==", + "dev": true + }, + "node_modules/object-is": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.4.tgz", + "integrity": "sha512-1ZvAZ4wlF7IyPVOcE1Omikt7UpaFlOQq0HlSti+ZvDH3UiD2brwGMwDbyV43jao2bKJ+4+WdPJHSd7kgzKYVqg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "dependencies": { + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.getownpropertydescriptors": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.1.tgz", + "integrity": "sha512-6DtXgZ/lIZ9hqx4GtZETobXLR/ZLaa0aqV0kzbn80Rf8Z2e/XFnhA0I7p07N2wH8bBBltr2xQPi6sbKWAY2Eng==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.values": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.2.tgz", + "integrity": "sha512-MYC0jvJopr8EK6dPBiO8Nb9mvjdypOachO5REGk6MXzujbBrAisKo3HmdEI6kZDL6fC31Mwee/5YbtMebixeag==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1", + "has": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "dev": true + }, + "node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "dev": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/open": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/open/-/open-7.2.0.tgz", + "integrity": "sha512-4HeyhxCvBTI5uBePsAdi55C5fmqnWZ2e2MlmvWi5KW5tdH5rxoiv/aMtbeVxKZc3eWkT1GymMnLG8XC4Rq4TDQ==", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/opn": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", + "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==", + "dev": true, + "dependencies": { + "is-wsl": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/opn/node_modules/is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/ora": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.0.0.tgz", + "integrity": "sha512-s26qdWqke2kjN/wC4dy+IQPBIMWBJlSU/0JZhk30ZDBLelW25rv66yutUWARMigpGPzcXHb+Nac5pNhN/WsARw==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.4.0", + "is-interactive": "^1.0.0", + "log-symbols": "^4.0.0", + "mute-stream": "0.0.8", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ora/node_modules/ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ora/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ora/node_modules/chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ora/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/ora/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/ora/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ora/node_modules/strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ora/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/original": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz", + "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==", + "dev": true, + "dependencies": { + "url-parse": "^1.4.3" + } + }, + "node_modules/os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", + "dev": true + }, + "node_modules/os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "dev": true, + "dependencies": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/p-retry": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz", + "integrity": "sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==", + "dev": true, + "dependencies": { + "retry": "^0.12.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pacote": { + "version": "9.5.12", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-9.5.12.tgz", + "integrity": "sha512-BUIj/4kKbwWg4RtnBncXPJd15piFSVNpTzY0rysSr3VnMowTYgkGKcaHrbReepAkjTr8lH2CVWRi58Spg2CicQ==", + "dev": true, + "dependencies": { + "bluebird": "^3.5.3", + "cacache": "^12.0.2", + "chownr": "^1.1.2", + "figgy-pudding": "^3.5.1", + "get-stream": "^4.1.0", + "glob": "^7.1.3", + "infer-owner": "^1.0.4", + "lru-cache": "^5.1.1", + "make-fetch-happen": "^5.0.0", + "minimatch": "^3.0.4", + "minipass": "^2.3.5", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "normalize-package-data": "^2.4.0", + "npm-normalize-package-bin": "^1.0.0", + "npm-package-arg": "^6.1.0", + "npm-packlist": "^1.1.12", + "npm-pick-manifest": "^3.0.0", + "npm-registry-fetch": "^4.0.0", + "osenv": "^0.1.5", + "promise-inflight": "^1.0.1", + "promise-retry": "^1.1.1", + "protoduck": "^5.0.1", + "rimraf": "^2.6.2", + "safe-buffer": "^5.1.2", + "semver": "^5.6.0", + "ssri": "^6.0.1", + "tar": "^4.4.10", + "unique-filename": "^1.1.1", + "which": "^1.3.1" + } + }, + "node_modules/pacote/node_modules/cacache": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", + "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", + "dev": true, + "dependencies": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } + }, + "node_modules/pacote/node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, + "node_modules/pacote/node_modules/fs-minipass": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", + "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", + "dev": true, + "dependencies": { + "minipass": "^2.6.0" + } + }, + "node_modules/pacote/node_modules/hosted-git-info": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", + "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", + "dev": true + }, + "node_modules/pacote/node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/pacote/node_modules/minipass": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", + "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "node_modules/pacote/node_modules/minizlib": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", + "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", + "dev": true, + "dependencies": { + "minipass": "^2.9.0" + } + }, + "node_modules/pacote/node_modules/npm-package-arg": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.1.tgz", + "integrity": "sha512-qBpssaL3IOZWi5vEKUKW0cO7kzLeT+EQO9W8RsLOZf76KF9E/K9+wH0C7t06HXPpaH8WH5xF1MExLuCwbTqRUg==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.7.1", + "osenv": "^0.1.5", + "semver": "^5.6.0", + "validate-npm-package-name": "^3.0.0" + } + }, + "node_modules/pacote/node_modules/npm-pick-manifest": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-3.0.2.tgz", + "integrity": "sha512-wNprTNg+X5nf+tDi+hbjdHhM4bX+mKqv6XmPh7B5eG+QY9VARfQPfCEH013H5GqfNj6ee8Ij2fg8yk0mzps1Vw==", + "dev": true, + "dependencies": { + "figgy-pudding": "^3.5.1", + "npm-package-arg": "^6.0.0", + "semver": "^5.4.1" + } + }, + "node_modules/pacote/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/pacote/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/pacote/node_modules/ssri": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", + "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "dev": true, + "dependencies": { + "figgy-pudding": "^3.5.1" + } + }, + "node_modules/pacote/node_modules/tar": { + "version": "4.4.13", + "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz", + "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==", + "dev": true, + "dependencies": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.8.6", + "minizlib": "^1.2.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.3" + }, + "engines": { + "node": ">=4.5" + } + }, + "node_modules/pacote/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "dev": true + }, + "node_modules/parallel-transform": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", + "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", + "dev": true, + "dependencies": { + "cyclist": "^1.0.1", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + } + }, + "node_modules/parse-asn1": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", + "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", + "dev": true, + "dependencies": { + "asn1.js": "^5.2.0", + "browserify-aes": "^1.0.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true + }, + "node_modules/parse5-htmlparser2-tree-adapter": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", + "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", + "dev": true, + "dependencies": { + "parse5": "^6.0.1" + } + }, + "node_modules/parseqs": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", + "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", + "dev": true, + "dependencies": { + "better-assert": "~1.0.0" + } + }, + "node_modules/parseuri": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", + "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", + "dev": true, + "dependencies": { + "better-assert": "~1.0.0" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", + "dev": true + }, + "node_modules/path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, + "node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "dev": true + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", + "dev": true + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/pbkdf2": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", + "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==", + "dev": true, + "dependencies": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "dev": true, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "dependencies": { + "pinkie": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "dependencies": { + "find-up": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pnp-webpack-plugin": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz", + "integrity": "sha512-7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg==", + "dev": true, + "dependencies": { + "ts-pnp": "^1.1.6" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/portfinder": { + "version": "1.0.28", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", + "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", + "dev": true, + "dependencies": { + "async": "^2.6.2", + "debug": "^3.1.1", + "mkdirp": "^0.5.5" + }, + "engines": { + "node": ">= 0.12.0" + } + }, + "node_modules/portfinder/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss": { + "version": "7.0.32", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.32.tgz", + "integrity": "sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw==", + "dev": true, + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-calc": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.5.tgz", + "integrity": "sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg==", + "dev": true, + "dependencies": { + "postcss": "^7.0.27", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.0.2" + } + }, + "node_modules/postcss-colormin": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz", + "integrity": "sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==", + "dev": true, + "dependencies": { + "browserslist": "^4.0.0", + "color": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-colormin/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-convert-values": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz", + "integrity": "sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==", + "dev": true, + "dependencies": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-convert-values/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-discard-comments": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz", + "integrity": "sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==", + "dev": true, + "dependencies": { + "postcss": "^7.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-discard-duplicates": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz", + "integrity": "sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==", + "dev": true, + "dependencies": { + "postcss": "^7.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-discard-empty": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz", + "integrity": "sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==", + "dev": true, + "dependencies": { + "postcss": "^7.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-discard-overridden": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz", + "integrity": "sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==", + "dev": true, + "dependencies": { + "postcss": "^7.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-import": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-12.0.1.tgz", + "integrity": "sha512-3Gti33dmCjyKBgimqGxL3vcV8w9+bsHwO5UrBawp796+jdardbcFl4RP5w/76BwNL7aGzpKstIfF9I+kdE8pTw==", + "dev": true, + "dependencies": { + "postcss": "^7.0.1", + "postcss-value-parser": "^3.2.3", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-import/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-load-config": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.2.tgz", + "integrity": "sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw==", + "dev": true, + "dependencies": { + "cosmiconfig": "^5.0.0", + "import-cwd": "^2.0.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/postcss-loader": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-3.0.0.tgz", + "integrity": "sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA==", + "dev": true, + "dependencies": { + "loader-utils": "^1.1.0", + "postcss": "^7.0.0", + "postcss-load-config": "^2.0.0", + "schema-utils": "^1.0.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/postcss-loader/node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/postcss-loader/node_modules/loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/postcss-loader/node_modules/schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "dependencies": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/postcss-merge-longhand": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz", + "integrity": "sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==", + "dev": true, + "dependencies": { + "css-color-names": "0.0.4", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "stylehacks": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-merge-longhand/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-merge-rules": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz", + "integrity": "sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==", + "dev": true, + "dependencies": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "cssnano-util-same-parent": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0", + "vendors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-merge-rules/node_modules/postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "dev": true, + "dependencies": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/postcss-minify-font-values": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz", + "integrity": "sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==", + "dev": true, + "dependencies": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-minify-font-values/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-minify-gradients": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz", + "integrity": "sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==", + "dev": true, + "dependencies": { + "cssnano-util-get-arguments": "^4.0.0", + "is-color-stop": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-minify-gradients/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-minify-params": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz", + "integrity": "sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==", + "dev": true, + "dependencies": { + "alphanum-sort": "^1.0.0", + "browserslist": "^4.0.0", + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "uniqs": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-minify-params/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-minify-selectors": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz", + "integrity": "sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==", + "dev": true, + "dependencies": { + "alphanum-sort": "^1.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-minify-selectors/node_modules/postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "dev": true, + "dependencies": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/postcss-modules-extract-imports": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz", + "integrity": "sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ==", + "dev": true, + "dependencies": { + "postcss": "^7.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz", + "integrity": "sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw==", + "dev": true, + "dependencies": { + "icss-utils": "^4.1.1", + "postcss": "^7.0.32", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/postcss-modules-scope": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz", + "integrity": "sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ==", + "dev": true, + "dependencies": { + "postcss": "^7.0.6", + "postcss-selector-parser": "^6.0.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/postcss-modules-values": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz", + "integrity": "sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg==", + "dev": true, + "dependencies": { + "icss-utils": "^4.0.0", + "postcss": "^7.0.6" + } + }, + "node_modules/postcss-normalize-charset": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz", + "integrity": "sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==", + "dev": true, + "dependencies": { + "postcss": "^7.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-display-values": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz", + "integrity": "sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==", + "dev": true, + "dependencies": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-display-values/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-normalize-positions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz", + "integrity": "sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==", + "dev": true, + "dependencies": { + "cssnano-util-get-arguments": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-positions/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-normalize-repeat-style": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz", + "integrity": "sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==", + "dev": true, + "dependencies": { + "cssnano-util-get-arguments": "^4.0.0", + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-repeat-style/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-normalize-string": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz", + "integrity": "sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==", + "dev": true, + "dependencies": { + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-string/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-normalize-timing-functions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz", + "integrity": "sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==", + "dev": true, + "dependencies": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-timing-functions/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-normalize-unicode": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz", + "integrity": "sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==", + "dev": true, + "dependencies": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-unicode/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-normalize-url": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz", + "integrity": "sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==", + "dev": true, + "dependencies": { + "is-absolute-url": "^2.0.0", + "normalize-url": "^3.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-url/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-normalize-whitespace": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz", + "integrity": "sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==", + "dev": true, + "dependencies": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-whitespace/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-ordered-values": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz", + "integrity": "sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==", + "dev": true, + "dependencies": { + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-ordered-values/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-reduce-initial": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz", + "integrity": "sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==", + "dev": true, + "dependencies": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-reduce-transforms": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz", + "integrity": "sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==", + "dev": true, + "dependencies": { + "cssnano-util-get-match": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-reduce-transforms/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz", + "integrity": "sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-svgo": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.2.tgz", + "integrity": "sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw==", + "dev": true, + "dependencies": { + "is-svg": "^3.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "svgo": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-svgo/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-unique-selectors": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz", + "integrity": "sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==", + "dev": true, + "dependencies": { + "alphanum-sort": "^1.0.0", + "postcss": "^7.0.0", + "uniqs": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", + "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", + "dev": true + }, + "node_modules/postcss/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "node_modules/promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", + "dev": true + }, + "node_modules/promise-retry": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-1.1.1.tgz", + "integrity": "sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=", + "dev": true, + "dependencies": { + "err-code": "^1.0.0", + "retry": "^0.10.0" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/promise-retry/node_modules/retry": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", + "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/protoduck": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/protoduck/-/protoduck-5.0.1.tgz", + "integrity": "sha512-WxoCeDCoCBY55BMvj4cAEjdVUFGRWed9ZxPlqTKYyw1nDDTQ4pqmnIMAGfJlg7Dx35uB/M+PHJPTmGOvaCaPTg==", + "dev": true, + "dependencies": { + "genfun": "^5.0.0" + } + }, + "node_modules/protractor": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/protractor/-/protractor-7.0.0.tgz", + "integrity": "sha512-UqkFjivi4GcvUQYzqGYNe0mLzfn5jiLmO8w9nMhQoJRLhy2grJonpga2IWhI6yJO30LibWXJJtA4MOIZD2GgZw==", + "dev": true, + "dependencies": { + "@types/q": "^0.0.32", + "@types/selenium-webdriver": "^3.0.0", + "blocking-proxy": "^1.0.0", + "browserstack": "^1.5.1", + "chalk": "^1.1.3", + "glob": "^7.0.3", + "jasmine": "2.8.0", + "jasminewd2": "^2.1.0", + "q": "1.4.1", + "saucelabs": "^1.5.0", + "selenium-webdriver": "3.6.0", + "source-map-support": "~0.4.0", + "webdriver-js-extender": "2.1.0", + "webdriver-manager": "^12.1.7", + "yargs": "^15.3.1" + }, + "bin": { + "protractor": "bin/protractor", + "webdriver-manager": "bin/webdriver-manager" + }, + "engines": { + "node": ">=10.13.x" + } + }, + "node_modules/protractor/node_modules/@types/q": { + "version": "0.0.32", + "resolved": "https://registry.npmjs.org/@types/q/-/q-0.0.32.tgz", + "integrity": "sha1-vShOV8hPEyXacCur/IKlMoGQwMU=", + "dev": true + }, + "node_modules/protractor/node_modules/ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/protractor/node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/protractor/node_modules/array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, + "dependencies": { + "array-uniq": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/protractor/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/protractor/node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "dependencies": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/protractor/node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/protractor/node_modules/cliui/node_modules/strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/protractor/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/protractor/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/protractor/node_modules/del": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", + "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", + "dev": true, + "dependencies": { + "globby": "^5.0.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "rimraf": "^2.2.8" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/protractor/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/protractor/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/protractor/node_modules/globby": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", + "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", + "dev": true, + "dependencies": { + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/protractor/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/protractor/node_modules/is-path-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", + "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/protractor/node_modules/is-path-in-cwd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", + "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", + "dev": true, + "dependencies": { + "is-path-inside": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/protractor/node_modules/is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "dev": true, + "dependencies": { + "path-is-inside": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/protractor/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/protractor/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/protractor/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/protractor/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/protractor/node_modules/q": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz", + "integrity": "sha1-VXBbzZPF82c1MMLCy8DCs63cKG4=", + "dev": true, + "engines": { + "node": ">=0.6.0", + "teleport": ">=0.2.0" + } + }, + "node_modules/protractor/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/protractor/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/protractor/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/protractor/node_modules/source-map-support": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "dev": true, + "dependencies": { + "source-map": "^0.5.6" + } + }, + "node_modules/protractor/node_modules/string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/protractor/node_modules/string-width/node_modules/strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/protractor/node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/protractor/node_modules/webdriver-manager": { + "version": "12.1.7", + "resolved": "https://registry.npmjs.org/webdriver-manager/-/webdriver-manager-12.1.7.tgz", + "integrity": "sha512-XINj6b8CYuUYC93SG3xPkxlyUc3IJbD6Vvo75CVGuG9uzsefDzWQrhz0Lq8vbPxtb4d63CZdYophF8k8Or/YiA==", + "dev": true, + "dependencies": { + "adm-zip": "^0.4.9", + "chalk": "^1.1.1", + "del": "^2.2.0", + "glob": "^7.0.3", + "ini": "^1.3.4", + "minimist": "^1.2.0", + "q": "^1.4.1", + "request": "^2.87.0", + "rimraf": "^2.5.2", + "semver": "^5.3.0", + "xml2js": "^0.4.17" + }, + "bin": { + "webdriver-manager": "bin/webdriver-manager" + }, + "engines": { + "node": ">=6.9.x" + } + }, + "node_modules/protractor/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/protractor/node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/protractor/node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/protractor/node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/protractor/node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", + "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", + "dev": true, + "dependencies": { + "forwarded": "~0.1.2", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "dev": true + }, + "node_modules/psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", + "dev": true + }, + "node_modules/public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "dev": true, + "dependencies": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/public-encrypt/node_modules/bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "dev": true, + "dependencies": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + } + }, + "node_modules/pumpify/node_modules/pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", + "dev": true, + "engines": { + "node": ">=0.6.0", + "teleport": ">=0.2.0" + } + }, + "node_modules/qjobs": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz", + "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==", + "dev": true, + "engines": { + "node": ">=0.9" + } + }, + "node_modules/qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/query-string": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", + "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", + "dev": true, + "dependencies": { + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "dev": true, + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "dev": true, + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "dev": true, + "dependencies": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", + "dev": true, + "dependencies": { + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/raw-loader": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-4.0.1.tgz", + "integrity": "sha512-baolhQBSi3iNh1cglJjA0mYzga+wePk7vdEX//1dTFd+v4TsQlQE0jitJSNF1OIP82rdYulH7otaVmdlDaJ64A==", + "dev": true, + "dependencies": { + "loader-utils": "^2.0.0", + "schema-utils": "^2.6.5" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=", + "dev": true, + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/read-cache/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-package-json": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.1.2.tgz", + "integrity": "sha512-D1KmuLQr6ZSJS0tW8hf3WGpRlwszJOXZ3E8Yd/DNRaM5d+1wVRZdHlpGBLAuovjr28LbWvjpWkBHMxpRGGjzNA==", + "dev": true, + "dependencies": { + "glob": "^7.1.1", + "json-parse-even-better-errors": "^2.3.0", + "normalize-package-data": "^2.0.0", + "npm-normalize-package-bin": "^1.0.0" + } + }, + "node_modules/read-package-tree": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/read-package-tree/-/read-package-tree-5.3.1.tgz", + "integrity": "sha512-mLUDsD5JVtlZxjSlPPx1RETkNjjvQYuweKwNVt1Sn8kP5Jh44pvYuUHCp6xSVDZWbNxVxG5lyZJ921aJH61sTw==", + "dev": true, + "dependencies": { + "read-package-json": "^2.0.0", + "readdir-scoped-modules": "^1.0.0", + "util-promisify": "^2.1.0" + } + }, + "node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readdir-scoped-modules": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz", + "integrity": "sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==", + "dev": true, + "dependencies": { + "debuglog": "^1.0.1", + "dezalgo": "^1.0.0", + "graceful-fs": "^4.1.2", + "once": "^1.3.0" + } + }, + "node_modules/readdirp": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", + "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/reflect-metadata": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", + "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==", + "dev": true + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "node_modules/regenerate-unicode-properties": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", + "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.13.7", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", + "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==", + "dev": true + }, + "node_modules/regenerator-transform": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", + "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "dependencies": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regex-parser": { + "version": "2.2.11", + "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.11.tgz", + "integrity": "sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q==", + "dev": true + }, + "node_modules/regexp.prototype.flags": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz", + "integrity": "sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/regexp.prototype.flags/node_modules/es-abstract": { + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", + "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", + "dev": true, + "dependencies": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/regexpu-core": { + "version": "4.7.1", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.1.tgz", + "integrity": "sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^8.2.0", + "regjsgen": "^0.5.1", + "regjsparser": "^0.6.4", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsgen": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", + "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==", + "dev": true + }, + "node_modules/regjsparser": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz", + "integrity": "sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==", + "dev": true, + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true + }, + "node_modules/repeat-element": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "dev": true, + "dependencies": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/request/node_modules/qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "dev": true + }, + "node_modules/resolve": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", + "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", + "dev": true, + "dependencies": { + "is-core-module": "^2.1.0", + "path-parse": "^1.0.6" + } + }, + "node_modules/resolve-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", + "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", + "dev": true, + "dependencies": { + "resolve-from": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, + "node_modules/resolve-url-loader": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-3.1.2.tgz", + "integrity": "sha512-QEb4A76c8Mi7I3xNKXlRKQSlLBwjUV/ULFMP+G7n3/7tJZ8MG5wsZ3ucxP1Jz8Vevn6fnJsxDx9cIls+utGzPQ==", + "dev": true, + "dependencies": { + "adjust-sourcemap-loader": "3.0.0", + "camelcase": "5.3.1", + "compose-function": "3.0.3", + "convert-source-map": "1.7.0", + "es6-iterator": "2.0.3", + "loader-utils": "1.2.3", + "postcss": "7.0.21", + "rework": "1.0.1", + "rework-visit": "1.0.0", + "source-map": "0.6.1" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/resolve-url-loader/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/resolve-url-loader/node_modules/emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/resolve-url-loader/node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/resolve-url-loader/node_modules/loader-utils": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", + "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^2.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/resolve-url-loader/node_modules/postcss": { + "version": "7.0.21", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.21.tgz", + "integrity": "sha512-uIFtJElxJo29QC753JzhidoAhvp/e/Exezkdhfmt8AymWT6/5B7W1WmponYWkHk2eg6sONyTch0A3nkMPun3SQ==", + "dev": true, + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/resolve-url-loader/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-url-loader/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rework": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/rework/-/rework-1.0.1.tgz", + "integrity": "sha1-MIBqhBNCtUUQqkEQhQzUhTQUSqc=", + "dev": true, + "dependencies": { + "convert-source-map": "^0.3.3", + "css": "^2.0.0" + } + }, + "node_modules/rework-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/rework-visit/-/rework-visit-1.0.0.tgz", + "integrity": "sha1-mUWygD8hni96ygCtuLyfZA+ELJo=", + "dev": true + }, + "node_modules/rework/node_modules/convert-source-map": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-0.3.5.tgz", + "integrity": "sha1-8dgClQr33SYxof6+BZZVDIarMZA=", + "dev": true + }, + "node_modules/rfdc": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.1.4.tgz", + "integrity": "sha512-5C9HXdzK8EAqN7JDif30jqsBzavB7wLpaubisuQIGHWf2gUXSpzy6ArX/+Da8RjFpagWsCn+pIgxTMAmKw9Zug==", + "dev": true + }, + "node_modules/rgb-regex": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz", + "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=", + "dev": true + }, + "node_modules/rgba-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz", + "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=", + "dev": true + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dev": true, + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "node_modules/rollup": { + "version": "2.26.5", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.26.5.tgz", + "integrity": "sha512-rCyFG3ZtQdnn9YwfuAVH0l/Om34BdO5lwCA0W6Hq+bNB21dVEBbCRxhaHOmu1G7OBFDWytbzAC104u7rxHwGjA==", + "dev": true, + "dependencies": { + "fsevents": "~2.1.2" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=10.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.1.2" + } + }, + "node_modules/run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/run-parallel": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.10.tgz", + "integrity": "sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw==", + "dev": true + }, + "node_modules/run-queue": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", + "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", + "dev": true, + "dependencies": { + "aproba": "^1.1.1" + } + }, + "node_modules/rxjs": { + "version": "6.6.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", + "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/rxjs/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "dependencies": { + "ret": "~0.1.10" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/sass": { + "version": "1.26.10", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.26.10.tgz", + "integrity": "sha512-bzN0uvmzfsTvjz0qwccN1sPm2HxxpNI/Xa+7PlUEMS+nQvbyuEK7Y0qFqxlPHhiNHb1Ze8WQJtU31olMObkAMw==", + "dev": true, + "dependencies": { + "chokidar": ">=2.0.0 <4.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/sass-loader": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-10.0.1.tgz", + "integrity": "sha512-b2PSldKVTS3JcFPHSrEXh3BeAfR7XknGiGCAO5aHruR3Pf3kqLP3Gb2ypXLglRrAzgZkloNxLZ7GXEGDX0hBUQ==", + "dev": true, + "dependencies": { + "klona": "^2.0.3", + "loader-utils": "^2.0.0", + "neo-async": "^2.6.2", + "schema-utils": "^2.7.0", + "semver": "^7.3.2" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/saucelabs": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/saucelabs/-/saucelabs-1.5.0.tgz", + "integrity": "sha512-jlX3FGdWvYf4Q3LFfFWS1QvPg3IGCGWxIc8QBFdPTbpTJnt/v17FHXYVAn7C8sHf1yUXo2c7yIM0isDryfYtHQ==", + "dev": true, + "dependencies": { + "https-proxy-agent": "^2.2.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true + }, + "node_modules/schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 8.9.0" + } + }, + "node_modules/seconds-to-human-time": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/seconds-to-human-time/-/seconds-to-human-time-1.0.0.tgz", + "integrity": "sha512-ojOSaCcU8nkmR3tC/5GPIwmBAH4go7q1iyWRZhxB+tIKbR3rO3dDW5L73ZVRmAMNbK2AY1otz4QXCTxZXUHcXg==" + }, + "node_modules/select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", + "dev": true + }, + "node_modules/selenium-webdriver": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-3.6.0.tgz", + "integrity": "sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q==", + "dev": true, + "dependencies": { + "jszip": "^3.1.3", + "rimraf": "^2.5.4", + "tmp": "0.0.30", + "xml2js": "^0.4.17" + }, + "engines": { + "node": ">= 6.9.0" + } + }, + "node_modules/selenium-webdriver/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/selenium-webdriver/node_modules/tmp": { + "version": "0.0.30", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.30.tgz", + "integrity": "sha1-ckGdSovn1s51FI/YsyTlk6cRwu0=", + "dev": true, + "dependencies": { + "os-tmpdir": "~1.0.1" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/selfsigned": { + "version": "1.10.8", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.8.tgz", + "integrity": "sha512-2P4PtieJeEwVgTU9QEcwIRDQ/mXJLX8/+I3ur+Pg16nS8oNbrGxEso9NyYWy8NAmXiNl4dlAp5MwoNeCWzON4w==", + "dev": true, + "dependencies": { + "node-forge": "^0.10.0" + } + }, + "node_modules/semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver-dsl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/semver-dsl/-/semver-dsl-1.0.1.tgz", + "integrity": "sha1-02eN5VVeimH2Ke7QJTZq5fJzQKA=", + "dev": true, + "dependencies": { + "semver": "^5.3.0" + } + }, + "node_modules/semver-dsl/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/semver-intersect": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/semver-intersect/-/semver-intersect-1.4.0.tgz", + "integrity": "sha512-d8fvGg5ycKAq0+I6nfWeCx6ffaWJCsBYU0H2Rq56+/zFePYfT8mXkB3tWBSjR5BerkHNZ5eTPIk1/LBYas35xQ==", + "dev": true, + "dependencies": { + "semver": "^5.0.0" + } + }, + "node_modules/semver-intersect/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.7.2", + "mime": "1.6.0", + "ms": "2.1.1", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + }, + "node_modules/serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "dev": true, + "dependencies": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-index/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/serve-index/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "dev": true, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "node_modules/serve-index/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/serve-index/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + }, + "node_modules/serve-static": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", + "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", + "dev": true, + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "node_modules/set-immediate-shim": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", + "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/set-value/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", + "dev": true + }, + "node_modules/setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", + "dev": true + }, + "node_modules/sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" + } + }, + "node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", + "dev": true + }, + "node_modules/simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", + "dev": true, + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, + "node_modules/simple-swizzle/node_modules/is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "dev": true + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/smart-buffer": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.1.0.tgz", + "integrity": "sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw==", + "dev": true, + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "dependencies": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "dependencies": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "dependencies": { + "kind-of": "^3.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/snapdragon/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/snapdragon/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/socket.io": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.3.0.tgz", + "integrity": "sha512-2A892lrj0GcgR/9Qk81EaY2gYhCBxurV0PfmmESO6p27QPrUK1J3zdns+5QPqvUYK2q657nSj0guoIil9+7eFg==", + "dev": true, + "dependencies": { + "debug": "~4.1.0", + "engine.io": "~3.4.0", + "has-binary2": "~1.0.2", + "socket.io-adapter": "~1.1.0", + "socket.io-client": "2.3.0", + "socket.io-parser": "~3.4.0" + } + }, + "node_modules/socket.io-adapter": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz", + "integrity": "sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g==", + "dev": true + }, + "node_modules/socket.io-client": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.3.0.tgz", + "integrity": "sha512-cEQQf24gET3rfhxZ2jJ5xzAOo/xhZwK+mOqtGRg5IowZsMgwvHwnf/mCRapAAkadhM26y+iydgwsXGObBB5ZdA==", + "dev": true, + "dependencies": { + "backo2": "1.0.2", + "base64-arraybuffer": "0.1.5", + "component-bind": "1.0.0", + "component-emitter": "1.2.1", + "debug": "~4.1.0", + "engine.io-client": "~3.4.0", + "has-binary2": "~1.0.2", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "object-component": "0.0.3", + "parseqs": "0.0.5", + "parseuri": "0.0.5", + "socket.io-parser": "~3.3.0", + "to-array": "0.1.4" + } + }, + "node_modules/socket.io-client/node_modules/base64-arraybuffer": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", + "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/socket.io-client/node_modules/component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, + "node_modules/socket.io-client/node_modules/debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/socket.io-client/node_modules/isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", + "dev": true + }, + "node_modules/socket.io-client/node_modules/socket.io-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.1.tgz", + "integrity": "sha512-1QLvVAe8dTz+mKmZ07Swxt+LAo4Y1ff50rlyoEx00TQmDFVQYPfcqGvIDJLGaBdhdNCecXtyKpD+EgKGcmmbuQ==", + "dev": true, + "dependencies": { + "component-emitter": "~1.3.0", + "debug": "~3.1.0", + "isarray": "2.0.1" + } + }, + "node_modules/socket.io-client/node_modules/socket.io-parser/node_modules/component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true + }, + "node_modules/socket.io-client/node_modules/socket.io-parser/node_modules/debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/socket.io-client/node_modules/socket.io-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/socket.io-parser": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.4.1.tgz", + "integrity": "sha512-11hMgzL+WCLWf1uFtHSNvliI++tcRUWdoeYuwIl+Axvwy9z2gQM+7nJyN3STj1tLj5JyIUH8/gpDGxzAlDdi0A==", + "dev": true, + "dependencies": { + "component-emitter": "1.2.1", + "debug": "~4.1.0", + "isarray": "2.0.1" + } + }, + "node_modules/socket.io-parser/node_modules/component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, + "node_modules/socket.io-parser/node_modules/debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/socket.io-parser/node_modules/isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", + "dev": true + }, + "node_modules/socket.io/node_modules/debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/sockjs": { + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.20.tgz", + "integrity": "sha512-SpmVOVpdq0DJc0qArhF3E5xsxvaiqGNb73XfgBpK1y3UD5gs8DSo8aCTsuT5pX8rssdc2NDIzANwP9eCAiSdTA==", + "dev": true, + "dependencies": { + "faye-websocket": "^0.10.0", + "uuid": "^3.4.0", + "websocket-driver": "0.6.5" + } + }, + "node_modules/sockjs-client": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.4.0.tgz", + "integrity": "sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g==", + "dev": true, + "dependencies": { + "debug": "^3.2.5", + "eventsource": "^1.0.7", + "faye-websocket": "~0.11.1", + "inherits": "^2.0.3", + "json3": "^3.3.2", + "url-parse": "^1.4.3" + } + }, + "node_modules/sockjs-client/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/sockjs-client/node_modules/faye-websocket": { + "version": "0.11.3", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz", + "integrity": "sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==", + "dev": true, + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/socks": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.3.3.tgz", + "integrity": "sha512-o5t52PCNtVdiOvzMry7wU4aOqYWL0PeCXRWBEiJow4/i/wr+wpsJQ9awEu1EonLIqsfGd5qSgDdxEOvCdmBEpA==", + "dev": true, + "dependencies": { + "ip": "1.1.5", + "smart-buffer": "^4.1.0" + }, + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks-proxy-agent": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz", + "integrity": "sha512-NT6syHhI9LmuEMSK6Kd2V7gNv5KFZoLE7V5udWmn0de+3Mkj3UMA/AJPLyeNUVmElCurSHtUdM3ETpR3z770Wg==", + "dev": true, + "dependencies": { + "agent-base": "~4.2.1", + "socks": "~2.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/socks-proxy-agent/node_modules/agent-base": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz", + "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==", + "dev": true, + "dependencies": { + "es6-promisify": "^5.0.0" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/sort-keys": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", + "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", + "dev": true, + "dependencies": { + "is-plain-obj": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", + "dev": true + }, + "node_modules/source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/source-map-loader": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-1.0.2.tgz", + "integrity": "sha512-oX8d6ndRjN+tVyjj6PlXSyFPhDdVAPsZA30nD3/II8g4uOv8fCz0DMn5sy8KtVbDfKQxOpGwGJnK3xIW3tauDw==", + "dev": true, + "dependencies": { + "data-urls": "^2.0.0", + "iconv-lite": "^0.6.2", + "loader-utils": "^2.0.0", + "schema-utils": "^2.7.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/source-map-loader/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "dev": true, + "dependencies": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "dev": true + }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "dev": true + }, + "node_modules/spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "dev": true, + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz", + "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==", + "dev": true + }, + "node_modules/spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "dev": true, + "dependencies": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "dev": true, + "dependencies": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + } + }, + "node_modules/spdy-transport/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/speed-measure-webpack-plugin": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/speed-measure-webpack-plugin/-/speed-measure-webpack-plugin-1.3.3.tgz", + "integrity": "sha512-2ljD4Ch/rz2zG3HsLsnPfp23osuPBS0qPuz9sGpkNXTN1Ic4M+W9xB8l8rS8ob2cO4b1L+WTJw/0AJwWYVgcxQ==", + "dev": true, + "dependencies": { + "chalk": "^2.0.1" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "dependencies": { + "extend-shallow": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "node_modules/sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "dev": true, + "dependencies": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "bin": { + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ssri": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.0.tgz", + "integrity": "sha512-aq/pz989nxVYwn16Tsbj1TqFpD5LLrQxHf5zaHuieFV+R0Bbr4y8qUsOA45hXT/N4/9UNXTarBjnjVmjSOVaAA==", + "dev": true, + "dependencies": { + "minipass": "^3.1.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "dev": true + }, + "node_modules/static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "dependencies": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/stream-browserify": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", + "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", + "dev": true, + "dependencies": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + } + }, + "node_modules/stream-each": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", + "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" + } + }, + "node_modules/stream-http": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "dev": true, + "dependencies": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + } + }, + "node_modules/stream-shift": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", + "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", + "dev": true + }, + "node_modules/streamroller": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-2.2.4.tgz", + "integrity": "sha512-OG79qm3AujAM9ImoqgWEY1xG4HX+Lw+yY6qZj9R1K2mhF5bEmQ849wvrb+4vt4jLMLzwXttJlQbOdPOQVRv7DQ==", + "dev": true, + "dependencies": { + "date-format": "^2.1.0", + "debug": "^4.1.1", + "fs-extra": "^8.1.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/streamroller/node_modules/date-format": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-2.1.0.tgz", + "integrity": "sha512-bYQuGLeFxhkxNOF3rcMtiZxvCBAquGzZm6oWA1oZ0g2THUzivaRhv8uOhdr19LmoobSOLoIAxeUK2RdbM8IFTA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/streamroller/node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz", + "integrity": "sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz", + "integrity": "sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + } + }, + "node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/style-loader": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-1.2.1.tgz", + "integrity": "sha512-ByHSTQvHLkWE9Ir5+lGbVOXhxX10fbprhLvdg96wedFZb4NDekDPxVKv5Fwmio+QcMlkkNfuK+5W1peQ5CUhZg==", + "dev": true, + "dependencies": { + "loader-utils": "^2.0.0", + "schema-utils": "^2.6.6" + }, + "engines": { + "node": ">= 8.9.0" + } + }, + "node_modules/stylehacks": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz", + "integrity": "sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==", + "dev": true, + "dependencies": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/stylehacks/node_modules/postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "dev": true, + "dependencies": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/stylus": { + "version": "0.54.8", + "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.54.8.tgz", + "integrity": "sha512-vr54Or4BZ7pJafo2mpf0ZcwA74rpuYCZbxrHBsH8kbcXOwSfvBFwsRfpGO5OD5fhG5HDCFW737PKaawI7OqEAg==", + "dev": true, + "dependencies": { + "css-parse": "~2.0.0", + "debug": "~3.1.0", + "glob": "^7.1.6", + "mkdirp": "~1.0.4", + "safer-buffer": "^2.1.2", + "sax": "~1.2.4", + "semver": "^6.3.0", + "source-map": "^0.7.3" + }, + "bin": { + "stylus": "bin/stylus" + }, + "engines": { + "node": "*" + } + }, + "node_modules/stylus-loader": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/stylus-loader/-/stylus-loader-3.0.2.tgz", + "integrity": "sha512-+VomPdZ6a0razP+zinir61yZgpw2NfljeSsdUF5kJuEzlo3khXhY19Fn6l8QQz1GRJGtMCo8nG5C04ePyV7SUA==", + "dev": true, + "dependencies": { + "loader-utils": "^1.0.2", + "lodash.clonedeep": "^4.5.0", + "when": "~3.6.x" + } + }, + "node_modules/stylus-loader/node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/stylus-loader/node_modules/loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/stylus/node_modules/debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/stylus/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stylus/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/stylus/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/svg.draggable.js": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/svg.draggable.js/-/svg.draggable.js-2.2.2.tgz", + "integrity": "sha512-JzNHBc2fLQMzYCZ90KZHN2ohXL0BQJGQimK1kGk6AvSeibuKcIdDX9Kr0dT9+UJ5O8nYA0RB839Lhvk4CY4MZw==", + "dependencies": { + "svg.js": "^2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/svg.easing.js": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/svg.easing.js/-/svg.easing.js-2.0.0.tgz", + "integrity": "sha1-iqmUawqOJ4V6XEChDrpAkeVpHxI=", + "dependencies": { + "svg.js": ">=2.3.x" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/svg.filter.js": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/svg.filter.js/-/svg.filter.js-2.0.2.tgz", + "integrity": "sha1-kQCOFROJ3ZIwd5/L5uLJo2LRwgM=", + "dependencies": { + "svg.js": "^2.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/svg.js": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/svg.js/-/svg.js-2.7.1.tgz", + "integrity": "sha512-ycbxpizEQktk3FYvn/8BH+6/EuWXg7ZpQREJvgacqn46gIddG24tNNe4Son6omdXCnSOaApnpZw6MPCBA1dODA==" + }, + "node_modules/svg.pathmorphing.js": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/svg.pathmorphing.js/-/svg.pathmorphing.js-0.1.3.tgz", + "integrity": "sha512-49HWI9X4XQR/JG1qXkSDV8xViuTLIWm/B/7YuQELV5KMOPtXjiwH4XPJvr/ghEDibmLQ9Oc22dpWpG0vUDDNww==", + "dependencies": { + "svg.js": "^2.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/svg.resize.js": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/svg.resize.js/-/svg.resize.js-1.4.3.tgz", + "integrity": "sha512-9k5sXJuPKp+mVzXNvxz7U0uC9oVMQrrf7cFsETznzUDDm0x8+77dtZkWdMfRlmbkEEYvUn9btKuZ3n41oNA+uw==", + "dependencies": { + "svg.js": "^2.6.5", + "svg.select.js": "^2.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/svg.resize.js/node_modules/svg.select.js": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/svg.select.js/-/svg.select.js-2.1.2.tgz", + "integrity": "sha512-tH6ABEyJsAOVAhwcCjF8mw4crjXSI1aa7j2VQR8ZuJ37H2MBUbyeqYr5nEO7sSN3cy9AR9DUwNg0t/962HlDbQ==", + "dependencies": { + "svg.js": "^2.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/svg.select.js": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/svg.select.js/-/svg.select.js-3.0.1.tgz", + "integrity": "sha512-h5IS/hKkuVCbKSieR9uQCj9w+zLHoPh+ce19bBYyqF53g6mnPB8sAtIbe1s9dh2S2fCmYX2xel1Ln3PJBbK4kw==", + "dependencies": { + "svg.js": "^2.6.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/svgo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", + "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", + "dev": true, + "dependencies": { + "chalk": "^2.4.1", + "coa": "^2.0.2", + "css-select": "^2.0.0", + "css-select-base-adapter": "^0.1.1", + "css-tree": "1.0.0-alpha.37", + "csso": "^4.0.2", + "js-yaml": "^3.13.1", + "mkdirp": "~0.5.1", + "object.values": "^1.1.0", + "sax": "~1.2.4", + "stable": "^0.1.8", + "unquote": "~1.1.1", + "util.promisify": "~1.0.0" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/symbol-observable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", + "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/tar": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.0.5.tgz", + "integrity": "sha512-0b4HOimQHj9nXNEAA7zWwMM91Zhhba3pspja6sQbgTpynOJf+bkjBnfybNYzbpLbnwXnbyB4LOREvlyXLkCHSg==", + "dev": true, + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/tar/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.3.0.tgz", + "integrity": "sha512-XTT3D3AwxC54KywJijmY2mxZ8nJiEjBHVYzq8l9OaYuRFWeQNBwvipuzzYEP4e+/AVcd1hqG/CqgsdIRyT45Fg==", + "dev": true, + "dependencies": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-4.1.0.tgz", + "integrity": "sha512-0ZWDPIP8BtEDZdChbufcXUigOYk6dOX/P/X0hWxqDDcVAQLb8Yy/0FAaemSfax3PAA67+DJR778oz8qVbmy4hA==", + "dev": true, + "dependencies": { + "cacache": "^15.0.5", + "find-cache-dir": "^3.3.1", + "jest-worker": "^26.3.0", + "p-limit": "^3.0.2", + "schema-utils": "^2.6.6", + "serialize-javascript": "^4.0.0", + "source-map": "^0.6.1", + "terser": "^5.0.0", + "webpack-sources": "^1.4.3" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/terser-webpack-plugin/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/terser/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "dev": true + }, + "node_modules/timers-browserify": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", + "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", + "dev": true, + "dependencies": { + "setimmediate": "^1.0.4" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/timsort": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", + "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=", + "dev": true + }, + "node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/to-array": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", + "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=", + "dev": true + }, + "node_modules/to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", + "dev": true + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-object-path/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "dependencies": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dev": true, + "dependencies": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/tr46": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.0.2.tgz", + "integrity": "sha512-3n1qG+/5kg+jrbTzwAykB5yRYtQCTqOGKq5U5PE3b0a1/mzo6snDhjGS0zJVJunO0NrT3Dg1MLy5TjWP/UJppg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true, + "bin": { + "tree-kill": "cli.js" + } + }, + "node_modules/ts-node": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.3.0.tgz", + "integrity": "sha512-dyNS/RqyVTDcmNM4NIBAeDMpsAdaQ+ojdf0GOLqE6nwJOgzEkdRNzJywhDfwnuvB10oa6NLVG1rUJQCpRN7qoQ==", + "dev": true, + "dependencies": { + "arg": "^4.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "source-map-support": "^0.5.6", + "yn": "^3.0.0" + }, + "bin": { + "ts-node": "dist/bin.js" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/ts-pnp": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.2.0.tgz", + "integrity": "sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/tslib": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", + "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==" + }, + "node_modules/tslint": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/tslint/-/tslint-6.1.3.tgz", + "integrity": "sha512-IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "builtin-modules": "^1.1.1", + "chalk": "^2.3.0", + "commander": "^2.12.1", + "diff": "^4.0.1", + "glob": "^7.1.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.3", + "resolve": "^1.3.2", + "semver": "^5.3.0", + "tslib": "^1.13.0", + "tsutils": "^2.29.0" + }, + "bin": { + "tslint": "bin/tslint" + }, + "engines": { + "node": ">=4.8.0" + } + }, + "node_modules/tslint/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/tslint/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/tsutils": { + "version": "2.29.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", + "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", + "dev": true, + "dependencies": { + "tslib": "^1.8.1" + } + }, + "node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", + "dev": true + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true + }, + "node_modules/type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==", + "dev": true + }, + "node_modules/type-fest": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, + "node_modules/typescript": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.0.5.tgz", + "integrity": "sha512-ywmr/VrTVCmNTJ6iV2LwIrfG1P+lv6luD8sUJs+2eI9NLGigaN+nUQc13iHqisq7bra9lnmUSYqbJvegraBOPQ==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/ua-parser-js": { + "version": "0.7.21", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.21.tgz", + "integrity": "sha512-+O8/qh/Qj8CgC6eYBVBykMrNtp5Gebn4dlGD/kKXVkJNDwyrAwSIqwz8CDf+tsAIWVycKcku6gIXJ0qwx/ZXaQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", + "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", + "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", + "dev": true, + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^1.0.4", + "unicode-property-aliases-ecmascript": "^1.0.4" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz", + "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz", + "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dev": true, + "dependencies": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/uniq": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", + "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", + "dev": true + }, + "node_modules/uniqs": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", + "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", + "dev": true + }, + "node_modules/unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "dev": true, + "dependencies": { + "unique-slug": "^2.0.0" + } + }, + "node_modules/unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4" + } + }, + "node_modules/universal-analytics": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/universal-analytics/-/universal-analytics-0.4.23.tgz", + "integrity": "sha512-lgMIH7XBI6OgYn1woDEmxhGdj8yDefMKg7GkWdeATAlQZFrMrNyxSkpDzY57iY0/6fdlzTbBV03OawvvzG+q7A==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "request": "^2.88.2", + "uuid": "^3.0.0" + } + }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/unquote": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", + "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=", + "dev": true + }, + "node_modules/unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "dependencies": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "dependencies": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "dependencies": { + "isarray": "1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "dev": true, + "engines": { + "node": ">=4", + "yarn": "*" + } + }, + "node_modules/uri-js": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", + "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "node_modules/url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dev": true, + "dependencies": { + "punycode": "1.3.2", + "querystring": "0.2.0" + } + }, + "node_modules/url-parse": { + "version": "1.4.7", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz", + "integrity": "sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg==", + "dev": true, + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/url/node_modules/punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true + }, + "node_modules/use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/util": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", + "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", + "dev": true, + "dependencies": { + "inherits": "2.0.3" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "node_modules/util-promisify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/util-promisify/-/util-promisify-2.1.0.tgz", + "integrity": "sha1-PCI2R2xNMsX/PEcAKt18E7moKlM=", + "dev": true, + "dependencies": { + "object.getownpropertydescriptors": "^2.0.3" + } + }, + "node_modules/util.promisify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", + "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.2", + "has-symbols": "^1.0.1", + "object.getownpropertydescriptors": "^2.1.0" + } + }, + "node_modules/util.promisify/node_modules/es-abstract": { + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", + "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", + "dev": true, + "dependencies": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/util/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "dev": true, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true, + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/validate-npm-package-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", + "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", + "dev": true, + "dependencies": { + "builtins": "^1.0.3" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vendors": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz", + "integrity": "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==", + "dev": true + }, + "node_modules/verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "node_modules/vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", + "dev": true + }, + "node_modules/void-elements": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", + "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", + "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", + "dev": true, + "dependencies": { + "chokidar": "^3.4.1", + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0", + "watchpack-chokidar2": "^2.0.1" + }, + "optionalDependencies": { + "watchpack-chokidar2": "^2.0.1" + } + }, + "node_modules/watchpack-chokidar2": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz", + "integrity": "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==", + "dev": true, + "optional": true, + "dependencies": { + "chokidar": "^2.1.8" + } + }, + "node_modules/watchpack-chokidar2/node_modules/anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "optional": true, + "dependencies": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "node_modules/watchpack-chokidar2/node_modules/anymatch/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "optional": true, + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "optional": true, + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "optional": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": true, + "optional": true, + "dependencies": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "node_modules/watchpack-chokidar2/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "optional": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "optional": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "optional": true, + "dependencies": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/glob-parent/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "optional": true, + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "optional": true, + "dependencies": { + "binary-extensions": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "optional": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "optional": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "optional": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "optional": true, + "dependencies": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/watchpack-chokidar2/node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "optional": true, + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dev": true, + "dependencies": { + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", + "dev": true, + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/webdriver-js-extender": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/webdriver-js-extender/-/webdriver-js-extender-2.1.0.tgz", + "integrity": "sha512-lcUKrjbBfCK6MNsh7xaY2UAUmZwe+/ib03AjVOpFobX4O7+83BUveSrLfU0Qsyb1DaKJdQRbuU+kM9aZ6QUhiQ==", + "dev": true, + "dependencies": { + "@types/selenium-webdriver": "^3.0.0", + "selenium-webdriver": "^3.0.1" + }, + "engines": { + "node": ">=6.9.x" + } + }, + "node_modules/webidl-conversions": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", + "dev": true, + "engines": { + "node": ">=10.4" + } + }, + "node_modules/webpack": { + "version": "4.44.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.44.1.tgz", + "integrity": "sha512-4UOGAohv/VGUNQJstzEywwNxqX417FnjZgZJpJQegddzPmTvph37eBIRbRTfdySXzVtJXLJfbMN3mMYhM6GdmQ==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/wasm-edit": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "acorn": "^6.4.1", + "ajv": "^6.10.2", + "ajv-keywords": "^3.4.1", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^4.3.0", + "eslint-scope": "^4.0.3", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^2.4.0", + "loader-utils": "^1.2.3", + "memory-fs": "^0.4.1", + "micromatch": "^3.1.10", + "mkdirp": "^0.5.3", + "neo-async": "^2.6.1", + "node-libs-browser": "^2.2.1", + "schema-utils": "^1.0.0", + "tapable": "^1.1.3", + "terser-webpack-plugin": "^1.4.3", + "watchpack": "^1.7.4", + "webpack-sources": "^1.4.1" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/webpack-dev-middleware": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz", + "integrity": "sha512-1xC42LxbYoqLNAhV6YzTYacicgMZQTqRd27Sim9wn5hJrX3I5nxYy1SxSd4+gjUFsz1dQFj+yEe6zEVmSkeJjw==", + "dev": true, + "dependencies": { + "memory-fs": "^0.4.1", + "mime": "^2.4.4", + "mkdirp": "^0.5.1", + "range-parser": "^1.2.1", + "webpack-log": "^2.0.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/webpack-dev-middleware/node_modules/memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "dev": true, + "dependencies": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "node_modules/webpack-dev-middleware/node_modules/mime": { + "version": "2.4.7", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.7.tgz", + "integrity": "sha512-dhNd1uA2u397uQk3Nv5LM4lm93WYDUXFn3Fu291FJerns4jyTudqhIWe4W04YLy7Uk1tm1Ore04NpjRvQp/NPA==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/webpack-dev-server": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.0.tgz", + "integrity": "sha512-PUxZ+oSTxogFQgkTtFndEtJIPNmml7ExwufBZ9L2/Xyyd5PnOL5UreWe5ZT7IU25DSdykL9p1MLQzmLh2ljSeg==", + "dev": true, + "dependencies": { + "ansi-html": "0.0.7", + "bonjour": "^3.5.0", + "chokidar": "^2.1.8", + "compression": "^1.7.4", + "connect-history-api-fallback": "^1.6.0", + "debug": "^4.1.1", + "del": "^4.1.1", + "express": "^4.17.1", + "html-entities": "^1.3.1", + "http-proxy-middleware": "0.19.1", + "import-local": "^2.0.0", + "internal-ip": "^4.3.0", + "ip": "^1.1.5", + "is-absolute-url": "^3.0.3", + "killable": "^1.0.1", + "loglevel": "^1.6.8", + "opn": "^5.5.0", + "p-retry": "^3.0.1", + "portfinder": "^1.0.26", + "schema-utils": "^1.0.0", + "selfsigned": "^1.10.7", + "semver": "^6.3.0", + "serve-index": "^1.9.1", + "sockjs": "0.3.20", + "sockjs-client": "1.4.0", + "spdy": "^4.0.2", + "strip-ansi": "^3.0.1", + "supports-color": "^6.1.0", + "url": "^0.11.0", + "webpack-dev-middleware": "^3.7.2", + "webpack-log": "^2.0.0", + "ws": "^6.2.1", + "yargs": "^13.3.2" + }, + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "engines": { + "node": ">= 6.11.5" + } + }, + "node_modules/webpack-dev-server/node_modules/anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "dependencies": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "node_modules/webpack-dev-server/node_modules/anymatch/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": true, + "dependencies": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + }, + "optionalDependencies": { + "fsevents": "^1.2.7" + } + }, + "node_modules/webpack-dev-server/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/webpack-dev-server/node_modules/glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "dependencies": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + } + }, + "node_modules/webpack-dev-server/node_modules/glob-parent/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/is-absolute-url": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", + "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/webpack-dev-server/node_modules/is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "dependencies": { + "binary-extensions": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/webpack-dev-server/node_modules/schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "dependencies": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/webpack-dev-server/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/webpack-dev-server/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-dev-server/node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-log": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz", + "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", + "dev": true, + "dependencies": { + "ansi-colors": "^3.0.0", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/webpack-merge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.2.tgz", + "integrity": "sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g==", + "dev": true, + "dependencies": { + "lodash": "^4.17.15" + } + }, + "node_modules/webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "dev": true, + "dependencies": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + }, + "node_modules/webpack-sources/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-subresource-integrity": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/webpack-subresource-integrity/-/webpack-subresource-integrity-1.4.1.tgz", + "integrity": "sha512-XMLFInbGbB1HV7K4vHWANzc1CN0t/c4bBvnlvGxGwV45yE/S/feAXIm8dJsCkzqWtSKnmaEgTp/meyeThxG4Iw==", + "dev": true, + "dependencies": { + "webpack-sources": "^1.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/webpack/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/cacache": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", + "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", + "dev": true, + "dependencies": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } + }, + "node_modules/webpack/node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, + "node_modules/webpack/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "dev": true, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/webpack/node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/webpack/node_modules/loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/webpack/node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/webpack/node_modules/memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "dev": true, + "dependencies": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "node_modules/webpack/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/webpack/node_modules/schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "dependencies": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/webpack/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/ssri": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", + "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "dev": true, + "dependencies": { + "figgy-pudding": "^3.5.1" + } + }, + "node_modules/webpack/node_modules/terser": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", + "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", + "dev": true, + "dependencies": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/webpack/node_modules/terser-webpack-plugin": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz", + "integrity": "sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==", + "dev": true, + "dependencies": { + "cacache": "^12.0.2", + "find-cache-dir": "^2.1.0", + "is-wsl": "^1.1.0", + "schema-utils": "^1.0.0", + "serialize-javascript": "^4.0.0", + "source-map": "^0.6.1", + "terser": "^4.1.2", + "webpack-sources": "^1.4.0", + "worker-farm": "^1.7.0" + }, + "engines": { + "node": ">= 6.9.0" + } + }, + "node_modules/webpack/node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/websocket-driver": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.6.5.tgz", + "integrity": "sha1-XLJVbOuF9Dc8bYI4qmkchFThOjY=", + "dev": true, + "dependencies": { + "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", + "dev": true + }, + "node_modules/whatwg-url": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.4.0.tgz", + "integrity": "sha512-vwTUFf6V4zhcPkWp/4CQPr1TW9Ml6SF4lVyaIMBdJw5i6qUUJ1QWM4Z6YYVkfka0OUIzVo/0aNtGVGk256IKWw==", + "dev": true, + "dependencies": { + "lodash.sortby": "^4.7.0", + "tr46": "^2.0.2", + "webidl-conversions": "^6.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/when": { + "version": "3.6.4", + "resolved": "https://registry.npmjs.org/when/-/when-3.6.4.tgz", + "integrity": "sha1-RztRfsFZ4rhQBUl6E5g/CVQS404=", + "dev": true + }, + "node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "node_modules/worker-farm": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", + "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", + "dev": true, + "dependencies": { + "errno": "~0.1.7" + } + }, + "node_modules/worker-plugin": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/worker-plugin/-/worker-plugin-5.0.0.tgz", + "integrity": "sha512-AXMUstURCxDD6yGam2r4E34aJg6kW85IiaeX72hi+I1cxyaMUtrvVY6sbfpGKAj5e7f68Acl62BjQF5aOOx2IQ==", + "dev": true, + "dependencies": { + "loader-utils": "^1.1.0" + } + }, + "node_modules/worker-plugin/node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/worker-plugin/node_modules/loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "node_modules/ws": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", + "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", + "dev": true, + "dependencies": { + "async-limiter": "~1.0.0" + } + }, + "node_modules/xml2js": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", + "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", + "dev": true, + "dependencies": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/xmlhttprequest-ssl": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz", + "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true, + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", + "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", + "dev": true + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "dev": true, + "dependencies": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + } + }, + "node_modules/yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "node_modules/yargs-parser/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/yeast": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", + "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=", + "dev": true + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/zone.js": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.10.3.tgz", + "integrity": "sha512-LXVLVEq0NNOqK/fLJo3d0kfzd4sxwn2/h67/02pjCjfKDxgx1i9QqpvtHD8CrBnSSwMw5+dy11O7FRX5mkO7Cg==" + } + }, "dependencies": { "@angular-devkit/architect": { "version": "0.1002.1", @@ -1987,16 +18174,6 @@ "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", "dev": true }, - "JSONStream": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", - "dev": true, - "requires": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - } - }, "abab": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", @@ -6828,6 +23005,16 @@ "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", "dev": true }, + "JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "dev": true, + "requires": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + } + }, "jsprim": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", @@ -8103,9 +24290,9 @@ "integrity": "sha512-cny9v0+Mq6Tjz+e0erFAB+RYJ/AVGzkjnISiobqP8OWj9c9FLoZZu8/SPSKJWE17F1tk4018wfjV+ZbIbqC7fQ==", "dev": true, "requires": { - "JSONStream": "^1.3.4", "bluebird": "^3.5.1", "figgy-pudding": "^3.4.1", + "JSONStream": "^1.3.4", "lru-cache": "^5.1.1", "make-fetch-happen": "^5.0.0", "npm-package-arg": "^6.1.0", @@ -11747,6 +27934,15 @@ "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", "dev": true }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, "string-width": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", @@ -11795,15 +27991,6 @@ "define-properties": "^1.1.3" } }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, "strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", diff --git a/projects/project-3/frontend/src/app/app.component.html b/projects/project-3/frontend/src/app/app.component.html index 0680b43..21f8668 100644 --- a/projects/project-3/frontend/src/app/app.component.html +++ b/projects/project-3/frontend/src/app/app.component.html @@ -1 +1,2 @@ + diff --git a/projects/project-3/frontend/src/app/app.module.ts b/projects/project-3/frontend/src/app/app.module.ts index 31ef684..ea21c0c 100644 --- a/projects/project-3/frontend/src/app/app.module.ts +++ b/projects/project-3/frontend/src/app/app.module.ts @@ -34,6 +34,9 @@ import { RentDurationChartComponent } from './dashboard/rent-duration-chart/rent import { RentTimeChartComponent } from './dashboard/rent-time-chart/rent-time-chart.component'; import { UserInputComponent } from './dashboard/user-input/user-input.component'; import { MiniMapComponent } from './dashboard/mini-map/mini-map.component'; +import { ToolbarComponent } from './toolbar/toolbar.component'; +import { MapInteractionComponent } from './toolbar/map-interaction/map-interaction.component'; +import { DashboardInteractionComponent } from './toolbar/dashboard-interaction/dashboard-interaction.component'; @NgModule({ declarations: [ @@ -46,7 +49,10 @@ import { MiniMapComponent } from './dashboard/mini-map/mini-map.component'; RentDurationChartComponent, RentTimeChartComponent, UserInputComponent, - MiniMapComponent + MiniMapComponent, + ToolbarComponent, + MapInteractionComponent, + DashboardInteractionComponent ], imports: [ BrowserModule, diff --git a/projects/project-3/frontend/src/app/dashboard/dashboard.component.html b/projects/project-3/frontend/src/app/dashboard/dashboard.component.html index 68eff0b..6dd793d 100644 --- a/projects/project-3/frontend/src/app/dashboard/dashboard.component.html +++ b/projects/project-3/frontend/src/app/dashboard/dashboard.component.html @@ -1,19 +1,4 @@ - - - - - library_books - Wiki - - - map - back to map - -

- - - - - - - - + + + Top-3 rental destination + + This table shows the top-3 destinations of rentals from this station by number of drives. + The Station can be sent to the map with the checkbox. + + + +
- - - station of rental destination - {{element.stationName}} -
+ + + + + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - -
+ + + Destination + {{element.stationName}} + number of drives {{element.number}} Count {{element.number}} average rental duration {{humanizeAvgDuration(element.avgDuration)}} Average duration {{humanizeAvgDuration(element.avgDuration)}} icon on mapmarkerIconmarker
-
- -
+ + + +
+ +
+ +
- - - - - - - - - + + + Top-3 rental origin + + This table shows the top-3 origins of rentals to this station by number of drives. + The Station can be sent to the map with the checkbox. + + + +
- - - station of rental origin - {{element.stationName}} -
+ + + + + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - -
+ + + Origin + {{element.stationName}} + number of drives {{element.number}} Count {{element.number}} average rental duration {{humanizeAvgDuration(element.avgDuration)}} Average duration {{humanizeAvgDuration(element.avgDuration)}} icon on mapmarkerIconmarker
-
- -
+ + + +
+ +
+ +
diff --git a/projects/project-3/frontend/src/app/dashboard/table/table.component.scss b/projects/project-3/frontend/src/app/dashboard/table/table.component.scss index 10615d6..ad1f756 100644 --- a/projects/project-3/frontend/src/app/dashboard/table/table.component.scss +++ b/projects/project-3/frontend/src/app/dashboard/table/table.component.scss @@ -10,3 +10,8 @@ a { .mat-checkbox-layout label { margin: 0 !important; } + +.mat-cell, .mat-header-cell { + padding-left: 8px; + padding-right: 8px; +} diff --git a/projects/project-3/frontend/src/app/dashboard/user-input/user-input.component.html b/projects/project-3/frontend/src/app/dashboard/user-input/user-input.component.html index a5b0219..bb8d965 100644 --- a/projects/project-3/frontend/src/app/dashboard/user-input/user-input.component.html +++ b/projects/project-3/frontend/src/app/dashboard/user-input/user-input.component.html @@ -8,7 +8,7 @@

Select a range to analyze data

-
+ Enter a range
diff --git a/projects/project-3/frontend/src/app/dashboard/user-input/user-input.component.ts b/projects/project-3/frontend/src/app/dashboard/user-input/user-input.component.ts index 1f7f7f7..d0fc25b 100644 --- a/projects/project-3/frontend/src/app/dashboard/user-input/user-input.component.ts +++ b/projects/project-3/frontend/src/app/dashboard/user-input/user-input.component.ts @@ -52,7 +52,7 @@ export const PICK_FORMATS = { class PickDateAdapter extends NativeDateAdapter { format(date: Date, displayFormat: Object): string { if (displayFormat === 'input') { - return formatDate(date, 'dd-MM-yyyy', this.locale); + return formatDate(date, 'dd.MM.yyyy', this.locale); } else { return date.toDateString(); } diff --git a/projects/project-3/frontend/src/app/service/map.service.ts b/projects/project-3/frontend/src/app/service/map.service.ts index c4ef9da..8e9eb17 100644 --- a/projects/project-3/frontend/src/app/service/map.service.ts +++ b/projects/project-3/frontend/src/app/service/map.service.ts @@ -7,7 +7,6 @@ import {environment} from '../../environments/environment'; import {PopUpService} from './pop-up.service'; import {IMapBikePoint} from './domain/map-bike-point'; import {IDashboardCommonBikePoint} from './domain/dashboard-common-bike-point'; -import {writeErrorToLogFile} from "@angular/cli/utilities/log-file"; const createIcon = color => L.icon({ @@ -34,6 +33,7 @@ export class MapService { dashBoardBikePoint: IDashboardCommonBikePoint; layerControl = L.control(null); legend = L.control({position: 'bottomleft'}); + accidentLegend = L.control({position: 'bottomleft'}); constructor( private client: HttpClient, @@ -66,6 +66,32 @@ export class MapService { maxZoom: 19, preferCanvas: true })); + + this.accidentLegend.onAdd = () => { + const getCircle = (color) => { + return ` + + + `; + }; + + const div = L.DomUtil.create('div', 'legend legend-accidents'); + div.innerHTML = ` +

Accident severities

+
+ ${getCircle('yellow')}Slight accident +
+
+ ${getCircle('orange')}Severe accident +
+
+ ${getCircle('red')}Fatal accident +
+ `; + return div; + }; + this.map.on('overlayadd', e => e.name === 'Accidents' ? this.accidentLegend.addTo(this.map) : null); + this.map.on('overlayremove', e => e.name === 'Accidents' ? this.accidentLegend.remove() : null); } public initDashboardMap(lat: number, lon: number, zoom: number): void { diff --git a/projects/project-3/frontend/src/app/toolbar/map-interaction/map-interaction.component.scss b/projects/project-3/frontend/src/app/toolbar/map-interaction/map-interaction.component.scss index 0456e7e..29418e0 100644 --- a/projects/project-3/frontend/src/app/toolbar/map-interaction/map-interaction.component.scss +++ b/projects/project-3/frontend/src/app/toolbar/map-interaction/map-interaction.component.scss @@ -1,3 +1,4 @@ .button-wiki:hover { background: #086ed2; + text-decoration: none; } diff --git a/projects/project-3/frontend/src/styles.scss b/projects/project-3/frontend/src/styles.scss index 09cae2f..abe276e 100644 --- a/projects/project-3/frontend/src/styles.scss +++ b/projects/project-3/frontend/src/styles.scss @@ -29,28 +29,48 @@ label.mat-checkbox-layout { background: rgba(255, 255, 255, 0.8); line-height: 24px; color: #555; -} -.legend h4 { - text-align: center; - font-size: 16px; - margin: 2px 12px 8px; - color: #777; + + h4 { + text-align: center; + font-size: 16px; + margin: 2px 12px 8px; + color: #777; + } + + span { + position: relative; + bottom: 3px; + } + + i { + width: 18px; + height: 3px; + float: left; + margin: 7px 8px 0 0; + opacity: 0.7; + + .icon { + background-size: 18px; + background-color: rgba(255, 255, 255, 1); + } + } } -.legend span { - position: relative; - bottom: 3px; -} +.legend-accidents { + background: rgb(57, 57, 57); + color: white; -.legend i { - width: 18px; - height: 3px; - float: left; - margin: 7px 8px 0 0; - opacity: 0.7; -} + h4 { + color: white; + } -.legend i.icon { - background-size: 18px; - background-color: rgba(255, 255, 255, 1); + div { + display: flex; + justify-content: left; + align-items: baseline; + + svg { + margin-right: 8px; + } + } } From 94c3fb99f4a15d36256794d46d27437067afe31f Mon Sep 17 00:00:00 2001 From: Marcel Schwarz Date: Mon, 11 Jan 2021 22:37:14 +0100 Subject: [PATCH 102/104] Fix loading animation, shorter wording for dashboard map legend --- .../rent-duration-chart/rent-duration-chart.component.ts | 2 +- .../project-3/frontend/src/app/service/map.service.ts | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/projects/project-3/frontend/src/app/dashboard/rent-duration-chart/rent-duration-chart.component.ts b/projects/project-3/frontend/src/app/dashboard/rent-duration-chart/rent-duration-chart.component.ts index 58c9926..3c0be94 100644 --- a/projects/project-3/frontend/src/app/dashboard/rent-duration-chart/rent-duration-chart.component.ts +++ b/projects/project-3/frontend/src/app/dashboard/rent-duration-chart/rent-duration-chart.component.ts @@ -141,7 +141,7 @@ export class RentDurationChartComponent implements OnInit { async onSubmit(actualStartDate: string, actualEndDate: string): Promise { this.isLoading = true; - await this.service.fetchDashboardStationCharts( + this.service.fetchDashboardStationCharts( this.bikePoint.id, actualStartDate, actualEndDate, diff --git a/projects/project-3/frontend/src/app/service/map.service.ts b/projects/project-3/frontend/src/app/service/map.service.ts index 8e9eb17..297f9fd 100644 --- a/projects/project-3/frontend/src/app/service/map.service.ts +++ b/projects/project-3/frontend/src/app/service/map.service.ts @@ -210,10 +210,10 @@ export class MapService { drawLegend(): void { this.legend.onAdd = () => { const div = L.DomUtil.create('div', 'legend'); - div.innerHTML += `

trips from/to bike station

`; - div.innerHTML += `inbound to ${this.dashBoardBikePoint.commonName}
`; - div.innerHTML += `outbound from ${this.dashBoardBikePoint.commonName}
`; - div.innerHTML += `in- and outbound traffic line`; + div.innerHTML += `

Traffic lines

`; + div.innerHTML += `inbound
`; + div.innerHTML += `outbound
`; + div.innerHTML += `in- and outbound`; return div; }; this.legend.addTo(this.miniMap); From cf6ab406f46904d5870658c5e1b656cabde07914 Mon Sep 17 00:00:00 2001 From: Marcel Schwarz Date: Tue, 12 Jan 2021 01:11:22 +0100 Subject: [PATCH 103/104] Layouting stuff for the user input --- .../user-input/user-input.component.html | 39 +++++++++---------- 1 file changed, 19 insertions(+), 20 deletions(-) diff --git a/projects/project-3/frontend/src/app/dashboard/user-input/user-input.component.html b/projects/project-3/frontend/src/app/dashboard/user-input/user-input.component.html index bb8d965..d52eae3 100644 --- a/projects/project-3/frontend/src/app/dashboard/user-input/user-input.component.html +++ b/projects/project-3/frontend/src/app/dashboard/user-input/user-input.component.html @@ -5,26 +5,25 @@ {{bikePoint?.commonName}} - -
-

Select a range to analyze data

-
- - Enter a range - - - - - - - - -
-
+ +

Select a range to analyze data

+
+ + Enter a range + + + + + + + + +
+
Date: Tue, 12 Jan 2021 22:55:46 +0100 Subject: [PATCH 104/104] Add Favicon and remove outline --- .../src/app/toolbar/toolbar.component.html | 5 ++++- projects/project-3/frontend/src/favicon.ico | Bin 948 -> 15086 bytes projects/project-3/frontend/src/styles.scss | 1 + 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/projects/project-3/frontend/src/app/toolbar/toolbar.component.html b/projects/project-3/frontend/src/app/toolbar/toolbar.component.html index 875cd5f..a78b479 100644 --- a/projects/project-3/frontend/src/app/toolbar/toolbar.component.html +++ b/projects/project-3/frontend/src/app/toolbar/toolbar.component.html @@ -1,5 +1,8 @@ - +
diff --git a/projects/project-3/frontend/src/favicon.ico b/projects/project-3/frontend/src/favicon.ico index 997406ad22c29aae95893fb3d666c30258a09537..58e67bf005b80ee500c3a80558e205d0474b07a9 100644 GIT binary patch literal 15086 zcmeI23y_s%8G!%esw)~S-f~rBw-j$PCE92!fvbXtSP%-)?iDniPxO6 zu|{)J5VOon)+8zEDvY;M%R~_rc10!3%Rv;DT+Zov&i)_s`Ew3?z+Dw*-A>+SZ4@^r>%S*ihM?4&&e|xDTF!1@ItT z3ts^3_m*f&o7&cgzVxYYV=xwD>PfhLld&)tRztA@Z&Lp-oC3A5v0~rxpe=1y@@Fi@ zWNgM*PPU@*hmeO#cCz(vpnEY4f(;e>*jF1_yOqkuW{d+M7Wdr`pcArvS5dbVUVw7G zx~RVdHe?;twU2$X{`8?Qed;^gZj8nnpTlD)zmm~?iSiY2Bq?eQ2Xmc;v@86JbU&!d!gfu3Yn z6x5CT{*&@3$U#<&!B~tb?qkfxeiFp{!m%9(J;@;`IA_78d*QU6I;A>mqJGblA6Z2| zV=}hj&zOyUW>ja})sQ{o&Vh5=07E0Z?}9zko1qcB>nhFVZ)uDBOruq%_7o(rG<=R;v`nQvBgdnc*H(>+}43$x;J!1_0oxi?{UmrKXHV~wz z_&<-L&#^q*3lqWnB1pOTH)Q`jiy`MPkljD7t>-w*Pbc})A&C3u5eV(>pHXR}XKZ@Z zrp`raTS&6|XC4h3a(?5pYyKJtv6$YL64yORou7k>F=qW;SZYa<50Nf{(D!xnqtiB% za_4sj^`5ir{due%dXPhCkMB>{eLNfhOCZEy>b+45$`?W1(5?;7uzlmTdyum0734TF zuR!SM_{M=cv!i<37s4^%d}YP`*bI+Buw|;hoj^GY;#ly(a!qSZHa>^${5bysxAhzed*$B!BV4t`>&aa~F zbT|Tj1@WDup66~11aXX&-rrWzX1uO*yw8F^eN6%PXDo+OcoBl0>CZqt(Vui?fm&yW!xV#tL3ySCA+mIb&&@Gq#2mLc(3n(Yf zi|1qxtcG$ntXl)_ztP~@Rg!ud=0a@eKFYhK9de{6L%DU0`@DwEt>9goop-9%5%;hA z`6|$#XUDre*mQj-K{awTO4+mZ6Y4@7KBJtEVB5XwS$P<4fgeLNYz-SK`WOg9;U)+^ zOdp5cp(k-oe+qG5&);F-+TECGbI*CNYzy}7EjbWF&p{l=<&>-O(SV-w8Ta*m`UE^1 z)q6gy>nk}M!|__XFOI6x**Nr8Kp2DP>mi8u<-L>#L2rxeyc>*wc@SbS)#q^7BgN-L zBV_Lg@0%+j?wie@LwjGy2Qg}#o~`U%;aOe=&!?#4ygJ^j>`6uZz8J^vS~g`n^itV- za6ZKT)|c-CG{*f% zeGd!q`z$^nZQB%*Go#oY!{5R9_pZP`)PESNdCsHOr!oNRw?mkF)0N> z*Jn__^v^*547`tKpjZ+fC{?C~+G4T2g+H|Bip8l7{!rgi@Gt)DNpqLKNVVmgyXtuJ zZ0&03Y`!N+rWG1GTlku(E!5>(+WF4`Z8iBKU+Hyixin4k%S+`X-%eUvNY0#y-n2q} z(?t5Ub`5FDVW%xWa!3t!+mjy+(oa4q)ajQvYK@~%Q*50|T*Z5et+hqc_ToKtrukxf zciPh4U>W~u+8NU3?)t7$S}caNv&H&iF`MT7HHZ3a+L_kVRBEp(^`)s14u!SOH#9ewKi8nEnqodL1r(!#!^^Fck+a=(FD7j#_ny`Y@vBdpDD$cOKaf02*B zB@U!K9j=2J5cKRj3(f(@6yyjp;rFX^LnUb#L#Wz`jJ_O;HkYS)zx}s>ASaON0`yhc8(#~ktlA&9^KJ_GHr7}PZm{f7B_f&2(i z^bzX6RjTP;Z)56&Q_?zp=u2Drz9Y@QN;(>XY)xh;41tfpLtvlh;O7wL+OcSJZ!jKp zwCP%U{)3;7l2`PhFYEsbr@|X)`99L1N46x|J|Du^t|jlf2itFwcf9@%V4HSV!}Sp2 z@jj>pZRlHU!@b$?p$}`*R7{ryceK?Jof9ocCZ;{}+Pm z8S1VkzYQqP^KIbThW2dwByFFBSk9u*1?v6|v^NGke{ugf7U$~**coEkfx_AF7`PsB zEVolGcb;7b*HB;Xu`hw*-gSPh*PrY0GC22>pbpB3XUX$95*%ANn{(58l69n+nq{D` z`7jLhVc9WEgHM6$HW;cE&*?8gJI>!!Futr<=Y13AcqaKf!G6!dKCm$|fKEq2*u$nr zLnG`C@m*O@c@F5)`4;mx!IrQwqOT5cU9}~yp?ltY;};Omhp~opt*-O&W!PBh>HfVQ z!#>x7Y)AHn?}xP`oXc3bER8Hdqu7l%EVO?@_G z@7>;tWe*I^0)0GHhK1C*K088R$v_M{zDnpjKC^ulN59=FXMi6Q-Xi&yLS1`9XKh9X@C?B6NlT$&YO&bR zRxIQ?x~W-?-4(C|_^D(qZ*f=jrO}6SBdqe@%KZW8UeJjF>l>pz~_s)_Ob7hv|K}a5PT2(HvI$a z3(Cdt2!uOEU2WKRC42*vOP~W*!5Vk~hQM_2z1nvrpMAT*8KB-n;JBO@&+&NhJ>W|4 zzPSLt1IF(=(39|SxE&sZBSAgiFTIP^yA`xG30?qgIv(F09QWh!1dIV?KR6$(TL8mA z@!s*izY9JKFM;!W4urWOyH-vh_XOtWRMwy}y;>3Ea{U<4)RkQTf7Kh*1ZyZ`_I literal 948 zcmV;l155mgP)CBYU7IjCFmI-B}4sMJt3^s9NVg!P0 z6hDQy(L`XWMkB@zOLgN$4KYz;j0zZxq9KKdpZE#5@k0crP^5f9KO};h)ZDQ%ybhht z%t9#h|nu0K(bJ ztIkhEr!*UyrZWQ1k2+YkGqDi8Z<|mIN&$kzpKl{cNP=OQzXHz>vn+c)F)zO|Bou>E z2|-d_=qY#Y+yOu1a}XI?cU}%04)zz%anD(XZC{#~WreV!a$7k2Ug`?&CUEc0EtrkZ zL49MB)h!_K{H(*l_93D5tO0;BUnvYlo+;yss%n^&qjt6fZOa+}+FDO(~2>G z2dx@=JZ?DHP^;b7*Y1as5^uphBsh*s*z&MBd?e@I>-9kU>63PjP&^#5YTOb&x^6Cf z?674rmSHB5Fk!{Gv7rv!?qX#ei_L(XtwVqLX3L}$MI|kJ*w(rhx~tc&L&xP#?cQow zX_|gx$wMr3pRZIIr_;;O|8fAjd;1`nOeu5K(pCu7>^3E&D2OBBq?sYa(%S?GwG&_0-s%_v$L@R!5H_fc)lOb9ZoOO#p`Nn`KU z3LTTBtjwo`7(HA6 z7gmO$yTR!5L>Bsg!X8616{JUngg_@&85%>W=mChTR;x4`P=?PJ~oPuy5 zU-L`C@_!34D21{fD~Y8NVnR3t;aqZI3fIhmgmx}$oc-dKDC6Ap$Gy>a!`A*x2L1v0 WcZ@i?LyX}70000