From 2f77cbb9fb768851ff1e9e90142b41a77e8b7048 Mon Sep 17 00:00:00 2001 From: ravikr1 Date: Sun, 28 Jun 2026 11:58:25 +0530 Subject: [PATCH 1/6] Integrate dash uploader --- MANIFEST.in | 1 + components/dash-uploader/.babelrc | 44 + components/dash-uploader/.eslintignore | 2 + components/dash-uploader/.eslintrc | 121 + components/dash-uploader/.gitignore | 285 + components/dash-uploader/.npmignore | 25 + components/dash-uploader/.prettierrc | 6 + components/dash-uploader/.pylintrc | 556 + components/dash-uploader/LICENSE.txt | 21 + components/dash-uploader/MANIFEST.in | 8 + components/dash-uploader/README.md | 165 + components/dash-uploader/_validate_init.py | 66 + components/dash-uploader/assets/style.css | 417 + .../dash-uploader/dash_uploader/__init__.py | 52 + .../dash-uploader/dash_uploader/callbacks.py | 111 + .../dash_uploader/configure_upload.py | 110 + .../dash_uploader/httprequesthandler.py | 198 + .../dash-uploader/dash_uploader/settings.py | 20 + .../dash-uploader/dash_uploader/upload.py | 171 + .../dash-uploader/dash_uploader/utils.py | 19 + .../dash-uploader/devscripts/post_build.py | 20 + components/dash-uploader/docs/CHANGELOG.md | 75 + components/dash-uploader/docs/CONTRIBUTING.md | 172 + .../dash-uploader/docs/README-COOKIECUTTER.md | 61 + components/dash-uploader/docs/README-PyPi.md | 51 + .../dash-uploader/docs/dash-uploader.md | 351 + components/dash-uploader/docs/diagrams.svg | 730 + .../docs/how-dash-uploader-works.svg | 1034 + .../dash-uploader/docs/review_checklist.md | 47 + components/dash-uploader/docs/upload-demo.gif | Bin 0 -> 253748 bytes components/dash-uploader/index.html | 13 + components/dash-uploader/package-lock.json | 28911 ++++++++++++++++ components/dash-uploader/package.json | 60 + components/dash-uploader/pytest.ini | 5 + components/dash-uploader/requirements.txt | 2 + components/dash-uploader/setup.py | 38 + components/dash-uploader/src/demo/App.js | 32 + components/dash-uploader/src/demo/index.js | 5 + components/dash-uploader/tests/__init__.py | 0 .../dash-uploader/tests/apps/__init__.py | 0 .../dash-uploader/tests/apps/disabled.py | 118 + components/dash-uploader/tests/conftest.py | 9 + .../tests/js/drag_and_drop_simulation.js | 9 + .../dash-uploader/tests/requirements.txt | 10 + .../dash-uploader/tests/test_disabled.py | 284 + components/dash-uploader/tests/test_usage.py | 83 + components/dash-uploader/tests/utils.py | 27 + components/dash-uploader/usage.py | 66 + components/dash-uploader/webpack.config.js | 81 + .../dash-uploader/webpack.serve.config.js | 12 + dash/__init__.py | 2 + dash/dash_uploader/__init__.py | 52 + dash/dash_uploader/_build/Button.py | 70 + dash/dash_uploader/_build/ProgressBar.py | 58 + .../_build/Upload_ReactComponent.py | 166 + dash/dash_uploader/_build/__init__.py | 0 dash/dash_uploader/_build/_imports_.py | 9 + .../dash_uploader/_build/dash_uploader.min.js | 2 + .../_build/dash_uploader.min.js.map | 1 + dash/dash_uploader/_build/metadata.json | 1 + dash/dash_uploader/_build/package-info.json | 60 + dash/dash_uploader/callbacks.py | 111 + dash/dash_uploader/configure_upload.py | 110 + dash/dash_uploader/httprequesthandler.py | 198 + dash/dash_uploader/settings.py | 20 + dash/dash_uploader/upload.py | 171 + dash/dash_uploader/utils.py | 19 + dash/development/update_components.py | 1 + 68 files changed, 35755 insertions(+) create mode 100644 components/dash-uploader/.babelrc create mode 100644 components/dash-uploader/.eslintignore create mode 100644 components/dash-uploader/.eslintrc create mode 100644 components/dash-uploader/.gitignore create mode 100644 components/dash-uploader/.npmignore create mode 100644 components/dash-uploader/.prettierrc create mode 100644 components/dash-uploader/.pylintrc create mode 100644 components/dash-uploader/LICENSE.txt create mode 100644 components/dash-uploader/MANIFEST.in create mode 100644 components/dash-uploader/README.md create mode 100644 components/dash-uploader/_validate_init.py create mode 100644 components/dash-uploader/assets/style.css create mode 100644 components/dash-uploader/dash_uploader/__init__.py create mode 100644 components/dash-uploader/dash_uploader/callbacks.py create mode 100644 components/dash-uploader/dash_uploader/configure_upload.py create mode 100644 components/dash-uploader/dash_uploader/httprequesthandler.py create mode 100644 components/dash-uploader/dash_uploader/settings.py create mode 100644 components/dash-uploader/dash_uploader/upload.py create mode 100644 components/dash-uploader/dash_uploader/utils.py create mode 100644 components/dash-uploader/devscripts/post_build.py create mode 100644 components/dash-uploader/docs/CHANGELOG.md create mode 100644 components/dash-uploader/docs/CONTRIBUTING.md create mode 100644 components/dash-uploader/docs/README-COOKIECUTTER.md create mode 100644 components/dash-uploader/docs/README-PyPi.md create mode 100644 components/dash-uploader/docs/dash-uploader.md create mode 100644 components/dash-uploader/docs/diagrams.svg create mode 100644 components/dash-uploader/docs/how-dash-uploader-works.svg create mode 100644 components/dash-uploader/docs/review_checklist.md create mode 100644 components/dash-uploader/docs/upload-demo.gif create mode 100644 components/dash-uploader/index.html create mode 100644 components/dash-uploader/package-lock.json create mode 100644 components/dash-uploader/package.json create mode 100644 components/dash-uploader/pytest.ini create mode 100644 components/dash-uploader/requirements.txt create mode 100644 components/dash-uploader/setup.py create mode 100644 components/dash-uploader/src/demo/App.js create mode 100644 components/dash-uploader/src/demo/index.js create mode 100644 components/dash-uploader/tests/__init__.py create mode 100644 components/dash-uploader/tests/apps/__init__.py create mode 100644 components/dash-uploader/tests/apps/disabled.py create mode 100644 components/dash-uploader/tests/conftest.py create mode 100644 components/dash-uploader/tests/js/drag_and_drop_simulation.js create mode 100644 components/dash-uploader/tests/requirements.txt create mode 100644 components/dash-uploader/tests/test_disabled.py create mode 100644 components/dash-uploader/tests/test_usage.py create mode 100644 components/dash-uploader/tests/utils.py create mode 100644 components/dash-uploader/usage.py create mode 100644 components/dash-uploader/webpack.config.js create mode 100644 components/dash-uploader/webpack.serve.config.js create mode 100644 dash/dash_uploader/__init__.py create mode 100644 dash/dash_uploader/_build/Button.py create mode 100644 dash/dash_uploader/_build/ProgressBar.py create mode 100644 dash/dash_uploader/_build/Upload_ReactComponent.py create mode 100644 dash/dash_uploader/_build/__init__.py create mode 100644 dash/dash_uploader/_build/_imports_.py create mode 100644 dash/dash_uploader/_build/dash_uploader.min.js create mode 100644 dash/dash_uploader/_build/dash_uploader.min.js.map create mode 100644 dash/dash_uploader/_build/metadata.json create mode 100644 dash/dash_uploader/_build/package-info.json create mode 100644 dash/dash_uploader/callbacks.py create mode 100644 dash/dash_uploader/configure_upload.py create mode 100644 dash/dash_uploader/httprequesthandler.py create mode 100644 dash/dash_uploader/settings.py create mode 100644 dash/dash_uploader/upload.py create mode 100644 dash/dash_uploader/utils.py diff --git a/MANIFEST.in b/MANIFEST.in index 457204bf7d..b8d4910df3 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -8,6 +8,7 @@ include dash/deps/*.map include dash/dcc/* include dash/html/* include dash/dash_table/* +include dash/dash_uploader/_build/* include dash/dash-renderer/build/*.js include dash/dash-renderer/build/*.map include dash/labextension/dist/dash-jupyterlab.tgz diff --git a/components/dash-uploader/.babelrc b/components/dash-uploader/.babelrc new file mode 100644 index 0000000000..f41ba72959 --- /dev/null +++ b/components/dash-uploader/.babelrc @@ -0,0 +1,44 @@ +{ + "presets": [ + "@babel/preset-env", + "@babel/preset-react" + ], + "env": { + "production": { + "plugins": [ + "@babel/plugin-proposal-object-rest-spread", + "styled-jsx/babel", + [ + "@babel/plugin-proposal-class-properties", + { + "loose": true + } + ] + ] + }, + "development": { + "plugins": [ + "@babel/plugin-proposal-object-rest-spread", + "styled-jsx/babel", + [ + "@babel/plugin-proposal-class-properties", + { + "loose": true + } + ] + ] + }, + "test": { + "plugins": [ + "@babel/plugin-proposal-object-rest-spread", + "styled-jsx/babel-test", + [ + "@babel/plugin-proposal-class-properties", + { + "loose": true + } + ] + ] + } + } +} \ No newline at end of file diff --git a/components/dash-uploader/.eslintignore b/components/dash-uploader/.eslintignore new file mode 100644 index 0000000000..4a8b0edf10 --- /dev/null +++ b/components/dash-uploader/.eslintignore @@ -0,0 +1,2 @@ +*.css +registerServiceWorker.js \ No newline at end of file diff --git a/components/dash-uploader/.eslintrc b/components/dash-uploader/.eslintrc new file mode 100644 index 0000000000..208c8d7151 --- /dev/null +++ b/components/dash-uploader/.eslintrc @@ -0,0 +1,121 @@ +{ + "extends": ["eslint:recommended", "prettier"], + "parser": "babel-eslint", + "parserOptions": { + "ecmaVersion": 6, + "sourceType": "module", + "ecmaFeatures": { + "arrowFunctions": true, + "blockBindings": true, + "classes": true, + "defaultParams": true, + "destructuring": true, + "forOf": true, + "generators": true, + "modules": true, + "templateStrings": true, + "jsx": true + } + }, + "env": { + "browser": true, + "es6": true, + "jasmine": true, + "jest": true, + "node": true + }, + "globals": { + "jest": true + }, + "plugins": [ + "react", + "import" + ], + "rules": { + "accessor-pairs": ["error"], + "block-scoped-var": ["error"], + "consistent-return": ["error"], + "curly": ["error", "all"], + "default-case": ["error"], + "dot-location": ["off"], + "dot-notation": ["error"], + "eqeqeq": ["error"], + "guard-for-in": ["off"], + "import/named": ["off"], + "import/no-duplicates": ["error"], + "import/no-named-as-default": ["error"], + "new-cap": ["error"], + "no-alert": [1], + "no-caller": ["error"], + "no-case-declarations": ["error"], + "no-console": ["off"], + "no-div-regex": ["error"], + "no-dupe-keys": ["error"], + "no-else-return": ["error"], + "no-empty-pattern": ["error"], + "no-eq-null": ["error"], + "no-eval": ["error"], + "no-extend-native": ["error"], + "no-extra-bind": ["error"], + "no-extra-boolean-cast": ["error"], + "no-inline-comments": ["error"], + "no-implicit-coercion": ["error"], + "no-implied-eval": ["error"], + "no-inner-declarations": ["off"], + "no-invalid-this": ["error"], + "no-iterator": ["error"], + "no-labels": ["error"], + "no-lone-blocks": ["error"], + "no-loop-func": ["error"], + "no-multi-str": ["error"], + "no-native-reassign": ["error"], + "no-new": ["error"], + "no-new-func": ["error"], + "no-new-wrappers": ["error"], + "no-param-reassign": ["error"], + "no-process-env": ["warn"], + "no-proto": ["error"], + "no-redeclare": ["error"], + "no-return-assign": ["error"], + "no-script-url": ["error"], + "no-self-compare": ["error"], + "no-sequences": ["error"], + "no-shadow": ["off"], + "no-throw-literal": ["error"], + "no-undefined": ["error"], + "no-unused-expressions": ["error"], + "no-use-before-define": ["error", "nofunc"], + "no-useless-call": ["error"], + "no-useless-concat": ["error"], + "no-with": ["error"], + "prefer-const": ["error"], + "radix": ["error"], + "react/jsx-no-duplicate-props": ["error"], + "react/jsx-no-undef": ["error"], + "react/jsx-uses-react": ["error"], + "react/jsx-uses-vars": ["error"], + "react/no-did-update-set-state": ["error"], + "react/no-direct-mutation-state": ["error"], + "react/no-is-mounted": ["error"], + "react/no-unknown-property": ["error"], + "react/prefer-es6-class": ["error", "always"], + "react/prop-types": "error", + "valid-jsdoc": ["off"], + "yoda": ["error"], + "spaced-comment": ["error", "always", { + "block": { + "exceptions": ["*"] + } + }], + "no-unused-vars": ["error", { + "args": "after-used", + "argsIgnorePattern": "^_", + "caughtErrorsIgnorePattern": "^e$" + }], + "no-magic-numbers": ["error", { + "ignoreArrayIndexes": true, + "ignore": [-1, 0, 1, 2, 3, 100, 10, 0.5] + }], + "no-underscore-dangle": ["off"] + } +} diff --git a/components/dash-uploader/.gitignore b/components/dash-uploader/.gitignore new file mode 100644 index 0000000000..9ef3e9d907 --- /dev/null +++ b/components/dash-uploader/.gitignore @@ -0,0 +1,285 @@ +# Created by .ignore support plugin (hsz.mobi) +### VisualStudioCode template +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json +### JetBrains template +# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and WebStorm +# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 + +# User-specific stuff +.idea/**/workspace.xml +.idea/**/tasks.xml +.idea/**/usage.statistics.xml +.idea/**/dictionaries +.idea/**/shelf + +# Sensitive or high-churn files +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/dynamic.xml +.idea/**/uiDesigner.xml +.idea/**/dbnavigator.xml + +# Gradle +.idea/**/gradle.xml +.idea/**/libraries + +# Gradle and Maven with auto-import +# When using Gradle or Maven with auto-import, you should exclude module files, +# since they will be recreated, and may cause churn. Uncomment if using +# auto-import. +# .idea/modules.xml +# .idea/*.iml +# .idea/modules + +# CMake +cmake-build-*/ + +# Mongo Explorer plugin +.idea/**/mongoSettings.xml + +# File-based project format +*.iws + +# IntelliJ +out/ + +# mpeltonen/sbt-idea plugin +.idea_modules/ + +# JIRA plugin +atlassian-ide-plugin.xml + +# Cursive Clojure plugin +.idea/replstate.xml + +# Crashlytics plugin (for Android Studio and IntelliJ) +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties + +# Editor-based Rest Client +.idea/httpRequests +### Node template +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# TypeScript v1 declaration files +typings/ + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variables file +.env + +# parcel-bundler cache (https://parceljs.org/) +.cache + +# next.js build output +.next + +# nuxt.js build output +.nuxt + +# vuepress build output +.vuepress/dist + +# Serverless directories +.serverless +### Python template +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.coverage +.coverage.* +nosetests.xml +coverage.xml +*.cover +.hypothesis/ +.pytest_cache/ + +# Translations +*.mo +*.pot + +# Django stuff: +local_settings.py +db.sqlite3 + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# pyenv +.python-version + +# celery beat schedule file +celerybeat-schedule + +# SageMath parsed files +*.sage.py + +# Environments +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +### SublimeText template +# Cache files for Sublime Text +*.tmlanguage.cache +*.tmPreferences.cache +*.stTheme.cache + +# Workspace files are user-specific +*.sublime-workspace + +# Project files should be checked into the repository, unless a significant +# proportion of contributors will probably not be using Sublime Text +# *.sublime-project + +# SFTP configuration file +sftp-config.json + +# Package control specific files +Package Control.last-run +Package Control.ca-list +Package Control.ca-bundle +Package Control.system-ca-bundle +Package Control.cache/ +Package Control.ca-certs/ +Package Control.merged-ca-bundle +Package Control.user-ca-bundle +oscrypto-ca-bundle.crt +bh_unicode_properties.cache + +# Sublime-github package stores a github token in this file +# https://packagecontrol.io/packages/sublime-github +GitHub.sublime-settings + +# automatically created temporary files +inst/ + +.vscode + +# Do not track the build files +dash_uploader/_build + +# Do not track local /tmp +tmp/ \ No newline at end of file diff --git a/components/dash-uploader/.npmignore b/components/dash-uploader/.npmignore new file mode 100644 index 0000000000..69227a1441 --- /dev/null +++ b/components/dash-uploader/.npmignore @@ -0,0 +1,25 @@ +# dependencies +/node_modules + +# testing +/coverage + +# misc +.DS_Store +.env.local +.env.development.local +.env.test.local +.env.production.local + +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# Development folders and files +public +src +scripts +config +.travis.yml +CHANGELOG.md +README.md diff --git a/components/dash-uploader/.prettierrc b/components/dash-uploader/.prettierrc new file mode 100644 index 0000000000..eb81a49a94 --- /dev/null +++ b/components/dash-uploader/.prettierrc @@ -0,0 +1,6 @@ +{ + "tabWidth": 4, + "singleQuote": true, + "bracketSpacing": false, + "trailingComma": "es5" +} diff --git a/components/dash-uploader/.pylintrc b/components/dash-uploader/.pylintrc new file mode 100644 index 0000000000..7540ce0b51 --- /dev/null +++ b/components/dash-uploader/.pylintrc @@ -0,0 +1,556 @@ +[MASTER] + +# A comma-separated list of package or module names from where C extensions may +# be loaded. Extensions are loading into the active Python interpreter and may +# run arbitrary code +extension-pkg-whitelist= + +# Add files or directories to the blacklist. They should be base names, not +# paths. +ignore=CVS + +# Add files or directories matching the regex patterns to the blacklist. The +# regex matches against base names, not paths. +ignore-patterns= + +# Python code to execute, usually for sys.path manipulation such as +# pygtk.require(). +#init-hook= + +# Use multiple processes to speed up Pylint. +jobs=1 + +# List of plugins (as comma separated values of python modules names) to load, +# usually to register additional checkers. +load-plugins= + +# Pickle collected data for later comparisons. +persistent=yes + +# Specify a configuration file. +#rcfile= + +# When enabled, pylint would attempt to guess common misconfiguration and emit +# user-friendly hints instead of false-positive error messages +suggestion-mode=yes + +# Allow loading of arbitrary C extensions. Extensions are imported into the +# active Python interpreter and may run arbitrary code. +unsafe-load-any-extension=no + + +[MESSAGES CONTROL] + +# Only show warnings with the listed confidence levels. Leave empty to show +# all. Valid levels: HIGH, INFERENCE, INFERENCE_FAILURE, UNDEFINED +confidence= + +# Disable the message, report, category or checker with the given id(s). You +# can either give multiple identifiers separated by comma (,) or put this +# option multiple times (only on the command line, not in the configuration +# file where it should appear only once).You can also use "--disable=all" to +# disable everything first and then reenable specific checks. For example, if +# you want to run only the similarities checker, you can use "--disable=all +# --enable=similarities". If you want to run only the classes checker, but have +# no Warning level messages displayed, use"--disable=all --enable=classes +# --disable=W" +disable=print-statement, + parameter-unpacking, + unpacking-in-except, + old-raise-syntax, + backtick, + long-suffix, + old-ne-operator, + old-octal-literal, + import-star-module-level, + non-ascii-bytes-literal, + raw-checker-failed, + bad-inline-option, + locally-disabled, + locally-enabled, + file-ignored, + suppressed-message, + useless-suppression, + deprecated-pragma, + apply-builtin, + basestring-builtin, + buffer-builtin, + cmp-builtin, + coerce-builtin, + execfile-builtin, + file-builtin, + long-builtin, + raw_input-builtin, + reduce-builtin, + standarderror-builtin, + unicode-builtin, + xrange-builtin, + coerce-method, + delslice-method, + getslice-method, + setslice-method, + no-absolute-import, + old-division, + dict-iter-method, + dict-view-method, + next-method-called, + metaclass-assignment, + indexing-exception, + raising-string, + reload-builtin, + oct-method, + hex-method, + nonzero-method, + cmp-method, + input-builtin, + round-builtin, + intern-builtin, + unichr-builtin, + map-builtin-not-iterating, + zip-builtin-not-iterating, + range-builtin-not-iterating, + filter-builtin-not-iterating, + using-cmp-argument, + eq-without-hash, + div-method, + idiv-method, + rdiv-method, + exception-message-attribute, + invalid-str-codec, + sys-max-int, + bad-python3-import, + deprecated-string-function, + deprecated-str-translate-call, + deprecated-itertools-function, + deprecated-types-field, + next-method-defined, + dict-items-not-iterating, + dict-keys-not-iterating, + dict-values-not-iterating, + no-member, + missing-docstring, + invalid-name, + redefined-builtin, + wrong-import-order, + too-many-arguments, + too-many-locals, + consider-using-enumerate, + len-as-condition, + too-many-branches, + too-many-statements, + blacklisted-name, + line-too-long, + bare-except, + duplicate-code, + too-many-function-args, + attribute-defined-outside-init, + broad-except + +# Enable the message, report, category or checker with the given id(s). You can +# either give multiple identifier separated by comma (,) or put this option +# multiple time (only on the command line, not in the configuration file where +# it should appear only once). See also the "--disable" option for examples. +enable=c-extension-no-member + + +[REPORTS] + +# Python expression which should return a note less than 10 (10 is the highest +# note). You have access to the variables errors warning, statement which +# respectively contain the number of errors / warnings messages and the total +# number of statements analyzed. This is used by the global evaluation report +# (RP0004). +evaluation=10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10) + +# Template used to display messages. This is a python new-style format string +# used to format the message information. See doc for all details +#msg-template= + +# Set the output format. Available formats are text, parseable, colorized, json +# and msvs (visual studio).You can also give a reporter class, eg +# mypackage.mymodule.MyReporterClass. +output-format=text + +# Tells whether to display a full report or only the messages +reports=no + +# Activate the evaluation score. +score=yes + + +[REFACTORING] + +# Maximum number of nested blocks for function / method body +max-nested-blocks=5 + +# Complete name of functions that never returns. When checking for +# inconsistent-return-statements if a never returning function is called then +# it will be considered as an explicit return statement and no message will be +# printed. +never-returning-functions=optparse.Values,sys.exit + + +[BASIC] + +# Naming style matching correct argument names +argument-naming-style=snake_case + +# Regular expression matching correct argument names. Overrides argument- +# naming-style +#argument-rgx= + +# Naming style matching correct attribute names +attr-naming-style=snake_case + +# Regular expression matching correct attribute names. Overrides attr-naming- +# style +#attr-rgx= + +# Bad variable names which should always be refused, separated by a comma +bad-names=foo, + bar, + baz, + toto, + tutu, + tata + +# Naming style matching correct class attribute names +class-attribute-naming-style=any + +# Regular expression matching correct class attribute names. Overrides class- +# attribute-naming-style +#class-attribute-rgx= + +# Naming style matching correct class names +class-naming-style=PascalCase + +# Regular expression matching correct class names. Overrides class-naming-style +#class-rgx= + +# Naming style matching correct constant names +const-naming-style=UPPER_CASE + +# Regular expression matching correct constant names. Overrides const-naming- +# style +#const-rgx= + +# Minimum line length for functions/classes that require docstrings, shorter +# ones are exempt. +docstring-min-length=-1 + +# Naming style matching correct function names +function-naming-style=snake_case + +# Regular expression matching correct function names. Overrides function- +# naming-style +#function-rgx= + +# Good variable names which should always be accepted, separated by a comma +good-names=i, + j, + k, + ex, + Run, + _ + +# Include a hint for the correct naming format with invalid-name +include-naming-hint=no + +# Naming style matching correct inline iteration names +inlinevar-naming-style=any + +# Regular expression matching correct inline iteration names. Overrides +# inlinevar-naming-style +#inlinevar-rgx= + +# Naming style matching correct method names +method-naming-style=snake_case + +# Regular expression matching correct method names. Overrides method-naming- +# style +#method-rgx= + +# Naming style matching correct module names +module-naming-style=snake_case + +# Regular expression matching correct module names. Overrides module-naming- +# style +#module-rgx= + +# Colon-delimited sets of names that determine each other's naming style when +# the name regexes allow several styles. +name-group= + +# Regular expression which should only match function or class names that do +# not require a docstring. +no-docstring-rgx=^_ + +# List of decorators that produce properties, such as abc.abstractproperty. Add +# to this list to register other decorators that produce valid properties. +property-classes=abc.abstractproperty + +# Naming style matching correct variable names +variable-naming-style=snake_case + +# Regular expression matching correct variable names. Overrides variable- +# naming-style +#variable-rgx= + + +[FORMAT] + +# Expected format of line ending, e.g. empty (any line ending), LF or CRLF. +expected-line-ending-format= + +# Regexp for a line that is allowed to be longer than the limit. +ignore-long-lines=^\s*(# )??$ + +# Number of spaces of indent required inside a hanging or continued line. +indent-after-paren=4 + +# String used as indentation unit. This is usually " " (4 spaces) or "\t" (1 +# tab). +indent-string=' ' + +# Maximum number of characters on a single line. +max-line-length=100 + +# Maximum number of lines in a module +max-module-lines=1000 + +# List of optional constructs for which whitespace checking is disabled. `dict- +# separator` is used to allow tabulation in dicts, etc.: {1 : 1,\n222: 2}. +# `trailing-comma` allows a space between comma and closing bracket: (a, ). +# `empty-line` allows space-only lines. +no-space-check=trailing-comma, + dict-separator + +# Allow the body of a class to be on the same line as the declaration if body +# contains single statement. +single-line-class-stmt=no + +# Allow the body of an if to be on the same line as the test if there is no +# else. +single-line-if-stmt=no + + +[LOGGING] + +# Logging modules to check that the string format arguments are in logging +# function parameter format +logging-modules=logging + + +[MISCELLANEOUS] + +# List of note tags to take in consideration, separated by a comma. +notes=FIXME, + XXX, + + +[SIMILARITIES] + +# Ignore comments when computing similarities. +ignore-comments=yes + +# Ignore docstrings when computing similarities. +ignore-docstrings=yes + +# Ignore imports when computing similarities. +ignore-imports=no + +# Minimum lines number of a similarity. +min-similarity-lines=4 + + +[SPELLING] + +# Limits count of emitted suggestions for spelling mistakes +max-spelling-suggestions=4 + +# Spelling dictionary name. Available dictionaries: none. To make it working +# install python-enchant package. +spelling-dict= + +# List of comma separated words that should not be checked. +spelling-ignore-words= + +# A path to a file that contains private dictionary; one word per line. +spelling-private-dict-file= + +# Tells whether to store unknown words to indicated private dictionary in +# --spelling-private-dict-file option instead of raising a message. +spelling-store-unknown-words=no + + +[TYPECHECK] + +# List of decorators that produce context managers, such as +# contextlib.contextmanager. Add to this list to register other decorators that +# produce valid context managers. +contextmanager-decorators=contextlib.contextmanager + +# List of members which are set dynamically and missed by pylint inference +# system, and so shouldn't trigger E1101 when accessed. Python regular +# expressions are accepted. +generated-members= + +# Tells whether missing members accessed in mixin class should be ignored. A +# mixin class is detected if its name ends with "mixin" (case insensitive). +ignore-mixin-members=yes + +# This flag controls whether pylint should warn about no-member and similar +# checks whenever an opaque object is returned when inferring. The inference +# can return multiple potential results while evaluating a Python object, but +# some branches might not be evaluated, which results in partial inference. In +# that case, it might be useful to still emit no-member and other checks for +# the rest of the inferred objects. +ignore-on-opaque-inference=yes + +# List of class names for which member attributes should not be checked (useful +# for classes with dynamically set attributes). This supports the use of +# qualified names. +ignored-classes=optparse.Values,thread._local,_thread._local + +# List of module names for which member attributes should not be checked +# (useful for modules/projects where namespaces are manipulated during runtime +# and thus existing member attributes cannot be deduced by static analysis. It +# supports qualified module names, as well as Unix pattern matching. +ignored-modules= + +# Show a hint with possible names when a member name was not found. The aspect +# of finding the hint is based on edit distance. +missing-member-hint=yes + +# The minimum edit distance a name should have in order to be considered a +# similar match for a missing member name. +missing-member-hint-distance=1 + +# The total number of similar names that should be taken in consideration when +# showing a hint for a missing member. +missing-member-max-choices=1 + + +[VARIABLES] + +# List of additional names supposed to be defined in builtins. Remember that +# you should avoid to define new builtins when possible. +additional-builtins= + +# Tells whether unused global variables should be treated as a violation. +allow-global-unused-variables=yes + +# List of strings which can identify a callback function by name. A callback +# name must start or end with one of those strings. +callbacks=cb_, + _cb + +# A regular expression matching the name of dummy variables (i.e. expectedly +# not used). +dummy-variables-rgx=_+$|(_[a-zA-Z0-9_]*[a-zA-Z0-9]+?$)|dummy|^ignored_|^unused_ + +# Argument names that match this expression will be ignored. Default to name +# with leading underscore +ignored-argument-names=_.*|^ignored_|^unused_ + +# Tells whether we should check for unused import in __init__ files. +init-import=no + +# List of qualified module names which can have objects that can redefine +# builtins. +redefining-builtins-modules=six.moves,past.builtins,future.builtins + + +[CLASSES] + +# List of method names used to declare (i.e. assign) instance attributes. +defining-attr-methods=__init__, + __new__, + setUp + +# List of member names, which should be excluded from the protected access +# warning. +exclude-protected=_asdict, + _fields, + _replace, + _source, + _make + +# List of valid names for the first argument in a class method. +valid-classmethod-first-arg=cls + +# List of valid names for the first argument in a metaclass class method. +valid-metaclass-classmethod-first-arg=mcs + + +[DESIGN] + +# Maximum number of arguments for function / method +max-args=5 + +# Maximum number of attributes for a class (see R0902). +max-attributes=7 + +# Maximum number of boolean expressions in a if statement +max-bool-expr=5 + +# Maximum number of branch for function / method body +max-branches=12 + +# Maximum number of locals for function / method body +max-locals=15 + +# Maximum number of parents for a class (see R0901). +max-parents=7 + +# Maximum number of public methods for a class (see R0904). +max-public-methods=20 + +# Maximum number of return / yield for function / method body +max-returns=6 + +# Maximum number of statements in function / method body +max-statements=50 + +# Minimum number of public methods for a class (see R0903). +min-public-methods=2 + + +[IMPORTS] + +# Allow wildcard imports from modules that define __all__. +allow-wildcard-with-all=no + +# Analyse import fallback blocks. This can be used to support both Python 2 and +# 3 compatible code, which means that the block might have code that exists +# only in one or another interpreter, leading to false positives when analysed. +analyse-fallback-blocks=no + +# Deprecated modules which should not be used, separated by a comma +deprecated-modules=optparse,tkinter.tix + +# Create a graph of external dependencies in the given file (report RP0402 must +# not be disabled) +ext-import-graph= + +# Create a graph of every (i.e. internal and external) dependencies in the +# given file (report RP0402 must not be disabled) +import-graph= + +# Create a graph of internal dependencies in the given file (report RP0402 must +# not be disabled) +int-import-graph= + +# Force import order to recognize a module as part of the standard +# compatibility libraries. +known-standard-library= + +# Force import order to recognize a module as part of a third party library. +known-third-party=enchant + + +[EXCEPTIONS] + +# Exceptions that will emit a warning when being caught. Defaults to +# "Exception" +overgeneral-exceptions=Exception diff --git a/components/dash-uploader/LICENSE.txt b/components/dash-uploader/LICENSE.txt new file mode 100644 index 0000000000..873b87bd4d --- /dev/null +++ b/components/dash-uploader/LICENSE.txt @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Niko Pasanen + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/components/dash-uploader/MANIFEST.in b/components/dash-uploader/MANIFEST.in new file mode 100644 index 0000000000..ef359bea06 --- /dev/null +++ b/components/dash-uploader/MANIFEST.in @@ -0,0 +1,8 @@ +include dash_uploader/_build/dash_uploader.min.js +include dash_uploader/_build/dash_uploader.min.js.map +include dash_uploader/_build/metadata.json +include dash_uploader/_build/package-info.json +include README.md +include docs/README-PyPi.md +include LICENSE +include package.json diff --git a/components/dash-uploader/README.md b/components/dash-uploader/README.md new file mode 100644 index 0000000000..29b042e316 --- /dev/null +++ b/components/dash-uploader/README.md @@ -0,0 +1,165 @@ +![GitHub tag (latest by date)](https://img.shields.io/github/v/tag/np-8/dash-uploader) ![PyPI](https://img.shields.io/pypi/v/dash-uploader) ![PyPI - Downloads](https://img.shields.io/pypi/dm/dash-uploader) ![GitHub](https://img.shields.io/github/license/np-8/dash-uploader) + +![upload large files with dash-uploader](docs/upload-demo.gif) + +# 📤 dash-uploader + +The alternative upload component for [Dash](https://dash.plotly.com/) applications. + + +## Table of contents +- [Short summary](#short-summary) +- [dash-uploader vs. dcc.Upload](#dash-uploader-vs-dccupload) +- [Installing](#installing) +- [Quickstart](#quickstart) + - [Simple example](#simple-example) + - [Example with callback](#example-with-callback-and-other-options) +- [Contributing](#contributing) +- [Documentation](#documentation) +- [Changelog](#changelog) +- [Credits](#credits) + +## Short summary +      💾 Data file size has no limits. (Except the hard disk size)
+      ☎ Call easily a callback after uploading is finished.
+      📤 Upload files using [resumable.js](https://github.com/23/resumable.js)
+      📦 All JS and CSS bundled with the package. No need for network calls for CSS/JS.
+      ✅ Works with Dash 1.1.0.+ & Python 3.6+. (Possibly with other versions, too)
+ + +### dash-uploader vs. [dcc.Upload](https://dash.plotly.com/dash-core-components/upload) + + + + + +| | dash-uploader | [dcc.Upload](https://dash.plotly.com/dash-core-components/upload) | +| --------------------- | -------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| Underlying technology | [resumable.js](http://www.resumablejs.com/) | HTML5 API | +| File size | Unlimited | max ~150-200Mb ([link](https://community.plotly.com/t/dash-upload-component-decoding-large-files/8033/11)) | +| Uploads to | Hard disk (server side) | First to browser memory (user side) Then, to server using callbacks. | +| Data type | Uploaded as file; no need to parse at server side. | Uploaded as byte64 encoded string -> Needs parsing | +| See upload progress? | Progressbar out of the box | No upload indicators out of the box. Generic loading indicator possible. [Progressbar not possible](https://community.plotly.com/t/upload-after-confirmation-and-progress-bar/7172). | + +# Installing +``` +pip install dash-uploader +``` + +# Quickstart + +Full documentation [here](docs/dash-uploader.md) +>⚠️**Security note**: The Upload component allows POST requests and uploads of arbitrary files to the server harddisk and one should take this into account (with user token checking etc.) if used as part of a public website! For this you can utilize the `http_request_handler` argument of the [du.configure_upload](https://github.com/np-8/dash-uploader/blob/master/docs/dash-uploader.md#duconfigure_upload). (New in version 0.5.0) + +## Simple example + +```python +import dash +import dash_html_components as html +import dash_uploader as du + +app = dash.Dash(__name__) + +# 1) configure the upload folder +du.configure_upload(app, r"C:\tmp\Uploads") + +# 2) Use the Upload component +app.layout = html.Div([ + du.Upload(), +]) + +if __name__ == '__main__': + app.run_server(debug=True) + +``` + +## Example with callback (and other options) +- **New in version 0.3.0:** New short callback syntax using `@du.callback`. +- **New in version 0.2.0:** The configure_upload accepts additional parameter `use_upload_id`, which is a boolean flag (Defaults to True). When True, the uploaded files are put into subfolders `/`. This way different users can be forced to upload to different folders. + +```python +from pathlib import Path +import uuid + +import dash_uploader as du +import dash +import dash_html_components as html +from dash.dependencies import Input, Output, State + +app = dash.Dash(__name__) + +UPLOAD_FOLDER_ROOT = r"C:\tmp\Uploads" +du.configure_upload(app, UPLOAD_FOLDER_ROOT) + +def get_upload_component(id): + return du.Upload( + id=id, + max_file_size=1800, # 1800 Mb + filetypes=['csv', 'zip'], + upload_id=uuid.uuid1(), # Unique session id + ) + + +def get_app_layout(): + + return html.Div( + [ + html.H1('Demo'), + html.Div( + [ + get_upload_component(id='dash-uploader'), + html.Div(id='callback-output'), + ], + style={ # wrapper div style + 'textAlign': 'center', + 'width': '600px', + 'padding': '10px', + 'display': 'inline-block' + }), + ], + style={ + 'textAlign': 'center', + }, + ) + + +# get_app_layout is a function +# This way we can use unique session id's as upload_id's +app.layout = get_app_layout + + +@du.callback( + output=Output('callback-output', 'children'), + id='dash-uploader', +) +def get_a_list(filenames): + return html.Ul([html.Li(filenames)]) + + +if __name__ == '__main__': + app.run_server(debug=True) + +``` + + +## Contributing + + +| What? | How? | +| :----------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| 🐞 Found a bug? | 🎟 File an Issue | +| 🙋‍♂️ Need help? | ❔ Ask a question on StackOverflow
📧 Use this thread on community.plotly.com | +| 💡 Want to submit a feature request? | 🎭 Discuss about it on community.plotly.com
🎫 File an Issue (feature request) | +| 🧙 Want to write code? | 🔥 Here's how you get started! | +## Documentation +- See: [Documentation](docs/dash-uploader.md) and [Developer documentation](docs/CONTRIBUTING.md) . + +## Changelog + +- See: [Changelog](./docs/CHANGELOG.md) +## Credits +- History: This package is based on the React 16 compatible version [dash-resumable-upload](https://github.com/westonkjones/dash-resumable-upload) (0.0.4) by [Weston Jones](https://github.com/westonkjones/) which in turn is based on [dash-resumable-upload](https://github.com/rmarren1/dash-resumable-upload) (0.0.3) by [Ryan Marren](https://github.com/rmarren1) +- The package boilerplate is taken from the [dash-component-boilerplate](https://github.com/plotly/dash-component-boilerplate). +- The uploading JS function utilizes the [resumable.js](http://www.resumablejs.com/) (1.1.0). +- The JS component is created using [React](https://github.com/facebook/react) (17.0.x) +- The CSS styling is mostly from [Bootstrap](https://getbootstrap.com/) 4. diff --git a/components/dash-uploader/_validate_init.py b/components/dash-uploader/_validate_init.py new file mode 100644 index 0000000000..f98bccdde9 --- /dev/null +++ b/components/dash-uploader/_validate_init.py @@ -0,0 +1,66 @@ +""" +DO NOT MODIFY +This file is used to validate your publish settings. +""" +from __future__ import print_function + +import os +import sys +import importlib + + +components_package = "dash_uploader" + +components_lib = importlib.import_module(components_package) + +missing_dist_msg = "Warning {} was not found in `{}.__init__.{}`!!!" +missing_manifest_msg = """ +Warning {} was not found in `MANIFEST.in`! +It will not be included in the build! +""" + +with open("MANIFEST.in", "r") as f: + manifest = f.read() + + +def check_dist(dist, filename): + # Support the dev bundle. + if filename.endswith("dev.js"): + return True + + return any( + filename in x + for d in dist + for x in ( + [d.get("relative_package_path")] + if not isinstance(d.get("relative_package_path"), list) + else d.get("relative_package_path") + ) + ) + + +def check_manifest(filename): + return filename in manifest + + +def check_file(dist, filename): + if not check_dist(dist, filename): + print( + missing_dist_msg.format(filename, components_package, "_js_dist"), + file=sys.stderr, + ) + if not check_manifest(filename): + print(missing_manifest_msg.format(filename), file=sys.stderr) + + +for cur, _, files in os.walk(components_package): + for f in files: + + if f.endswith("js"): + # noinspection PyProtectedMember + check_file(components_lib._js_dist, f) + elif f.endswith("css"): + # noinspection PyProtectedMember + check_file(components_lib._css_dist, f) + elif not f.endswith("py"): + check_manifest(f) diff --git a/components/dash-uploader/assets/style.css b/components/dash-uploader/assets/style.css new file mode 100644 index 0000000000..b3960fd0e0 --- /dev/null +++ b/components/dash-uploader/assets/style.css @@ -0,0 +1,417 @@ +/* From: https://codepen.io/chriddyp/pen/bWLwgP.css */ + +/* Table of contents +–––––––––––––––––––––––––––––––––––––––––––––––––– +- Plotly.js +- Grid +- Base Styles +- Typography +- Links +- Buttons +- Forms +- Lists +- Code +- Tables +- Spacing +- Utilities +- Clearing +- Media Queries +*/ + +/* PLotly.js +–––––––––––––––––––––––––––––––––––––––––––––––––– */ +/* plotly.js's modebar's z-index is 1001 by default + * https://github.com/plotly/plotly.js/blob/7e4d8ab164258f6bd48be56589dacd9bdd7fded2/src/css/_modebar.scss#L5 + * In case a dropdown is above the graph, the dropdown's options + * will be rendered below the modebar + * Increase the select option's z-index + */ + +/* This was actually not quite right - + dropdowns were overlapping each other (edited October 26) + +.Select { + z-index: 1002; +}*/ + + +/* Grid +–––––––––––––––––––––––––––––––––––––––––––––––––– */ +.container { + position: relative; + width: 100%; + max-width: 960px; + margin: 0 auto; + padding: 0 20px; + box-sizing: border-box; } + .column, + .columns { + width: 100%; + float: left; + box-sizing: border-box; } + + /* For devices larger than 400px */ + @media (min-width: 400px) { + .container { + width: 85%; + padding: 0; } + } + + /* For devices larger than 550px */ + @media (min-width: 550px) { + .container { + width: 80%; } + .column, + .columns { + margin-left: 4%; } + .column:first-child, + .columns:first-child { + margin-left: 0; } + + .one.column, + .one.columns { width: 4.66666666667%; } + .two.columns { width: 13.3333333333%; } + .three.columns { width: 22%; } + .four.columns { width: 30.6666666667%; } + .five.columns { width: 39.3333333333%; } + .six.columns { width: 48%; } + .seven.columns { width: 56.6666666667%; } + .eight.columns { width: 65.3333333333%; } + .nine.columns { width: 74.0%; } + .ten.columns { width: 82.6666666667%; } + .eleven.columns { width: 91.3333333333%; } + .twelve.columns { width: 100%; margin-left: 0; } + + .one-third.column { width: 30.6666666667%; } + .two-thirds.column { width: 65.3333333333%; } + + .one-half.column { width: 48%; } + + /* Offsets */ + .offset-by-one.column, + .offset-by-one.columns { margin-left: 8.66666666667%; } + .offset-by-two.column, + .offset-by-two.columns { margin-left: 17.3333333333%; } + .offset-by-three.column, + .offset-by-three.columns { margin-left: 26%; } + .offset-by-four.column, + .offset-by-four.columns { margin-left: 34.6666666667%; } + .offset-by-five.column, + .offset-by-five.columns { margin-left: 43.3333333333%; } + .offset-by-six.column, + .offset-by-six.columns { margin-left: 52%; } + .offset-by-seven.column, + .offset-by-seven.columns { margin-left: 60.6666666667%; } + .offset-by-eight.column, + .offset-by-eight.columns { margin-left: 69.3333333333%; } + .offset-by-nine.column, + .offset-by-nine.columns { margin-left: 78.0%; } + .offset-by-ten.column, + .offset-by-ten.columns { margin-left: 86.6666666667%; } + .offset-by-eleven.column, + .offset-by-eleven.columns { margin-left: 95.3333333333%; } + + .offset-by-one-third.column, + .offset-by-one-third.columns { margin-left: 34.6666666667%; } + .offset-by-two-thirds.column, + .offset-by-two-thirds.columns { margin-left: 69.3333333333%; } + + .offset-by-one-half.column, + .offset-by-one-half.columns { margin-left: 52%; } + + } + + + /* Base Styles + –––––––––––––––––––––––––––––––––––––––––––––––––– */ + /* NOTE + html is set to 62.5% so that all the REM measurements throughout Skeleton + are based on 10px sizing. So basically 1.5rem = 15px :) */ + html { + font-size: 62.5%; } + body { + font-size: 1.5em; /* currently ems cause chrome bug misinterpreting rems on body element */ + line-height: 1.6; + font-weight: 400; + font-family: "Open Sans", "HelveticaNeue", "Helvetica Neue", Helvetica, Arial, sans-serif; + color: rgb(50, 50, 50); } + + + /* Typography + –––––––––––––––––––––––––––––––––––––––––––––––––– */ + h1, h2, h3, h4, h5, h6 { + margin-top: 0; + margin-bottom: 0; + font-weight: 300; } + h1 { font-size: 4.5rem; line-height: 1.2; letter-spacing: -.1rem; margin-bottom: 2rem; } + h2 { font-size: 3.6rem; line-height: 1.25; letter-spacing: -.1rem; margin-bottom: 1.8rem; margin-top: 1.8rem;} + h3 { font-size: 3.0rem; line-height: 1.3; letter-spacing: -.1rem; margin-bottom: 1.5rem; margin-top: 1.5rem;} + h4 { font-size: 2.6rem; line-height: 1.35; letter-spacing: -.08rem; margin-bottom: 1.2rem; margin-top: 1.2rem;} + h5 { font-size: 2.2rem; line-height: 1.5; letter-spacing: -.05rem; margin-bottom: 0.6rem; margin-top: 0.6rem;} + h6 { font-size: 2.0rem; line-height: 1.6; letter-spacing: 0; margin-bottom: 0.75rem; margin-top: 0.75rem;} + + p { + margin-top: 0; } + + + /* Blockquotes + –––––––––––––––––––––––––––––––––––––––––––––––––– */ + blockquote { + border-left: 4px lightgrey solid; + padding-left: 1rem; + margin-top: 2rem; + margin-bottom: 2rem; + margin-left: 0rem; + } + + + /* Links + –––––––––––––––––––––––––––––––––––––––––––––––––– */ + a { + color: #1EAEDB; + text-decoration: underline; + cursor: pointer;} + a:hover { + color: #0FA0CE; } + + + /* Buttons + –––––––––––––––––––––––––––––––––––––––––––––––––– */ + .button, + button, + input[type="submit"], + input[type="reset"], + input[type="button"] { + display: inline-block; + height: 38px; + padding: 0 30px; + color: #555; + text-align: center; + font-size: 11px; + font-weight: 600; + line-height: 38px; + letter-spacing: .1rem; + text-transform: uppercase; + text-decoration: none; + white-space: nowrap; + background-color: transparent; + border-radius: 4px; + border: 1px solid #bbb; + cursor: pointer; + box-sizing: border-box; } + .button:hover, + button:hover, + input[type="submit"]:hover, + input[type="reset"]:hover, + input[type="button"]:hover, + .button:focus, + button:focus, + input[type="submit"]:focus, + input[type="reset"]:focus, + input[type="button"]:focus { + color: #333; + border-color: #888; + outline: 0; } + .button.button-primary, + button.button-primary, + input[type="submit"].button-primary, + input[type="reset"].button-primary, + input[type="button"].button-primary { + color: #FFF; + background-color: #33C3F0; + border-color: #33C3F0; } + .button.button-primary:hover, + button.button-primary:hover, + input[type="submit"].button-primary:hover, + input[type="reset"].button-primary:hover, + input[type="button"].button-primary:hover, + .button.button-primary:focus, + button.button-primary:focus, + input[type="submit"].button-primary:focus, + input[type="reset"].button-primary:focus, + input[type="button"].button-primary:focus { + color: #FFF; + background-color: #1EAEDB; + border-color: #1EAEDB; } + + + /* Forms + –––––––––––––––––––––––––––––––––––––––––––––––––– */ + input[type="email"], + input[type="number"], + input[type="search"], + input[type="text"], + input[type="tel"], + input[type="url"], + input[type="password"], + textarea, + select { + height: 38px; + padding: 6px 10px; /* The 6px vertically centers text on FF, ignored by Webkit */ + background-color: #fff; + border: 1px solid #D1D1D1; + border-radius: 4px; + box-shadow: none; + box-sizing: border-box; + font-family: inherit; + font-size: inherit; /*https://stackoverflow.com/questions/6080413/why-doesnt-input-inherit-the-font-from-body*/} + /* Removes awkward default styles on some inputs for iOS */ + input[type="email"], + input[type="number"], + input[type="search"], + input[type="text"], + input[type="tel"], + input[type="url"], + input[type="password"], + textarea { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; } + textarea { + min-height: 65px; + padding-top: 6px; + padding-bottom: 6px; } + input[type="email"]:focus, + input[type="number"]:focus, + input[type="search"]:focus, + input[type="text"]:focus, + input[type="tel"]:focus, + input[type="url"]:focus, + input[type="password"]:focus, + textarea:focus, + select:focus { + border: 1px solid #33C3F0; + outline: 0; } + label, + legend { + display: block; + margin-bottom: 0px; } + fieldset { + padding: 0; + border-width: 0; } + input[type="checkbox"], + input[type="radio"] { + display: inline; } + label > .label-body { + display: inline-block; + margin-left: .5rem; + font-weight: normal; } + + + /* Lists + –––––––––––––––––––––––––––––––––––––––––––––––––– */ + ul { + list-style: circle inside; } + ol { + list-style: decimal inside; } + ol, ul { + padding-left: 0; + margin-top: 0; } + ul ul, + ul ol, + ol ol, + ol ul { + margin: 1.5rem 0 1.5rem 3rem; + font-size: 90%; } + li { + margin-bottom: 1rem; } + + + /* Tables + –––––––––––––––––––––––––––––––––––––––––––––––––– */ + table { + border-collapse: collapse; + } + th:not(.CalendarDay), + td:not(.CalendarDay) { + padding: 12px 15px; + text-align: left; + border-bottom: 1px solid #E1E1E1; } + th:first-child:not(.CalendarDay), + td:first-child:not(.CalendarDay) { + padding-left: 0; } + th:last-child:not(.CalendarDay), + td:last-child:not(.CalendarDay) { + padding-right: 0; } + + + /* Spacing + –––––––––––––––––––––––––––––––––––––––––––––––––– */ + button, + .button { + margin-bottom: 0rem; } + input, + textarea, + select, + fieldset { + margin-bottom: 0rem; } + pre, + dl, + figure, + table, + form { + margin-bottom: 0rem; } + p, + ul, + ol { + margin-bottom: 0.75rem; } + + /* Utilities + –––––––––––––––––––––––––––––––––––––––––––––––––– */ + .u-full-width { + width: 100%; + box-sizing: border-box; } + .u-max-full-width { + max-width: 100%; + box-sizing: border-box; } + .u-pull-right { + float: right; } + .u-pull-left { + float: left; } + + + /* Misc + –––––––––––––––––––––––––––––––––––––––––––––––––– */ + hr { + margin-top: 3rem; + margin-bottom: 3.5rem; + border-width: 0; + border-top: 1px solid #E1E1E1; } + + + /* Clearing + –––––––––––––––––––––––––––––––––––––––––––––––––– */ + + /* Self Clearing Goodness */ + .container:after, + .row:after, + .u-cf { + content: ""; + display: table; + clear: both; } + + + /* Media Queries + –––––––––––––––––––––––––––––––––––––––––––––––––– */ + /* + Note: The best way to structure the use of media queries is to create the queries + near the relevant code. For example, if you wanted to change the styles for buttons + on small devices, paste the mobile query code up in the buttons section and style it + there. + */ + + + /* Larger than mobile */ + @media (min-width: 400px) {} + + /* Larger than phablet (also point when grid becomes active) */ + @media (min-width: 550px) {} + + /* Larger than tablet */ + @media (min-width: 750px) {} + + /* Larger than desktop */ + @media (min-width: 1000px) {} + + /* Larger than Desktop HD */ + @media (min-width: 1200px) {} \ No newline at end of file diff --git a/components/dash-uploader/dash_uploader/__init__.py b/components/dash-uploader/dash_uploader/__init__.py new file mode 100644 index 0000000000..a40c3a092e --- /dev/null +++ b/components/dash-uploader/dash_uploader/__init__.py @@ -0,0 +1,52 @@ +import os as _os +import sys as _sys +import json + +import dash as _dash + +from dash_uploader.configure_upload import configure_upload +from dash_uploader.callbacks import callback +from dash_uploader.httprequesthandler import HttpRequestHandler +from dash_uploader.upload import Upload + +# noinspection PyUnresolvedReferences +from ._build._imports_ import * # noqa: F403,F401 +from ._build._imports_ import __all__ as build_all + +# Defines all exposed APIs of this package. +__all__ = ["configure_upload", "callback", "HttpRequestHandler", "Upload"] + +if not hasattr(_dash, "development"): + print( + "Dash was not successfully imported. " + "Make sure you don't have a file " + 'named \n"dash.py" in your current directory.', + file=_sys.stderr, + ) + _sys.exit(1) + +_basepath = _os.path.dirname(__file__) +_filepath = _os.path.abspath(_os.path.join(_basepath, "_build", "package-info.json")) +with open(_filepath) as f: + package = json.load(f) + +package_name = package["name"].replace(" ", "_").replace("-", "_") +__version__ = package["version"] + +_current_path = _os.path.dirname(_os.path.abspath(__file__)) + +_this_module = _sys.modules[__name__] +_js_dist = [ + {"relative_package_path": "_build/dash_uploader.min.js", "namespace": package_name}, + { + "relative_package_path": "_build/dash_uploader.min.js.map", + "namespace": package_name, + "dynamic": True, + }, +] + +_css_dist = [] + +for _component in build_all: + setattr(locals()[_component], "_js_dist", _js_dist) + setattr(locals()[_component], "_css_dist", _css_dist) diff --git a/components/dash-uploader/dash_uploader/callbacks.py b/components/dash-uploader/dash_uploader/callbacks.py new file mode 100644 index 0000000000..0001b514d7 --- /dev/null +++ b/components/dash-uploader/dash_uploader/callbacks.py @@ -0,0 +1,111 @@ +from packaging import version +from pathlib import Path + +from dash import __version__ as dashversion +from dash.dependencies import Input, State + +import dash_uploader.settings as settings + + +def compare_dash_version(req_version="1.12"): + """Compare the version of dash. + Will return True if current dash version is greater than + the argument "req_version". + This is a private method, and should not be exposed to users. + """ + cur_version = version.parse(dashversion) + return cur_version >= version.parse(req_version) + + +def create_dash_callback(callback, settings): # pylint: disable=redefined-outer-name + """Wrap the dash callback with the du.settings. + This function could be used as a wrapper. It will add the + configurations of dash-uploader to the callback. + This is a private method, and should not be exposed to users. + """ + + def wrapper(iscompleted, filenames, upload_id): + if not iscompleted: + return + + out = [] + if filenames is not None: + if upload_id: + root_folder = Path(settings.UPLOAD_FOLDER_ROOT) / upload_id + else: + root_folder = Path(settings.UPLOAD_FOLDER_ROOT) + + for filename in filenames: + file = root_folder / filename + out.append(str(file)) + + return callback(out) + + return wrapper + + +def callback( + output, + id="dash-uploader", +): + """ + Add a callback to dash application. + This callback fires when upload is completed. + Note: Must be called after du.configure_upload! + + Parameters + ---------- + output: dash Ouput + The output dash component + id: str + The id of the du.Upload component. + + Example + ------- + @du.callback( + output=Output('callback-output', 'children'), + id='dash-uploader', + ) + def get_a_list(filenames): + return html.Ul([html.Li(filenames)]) + + + """ + + def add_callback(function): + """ + Parameters + --------- + function: callable + Function that receivers one argument, + filenames and returns one argument, + a dash component. The filenames is either + None or list of str containing the uploaded + file(s). + output: dash.dependencies.Output + The dash output. For example: + Output('callback-output', 'children') + + """ + dash_callback = create_dash_callback( + function, + settings, + ) + + if not hasattr(settings, "app"): + raise Exception( + "The du.configure_upload must be called before the @du.callback can be used! Please, configure the dash-uploader." + ) + + kwargs = dict() + if compare_dash_version("1.12"): + kwargs["prevent_initial_call"] = True + dash_callback = settings.app.callback( + output, + [Input(id, "isCompleted")], + [State(id, "fileNames"), State(id, "upload_id")], + **kwargs + )(dash_callback) + return function + + return add_callback diff --git a/components/dash-uploader/dash_uploader/configure_upload.py b/components/dash-uploader/dash_uploader/configure_upload.py new file mode 100644 index 0000000000..620ada41bf --- /dev/null +++ b/components/dash-uploader/dash_uploader/configure_upload.py @@ -0,0 +1,110 @@ +import logging + +import dash_uploader.settings as settings +from dash_uploader.upload import update_upload_api +from dash_uploader.httprequesthandler import HttpRequestHandler + + +logger = logging.getLogger("dash_uploader") + + +def configure_upload( + app, folder, use_upload_id=True, upload_api=None, http_request_handler=None +): + r""" + Configure the upload APIs for dash app. + This function is required to be called before using du.callback. + + Parameters + --------- + app: dash.Dash + The application instance + folder: str + The folder where to upload files. + Can be relative ("uploads") or + absolute (r"C:\tmp\my_uploads"). + If the folder does not exist, it will + be created automatically. + use_upload_id: bool + Determines if the uploads are put into + folders defined by a "upload id" (upload_id). + If True, uploads will be put into `folder`//; + that is, every user (for example with different + session id) will use their own folder. If False, + all files from all sessions are uploaded into + same folder (not recommended). + upload_api: None or str + The upload api endpoint to use; the url that is used + internally for the upload component POST and GET HTTP + requests. For example: "/API/dash-uploader" + http_request_handler: None or class + Used for custom configuration on the Http POST and GET requests. + This can be used to add validation for the HTTP requests (Important + if your site is public!). If None, dash_uploader.HttpRequestHandler is used. + If you provide a class, use a subclass of HttpRequestHandler. + See the documentation of dash_uploader.HttpRequestHandler for + more details. + """ + settings.UPLOAD_FOLDER_ROOT = folder + settings.app = app + + if upload_api is None: + upload_api = settings.upload_api + else: + # Set the upload api since du.Upload components + # that are created after du.configure_upload + # need to be able to read the api endpoint. + settings.upload_api = upload_api + + # Needed if using a proxy + settings.requests_pathname_prefix = app.config.get("requests_pathname_prefix", "/") + settings.routes_pathname_prefix = app.config.get("routes_pathname_prefix", "/") + + upload_api = update_upload_api(settings.routes_pathname_prefix, upload_api) + + if http_request_handler is None: + http_request_handler = HttpRequestHandler + + decorate_server( + app.server, + folder, + upload_api, + http_request_handler=http_request_handler, + use_upload_id=use_upload_id, + ) + + +def decorate_server( + server, + temp_base, + upload_api, + http_request_handler, + use_upload_id=True, +): + """ + Parameters + ---------- + server: flask.Flask + The flask server instance + temp_base: str + The upload root folder + upload_api: str + The upload api endpoint to use; the url that is used + internally for the upload component POST and GET HTTP + requests. + use_upload_id: bool + Determines if the uploads are put into + folders defined by a "upload id" (upload_id). + If True, uploads will be put into `folder`//; + that is, every user (for example with different + session id) will use their own folder. If False, + all files from all sessions are uploaded into + same folder (not recommended). + """ + + handler = http_request_handler( + server, upload_folder=temp_base, use_upload_id=use_upload_id + ) + + server.add_url_rule(upload_api, None, handler.get, methods=["GET"]) + server.add_url_rule(upload_api, None, handler.post, methods=["POST"]) diff --git a/components/dash-uploader/dash_uploader/httprequesthandler.py b/components/dash-uploader/dash_uploader/httprequesthandler.py new file mode 100644 index 0000000000..9b00137bca --- /dev/null +++ b/components/dash-uploader/dash_uploader/httprequesthandler.py @@ -0,0 +1,198 @@ +import logging +import os +import shutil +import time +import traceback + +from flask import request +from flask import abort + +logger = logging.getLogger(__name__) + + +def get_chunk_name(uploaded_filename, chunk_number): + return uploaded_filename + "_part_%03d" % chunk_number + + +class BaseHttpRequestHandler: + def __init__(self, server, upload_folder, use_upload_id): + """ + Parameters + ---------- + server: flask.Flask + The flask server instance + upload_folder: str + The folder to use for uploads + use_upload_id: bool + Determines if the uploads are put into + folders defined by a "upload id" (upload_id). + If True, uploads will be put into `folder`//; + that is, every user (for example with different + session id) will use their own folder. If False, + all files from all sessions are uploaded into + same folder (not recommended). + + """ + self.server = server + self.upload_folder = upload_folder + self.use_upload_id = use_upload_id + + def post(self): + try: + return self._post() + except Exception: + logger.error(traceback.format_exc()) + + def _post(self): + resumableTotalChunks = request.form.get("resumableTotalChunks", type=int) + resumableChunkNumber = request.form.get( + "resumableChunkNumber", default=1, type=int + ) + resumableFilename = request.form.get( + "resumableFilename", default="error", type=str + ) + resumableIdentifier = request.form.get( + "resumableIdentifier", default="error", type=str + ) + upload_id = request.form.get("upload_id", default="", type=str) + + # get the chunk data + chunk_data = request.files["file"] + + # make our temp directory + temp_root = self.get_temp_root(upload_id) + temp_dir = os.path.join(temp_root, resumableIdentifier) + if not os.path.isdir(temp_dir): + os.makedirs(temp_dir) + + # save the chunk data + chunk_name = get_chunk_name(resumableFilename, resumableChunkNumber) + chunk_file = os.path.join(temp_dir, chunk_name) + + # make a lock file + lock_file_path = os.path.join( + temp_dir, ".lock_{:d}".format(resumableChunkNumber) + ) + + with open(lock_file_path, "a"): + os.utime(lock_file_path, None) + chunk_data.save(chunk_file) + os.unlink(lock_file_path) + + # check if the upload is complete + chunk_paths = [ + os.path.join(temp_dir, get_chunk_name(resumableFilename, x)) + for x in range(1, resumableTotalChunks + 1) + ] + upload_complete = all([os.path.exists(p) for p in chunk_paths]) + + # combine all the chunks to create the final file + if upload_complete: + + # Make sure all files are finished writing + # but do not wait forever.. + tried = 0 + while any( + [ + os.path.isfile(os.path.join(temp_dir, ".lock_{:d}".format(chunk))) + for chunk in range(1, resumableTotalChunks + 1) + ] + ): + tried += 1 + if tried >= 5: + logger.error("Error uploading files with temp_dir: %s.", temp_dir) + raise Exception("Error uploading files with temp_dir: " + temp_dir) + time.sleep(1) + + # Make sure some other chunk didn't trigger file reconstruction + target_file_name = os.path.join(temp_root, resumableFilename) + if os.path.exists(target_file_name): + logger.info("File %s exists already. Overwriting..", target_file_name) + os.unlink(target_file_name) + + with open(target_file_name, "ab") as target_file: + for p in chunk_paths: + with open(p, "rb") as stored_chunk_file: + target_file.write(stored_chunk_file.read()) + self.server.logger.debug("File saved to: %s", target_file_name) + shutil.rmtree(temp_dir) + + return resumableFilename + + def get(self): + try: + return self._get() + except Exception: + logger.error(traceback.format_exc()) + + def _get(self): + # resumable.js uses a GET request to check if it uploaded the file already. + # https://github.com/23/resumable.js#handling-get-or-test-requests + # TODO: Since testChunks is set to false, this seems to be permanently disabled. + # Should this be removed altogether? + + resumableIdentifier = request.args.get("resumableIdentifier", type=str) + resumableFilename = request.args.get("resumableFilename", type=str) + resumableChunkNumber = request.args.get("resumableChunkNumber", type=int) + + upload_id = request.args.get("upload_id", default="", type=str) + + if not (resumableIdentifier and resumableFilename and resumableChunkNumber): + # Parameters are missing or invalid + abort(500, "Parameter error") + + # chunk folder path based on the parameters + temp_dir = os.path.join(self.get_temp_root(upload_id), resumableIdentifier) + + # chunk path based on the parameters + chunk_file = os.path.join( + temp_dir, get_chunk_name(resumableFilename, resumableChunkNumber) + ) + self.server.logger.debug("Getting chunk: %s", chunk_file) + + if os.path.isfile(chunk_file): + # Let resumable.js know this chunk already exists + return "OK" + else: + # Let resumable.js know this chunk does not exists + # and needs to be uploaded + abort(404, "Not found") + + def get_temp_root(self, upload_id): + return ( + os.path.join(self.upload_folder, upload_id) + if self.use_upload_id + else self.upload_folder + ) + + +class HttpRequestHandler(BaseHttpRequestHandler): + # You may use the flask.request + # and flask.session inside the methods of this + # class when needed. + def __init__(self, *args, **kwargs): # pylint: disable=useless-super-delegation + super().__init__(*args, **kwargs) + + def post_before(self): + pass + + def post(self): + self.post_before() + returnvalue = super().post() + self.post_after() + return returnvalue + + def post_after(self): + pass + + def get_before(self): + pass + + def get(self): + self.get_before() + returnvalue = super().get() + self.get_after() + return returnvalue + + def get_after(self): + pass diff --git a/components/dash-uploader/dash_uploader/settings.py b/components/dash-uploader/dash_uploader/settings.py new file mode 100644 index 0000000000..019300a1f2 --- /dev/null +++ b/components/dash-uploader/dash_uploader/settings.py @@ -0,0 +1,20 @@ +# The default upload api endpoint +# The du.configure_upload can change this +upload_api = "/API/resumable" + +# Needed if using a proxy; when dash.Dash is used +# with a `requests_pathname_prefix`. +# The front-end will prefix this string to the requests +# that are made to the proxy server +requests_pathname_prefix = "/" + +# From dash source code: +# Note that `requests_pathname_prefix` is the prefix for the AJAX calls that +# originate from the client (the web browser) and `routes_pathname_prefix` is +# the prefix for the API routes on the backend (this flask server). +# `url_base_pathname` will set `requests_pathname_prefix` and +# `routes_pathname_prefix` to the same value. +# If you need these to be different values then you should set +# `requests_pathname_prefix` and `routes_pathname_prefix`, +# not `url_base_pathname`. +routes_pathname_prefix = "/" diff --git a/components/dash-uploader/dash_uploader/upload.py b/components/dash-uploader/dash_uploader/upload.py new file mode 100644 index 0000000000..53807d7dbf --- /dev/null +++ b/components/dash-uploader/dash_uploader/upload.py @@ -0,0 +1,171 @@ +import uuid + +from dash_uploader._build.Upload_ReactComponent import Upload_ReactComponent +import dash_uploader.settings as settings + +DEFAULT_STYLE = { + "width": "100%", + # min-height and line-height should be the same to make + # the centering work. + "minHeight": "100px", + "lineHeight": "100px", + "textAlign": "center", + "borderWidth": "1px", + "borderStyle": "dashed", + "borderRadius": "7px", +} + + +def update_upload_api(requests_pathname_prefix, upload_api): + """Path join for the API path name. + This is a private method, and should not be exposed to users. + """ + if requests_pathname_prefix == "/": + return upload_api + return "/".join( + [ + requests_pathname_prefix.rstrip("/"), + upload_api.lstrip("/"), + ] + ) + + +def combine(overiding_dict, base_dict): + """Combining two dictionaries without modifying them. + This is a private method, and should not be exposed to users. + """ + if overiding_dict is None: + return dict(base_dict) + return {**base_dict, **overiding_dict} + + +# Implemented as function, but still uppercase. +# This is because subclassing the Dash-auto-generated +# "Upload from Upload.py" will give some errors +def Upload( + id="dash-uploader", + text="Drag and Drop Here to upload!", + text_completed="Uploaded: ", + text_disabled="The uploader is disabled.", + cancel_button=True, + pause_button=False, + disabled=False, + filetypes=None, + max_file_size=1024, + chunk_size=1, + default_style=None, + upload_id=None, + max_files=1, +): + """ + du.Upload component + + Parameters + ---------- + text: str + The text to show in the upload "Drag + and Drop" area. Optional. + text_completed: str + The text to show in the upload area + after upload has completed successfully before + the name of the uploaded file. For example, if user + uploaded "data.zip" and `text_completed` is + "Ready! ", then user would see text "Ready! + data.zip". + text_disabled: str + The text to show in the upload area when the + the component is disabled. + cancel_button: bool + If True, shows a cancel button. + pause_button: bool + If True, shows a pause button. + disabled: bool + If True, the file is not allowed to be uploaded. + filetypes: list of str or None + The filetypes that can be uploaded. + For example ['zip', 'rar']. + Note that this just checks the extension of the + filename, and user might still upload any kind + of file (by renaming)! + By default, all filetypes are accepted. + max_file_size: numeric + The maximum file size in Megabytes. Optional. + chunk_size: numeric + The chunk size in Megabytes. Optional. + default_style: None or dict + Inline CSS styling for the main div element. + If None, use the default style of the component. + If dict, will use the union on the given dict + and the default style. (you may override + part of the style by giving a dictionary) + More styling options through the CSS classes. + upload_id: None or str + The upload id, created with uuid.uuid1() or uuid.uuid4(), + for example. If none, creates random session id with + uuid.uuid1(). + max_files: int (default: 1) + EXPERIMENTAL feature. Read below. For bulletproof + implementation, force usage of zip files and keep + max_files = 1. + + The number of files that can be added to + the upload field simultaneously. + + Notes: + (1) If even a single file which is not supported file + type, is added to the upload queue, upload process of + all files will be permanently interrupted. + (2) Use reasonably small amount in "max_files". + (3) When uploading two folders with Chrome, there is + a bug in resumable.js which makes only one of the + folders to be uploaded. See: + https://github.com/23/resumable.js/issues/416 + (4) When uploading folders, note that the subdirectories + are NOT created -> All files in the folders will + be uploaded to the single upload folder. + + Returns + ------- + Upload: dash component + Initiated Dash component for app.layout. + """ + + # Handle styling + default_style = combine(default_style, DEFAULT_STYLE) + disabled_style = combine({"opacity": "0.5"}, default_style) + upload_style = combine({"lineHeight": "0px"}, default_style) + + if upload_id is None: + upload_id = uuid.uuid1() + + service = update_upload_api(settings.requests_pathname_prefix, settings.upload_api) + + arguments = dict( + id=id, + isCompleted=False, + # Have not tested if using many files + # is reliable -> Do not allow + maxFiles=max_files, + maxFileSize=max_file_size * 1024 * 1024, + chunkSize=chunk_size * 1024 * 1024, + textLabel=text, + service=service, + startButton=False, + disabled=disabled, + # Not tested so default to one. + simultaneousUploads=1, + completedMessage=text_completed, + disabledMessage=text_disabled, + cancelButton=cancel_button, + pauseButton=pause_button, + defaultStyle=default_style, + disabledStyle=disabled_style, + uploadingStyle=upload_style, + completeStyle=default_style, + upload_id=str(upload_id), + ) + + if filetypes: + arguments["filetypes"] = filetypes + + return Upload_ReactComponent(**arguments) diff --git a/components/dash-uploader/dash_uploader/utils.py b/components/dash-uploader/dash_uploader/utils.py new file mode 100644 index 0000000000..84f8d09b9a --- /dev/null +++ b/components/dash-uploader/dash_uploader/utils.py @@ -0,0 +1,19 @@ +import packaging +import pkg_resources + +## Dash version +dash_version_str = pkg_resources.get_distribution("dash").version +dash_version = packaging.version.parse(dash_version_str) + + +def dash_version_is_greater_or_equal_to(version): + """ + Check if the installed version of Dash is + greater or equal than some version. + + Parameters + ---------- + version: str + The version string. E.g. '1.14.0' + """ + return dash_version >= packaging.version.parse(version) diff --git a/components/dash-uploader/devscripts/post_build.py b/components/dash-uploader/devscripts/post_build.py new file mode 100644 index 0000000000..d461817680 --- /dev/null +++ b/components/dash-uploader/devscripts/post_build.py @@ -0,0 +1,20 @@ +from pathlib import Path +import shutil + +root = Path(__file__).resolve().parent.parent + +components = root / "src" / "lib" / "components" + +component_names = [x.name[:-9] for x in components.glob("*.react.js")] + +folder_from = root / "dash_uploader" +folder_to = folder_from / "_build" + +filenames = ["metadata.json", "package-info.json", "_imports_.py"] + [ + x + ".py" for x in component_names +] + +for filename in filenames: + shutil.move(folder_from / filename, folder_to / filename) + +Path(folder_to / "__init__.py").touch(exist_ok=True) diff --git a/components/dash-uploader/docs/CHANGELOG.md b/components/dash-uploader/docs/CHANGELOG.md new file mode 100644 index 0000000000..c4e79cb2ef --- /dev/null +++ b/components/dash-uploader/docs/CHANGELOG.md @@ -0,0 +1,75 @@ +# Changelog + +## v.0.6.0 (2021-09-19) +### Added +- New `chunk_size`, `disabled` and `text_disabled` parameters for `du.Upload`. [Issue 41](https://github.com/np-8/dash-uploader/issues/41) + +### Changed +- Added the `prevent_initial_call=True` for all `du.callback`s. For [Dash >= 1.12.0](https://community.plotly.com/t/dash-v1-12-0-release-pattern-matching-callbacks-fixes-shape-drawing-new-datatable-conditional-formatting-options-prevent-initial-call-and-more/38867). + +### Fixed +- Changing the parameter `disableDragAndDrop` by callbacks does not take effects. [PR 42](https://github.com/np-8/dash-uploader/pull/42) + +## v.0.5.0 (2021-04-25) +### Added +- [`du.HttpRequestHandler`](./dash-uploader.md#duhttprequesthandler) which allows for custom HTTP POST and GET request handling. For example, custom validation logic is now possible! Used through `http_request_handler` parameter of [`du.configure_upload`](./dash-uploader.md#duconfigure_upload). +### Changed +- **Backwards incompatible changes**: Changed the CSS classes of the component to be `dash-uploader-default`, `dash-uploader-uploading`, .. etc. instead of `resumable-default`, `resumable-uploading`. + +## v.0.4.2 (2021-02-20) +- Fixed some width related CSS issues in mobile mode. See: [#19](https://github.com/np-8/dash-uploader/issues/19) + +## v.0.4.1 (2020-10-27) +### Fixed +- max_files parameter to du.Upload did not have effect (Related [issue](https://github.com/np-8/dash-uploader/issues/12)) + +## v.0.4.0 (2020-10-27) +### Fixed +- Now dash-uploader works with `url_base_pathname` set in `app = dash.Dash(__name__, server=server, url_base_pathname='/somebase/')` . (Related [issue](https://github.com/np-8/dash-uploader/issues/15)) +### Other +- Javascript updates (includes security updates) + +## v.0.3.1 (2020-08-04) +### Fixed +- Importing `dash-uploader` with `dash` versions `<1.11.0` was not possible. (Related [issue](https://github.com/np-8/dash-uploader/issues/9)) +### Security +- Javascript package security updates. + +## v.0.3.0 (2020-06-06) +### Added +- New [`@du.callback`](dash-uploader.md#ducallback) decorator for simple callback creation. +- Experimental `max_files` parameter for `du.Upload`. +- Support for proxies; i.e. If app is running on `http://server.com/myapp`, and dash application is configured using `requests_pathname_prefix=myapp`, this is handled automatically by the Upload component. Fixes [#3](https://github.com/np-8/dash-uploader/issues/3). +### Fixed +- Uploading file with same name multiple times is now possible. +## v.0.2.4 (2020-06-05) +### Added +- Possibility to determine the uploader component API endpoint using the `upload_api` argument of the `configure_upload` function. + +## v.0.2.0 (2020-05-25) +### Added +- Upload folder for each file defined with a upload id (`upload_id`), which may be defined by the user. +### Fixed +- Uploading file with similar name now overwrites the old file (previously, file chunks were uploaded, but never merged.) +- Removed potential cause of infinite wait + +## v.0.1.2 (2020-05-22) +### Added +- Progressbar +### Changed +- Loosened `dash` requirements; `dash~=0.11.0` -> `dash>=1.1.0`. +- `activeStyle` replaced with `uploadingStyle`. + + +## v.0.1.1 (2020-05-18) +### Fixed +- Callback will now fired even multiple files are uploaded in a row. (Related [Issue](https://github.com/np-8/dash-uploader/issues/1)) + +## v.0.1.0 (2020-04-06) +- Initial release based on the [dash-resume-upload](https://github.com/westonkjones/dash-uploader) (0.0.4). + +### Changed +- Restarted project basing on the [dash-component-boilerplate](https://github.com/plotly/dash-component-boilerplate) +- Hiding "Pause" and "Cancel" buttons when not uploading +### Added +- Clean, documented python interface for `Upload` diff --git a/components/dash-uploader/docs/CONTRIBUTING.md b/components/dash-uploader/docs/CONTRIBUTING.md new file mode 100644 index 0000000000..392c2fa6e8 --- /dev/null +++ b/components/dash-uploader/docs/CONTRIBUTING.md @@ -0,0 +1,172 @@ +# CONTRIBUTING + +## TABLE OF CONTENTS +- [1. How to improve this package?](#1-how-to-improve-this-package) +- [2. Setting up development environment](#2-setting-up-development-environment) +- [3. Package structure](#3-package-structure) + - [3.1 Highlights of package structure](#31-highlights-of-package-structure) + - [3.2 Other (Package structure)](#32-other-package-structure) +- [4. Developing](#4-developing) + - [4.1 Developing the Python code](#41-developing-the-python-code) +- [5. Testing](#5-testing) + - [5.1 Manually](#51-manually) + - [5.2 With pytest (automatic tests)](#52-with-pytest-automatic-tests) + - [5.3 Testing React components without python](#53--testing-react-components-without-python) +- [6. Creating new version to pip](#6-creating-new-version-to-pip) +- [7. How does dash-uploader work internally?](#7--how-does-dash-uploader-work-internally) +- [8. More help?](#8--more-help) +## 1. How to improve this package? + +Maybe you already have an idea. If not, see if there are any open [issues](https://github.com/np-8/dash-uploader/issues) that need help. +## 2. Setting up development environment +- Clone this repository. Change current directory to project root. +- Install [npm and Node.js](https://nodejs.org) for building JS. +- Install the JS dependencies by running `npm install` on the project root. This will create `node_modules` directory. +- Create python virtual environment and activate it +- `pip install` this package in editable state with the `[dev]` flag. +``` +python -m pip install -e [dev] +``` + + +## 3. Package structure + +### 3.1 Highlights of package structure +``` +dash_uploader/ + * python source code of this package + __init__.py + _build/ + * Auto-generated python & JS code + * Do not edit these by hand! + _imports_.py + .py <-- for each component + dash_uploader.min.js + dash_uploader.min.js.map + metadata.json + package-info.json + +devscripts/ + * used during "npm run build" + +src/ + demo/ + * Example JS demo. Just for testing React code + with "npm start" + lib/ + * React components (The JS/React source code) + +package.json + * Defines JS dependencies + * Defines npm scripts + +usage.py + * Example file + * Run with `python usage.py` +``` +### 3.2 Other (Package structure) +``` +assets/ + * Assets just for the demo (usage.py) +index.html + * Needed for testing (with npm run) +inst/ + * Some kind of intermediate storage for JS files + (before copying to dash_uploader) + * Automatically generated with "npm run build" +node_modules/ + * JS dependencies + * Automatically created by "npm install" +venv/ + * python dependencies (virtual environment) + * Created with "python -m venv venv" +``` +## 4. Developing + +### 4.1 Developing the Python code + +- Edit the non-auto-generated files in `dash_uploader` +- The used code formatter is [black](https://github.com/psf/black). +### 4.2 Developing the React/JS code +- Edit the react.js files in `src/lib/components/`
+ + +#### 4.2.1 Building: React.js -> JS & Python +If you edited the JS files, you need to build them. You also need to build the JS files the first time you try to use the cloned package. + +Run in the project root +``` +npm run build +``` +This will create all the auto-generated (JS, json, python) files into the `dash_uploader/_build` folder. + + + +## 5. Testing + +### 5.1 Manually + +You can test the code manually by running the demo page +1. Run `python usage.py` +2. Visit http://127.0.0.1:8050/ in your web browser + +### 5.2 With pytest (automatic tests) + +*If testing for the first time, install the testing requirements with* +``` +python -m pip install -r tests/requirements.txt +``` + +You can test the code automatically by running + +``` +python -m pytest +``` + +- Make sure you have built the JS first with `npm run build` +- The `app` defined in the `usage.py` will be available to the tests. See the tests in the `tests/test_usage.py` to get a grasp on how it works. You could also add other `app`s available to the tests in similar manner. +- More about testing Dash components [here](https://dash.plotly.com/testing). +- If you get an error similar to +``` +selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 90 +Current browser version is 93.0.4577.82 with binary path C:\Program Files (x86)\Google\Chrome\Application\chrome.exe +``` +then, run + +``` +python -m pip install --upgrade --force-reinstall chromedriver-binary-auto +``` + +### 5.3 Testing React components without python +*This is WIP; probably needs some fixing*
+- Before creating the "python/Dash" versions, it is possible to test the component(s) by +- Editing the content of `src/demo/index.js`, if you wish. +- Then, running +``` +npm start +``` +- Then, go to url `http://127.0.0.1:55555`. +- The url can be changed in the package.json -> scripts -> start, by changing the `host` argument to the [`webpack-serve`](https://www.npmjs.com/package/webpack-serve). +- **Note**: There is not handler for POST requests in the demo! (the Upload component will not work without a POST handler) + +## 6. Creating new version to pip + +*only applicable to people with access to the PyPI package* +- Update version in `package.json` +- Create new `dash_uploader-x.x.x.tar.gz` with +``` +python .\setup.py sdist +``` +- Upload to pip with +``` +twine upload .\dist\dash_uploader-x.x.x.tar.gz +``` +## 7. How does dash-uploader work internally? + +Here is a diagram that tries to explain how dash-uploader works under the hood. If you find a place for improvement, please [submit a PR](https://github.com/np-8/dash-uploader/issues). + + +[![](how-dash-uploader-works.svg)](https://raw.githubusercontent.com/np-8/dash-uploader/master/docs/how-dash-uploader-works.svg) + +## 8. More help? +Read also the automatically generated README text at [README-COOKIECUTTER.md](README-COOKIECUTTER.md). \ No newline at end of file diff --git a/components/dash-uploader/docs/README-COOKIECUTTER.md b/components/dash-uploader/docs/README-COOKIECUTTER.md new file mode 100644 index 0000000000..b0b1fc84ca --- /dev/null +++ b/components/dash-uploader/docs/README-COOKIECUTTER.md @@ -0,0 +1,61 @@ + +This readme is part of the automatically generated README.md file (from the cookiecutter template) + +### Write your component code in `src/lib/components/Upload_ReactComponent.react.js`. + +- The demo app is in `src/demo` and you will import your example component code into your demo app. +- Test your code in a Python environment: + 1. Build your code + ``` + $ npm run build + ``` + 2. Run and modify the `usage.py` sample dash app: + ``` + $ python usage.py + ``` +- Write tests for your component. + - A sample test is available in `tests/test_usage.py`, it will load `usage.py` and you can then automate interactions with selenium. + - Run the tests with `$ pytest tests`. + - The Dash team uses these types of integration tests extensively. Browse the Dash component code on GitHub for more examples of testing (e.g. https://github.com/plotly/dash-core-components) +- Add custom styles to your component by putting your custom CSS files into your distribution folder (`dash_uploader`). + - Make sure that they are referenced in `MANIFEST.in` so that they get properly included when you're ready to publish your component. + - Make sure the stylesheets are added to the `_css_dist` dict in `dash_uploader/__init__.py` so dash will serve them automatically when the component suite is requested. +- [Review your code](./review_checklist.md) + +### Create a production build and publish: + +1. Build your code: + ``` + $ npm run build + ``` +2. Create a Python tarball + ``` + $ python setup.py sdist + ``` + This distribution tarball will get generated in the `dist/` folder + +3. Test your tarball by copying it into a new environment and installing it locally: + ``` + $ pip install dash_uploader-0.0.1.tar.gz + ``` + +4. If it works, then you can publish the component to NPM and PyPI: + 1. Publish on PyPI + ``` + $ twine upload dist/* + ``` + 2. Cleanup the dist folder (optional) + ``` + $ rm -rf dist + ``` + 3. Publish on NPM (Optional if chosen False in `publish_on_npm`) + ``` + $ npm publish + ``` + _Publishing your component to NPM will make the JavaScript bundles available on the unpkg CDN. By default, Dash serves the component library's CSS and JS locally, but if you choose to publish the package to NPM you can set `serve_locally` to `False` and you may see faster load times._ + +5. Share your component with the community! https://community.plotly.com/c/dash + 1. Publish this repository to GitHub + 2. Tag your GitHub repository with the plotly-dash tag so that it appears here: https://github.com/topics/plotly-dash + 3. Create a post in the Dash community forum: https://community.plotly.com/c/dash + diff --git a/components/dash-uploader/docs/README-PyPi.md b/components/dash-uploader/docs/README-PyPi.md new file mode 100644 index 0000000000..5324582847 --- /dev/null +++ b/components/dash-uploader/docs/README-PyPi.md @@ -0,0 +1,51 @@ + +![GitHub tag (latest by date)](https://img.shields.io/github/v/tag/np-8/dash-uploader) ![PyPI](https://img.shields.io/pypi/v/dash-uploader) ![PyPI - Downloads](https://img.shields.io/pypi/dm/dash-uploader) ![GitHub](https://img.shields.io/github/license/np-8/dash-uploader) + +![upload large files with dash-uploader](https://github.com/np-8/dash-uploader/blob/0.2.0/docs/upload-demo.gif?raw=true) + +# 📤 dash-uploader +The upload package for [Dash](https://dash.plotly.com/) applications using large data files. + +### 🏠 Homepage & Documentation +[https://github.com/np-8/dash-uploader](https://github.com/np-8/dash-uploader) + + +## Short summary +      💾 Data file size has no limits. (Except the hard disk size)
+      ☎ Call easily a callback after uploading is finished.
+      📦 Upload files using [resumable.js](https://github.com/23/resumable.js) +
+      ✅ Works with Dash 1.1.0.+ & Python 3.6+. (Possibly with other versions, too)
+ + + +## Installing +``` +pip install dash-uploader +``` + +## Usage + + +### Simple example + +```python +import dash +import dash_html_components as html +import dash_uploader as du + +app = dash.Dash(__name__) + +# 1) configure the upload folder +du.configure_upload(app, r"C:\tmp\Uploads") + +# 2) Use the Upload component +app.layout = html.Div([ + du.Upload(), +]) + +if __name__ == '__main__': + app.run_server(debug=True) + +``` + diff --git a/components/dash-uploader/docs/dash-uploader.md b/components/dash-uploader/docs/dash-uploader.md new file mode 100644 index 0000000000..c022dc4ed6 --- /dev/null +++ b/components/dash-uploader/docs/dash-uploader.md @@ -0,0 +1,351 @@ + + +# dash-uploader +To use the Upload component you need to two things +- Configure dash-uploader with [`du.configure_upload`](#duconfigure_upload) +- Create the upload component with [`du.Upload`](#duupload) + +Typically you also would like to define [callbacks](#3-callbacks) (functions that are called automatically when upload finishes). + +> ⚠️**Security note**: The Upload component allows uploads of arbitrary files to the server harddisk and one should take this into account (with user token checking etc.) if used as part of a public website! Particularly, the `configure_upload` opens a route for `POST` HTTP requests. Use the [`http_request_handler`](#http_request_handler--none-or-subclass-of--duhttprequesthandler) argument for defining your custom validation logic. + + +# Table of contents + +[1 Configuring dash-uploader](#1-configuring-dash-uploader) +- [`du.configure_upload`](#duconfigure_upload) + +[2 Creating Upload components](#2-creating-upload-components) +- [`du.Upload`](#duupload) + +[3 Callbacks](#3-callbacks) +- [`@du.callback`](#ducallback) +- [`@app.callback`](#appcallback) + +[4 Custom handling of HTTP Requests](#4-custom-handling-of-http-requests) +- [`du.HttpRequestHandler`](#duhttprequesthandler) + +[5 How dash-uploader works internally?](#5-how-dash-uploader-works-internally) + +----- + +## 1 Configuring dash-uploader + +You need to configure the dash uploader after you created your dash application instance (`app`) and before you create any Upload components + +**Example** +```python +import dash_uploader as du + +du.configure_upload(app, r'C:\tmp\uploads') +``` + +### `du.configure_upload` + +```python +configure_upload(app, folder, use_upload_id=True, upload_api=None, http_request_handler=None) +``` + +#### app: dash.Dash +The application instance. Usually created using +```python +app = dash.Dash(__name__) +``` + +#### folder: str +The folder where to upload files. Can be relative +(`"uploads"`) or absolute (`r"C:\tmp\my_uploads"`). +If the folder does not exist, it will be created +automatically. + +#### use_upload_id: bool (Default: True) +Determines if the uploads are put into +folders defined by a "upload id". To define an upload id, use the `upload_id` parameter of the `du.Upload` component. In typical use case, upload id's are unique for different users. In that case, you must use a callable as the `app.layout`. + +If True, uploads will be put into `//`; +that is, every user (for example with different +session id) will use their own folder. If False, +all files from all sessions are uploaded into +same folder (not recommended). + +#### upload_api: None or str +The upload api endpoint to use; the url that is used +internally for the upload component POST and GET HTTP +requests. For example, using `upload_api="/API/dash-uploader"` would create api endpoint and use address + +``` +http://[]/API/dash-uploader +``` +for the communication between the front-end and the server. The `requests_pathname_prefix` is added automatically, if the dash `app` instance has `requests_pathname_prefix`. (used with proxies) + +#### http_request_handler: None or subclass of du.HttpRequestHandler +*New in version **0.5.0*** + +Used for custom configuration on the HTTP POST and GET requests. This can be used to add validation for the HTTP requests (⚠️Important +if your site is public!). If None, dash_uploader.HttpRequestHandler is used. +If you provide a class, use a subclass of `du.HttpRequestHandler`. +See the documentation of [`@du.HttpRequestHandler`](#duhttprequesthandler) for +more details. + + +## 2 Creating Upload components +### `du.Upload` +Below are the arguments for the `du.Upload` component and their default values. +```python +Upload( + id='dash-uploader', + text='Drag and Drop Here to upload!', + text_completed='Uploaded: ', + text_disabled='The uploader is disabled.', + cancel_button=True, + pause_button=False, + disabled=False, + filetypes=None, + max_file_size=1024, + chunk_size=1, + default_style=None, + upload_id=None, + max_files=1, +) +``` + +#### id: str (default: 'dash-uploader') +The html id for the component. This is needed when defining callbacks. Note that ids must be unique in a dash application. + +#### text: str (Default: ''Drag and Drop Here to upload!') +The text to be shown in the upload "Drag +and Drop" area. Optional. + +#### text_completed: str +The text to show in the upload area +after upload has completed succesfully before +the name of the uploaded file. + +For example, if user +uploaded "data.zip" and `text_completed` is +"Ready! ", then user would see text "Ready! +data.zip". + +#### text_disabled: str +*New in version **[0.6.0]*** + +The text to show in the upload area when the +the component is disabled. + +#### cancel_button: bool +If True, shows a cancel button. + +#### pause_button: bool +If True, shows a pause button. + +#### disabled: bool +*New in version **[0.6.0]*** + +If True, the file is not allowed to be uploaded. + +#### filetypes: list of str or None +The filetypes that can be uploaded. +For example `['zip', 'rar']`. +Note that this just checks the extension of the +filename, and user might still upload any kind +of file (by renaming)! +By default, all filetypes are accepted. + +#### max_file_size: numeric +The maximum file size in Megabytes. Default: 1024 (=1Gb). + +#### chunk_size: numeric +*New in version **[0.6.0]*** + +The chunk size in Megabytes. Optional. Default: 1 (=1Mb). + +#### default_style: None or dict +Inline CSS styling for the main div element. +If None, use the default style of the component. +If dict, will use the union on the given dict +and the default style. (you may override +part of the style by giving a dictionary) +More styling options through the CSS classes. + +#### upload_id: None or str +The upload id, created with `uuid.uuid1()` or uuid.uuid4(), for example. If `None`, creates random session id with `uuid.uuid1()`. Defines a subfolder where the files are to be uploaded. + +Only used, if `use_upload_id` parameter is set to `True` in [`du.configure_upload`](#duconfigure_upload). + +#### max_files: int (default: 1) +>⚠️ **Experimental** feature. Read below. For bulletproof +implementation, force usage of zip files and keep +max_files = 1. + +The number of files that can be added to +the upload field simultaneously. + +**Notes**:
+**(1)** If even a single file which is not supported file + type (i.e. missing in `filetypes`), is added to the upload queue, upload process of all files will be permanently interrupted.
+**(2)** Use reasonably small number in `max_files`.
+**(3)** When uploading two (or more) folders with Chrome, there is + a bug in resumable.js which makes only one of the + folders to be uploaded. See: + https://github.com/23/resumable.js/issues/416
+**(4)** When uploading folders, note that the subdirectories + are **not** created -> All files in the folders will + be uploaded to the single upload folder.
+ + + +## 3 Callbacks + +Callbacks can be defined using two different approaches +- `@du.callback`: short notation, for typical use cases +- `@app.callback`: needs more verbose code. In case you need more control than when using the `@du.callback`. + + +In the following example it is assumed that the `du.Upload` component id is `dash-uploader`, i.e. the component was created with: + +``` +du.Upload( + id='dash-uploader', +) +``` + +### `@du.callback` + +*New in version **0.3.0*** + +Easiest way to call a simple callback after uploading would be something like: + +```python +@du.callback( + output=Output('callback-output', 'children'), + id='dash-uploader', +) +def get_a_list(filenames): + return html.Ul([html.Li(filenames)]) +``` + +The syntax is +```python +@du.callback( + output=, + id=, +) +def call_me(filenames): + # Do some processing + return +``` + +#### output: dash.dependencies.Output +This is the Output object, just as in regular [dash callbacks](https://dash.plotly.com/basic-callbacks). + +#### id: str +This must be the same `id` as used when initiating your `du.Upload` component. + +#### call_me: function +A function that takes exactly one argument: `filenames`. + +#### filenames: list of str +A list of strings. These will be the uploaded files. For example: +`['C:\tmp\Uploads\166d6f24-a80d-11ea-aa00-f48c5012fb50\dataset.csv']` + +#### Dash component +The return value of the `call_me` should be a dash component, as in the regular [dash callbacks]. + + +### `@app.callback` + +This method needs more verbose code and it is the conventional "[dash way]((https://dash.plotly.com/basic-callbacks))" to create a callback. Use this if `@du.callback` does not give you enough control. + +The syntax can be seen in the following example +```python +@app.callback( + Output('callback-output', 'children'), + [Input('dash-uploader', 'isCompleted')], + [State('dash-uploader', 'fileNames'), + State('dash-uploader', 'upload_id')], +) +def callback_on_completion(iscompleted, filenames, upload_id): + if not iscompleted: + return + + out = [] + if filenames is not None: + if upload_id: + root_folder = Path(UPLOAD_FOLDER_ROOT) / upload_id + else: + root_folder = Path(UPLOAD_FOLDER_ROOT) + + for filename in filenames: + file = root_folder / filename + out.append(file) + return html.Ul([html.Li(str(x)) for x in out]) + + return html.Div("No Files Uploaded Yet!") +``` + +#### du.Upload properties used +- `isCompleted`: boolean flag indicating if uploading has been completed. +- `fileNames`: List of strings of the filenames or None. This does not have the upload folder or the upload_id in it. +- `upload_id`: The upload id used when initiating the `du.Upload` component. + + +## 4 Custom handling of HTTP Requests +### `du.HttpRequestHandler` +*New in version **0.5.0*** + +The `HttpRequestHandler` is a class that is meant to be subclassed. It is used as an argument for [`configure_upload`](#duconfigure_upload), and it makes custom HTTP POST and GET request handling possible. For example, if you run your dash app publicly, you should use some validation logic to validate the HTTP requests from the users! + + +#### Example of a subclass + +```python +class HttpRequestHandler(BaseHttpRequestHandler): + # You may use the flask.request + # and flask.session inside the methods of this + # class when needed. + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + + def post_before(self): + pass + + def post(self): + self.post_before() + returnvalue = super().post() + self.post_after() + return returnvalue + + def post_after(self): + pass + + def get_before(self): + pass + + def get(self): + self.get_before() + returnvalue = super().get() + self.get_after() + return returnvalue + + def get_after(self): + pass +``` + +#### How does this all work? + +- The React Component of `dash-uploader` sends HTTP POST requests. It could in the future send also HTTP GET requests, or other HTTP requests. +- The Flask server (Dash uses Flask underneath) is configured in [`configure_upload`](#duconfigure_upload) to call the `post()` function of the `http_request_handler` on every HTTP POST request directed to the API endpoint of the dash-uploader. +- The values in the POST request are listed in [Documentation of resumable.js](https://github.com/23/resumable.js#how-do-i-set-it-up-with-my-server). Most interesting from these is probably the filename (`resumableFilename`). In addition to these, there is `upload_id` added by the `dash-uploader`, if `use_upload_id=True` when calling [`configure_upload`](#duconfigure_upload). +- You can use the [flask.request](https://flask.palletsprojects.com/en/1.1.x/api/#flask.request) and [flask.session](https://flask.palletsprojects.com/en/1.1.x/api/#flask.session) proxies as you like. There you get access to all the HTTP Request parameters and Cookies, for example. As an quick example, to get the request filename, upload_id and some cookie value, you can use: + +```python +from flask import request + +filename = request.form.get("resumableFilename", default="error", type=str) +upload_id = request.form.get("upload_id", default="", type=str) +cookie_value = request.cookies.get('some_cookie') +``` + +## 5 How dash-uploader works internally? + +- Please refer to the [developer documentation](./CONTRIBUTING.md#7--how-does-dash-uploader-work-internally) for the details. diff --git a/components/dash-uploader/docs/diagrams.svg b/components/dash-uploader/docs/diagrams.svg new file mode 100644 index 0000000000..79fc5951ca --- /dev/null +++ b/components/dash-uploader/docs/diagrams.svg @@ -0,0 +1,730 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + Flask route + + Hard disk + + Browser + + + Server + + + Flask route + + Hard disk A + + Browser + + + Server A + + + Flask route + + Hard disk B + + Server B + + + 50% + 50% + + Load balancer + Service provider + + + + Flask route + + Browser + + + Server + + + S3 + AWS + + diff --git a/components/dash-uploader/docs/how-dash-uploader-works.svg b/components/dash-uploader/docs/how-dash-uploader-works.svg new file mode 100644 index 0000000000..de634aca67 --- /dev/null +++ b/components/dash-uploader/docs/how-dash-uploader-works.svg @@ -0,0 +1,1034 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + JS / React Frontend + Python Backend + User selects a folder of N filesto be uploaded + fileAdded event x N + filesAdded event + filesSubmitted event + + + + + + start sending chunks + + HTTP POST request + + + + [dash-uploader API] + HTTP POST response + [dash-uploader API] + Controlled by the HttpRequestHandlerSee the post() method + save chunk + + IF this was the last chunk: create file from chunks + send back: 200 ("OK") and the filename + + + + + + fileSuccess event + HTTP response == 200 ? + fileError event + + + + yes + no + was last chunk? + + + no + send next chunk + + HTTP request + [dash internal API] + HTTP response + + + [dash internal API] + Controlled by the du.callback(internally, uses normal dash callbacks) + do something inside the callbackwhich "listens" changes in somepropCreate / modify a dash component + + + IF call setProps({someprop:newval}) + + chunk data, upload_id, filename, ... + filename + new prop values (isCompleted, fileNames,..) + data / props for JS component + Update JS/React component(handled by dash) + + User sees something in the UI + + All files are divided into chunks and send to the backend/server + + diff --git a/components/dash-uploader/docs/review_checklist.md b/components/dash-uploader/docs/review_checklist.md new file mode 100644 index 0000000000..14597d808b --- /dev/null +++ b/components/dash-uploader/docs/review_checklist.md @@ -0,0 +1,47 @@ +# Code Review Checklist + +## Code quality & design + +- Is your code clear? If you had to go back to it in a month, would you be happy to? If someone else had to contribute to it, would they be able to? + + A few suggestions: + + - Make your variable names descriptive and use the same naming conventions throughout the code. + + - For more complex pieces of logic, consider putting a comment, and maybe an example. + + - In the comments, focus on describing _why_ the code does what it does, rather than describing _what_ it does. The reader can most likely read the code, but not necessarily understand why it was necessary. + + - Don't overdo it in the comments. The code should be clear enough to speak for itself. Stale comments that no longer reflect the intent of the code can hurt code comprehension. + +* Don't repeat yourself. Any time you see that the same piece of logic can be applied in multiple places, factor it out into a function, or variable, and reuse that code. +* Scan your code for expensive operations (large computations, DOM queries, React re-renders). Have you done your possible to limit their impact? If not, it is going to slow your app down. +* Can you think of cases where your current code will break? How are you handling errors? Should the user see them as notifications? Should your app try to auto-correct them for them? + +## Component API + +- Have you tested your component on the Python side by creating an app in `usage.py` ? + + Do all of your component's props work when set from the back-end? + + Should all of them be settable from the back-end or are some only relevant to user interactions in the front-end? + +- Have you provided some basic documentation about your component? The Dash community uses [react docstrings](https://github.com/plotly/dash-docs/blob/master/tutorial/plugins.py#L45) to provide basic information about dash components. Take a look at this [Checklist component example](https://github.com/plotly/dash-core-components/blob/master/src/components/Checklist.react.js) and others from the dash-core-components repository. + + At a minimum, you should describe what your component does, and describe its props and the features they enable. + + Be careful to use the correct formatting for your docstrings for them to be properly recognized. + +## Tests + +- The Dash team uses integration tests extensively, and we highly encourage you to write tests for the main functionality of your component. In the `tests` folder of the boilerplate, you can see a sample integration test. By launching it, you will run a sample Dash app in a browser. You can run the test with: + ``` + python -m tests.test_render + ``` + [Browse the Dash component code on GitHub for more examples of testing.](https://github.com/plotly/dash-core-components) + +## Ready to publish? Final scan + +- Take a last look at the external resources that your component is using. Are all the external resources used [referenced in `MANIFEST.in`](https://github.com/plotly/dash-docs/blob/0b2fd8f892db720a7f3dc1c404b4cff464b5f8d4/tutorial/plugins.py#L55)? + +- [You're ready to publish!](https://github.com/plotly/dash-component-boilerplate/blob/master/%7B%7Bcookiecutter.project_shortname%7D%7D/README.md#create-a-production-build-and-publish) diff --git a/components/dash-uploader/docs/upload-demo.gif b/components/dash-uploader/docs/upload-demo.gif new file mode 100644 index 0000000000000000000000000000000000000000..712fa240f5d047acaef040820609345cb86ed60e GIT binary patch literal 253748 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�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�Qv3Rr;}pnwGMPf-cb5*<+k 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%0A%fKH%Fv5coI{A~_VP#%>wS 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 + + + + my-dash-component + + + +

+ + + + \ No newline at end of file diff --git a/components/dash-uploader/package-lock.json b/components/dash-uploader/package-lock.json new file mode 100644 index 0000000000..64a323acb5 --- /dev/null +++ b/components/dash-uploader/package-lock.json @@ -0,0 +1,28911 @@ +{ + "name": "dash_uploader", + "version": "0.6.1", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "dash_uploader", + "version": "0.6.1", + "license": "MIT", + "dependencies": { + "lodash": ">=4.17.21", + "ramda": "^0.27.1", + "resumablejs": "^1.1.0" + }, + "devDependencies": { + "@babel/core": "^7.13.14", + "@babel/plugin-proposal-class-properties": "^7.13.0", + "@babel/plugin-proposal-object-rest-spread": "^7.13.8", + "@babel/preset-env": "^7.13.12", + "@babel/preset-react": "^7.13.13", + "babel-eslint": "^10.0.2", + "babel-loader": "^8.2.2", + "copyfiles": "^2.4.1", + "css-loader": "^5.2.0", + "eslint": "^7.23.0", + "eslint-config-prettier": "^8.1.0", + "eslint-plugin-import": "^2.22.1", + "eslint-plugin-react": "^7.23.1", + "npm": "^6.14.15", + "prop-types": "^15.7.2", + "react": "^17.0.2", + "react-docgen": "^5.3.1", + "react-dom": "^17.0.2", + "style-loader": "^2.0.0", + "styled-jsx": "^3.4.4", + "webpack": "^4.29.0", + "webpack-cli": "4.6.0", + "webpack-serve": "4.0.0" + }, + "engines": { + "node": ">=8.11.0", + "npm": ">=6.1.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.25.7.tgz", + "integrity": "sha512-0xZJFNE5XMpENsgfHYTw8FbX4kv53mFLn2i3XPoq69LyhYSCBJtitaHx9QnsVTrsogI4Z3+HtEfZ2/GFPOtf5g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/highlight": "^7.25.7", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.13.12.tgz", + "integrity": "sha512-3eJJ841uKxeV8dcN/2yGEUy+RfgQspPEgQat85umsE1rotuquQ2AbIub4S6j7c50a2d+4myc+zSlnXeIHrOnhQ==", + "dev": true + }, + "node_modules/@babel/core": { + "version": "7.13.14", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.13.14.tgz", + "integrity": "sha512-wZso/vyF4ki0l0znlgM4inxbdrUvCb+cVz8grxDq+6C9k6qbqoIJteQOKicaKjCipU3ISV+XedCqpL2RJJVehA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@babel/generator": "^7.13.9", + "@babel/helper-compilation-targets": "^7.13.13", + "@babel/helper-module-transforms": "^7.13.14", + "@babel/helpers": "^7.13.10", + "@babel/parser": "^7.13.13", + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.13.13", + "@babel/types": "^7.13.14", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.1.2", + "semver": "^6.3.0", + "source-map": "^0.5.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.7.tgz", + "integrity": "sha512-5Dqpl5fyV9pIAD62yK9P7fcA768uVPUyrQmqpqstHWgMma4feF1x/oFysBCVZLY5wJ2GkMUCdsNDnGZrPoR6rA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.25.7", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.13.tgz", + "integrity": "sha512-7YXfX5wQ5aYM/BOlbSccHDbuXXFPxeoUmfWtz8le2yTkTZc+BxsiEnENFoi2SlmA8ewDkG2LgIMIVzzn2h8kfw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.12.13" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.12.13.tgz", + "integrity": "sha512-CZOv9tGphhDRlVjVkAgm8Nhklm9RzSmWpX2my+t7Ua/KT616pEzXsQCjinzvkRvHWJ9itO4f296efroX23XCMA==", + "dev": true, + "dependencies": { + "@babel/helper-explode-assignable-expression": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.13.13", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.13.tgz", + "integrity": "sha512-q1kcdHNZehBwD9jYPh3WyXcsFERi39X4I59I3NadciWtNDyZ6x+GboOxncFK0kXlKIv6BJm5acncehXWUjWQMQ==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.13.12", + "@babel/helper-validator-option": "^7.12.17", + "browserslist": "^4.14.5", + "semver": "^6.3.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.13.11", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.13.11.tgz", + "integrity": "sha512-ays0I7XYq9xbjCSvT+EvysLgfc3tOkwCULHjrnscGT3A9qD4sk3wXnJ3of0MAWsWGjdinFvajHU2smYuqXKMrw==", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-member-expression-to-functions": "^7.13.0", + "@babel/helper-optimise-call-expression": "^7.12.13", + "@babel/helper-replace-supers": "^7.13.0", + "@babel/helper-split-export-declaration": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.12.17", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.17.tgz", + "integrity": "sha512-p2VGmBu9oefLZ2nQpgnEnG0ZlRPvL8gAGvPUMQwUdaE8k49rOMuZpOwdQoy5qJf6K8jL3bcAMhVUlHAjIgJHUg==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.12.13", + "regexpu-core": "^4.7.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.1.5.tgz", + "integrity": "sha512-nXuzCSwlJ/WKr8qxzW816gwyT6VZgiJG17zR40fou70yfAcqjoNyTLl/DQ+FExw5Hx5KNqshmN8Ldl/r2N7cTg==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.13.0", + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/traverse": "^7.13.0", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0-0" + } + }, + "node_modules/@babel/helper-explode-assignable-expression": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.13.0.tgz", + "integrity": "sha512-qS0peLTDP8kOisG1blKbaoBg/o9OSa1qoumMjTK5pM+KDTtpxpsiubnCGP34vK8BXGcb2M9eigwgvoJryrzwWA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.13.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz", + "integrity": "sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==", + "dev": true, + "dependencies": { + "@babel/helper-get-function-arity": "^7.12.13", + "@babel/template": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "node_modules/@babel/helper-get-function-arity": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", + "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.12.13" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.13.0.tgz", + "integrity": "sha512-0kBzvXiIKfsCA0y6cFEIJf4OdzfpRuNk4+YTeHZpGGc666SATFKTz6sRncwFnQk7/ugJ4dSrCj6iJuvW4Qwr2g==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.12.tgz", + "integrity": "sha512-48ql1CLL59aKbU94Y88Xgb2VFy7a95ykGRbJJaaVv+LX5U8wFpLfiGXJJGUozsmA1oEh/o5Bp60Voq7ACyA/Sw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.13.12" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.13.12.tgz", + "integrity": "sha512-4cVvR2/1B693IuOvSI20xqqa/+bl7lqAMR59R4iu39R9aOX8/JoYY1sFaNvUMyMBGnHdwvJgUrzNLoUZxXypxA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.13.12" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.13.14", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.13.14.tgz", + "integrity": "sha512-QuU/OJ0iAOSIatyVZmfqB0lbkVP0kDRiKj34xy+QNsnVZi/PA6BoSoreeqnxxa9EHFAIL0R9XOaAR/G9WlIy5g==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.13.12", + "@babel/helper-replace-supers": "^7.13.12", + "@babel/helper-simple-access": "^7.13.12", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/helper-validator-identifier": "^7.12.11", + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.13.13", + "@babel/types": "^7.13.14" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz", + "integrity": "sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.12.13" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz", + "integrity": "sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ==", + "dev": true + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.13.0.tgz", + "integrity": "sha512-pUQpFBE9JvC9lrQbpX0TmeNIy5s7GnZjna2lhhcHC7DzgBs6fWn722Y5cfwgrtrqc7NAJwMvOa0mKhq6XaE4jg==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.12.13", + "@babel/helper-wrap-function": "^7.13.0", + "@babel/types": "^7.13.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.13.12.tgz", + "integrity": "sha512-Gz1eiX+4yDO8mT+heB94aLVNCL+rbuT2xy4YfyNqu8F+OI6vMvJK891qGBTqL9Uc8wxEvRW92Id6G7sDen3fFw==", + "dev": true, + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.13.12", + "@babel/helper-optimise-call-expression": "^7.12.13", + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.12" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.13.12.tgz", + "integrity": "sha512-7FEjbrx5SL9cWvXioDbnlYTppcZGuCY6ow3/D5vMggb2Ywgu4dMrpTJX0JdQAIcRRUElOIxF3yEooa9gUb9ZbA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.13.12" + } + }, + "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.13", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", + "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.12.13" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.7.tgz", + "integrity": "sha512-CbkjYdsJNHFk8uqpEkpCvRs3YRp9tY6FmFY7wLMSYuGYkrdUi7r2lc4/wqsvlHoMznX3WJ9IP8giGPq68T/Y6g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.7.tgz", + "integrity": "sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.12.17", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz", + "integrity": "sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw==", + "dev": true + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.13.0.tgz", + "integrity": "sha512-1UX9F7K3BS42fI6qd2A4BjKzgGjToscyZTdp1DjknHLCIvpgne6918io+aL5LXFcER/8QWiwpoY902pVEqgTXA==", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.12.13", + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.13.10.tgz", + "integrity": "sha512-4VO883+MWPDUVRF3PhiLBUFHoX/bsLTGFpFK/HqvvfBZz2D57u9XzPVNFVBTc0PW/CWR9BXTOKt8NF4DInUHcQ==", + "dev": true, + "dependencies": { + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.25.7.tgz", + "integrity": "sha512-iYyACpW3iW8Fw+ZybQK+drQre+ns/tKpXbNESfrhNnPLIklLbXr7MYJ6gPEd0iETGLOK+SxMjVvKb/ffmk+FEw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.25.7", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.7.tgz", + "integrity": "sha512-aZn7ETtQsjjGG5HruveUK06cU3Hljuhd9Iojm4M8WWv3wLE6OkE5PWbDUkItmMgegmccaITudyuW5RPYrYlgWw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.25.7" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.13.12.tgz", + "integrity": "sha512-d0u3zWKcoZf379fOeJdr1a5WPDny4aOFZ6hlfKivgK0LY7ZxNfoaHL2fWwdGtHyVvra38FC+HVYkO+byfSA8AQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1", + "@babel/plugin-proposal-optional-chaining": "^7.13.12" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-proposal-async-generator-functions": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.13.8.tgz", + "integrity": "sha512-rPBnhj+WgoSmgq+4gQUtXx/vOcU+UYtjy1AA/aeD61Hwj410fwYyqfUcRP3lR8ucgliVJL/G7sXcNUecC75IXA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-remap-async-to-generator": "^7.13.0", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-class-properties": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.13.0.tgz", + "integrity": "sha512-KnTDjFNC1g+45ka0myZNvSBFLhNCLN+GeGYLDEA8Oq7MZ6yMgfLoIRh86GRT0FjtJhZw8JyUskP9uvj5pHM9Zg==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-dynamic-import": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.13.8.tgz", + "integrity": "sha512-ONWKj0H6+wIRCkZi9zSbZtE/r73uOhMVHh256ys0UzfM7I3d4n+spZNWjOnJv2gzopumP2Wxi186vI8N0Y2JyQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-export-namespace-from": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.13.tgz", + "integrity": "sha512-INAgtFo4OnLN3Y/j0VwAgw3HDXcDtX+C/erMvWzuV9v71r7urb6iyMXu7eM9IgLr1ElLlOkaHjJ0SbCmdOQ3Iw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-json-strings": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.13.8.tgz", + "integrity": "sha512-w4zOPKUFPX1mgvTmL/fcEqy34hrQ1CRcGxdphBc6snDnnqJ47EZDIyop6IwXzAC8G916hsIuXB2ZMBCExC5k7Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.13.8.tgz", + "integrity": "sha512-aul6znYB4N4HGweImqKn59Su9RS8lbUIqxtXTOcAGtNIDczoEFv+l1EhmX8rUBp3G1jMjKJm8m0jXVp63ZpS4A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.13.8.tgz", + "integrity": "sha512-iePlDPBn//UhxExyS9KyeYU7RM9WScAG+D3Hhno0PLJebAEpDZMocbDe64eqynhNAnwz/vZoL/q/QB2T1OH39A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-numeric-separator": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.13.tgz", + "integrity": "sha512-O1jFia9R8BUCl3ZGB7eitaAPu62TXJRHn7rh+ojNERCFyqRwJMTmhz+tJ+k0CwI6CLjX/ee4qW74FSqlq9I35w==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-object-rest-spread": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.13.8.tgz", + "integrity": "sha512-DhB2EuB1Ih7S3/IRX5AFVgZ16k3EzfRbq97CxAVI1KSYcW+lexV8VZb7G7L8zuPVSdQMRn0kiBpf/Yzu9ZKH0g==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.13.8", + "@babel/helper-compilation-targets": "^7.13.8", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.13.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-catch-binding": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.13.8.tgz", + "integrity": "sha512-0wS/4DUF1CuTmGo+NiaHfHcVSeSLj5S3e6RivPTg/2k3wOv3jO35tZ6/ZWsQhQMvdgI7CwphjQa/ccarLymHVA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-chaining": { + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.13.12.tgz", + "integrity": "sha512-fcEdKOkIB7Tf4IxrgEVeFC4zeJSTr78no9wTdBuZZbqF64kzllU0ybo2zrzm7gUQfxGhBgq4E39oRs8Zx/RMYQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-methods": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.13.0.tgz", + "integrity": "sha512-MXyyKQd9inhx1kDYPkFRVOBXQ20ES8Pto3T7UZ92xj2mY0EVD8oAVzeyYuVfy/mxAdTSIayOvg+aVzcHV2bn6Q==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-unicode-property-regex": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.13.tgz", + "integrity": "sha512-XyJmZidNfofEkqFV5VC/bLabGmO5QzenPO/YOfGuEbgU+2sSwMmio3YLb4WtBgcmmdwZHyVyv8on77IUjQ5Gvg==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "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" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "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" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-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" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "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" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.13.tgz", + "integrity": "sha512-d4HM23Q1K7oq/SLNmG6mRt85l2csmQ0cHRaxRXjKW0YFdEXqlZ5kzFQKH5Uc3rDJECgu+yCRgPkG04Mm98R/1g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-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" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "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" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-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" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "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" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-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" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-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" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz", + "integrity": "sha512-A81F9pDwyS7yM//KwbCSDqy3Uj4NMIurtplxphWxoYtNPov7cJsDkAFNNyVlIZ3jwGycVsurZ+LtOA8gZ376iQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.13.0.tgz", + "integrity": "sha512-96lgJagobeVmazXFaDrbmCLQxBysKu7U6Do3mLsx27gf5Dk85ezysrs2BZUpXD703U/Su1xTBDxxar2oa4jAGg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.13.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.13.0.tgz", + "integrity": "sha512-3j6E004Dx0K3eGmhxVJxwwI89CTJrce7lg3UrtFuDAVQ/2+SJ/h/aSFOeE6/n0WB1GsOffsJp6MnPQNQ8nmwhg==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-remap-async-to-generator": "^7.13.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.13.tgz", + "integrity": "sha512-zNyFqbc3kI/fVpqwfqkg6RvBgFpC4J18aKKMmv7KdQ/1GgREapSJAykLMVNwfRGO3BtHj3YQZl8kxCXPcVMVeg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.13.tgz", + "integrity": "sha512-Pxwe0iqWJX4fOOM2kEZeUuAxHMWb9nK+9oh5d11bsLoB0xMg+mkDpt0eYuDZB7ETrY9bbcVlKUGTOGWy7BHsMQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.13.0.tgz", + "integrity": "sha512-9BtHCPUARyVH1oXGcSJD3YpsqRLROJx5ZNP6tN5vnk17N0SVf9WCtf8Nuh1CFmgByKKAIMstitKduoCmsaDK5g==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.12.13", + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-optimise-call-expression": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-replace-supers": "^7.13.0", + "@babel/helper-split-export-declaration": "^7.12.13", + "globals": "^11.1.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.13.0.tgz", + "integrity": "sha512-RRqTYTeZkZAz8WbieLTvKUEUxZlUTdmL5KGMyZj7FnMfLNKV4+r5549aORG/mgojRmFlQMJDUupwAMiF2Q7OUg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.13.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.13.0.tgz", + "integrity": "sha512-zym5em7tePoNT9s964c0/KU3JPPnuq7VhIxPRefJ4/s82cD+q1mgKfuGRDMCPL0HTyKz4dISuQlCusfgCJ86HA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.13.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.13.tgz", + "integrity": "sha512-foDrozE65ZFdUC2OfgeOCrEPTxdB3yjqxpXh8CH+ipd9CHd4s/iq81kcUpyH8ACGNEPdFqbtzfgzbT/ZGlbDeQ==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.13.tgz", + "integrity": "sha512-NfADJiiHdhLBW3pulJlJI2NB0t4cci4WTZ8FtdIuNc2+8pslXdPtRRAEWqUY+m9kNOk2eRYbTAOipAxlrOcwwQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.13.tgz", + "integrity": "sha512-fbUelkM1apvqez/yYx1/oICVnGo2KM5s63mhGylrmXUxK/IAXSIf87QIxVfZldWf4QsOafY6vV3bX8aMHSvNrA==", + "dev": true, + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.13.0.tgz", + "integrity": "sha512-IHKT00mwUVYE0zzbkDgNRP6SRzvfGCYsOxIRz8KsiaaHCcT9BWIkO+H9QRJseHBLOGBZkHUdHiqj6r0POsdytg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.13.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.13.tgz", + "integrity": "sha512-6K7gZycG0cmIwwF7uMK/ZqeCikCGVBdyP2J5SKNCXO5EOHcqi+z7Jwf8AmyDNcBgxET8DrEtCt/mPKPyAzXyqQ==", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.13.tgz", + "integrity": "sha512-FW+WPjSR7hiUxMcKqyNjP05tQ2kmBCdpEpZHY1ARm96tGQCCBvXKnpjILtDplUnJ/eHZ0lALLM+d2lMFSpYJrQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.13.tgz", + "integrity": "sha512-kxLkOsg8yir4YeEPHLuO2tXP9R/gTjpuTOjshqSpELUN3ZAg2jfDnKUvzzJxObun38sw3wm4Uu69sX/zA7iRvg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.13.0.tgz", + "integrity": "sha512-EKy/E2NHhY/6Vw5d1k3rgoobftcNUmp9fGjb9XZwQLtTctsRBOTRO7RHHxfIky1ogMN5BxN7p9uMA3SzPfotMQ==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.13.8.tgz", + "integrity": "sha512-9QiOx4MEGglfYZ4XOnU79OHr6vIWUakIj9b4mioN8eQIoEh+pf5p/zEB36JpDFWA12nNMiRf7bfoRvl9Rn79Bw==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-simple-access": "^7.12.13", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.13.8.tgz", + "integrity": "sha512-hwqctPYjhM6cWvVIlOIe27jCIBgHCsdH2xCJVAYQm7V5yTMoilbVMi9f6wKg0rpQAOn6ZG4AOyvCqFF/hUh6+A==", + "dev": true, + "dependencies": { + "@babel/helper-hoist-variables": "^7.13.0", + "@babel/helper-module-transforms": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-validator-identifier": "^7.12.11", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.13.0.tgz", + "integrity": "sha512-D/ILzAh6uyvkWjKKyFE/W0FzWwasv6vPTSqPcjxFqn6QpX3u8DjRVliq4F2BamO2Wee/om06Vyy+vPkNrd4wxw==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.13.tgz", + "integrity": "sha512-Xsm8P2hr5hAxyYblrfACXpQKdQbx4m2df9/ZZSQ8MAhsadw06+jW7s9zsSw6he+mJZXRlVMyEnVktJo4zjk1WA==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.13.tgz", + "integrity": "sha512-/KY2hbLxrG5GTQ9zzZSc3xWiOy379pIETEhbtzwZcw9rvuaVV4Fqy7BYGYOWZnaoXIQYbbJ0ziXLa/sKcGCYEQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.13.tgz", + "integrity": "sha512-JzYIcj3XtYspZDV8j9ulnoMPZZnF/Cj0LUxPOjR89BdBVx+zYJI9MdMIlUZjbXDX+6YVeS6I3e8op+qQ3BYBoQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13", + "@babel/helper-replace-supers": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.13.0.tgz", + "integrity": "sha512-Jt8k/h/mIwE2JFEOb3lURoY5C85ETcYPnbuAJ96zRBzh1XHtQZfs62ChZ6EP22QlC8c7Xqr9q+e1SU5qttwwjw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.13.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.13.tgz", + "integrity": "sha512-nqVigwVan+lR+g8Fj8Exl0UQX2kymtjcWfMOYM1vTYEKujeyv2SkMgazf2qNcK7l4SDiKyTA/nHCPqL4e2zo1A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-display-name": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.12.13.tgz", + "integrity": "sha512-MprESJzI9O5VnJZrL7gg1MpdqmiFcUv41Jc7SahxYsNP2kDkFqClxxTZq+1Qv4AFCamm+GXMRDQINNn+qrxmiA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.13.12.tgz", + "integrity": "sha512-jcEI2UqIcpCqB5U5DRxIl0tQEProI2gcu+g8VTIqxLO5Iidojb4d77q+fwGseCvd8af/lJ9masp4QWzBXFE2xA==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.12.13", + "@babel/helper-module-imports": "^7.13.12", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-jsx": "^7.12.13", + "@babel/types": "^7.13.12" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-development": { + "version": "7.12.17", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.12.17.tgz", + "integrity": "sha512-BPjYV86SVuOaudFhsJR1zjgxxOhJDt6JHNoD48DxWEIxUCAMjV1ys6DYw4SDYZh0b1QsS2vfIA9t/ZsQGsDOUQ==", + "dev": true, + "dependencies": { + "@babel/plugin-transform-react-jsx": "^7.12.17" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-pure-annotations": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.12.1.tgz", + "integrity": "sha512-RqeaHiwZtphSIUZ5I85PEH19LOSzxfuEazoY7/pWASCAIBuATQzpSVD+eT6MebeeZT2F4eSL0u4vw6n4Nm0Mjg==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.13.tgz", + "integrity": "sha512-lxb2ZAvSLyJ2PEe47hoGWPmW22v7CtSl9jW8mingV4H2sEX/JOcrAj2nPuGWi56ERUm2bUpjKzONAuT6HCn2EA==", + "dev": true, + "dependencies": { + "regenerator-transform": "^0.14.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.13.tgz", + "integrity": "sha512-xhUPzDXxZN1QfiOy/I5tyye+TRz6lA7z6xaT4CLOjPRMVg1ldRf0LHw0TDBpYL4vG78556WuHdyO9oi5UmzZBg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.13.tgz", + "integrity": "sha512-xpL49pqPnLtf0tVluuqvzWIgLEhuPpZzvs2yabUHSKRNlN7ScYU7aMlmavOeyXJZKgZKQRBlh8rHbKiJDraTSw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.13.0.tgz", + "integrity": "sha512-V6vkiXijjzYeFmQTr3dBxPtZYLPcUfY34DebOU27jIl2M/Y8Egm52Hw82CSjjPqd54GTlJs5x+CR7HeNr24ckg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.13.tgz", + "integrity": "sha512-Jc3JSaaWT8+fr7GRvQP02fKDsYk4K/lYwWq38r/UGfaxo89ajud321NH28KRQ7xy1Ybc0VUE5Pz8psjNNDUglg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.13.0.tgz", + "integrity": "sha512-d67umW6nlfmr1iehCcBv69eSUSySk1EsIS8aTDX4Xo9qajAh6mYtcl4kJrBkGXuxZPEgVr7RVfAvNW6YQkd4Mw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.13.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.13.tgz", + "integrity": "sha512-eKv/LmUJpMnu4npgfvs3LiHhJua5fo/CysENxa45YCQXZwKnGCQKAg87bvoqSW1fFT+HA32l03Qxsm8ouTY3ZQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.13.tgz", + "integrity": "sha512-0bHEkdwJ/sN/ikBHfSmOXPypN/beiGqjo+o4/5K+vxEFNPRPdImhviPakMKG4x96l85emoa0Z6cDflsdBusZbw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.13.tgz", + "integrity": "sha512-mDRzSNY7/zopwisPZ5kM9XKCfhchqIYwAKRERtEnhYscZB79VRekuRSoYbN0+KVe3y8+q1h6A4svXtP7N+UoCA==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.13.12.tgz", + "integrity": "sha512-JzElc6jk3Ko6zuZgBtjOd01pf9yYDEIH8BcqVuYIuOkzOwDesoa/Nz4gIo4lBG6K861KTV9TvIgmFuT6ytOaAA==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.13.12", + "@babel/helper-compilation-targets": "^7.13.10", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-validator-option": "^7.12.17", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.13.12", + "@babel/plugin-proposal-async-generator-functions": "^7.13.8", + "@babel/plugin-proposal-class-properties": "^7.13.0", + "@babel/plugin-proposal-dynamic-import": "^7.13.8", + "@babel/plugin-proposal-export-namespace-from": "^7.12.13", + "@babel/plugin-proposal-json-strings": "^7.13.8", + "@babel/plugin-proposal-logical-assignment-operators": "^7.13.8", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.13.8", + "@babel/plugin-proposal-numeric-separator": "^7.12.13", + "@babel/plugin-proposal-object-rest-spread": "^7.13.8", + "@babel/plugin-proposal-optional-catch-binding": "^7.13.8", + "@babel/plugin-proposal-optional-chaining": "^7.13.12", + "@babel/plugin-proposal-private-methods": "^7.13.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.12.13", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.12.13", + "@babel/plugin-transform-arrow-functions": "^7.13.0", + "@babel/plugin-transform-async-to-generator": "^7.13.0", + "@babel/plugin-transform-block-scoped-functions": "^7.12.13", + "@babel/plugin-transform-block-scoping": "^7.12.13", + "@babel/plugin-transform-classes": "^7.13.0", + "@babel/plugin-transform-computed-properties": "^7.13.0", + "@babel/plugin-transform-destructuring": "^7.13.0", + "@babel/plugin-transform-dotall-regex": "^7.12.13", + "@babel/plugin-transform-duplicate-keys": "^7.12.13", + "@babel/plugin-transform-exponentiation-operator": "^7.12.13", + "@babel/plugin-transform-for-of": "^7.13.0", + "@babel/plugin-transform-function-name": "^7.12.13", + "@babel/plugin-transform-literals": "^7.12.13", + "@babel/plugin-transform-member-expression-literals": "^7.12.13", + "@babel/plugin-transform-modules-amd": "^7.13.0", + "@babel/plugin-transform-modules-commonjs": "^7.13.8", + "@babel/plugin-transform-modules-systemjs": "^7.13.8", + "@babel/plugin-transform-modules-umd": "^7.13.0", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.12.13", + "@babel/plugin-transform-new-target": "^7.12.13", + "@babel/plugin-transform-object-super": "^7.12.13", + "@babel/plugin-transform-parameters": "^7.13.0", + "@babel/plugin-transform-property-literals": "^7.12.13", + "@babel/plugin-transform-regenerator": "^7.12.13", + "@babel/plugin-transform-reserved-words": "^7.12.13", + "@babel/plugin-transform-shorthand-properties": "^7.12.13", + "@babel/plugin-transform-spread": "^7.13.0", + "@babel/plugin-transform-sticky-regex": "^7.12.13", + "@babel/plugin-transform-template-literals": "^7.13.0", + "@babel/plugin-transform-typeof-symbol": "^7.12.13", + "@babel/plugin-transform-unicode-escapes": "^7.12.13", + "@babel/plugin-transform-unicode-regex": "^7.12.13", + "@babel/preset-modules": "^0.1.4", + "@babel/types": "^7.13.12", + "babel-plugin-polyfill-corejs2": "^0.1.4", + "babel-plugin-polyfill-corejs3": "^0.1.3", + "babel-plugin-polyfill-regenerator": "^0.1.2", + "core-js-compat": "^3.9.0", + "semver": "^6.3.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "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" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-react": { + "version": "7.13.13", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.13.13.tgz", + "integrity": "sha512-gx+tDLIE06sRjKJkVtpZ/t3mzCDOnPG+ggHZG9lffUbX8+wC739x20YQc9V35Do6ZAxaUc/HhVHIiOzz5MvDmA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-validator-option": "^7.12.17", + "@babel/plugin-transform-react-display-name": "^7.12.13", + "@babel/plugin-transform-react-jsx": "^7.13.12", + "@babel/plugin-transform-react-jsx-development": "^7.12.17", + "@babel/plugin-transform-react-pure-annotations": "^7.12.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.10.tgz", + "integrity": "sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw==", + "dev": true, + "dependencies": { + "regenerator-runtime": "^0.13.4" + } + }, + "node_modules/@babel/template": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.7.tgz", + "integrity": "sha512-wRwtAgI3bAS+JGU2upWNL9lSlDcRCqD05BZ1n3X2ONLH1WilFP6O1otQjeMK/1g0pvYcXC7b/qVUB1keofjtZA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.25.7", + "@babel/parser": "^7.25.7", + "@babel/types": "^7.25.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.7.tgz", + "integrity": "sha512-jatJPT1Zjqvh/1FyJs6qAHL+Dzb7sTb+xr7Q+gM1b+1oBsMsQQ4FkVKb6dFlJvLlVssqkRzV05Jzervt9yhnzg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.25.7", + "@babel/generator": "^7.25.7", + "@babel/parser": "^7.25.7", + "@babel/template": "^7.25.7", + "@babel/types": "^7.25.7", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.7.tgz", + "integrity": "sha512-vwIVdXG+j+FOpkwqHRcBgHLYNL7XMkufrlaFvL9o6Ai9sJn9+PdyIL5qa0XzTZw084c+u9LOls53eoZWP/W5WQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.25.7", + "@babel/helper-validator-identifier": "^7.25.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@discoveryjs/json-ext": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.2.tgz", + "integrity": "sha512-HyYEUDeIj5rRQU2Hk5HTB2uHsbRQpF70nvMhVzi+VJR0X+xNEhjPui4/kBf3VeH/wqD28PT4sVOm8qqLjBrSZg==", + "dev": true, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.0.tgz", + "integrity": "sha512-2ZPCc+uNbjV5ERJr+aKSPRwZgKd2z11x0EgLvb1PURmUrn9QNRXFqje0Ldq454PfAVyaJYyrDvvIKSFP4NnBog==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.1.1", + "espree": "^7.3.0", + "globals": "^12.1.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", + "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", + "dev": true, + "dependencies": { + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz", + "integrity": "sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.4", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz", + "integrity": "sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz", + "integrity": "sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.4", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@types/http-proxy": { + "version": "1.17.5", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.5.tgz", + "integrity": "sha512-GNkDE7bTv6Sf8JbV2GksknKOsk7OznNYHSdrtvPJXO0qJ9odZig6IZKUi5RFGi6d1bf6dgIAe4uXi3DBc7069Q==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.7", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz", + "integrity": "sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==", + "dev": true + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", + "dev": true + }, + "node_modules/@types/node": { + "version": "14.14.37", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.37.tgz", + "integrity": "sha512-XYmBiy+ohOR4Lh5jE379fV2IU+6Jn4g5qASinhitfyO71b/sCo6MKsMLF5tc7Zf2CE8hViVQyYSobJNke8OvUw==", + "dev": true + }, + "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, + "license": "MIT", + "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, + "license": "MIT" + }, + "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, + "license": "MIT" + }, + "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, + "license": "MIT" + }, + "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, + "license": "MIT", + "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, + "license": "ISC" + }, + "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, + "license": "MIT", + "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, + "license": "MIT" + }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT" + }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webpack-cli/configtest": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.0.2.tgz", + "integrity": "sha512-3OBzV2fBGZ5TBfdW50cha1lHDVf9vlvRXnjpVbJBa20pSZQaSkMJZiwA8V2vD9ogyeXn8nU5s5A6mHyf5jhMzA==", + "dev": true, + "peerDependencies": { + "webpack": "4.x.x || 5.x.x", + "webpack-cli": "4.x.x" + } + }, + "node_modules/@webpack-cli/info": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.2.3.tgz", + "integrity": "sha512-lLek3/T7u40lTqzCGpC6CAbY6+vXhdhmwFRxZLMnRm6/sIF/7qMpT8MocXCRQfz0JAh63wpbXLMnsQ5162WS7Q==", + "dev": true, + "dependencies": { + "envinfo": "^7.7.3" + }, + "peerDependencies": { + "webpack-cli": "4.x.x" + } + }, + "node_modules/@webpack-cli/serve": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.3.1.tgz", + "integrity": "sha512-0qXvpeYO6vaNoRBI52/UsbcaBydJCggoBBnIo/ovQQdn6fug0BgwsjorV1hVS7fMqGVTZGcVxv8334gjmbj5hw==", + "dev": true, + "peerDependencies": { + "webpack-cli": "4.x.x" + }, + "peerDependenciesMeta": { + "webpack-dev-server": { + "optional": true + } + } + }, + "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, + "license": "BSD-3-Clause" + }, + "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, + "license": "Apache-2.0" + }, + "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": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz", + "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "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" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "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, + "license": "MIT", + "peerDependencies": { + "ajv": ">=5.0.0" + } + }, + "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, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "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/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "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/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=", + "dev": true + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "license": "ISC", + "optional": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true, + "license": "ISC" + }, + "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/arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", + "dev": true, + "license": "MIT", + "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, + "license": "MIT", + "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": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-includes": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.3.tgz", + "integrity": "sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.2", + "get-intrinsic": "^1.1.1", + "is-string": "^1.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz", + "integrity": "sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.4.tgz", + "integrity": "sha512-r9Z0zYoxqHz60vvQbWEdXIEtCwHF0yxaWfno9qzXeNHvfyl3BZqygmGzb84dsubyaXLH4husF+NFgMSdpZhk2Q==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1", + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/asn1.js": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", + "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/asn1.js/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true, + "license": "MIT" + }, + "node_modules/assert": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.1.tgz", + "integrity": "sha512-zzw1uCAgLbsKwBfFc8CX78DDg+xZeBksSO3vwVIDDN5i94eOrPsSSyiVhmsSABFDM/OcpE2aagCat9dnWQLG1A==", + "dev": true, + "license": "MIT", + "dependencies": { + "object.assign": "^4.1.4", + "util": "^0.10.4" + } + }, + "node_modules/assert/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true, + "license": "ISC" + }, + "node_modules/assert/node_modules/util": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", + "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "2.0.3" + } + }, + "node_modules/assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ast-types": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.14.2.tgz", + "integrity": "sha512-O0yuUDnZeQDL+ncNGlJ78BiO4jnYI3bvMsD5prT0/nsgijG/LpNBIr63gTjVTNsiGkgQhiyCShTgxt8oXOrklA==", + "dev": true, + "dependencies": { + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/async-each": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.6.tgz", + "integrity": "sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "license": "MIT", + "optional": 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, + "license": "(MIT OR Apache-2.0)", + "bin": { + "atob": "bin/atob.js" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/babel-eslint": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz", + "integrity": "sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==", + "deprecated": "babel-eslint is now @babel/eslint-parser. This package will no longer receive updates.", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.7.0", + "@babel/traverse": "^7.7.0", + "@babel/types": "^7.7.0", + "eslint-visitor-keys": "^1.0.0", + "resolve": "^1.12.0" + }, + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "eslint": ">= 4.12.1" + } + }, + "node_modules/babel-loader": { + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.2.tgz", + "integrity": "sha512-JvTd0/D889PQBtUXJ2PXaKU/pjZDMtHA9V2ecm+eNRmmBCMR09a+fmpGTNwnJtFmFl5Ei7Vy47LjBb+L0wQ99g==", + "dev": true, + "dependencies": { + "find-cache-dir": "^3.3.1", + "loader-utils": "^1.4.0", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" + }, + "engines": { + "node": ">= 8.9" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "webpack": ">=2" + } + }, + "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/babel-plugin-polyfill-corejs2": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.1.10.tgz", + "integrity": "sha512-DO95wD4g0A8KRaHKi0D51NdGXzvpqVLnLu5BTvDlpqUEpTmeEtypgC1xqesORaWmiUOQI14UHKlzNd9iZ2G3ZA==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.13.0", + "@babel/helper-define-polyfill-provider": "^0.1.5", + "semver": "^6.1.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.1.7.tgz", + "integrity": "sha512-u+gbS9bbPhZWEeyy1oR/YaaSpod/KDT07arZHb80aTpl8H5ZBq+uN1nN9/xtX7jQyfLdPfoqI4Rue/MQSWJquw==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.1.5", + "core-js-compat": "^3.8.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.1.6.tgz", + "integrity": "sha512-OUrYG9iKPKz8NxswXbRAdSwF0GhRdIEMTloQATJi4bDuFqrXaXcCUT/VGNrr8pBcjMh1RxZ7Xt9cytVJTJfvMg==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.1.5" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-syntax-jsx": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz", + "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=", + "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, + "license": "MIT", + "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": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/is-descriptor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", + "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "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, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "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.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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, + "license": "MIT", + "optional": true, + "dependencies": { + "file-uri-to-path": "1.0.0" + } + }, + "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, + "license": "MIT" + }, + "node_modules/bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "dev": true, + "license": "MIT" + }, + "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.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", + "dev": true, + "license": "MIT" + }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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.1", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.1.tgz", + "integrity": "sha512-YBjSAiTqM04ZVei6sXighu679a3SqWORA3qZTEqZImnlkDIFtKc6pNutpjyZ8RJTjQtuYfeetkxM11GwoYXMIQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "bn.js": "^5.2.1", + "randombytes": "^2.1.0", + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/browserify-rsa/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, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/browserify-sign": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.3.tgz", + "integrity": "sha512-JWCZW6SKhfhjJxO8Tyiiy+XYB7cqd2S5/+WeYHsKdNKFlCBhKbblba1A/HN/90YwtxKc8tCErjffZl++UNmGiw==", + "dev": true, + "license": "ISC", + "dependencies": { + "bn.js": "^5.2.1", + "browserify-rsa": "^4.1.0", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.5", + "hash-base": "~3.0", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.7", + "readable-stream": "^2.3.8", + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/browserify-sign/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/browserify-sign/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "license": "MIT", + "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/browserify-sign/node_modules/readable-stream/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, + "license": "MIT" + }, + "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, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/browserify-sign/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, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/browserify-sign/node_modules/string_decoder/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, + "license": "MIT" + }, + "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, + "license": "MIT", + "dependencies": { + "pako": "~1.0.5" + } + }, + "node_modules/browserslist": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.0.tgz", + "integrity": "sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001663", + "electron-to-chromium": "^1.5.28", + "node-releases": "^2.0.18", + "update-browserslist-db": "^1.1.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "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, + "license": "MIT", + "dependencies": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/buffer/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, + "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": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==", + "dev": true, + "license": "MIT" + }, + "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/cacache": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", + "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", + "dev": true, + "license": "ISC", + "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/cacache/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, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/cacache/node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/cacache/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/cacache/node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/cacache/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "license": "ISC" + }, + "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, + "license": "MIT", + "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/cache-content-type": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-content-type/-/cache-content-type-1.0.1.tgz", + "integrity": "sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA==", + "dev": true, + "dependencies": { + "mime-types": "^2.1.18", + "ylru": "^1.2.0" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "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" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001667", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001667.tgz", + "integrity": "sha512-7LTwJjcRkzKFmtqGsibMeuXmvFDfZq/nzIjnmgCGzKKRVzjD72selLDK1oPF/Oxzmt4fNcPvTDvGqSDG4tCALw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "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/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "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, + "license": "ISC" + }, + "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, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "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, + "license": "MIT", + "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/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/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "dev": true, + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==", + "dev": true, + "license": "MIT", + "dependencies": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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/colorette": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", + "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==", + "dev": true + }, + "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-emitter": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz", + "integrity": "sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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/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" + ], + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/concat-stream/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-stream/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "license": "MIT", + "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/concat-stream/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, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.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/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": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/contains-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", + "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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/cookies": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/cookies/-/cookies-0.8.0.tgz", + "integrity": "sha512-8aPsApQfebXnuI+537McwYsDtjVxGm8gTIzQI3FDW6t5t/DAhERxtnbEPN/8RX+uZthoz4eCOgloXaE5cYyNow==", + "dev": true, + "dependencies": { + "depd": "~2.0.0", + "keygrip": "~1.1.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "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==", + "deprecated": "This package is no longer supported.", + "dev": true, + "license": "ISC", + "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/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "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==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "license": "ISC", + "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": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/copyfiles": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/copyfiles/-/copyfiles-2.4.1.tgz", + "integrity": "sha512-fereAvAvxDrQDOXybk3Qu3dPbOoKoysFMWtkY3mv5BsL8//OSZVL5DCLYqgRfY5cWirgRzlC+WSrxp6Bo3eNZg==", + "dev": true, + "dependencies": { + "glob": "^7.0.5", + "minimatch": "^3.0.3", + "mkdirp": "^1.0.4", + "noms": "0.0.0", + "through2": "^2.0.1", + "untildify": "^4.0.0", + "yargs": "^16.1.0" + }, + "bin": { + "copyfiles": "copyfiles", + "copyup": "copyfiles" + } + }, + "node_modules/core-js-compat": { + "version": "3.38.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.38.1.tgz", + "integrity": "sha512-JRH6gfXxGmrzF3tZ57lFx97YARxCXPaMzPo6jELZhv88pBH5VXpQ+y0znKGlFnzuaihqhLbefxSJxWJMPtfDzw==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.23.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-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/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, + "license": "MIT", + "dependencies": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + } + }, + "node_modules/create-ecdh/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true, + "license": "MIT" + }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "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": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "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, + "license": "MIT", + "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-loader": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-5.2.0.tgz", + "integrity": "sha512-MfRo2MjEeLXMlUkeUwN71Vx5oc6EJnx5UQ4Yi9iUtYQvrPtwLUucYptz0hc6n++kdNcyF5olYBS4vPjJDAcLkw==", + "dev": true, + "dependencies": { + "camelcase": "^6.2.0", + "cssesc": "^3.0.0", + "icss-utils": "^5.1.0", + "loader-utils": "^2.0.0", + "postcss": "^8.2.8", + "postcss-modules-extract-imports": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.0", + "postcss-modules-scope": "^3.0.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.1.0", + "schema-utils": "^3.0.0", + "semver": "^7.3.4" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.27.0 || ^5.0.0" + } + }, + "node_modules/css-loader/node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/css-loader/node_modules/schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/css-loader/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "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/cyclist": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.2.tgz", + "integrity": "sha512-0sVXIohTfLqVIW3kb/0n6IiWF3Ifj5nm2XaSrLq2DI6fKIGa2fYAZdk917rUneaeLVpYfFcyXE2ft0fe3remsA==", + "dev": true, + "license": "MIT" + }, + "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" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-5.0.0.tgz", + "integrity": "sha512-U75DcT5hrio3KNtvdULAWnLiAPbFUC4191ldxMmj4FA/mRuBnmDwU0boNfPyFRhnan+Jm+haLeSn3P0afcBn4w==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decode-uri-component": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/deep-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", + "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=", + "dev": true + }, + "node_modules/deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "dev": true + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/des.js": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.1.0.tgz", + "integrity": "sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==", + "dev": true, + "license": "MIT", + "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/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, + "license": "MIT", + "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.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true, + "license": "MIT" + }, + "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/dir-glob/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/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">=0.4", + "npm": ">=1.2" + } + }, + "node_modules/duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "dev": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "node_modules/duplexify/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/duplexify/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "license": "MIT", + "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/duplexify/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, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.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.5.34", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.34.tgz", + "integrity": "sha512-/TZAiChbAflBNjCg+VvstbcwAtIL/VdMFO3NgRFIzBjpvPzWOTIbbO8kNb6RwU4bt9TP7K+3KqBKw/lOU+Y+GA==", + "dev": true, + "license": "ISC" + }, + "node_modules/elliptic": { + "version": "6.5.7", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.7.tgz", + "integrity": "sha512-ESVCtTwiA+XhY3wyh24QqRGBoP3rEdDUl3EDUUo9tft074fi19IrdpH7hLCMMP3CIj7jb3W96rn8lt/BqIlt5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/elliptic/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true, + "license": "MIT" + }, + "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/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/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/enhanced-resolve": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz", + "integrity": "sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.5.0", + "tapable": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/enhanced-resolve/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/enhanced-resolve/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, + "license": "MIT", + "dependencies": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + }, + "engines": { + "node": ">=4.3.0 <5.0.0 || >=5.10" + } + }, + "node_modules/enhanced-resolve/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "license": "MIT", + "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/enhanced-resolve/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, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "dev": true, + "dependencies": { + "ansi-colors": "^4.1.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/envinfo": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.7.4.tgz", + "integrity": "sha512-TQXTYFVVwwluWSFis6K2XKxgrD22jEv0FTuLCQI+OjH7rn93+iY0fSSFM5lrSxFY+H1+B0/cvvlamr3UsBivdQ==", + "dev": true, + "bin": { + "envinfo": "dist/cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "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, + "license": "MIT", + "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", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0.tgz", + "integrity": "sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "is-callable": "^1.2.3", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.2", + "is-string": "^1.0.5", + "object-inspect": "^1.9.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "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" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "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": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.23.0.tgz", + "integrity": "sha512-kqvNVbdkjzpFy0XOszNwjkKzZ+6TcwCQ/h+ozlcIWwaimBBuhlQ4nN6kbiM2L+OjDcznkTJxzYfRFH92sx4a0Q==", + "dev": true, + "dependencies": { + "@babel/code-frame": "7.12.11", + "@eslint/eslintrc": "^0.4.0", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "enquirer": "^2.3.5", + "eslint-scope": "^5.1.1", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.1", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.0.0", + "globals": "^13.6.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash": "^4.17.21", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "progress": "^2.0.0", + "regexpp": "^3.1.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", + "strip-json-comments": "^3.1.0", + "table": "^6.0.4", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-prettier": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.1.0.tgz", + "integrity": "sha512-oKMhGv3ihGbCIimCAjqkdzx2Q+jthoqnXSP+d86M9tptwugycmTFdVR4IpLgq2c4SHifbwO90z2fQ8/Aio73yw==", + "dev": true, + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz", + "integrity": "sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA==", + "dev": true, + "dependencies": { + "debug": "^2.6.9", + "resolve": "^1.13.1" + } + }, + "node_modules/eslint-import-resolver-node/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/eslint-import-resolver-node/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/eslint-module-utils": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz", + "integrity": "sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA==", + "dev": true, + "dependencies": { + "debug": "^2.6.9", + "pkg-dir": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-module-utils/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/eslint-module-utils/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/eslint-plugin-import": { + "version": "2.22.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.22.1.tgz", + "integrity": "sha512-8K7JjINHOpH64ozkAhpT3sd+FswIZTfMZTjdx052pnWrgRCVfp8op9tbjpAk3DdUeI/Ba4C8OjdC0r90erHEOw==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.1", + "array.prototype.flat": "^1.2.3", + "contains-path": "^0.1.0", + "debug": "^2.6.9", + "doctrine": "1.5.0", + "eslint-import-resolver-node": "^0.3.4", + "eslint-module-utils": "^2.6.0", + "has": "^1.0.3", + "minimatch": "^3.0.4", + "object.values": "^1.1.1", + "read-pkg-up": "^2.0.0", + "resolve": "^1.17.0", + "tsconfig-paths": "^3.9.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0" + } + }, + "node_modules/eslint-plugin-import/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/eslint-plugin-import/node_modules/doctrine": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", + "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", + "dev": true, + "dependencies": { + "esutils": "^2.0.2", + "isarray": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-import/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/eslint-plugin-import/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/eslint-plugin-react": { + "version": "7.23.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.23.1.tgz", + "integrity": "sha512-MvFGhZjI8Z4HusajmSw0ougGrq3Gs4vT/0WgwksZgf5RrLrRa2oYAw56okU4tZJl8+j7IYNuTM+2RnFEuTSdRQ==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.3", + "array.prototype.flatmap": "^1.2.4", + "doctrine": "^2.1.0", + "has": "^1.0.3", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.0.4", + "object.entries": "^1.1.3", + "object.fromentries": "^2.0.4", + "object.values": "^1.1.3", + "prop-types": "^15.7.2", + "resolve": "^2.0.0-next.3", + "string.prototype.matchall": "^4.0.4" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7" + } + }, + "node_modules/eslint-plugin-react/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-react/node_modules/resolve": { + "version": "2.0.0-next.3", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.3.tgz", + "integrity": "sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==", + "dev": true, + "dependencies": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^1.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint/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/eslint/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" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/eslint/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" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eslint/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/eslint/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/eslint/node_modules/eslint-visitor-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz", + "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.7.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.7.0.tgz", + "integrity": "sha512-Aipsz6ZKRxa/xQkZhNg0qIWXT6x6rD46f6x/PCnBomlttdIyAPak4YD9jTmKpZ72uROSMU87qJtcgpgHaVchiA==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/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/eslint/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint/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/eslint/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/espree": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", + "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "dev": true, + "dependencies": { + "acorn": "^7.4.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^1.3.0" + }, + "engines": { + "node": "^10.12.0 || >=12.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/esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esquery/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/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/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.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.x" + } + }, + "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, + "license": "MIT", + "dependencies": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/execa": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.0.0.tgz", + "integrity": "sha512-ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==", + "dev": true, + "license": "MIT", + "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, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/expand-brackets/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "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, + "license": "MIT", + "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": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/is-descriptor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", + "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "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.5", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz", + "integrity": "sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.0", + "merge2": "^1.3.0", + "micromatch": "^4.0.2", + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "node_modules/fastest-levenshtein": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz", + "integrity": "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.11.0.tgz", + "integrity": "sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/figgy-pudding": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", + "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", + "deprecated": "This module is no longer supported.", + "dev": true, + "license": "ISC" + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.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, + "license": "MIT", + "optional": true + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "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" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "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/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" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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/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/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-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "dependencies": { + "locate-path": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz", + "integrity": "sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==", + "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, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + } + }, + "node_modules/flush-write-stream/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/flush-write-stream/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "license": "MIT", + "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/flush-write-stream/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, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==", + "dev": true, + "license": "MIT", + "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": "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "node_modules/from2/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/from2/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "license": "MIT", + "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/from2/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, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "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": "sha512-gehEzmPn2nAwr39eay+x3X34Ra+M2QlVUTLhkXPjWdeO8RF9kszk116avgBJM3ZyNHgHXBNx+VmPaFC36k0PzA==", + "deprecated": "This package is no longer supported.", + "dev": true, + "license": "ISC", + "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.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "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.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-stream": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.0.tgz", + "integrity": "sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.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": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "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.3", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.3.tgz", + "integrity": "sha512-ffdmosjA807y7+lA1NM0jELARVmYul/715xiILEjo3hBLPTcirgQNnXECn5g3mtR8TOLCVbkfua1Hpen25/Xcg==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.1.1", + "ignore": "^5.1.4", + "merge2": "^1.3.0", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby/node_modules/ignore": { + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", + "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", + "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", + "dev": true + }, + "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-bigints": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", + "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==", + "dev": true, + "license": "MIT", + "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": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==", + "dev": true, + "license": "MIT", + "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": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "dev": true, + "license": "MIT", + "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": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "license": "MIT", + "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": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hash-base": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", + "integrity": "sha512-EeeoJKjTyt868liAlVmcv2ZsUfGHlE3Q+BICOXcZiwN3osr5Q/zFGYmTJpoIzuaSTAwndFy+GqhEwlU4L3j4Ow==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "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, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", + "dev": true, + "license": "MIT", + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "node_modules/http-assert": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/http-assert/-/http-assert-1.4.1.tgz", + "integrity": "sha512-rdw7q6GTlibqVVbXr0CKelfV5iY8G2HqEUkhSk297BMbSpSL8crXC+9rjKoMcZZEsksX30le6f/4ul4E28gegw==", + "dev": true, + "dependencies": { + "deep-equal": "~1.0.1", + "http-errors": "~1.7.2" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-assert/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/http-assert/node_modules/http-errors": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", + "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", + "dev": true, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/http-assert/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/http-errors": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.0.tgz", + "integrity": "sha512-4I8r0C5JDhT5VkvI47QktDW75rNlGVsUf/8hzjCC/wkWI/jdTRmBb9aI7erSG82r1bjKY3F6k28WnsVxB1C73A==", + "dev": true, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/http-errors/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/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-middleware": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-1.1.0.tgz", + "integrity": "sha512-OnjU5vyVgcZVe2AjLJyMrk8YLNOC2lspCHirB5ldM+B/dwEfZ5bgVTrFyzE9R7xRWAP/i/FXtvIqKjTNEZBhBg==", + "dev": true, + "dependencies": { + "@types/http-proxy": "^1.17.5", + "camelcase": "^6.2.0", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==", + "dev": true, + "license": "MIT" + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "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, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/iferr": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha512-DUNFN5j7Tln0D+TxzloUjKB+CtVu6myn0JEFak6dG18mNt9YkQ6lzGCdafwofISZ1lLF3xRHJ98VKy9ynkcFaA==", + "dev": true, + "license": "MIT" + }, + "node_modules/ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-local": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.2.tgz", + "integrity": "sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==", + "dev": true, + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/import-local/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/import-local/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/import-local/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" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-local/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/import-local/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/import-local/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/import-local/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/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/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/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, + "license": "ISC" + }, + "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/internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/interpret": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", + "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-accessor-descriptor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.1.tgz", + "integrity": "sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "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-bigint": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.1.tgz", + "integrity": "sha512-J0ELF4yHFxHy0cmSxZuheDOz2luOdVvqjwmEcj8H/L1JHeuEDSDbeRP+Dk9kFVk5RTFzbucJ2Kb9F7ixY2QaCg==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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, + "license": "MIT", + "optional": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.0.tgz", + "integrity": "sha512-a7Uprx8UtD+HWdyYwnD1+ExtTgqQtD2k/1yJgtXP6wnMm8byhkoTZRl+95LLThpzNZJ5aEvi46cdH+ayMFRwmA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-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, + "license": "MIT" + }, + "node_modules/is-callable": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", + "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", + "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-descriptor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.1.tgz", + "integrity": "sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "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" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "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" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "license": "MIT", + "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": "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/is-generator-function": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.8.tgz", + "integrity": "sha512-2Omr/twNtufVZFr1GhxjOMFPAj2sjc/dKaIqBhvo4qciXfJmITGH6ZGd8eZYNHza8t1y0e01AuqRhJwfWp26WQ==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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-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" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.4.tgz", + "integrity": "sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-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-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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-promise": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", + "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==", + "dev": true + }, + "node_modules/is-regex": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.2.tgz", + "integrity": "sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-symbols": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-string": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", + "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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, + "license": "MIT", + "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": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "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/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/jsesc": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "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-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-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "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/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsx-ast-utils": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.0.tgz", + "integrity": "sha512-EIsmt3O3ljsU6sot/J4E1zDRxfBNrhjyf/OKjlydwgEimQuznlM4Wv7U+ueONJMyEn1WRE0K8dhi3dVAXYT24Q==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.2", + "object.assign": "^4.1.2" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/keygrip": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/keygrip/-/keygrip-1.1.0.tgz", + "integrity": "sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==", + "dev": true, + "dependencies": { + "tsscmp": "1.0.6" + }, + "engines": { + "node": ">= 0.6" + } + }, + "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/koa": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/koa/-/koa-2.13.1.tgz", + "integrity": "sha512-Lb2Dloc72auj5vK4X4qqL7B5jyDPQaZucc9sR/71byg7ryoD1NCaCm63CShk9ID9quQvDEi1bGR/iGjCG7As3w==", + "dev": true, + "dependencies": { + "accepts": "^1.3.5", + "cache-content-type": "^1.0.0", + "content-disposition": "~0.5.2", + "content-type": "^1.0.4", + "cookies": "~0.8.0", + "debug": "~3.1.0", + "delegates": "^1.0.0", + "depd": "^2.0.0", + "destroy": "^1.0.4", + "encodeurl": "^1.0.2", + "escape-html": "^1.0.3", + "fresh": "~0.5.2", + "http-assert": "^1.3.0", + "http-errors": "^1.6.3", + "is-generator-function": "^1.0.7", + "koa-compose": "^4.1.0", + "koa-convert": "^1.2.0", + "on-finished": "^2.3.0", + "only": "~0.0.2", + "parseurl": "^1.3.2", + "statuses": "^1.5.0", + "type-is": "^1.6.16", + "vary": "^1.1.2" + }, + "engines": { + "node": "^4.8.4 || ^6.10.1 || ^7.10.1 || >= 8.1.4" + } + }, + "node_modules/koa-compose": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/koa-compose/-/koa-compose-4.1.0.tgz", + "integrity": "sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw==", + "dev": true + }, + "node_modules/koa-compress": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/koa-compress/-/koa-compress-5.0.1.tgz", + "integrity": "sha512-uTo7Hcyyt6e9o2X3htRS/SNEKy9vDOUc/r1qs/F0YI2Frv9IEbkjz/9dC6IdJWBQAG34lRuU7jBXeq3DRur9Ng==", + "dev": true, + "dependencies": { + "bytes": "^3.0.0", + "compressible": "^2.0.0", + "http-errors": "^1.7.3", + "koa-is-json": "^1.0.0", + "statuses": "^2.0.0" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/koa-compress/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/koa-connect": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/koa-connect/-/koa-connect-2.1.0.tgz", + "integrity": "sha512-O9pcFafHk0oQsBevlbTBlB9co+2RUQJ4zCzu3qJPmGlGoeEZkne+7gWDkecqDPSbCtED6LmhlQladxs6NjOnMQ==", + "dev": true + }, + "node_modules/koa-convert": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/koa-convert/-/koa-convert-1.2.0.tgz", + "integrity": "sha1-2kCHXfSd4FOQmNFwC1CCDOvNIdA=", + "dev": true, + "dependencies": { + "co": "^4.6.0", + "koa-compose": "^3.0.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/koa-convert/node_modules/koa-compose": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/koa-compose/-/koa-compose-3.2.1.tgz", + "integrity": "sha1-qFzLQLfZhtjlo0Wzoazo6rz1Tec=", + "dev": true, + "dependencies": { + "any-promise": "^1.1.0" + } + }, + "node_modules/koa-is-json": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/koa-is-json/-/koa-is-json-1.0.0.tgz", + "integrity": "sha1-JzwH7c3Ljfaiwat9We52SRRR7BQ=", + "dev": true + }, + "node_modules/koa-route": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/koa-route/-/koa-route-3.2.0.tgz", + "integrity": "sha1-dimLmaa8+p44yrb+XHmocz51i84=", + "dev": true, + "dependencies": { + "debug": "*", + "methods": "~1.1.0", + "path-to-regexp": "^1.2.0" + } + }, + "node_modules/koa-send": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/koa-send/-/koa-send-5.0.1.tgz", + "integrity": "sha512-tmcyQ/wXXuxpDxyNXv5yNNkdAMdFRqwtegBXUaowiQzUKqJehttS0x2j0eOZDQAyloAth5w6wwBImnFzkUz3pQ==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "http-errors": "^1.7.3", + "resolve-path": "^1.4.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/koa-static": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/koa-static/-/koa-static-5.0.0.tgz", + "integrity": "sha512-UqyYyH5YEXaJrf9S8E23GoJFQZXkBVJ9zYYMPGz919MSX1KuvAcycIuS0ci150HCoPf4XQVhQ84Qf8xRPWxFaQ==", + "dev": true, + "dependencies": { + "debug": "^3.1.0", + "koa-send": "^5.0.0" + }, + "engines": { + "node": ">= 7.6.0" + } + }, + "node_modules/koa-static/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/koa/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/koa/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/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/load-json-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">=4.3.0 <5.0.0 || >=5.10" + } + }, + "node_modules/loader-utils": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz", + "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", + "dev": true, + "license": "MIT", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/loader-utils/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "dependencies": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "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.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", + "dev": true + }, + "node_modules/lodash.flatten": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", + "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=", + "dev": true + }, + "node_modules/lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", + "dev": true + }, + "node_modules/loglevelnext": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/loglevelnext/-/loglevelnext-4.0.1.tgz", + "integrity": "sha512-/tlMUn5wqgzg9msy0PiWc+8fpVXEuYPq49c2RGyw2NAh0hSrgq6j/Z3YPnwWsILMoFJ+ZT6ePHnWUonkjDnq2Q==", + "dev": true, + "engines": { + "node": ">= 8.16.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/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" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", + "dev": true, + "license": "MIT", + "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": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==", + "dev": true, + "license": "MIT", + "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, + "license": "MIT", + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "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.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha512-cda4JKCxReDXFXRqOHPQscuIYg1PvxbE2S2GP45rnwfEK+vZaXC8C1OFvdHIbgw0DLzowXGVoxLaAmlgRy14GQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "node_modules/memory-fs/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/memory-fs/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "license": "MIT", + "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/memory-fs/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, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.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.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "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, + "license": "MIT", + "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.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true, + "license": "MIT" + }, + "node_modules/mime-db": { + "version": "1.46.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.46.0.tgz", + "integrity": "sha512-svXaP8UQRZ5K7or+ZmfNhg2xX3yKDMUzqadsSqi4NCH/KomcH75MAMYAGVlvXn4+b/xOPhS3I2uHKRUzvjY7BQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.29", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.29.tgz", + "integrity": "sha512-Y/jMt/S5sR9OaqteJtslsFZKWOIIqMACsJSiHghlCAyhf7jfVYjKBmLiX8OgpWeW+fjJ2b+Az69aPFPkUOY6xQ==", + "dev": true, + "dependencies": { + "mime-db": "1.46.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/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/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, + "license": "ISC" + }, + "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": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", + "dev": true, + "license": "MIT" + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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, + "license": "BSD-2-Clause", + "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, + "license": "MIT", + "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, + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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/move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", + "integrity": "sha512-hdrFxZOycD/g6A6SoI2bB5NA/5NEqD0569+S47WZhPvm46sD50ZHdYaFmnua5lndde9rCHGjmfK7Z8BuCt/PcQ==", + "deprecated": "This package is no longer supported.", + "dev": true, + "license": "ISC", + "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/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "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==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "license": "ISC", + "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/nan": { + "version": "2.20.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.20.0.tgz", + "integrity": "sha512-bk3gXBZDGILuuo/6sKtr0DQmSThYHLtNCdSdXk9YkxD/jK6X2vmCyyXBBxyqZ4XcnzTyYEAThfX3DCEnLf6igw==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "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, + "license": "MIT", + "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/nanomatch/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, + "license": "MIT", + "dependencies": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/is-descriptor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", + "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/nanomatch/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, + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": 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/node-dir": { + "version": "0.1.17", + "resolved": "https://registry.npmjs.org/node-dir/-/node-dir-0.1.17.tgz", + "integrity": "sha1-X1Zl2TNRM1yqvvjxxVRRbPXx5OU=", + "dev": true, + "dependencies": { + "minimatch": "^3.0.2" + }, + "engines": { + "node": ">= 0.10.5" + } + }, + "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, + "license": "MIT", + "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/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-libs-browser/node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-libs-browser/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "license": "MIT", + "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/node-libs-browser/node_modules/readable-stream/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, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/node-libs-browser/node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/node-libs-browser/node_modules/string_decoder/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, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/node-releases": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", + "dev": true, + "license": "MIT" + }, + "node_modules/noms": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/noms/-/noms-0.0.0.tgz", + "integrity": "sha1-2o69nzr51nYJGbJ9nNyAkqczKFk=", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "readable-stream": "~1.0.31" + } + }, + "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/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "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, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm": { + "version": "6.14.18", + "resolved": "https://registry.npmjs.org/npm/-/npm-6.14.18.tgz", + "integrity": "sha512-p3SjqSchSuNQUqbJBgwdv0L3O6bKkaSfQrQzJsskNpNKLg0g37c5xTXFV0SqTlX9GWvoGxBELVJMRWq0J8oaLA==", + "bundleDependencies": [ + "abbrev", + "ansicolors", + "ansistyles", + "aproba", + "archy", + "bin-links", + "bluebird", + "byte-size", + "cacache", + "call-limit", + "chownr", + "ci-info", + "cli-columns", + "cli-table3", + "cmd-shim", + "columnify", + "config-chain", + "debuglog", + "detect-indent", + "detect-newline", + "dezalgo", + "editor", + "figgy-pudding", + "find-npm-prefix", + "fs-vacuum", + "fs-write-stream-atomic", + "gentle-fs", + "glob", + "graceful-fs", + "has-unicode", + "hosted-git-info", + "iferr", + "imurmurhash", + "infer-owner", + "inflight", + "inherits", + "ini", + "init-package-json", + "is-cidr", + "json-parse-better-errors", + "JSONStream", + "lazy-property", + "libcipm", + "libnpm", + "libnpmaccess", + "libnpmhook", + "libnpmorg", + "libnpmsearch", + "libnpmteam", + "libnpx", + "lock-verify", + "lockfile", + "lodash._baseindexof", + "lodash._baseuniq", + "lodash._bindcallback", + "lodash._cacheindexof", + "lodash._createcache", + "lodash._getnative", + "lodash.clonedeep", + "lodash.restparam", + "lodash.union", + "lodash.uniq", + "lodash.without", + "lru-cache", + "meant", + "mississippi", + "mkdirp", + "move-concurrently", + "node-gyp", + "nopt", + "normalize-package-data", + "npm-audit-report", + "npm-cache-filename", + "npm-install-checks", + "npm-lifecycle", + "npm-package-arg", + "npm-packlist", + "npm-pick-manifest", + "npm-profile", + "npm-registry-fetch", + "npm-user-validate", + "npmlog", + "once", + "opener", + "osenv", + "pacote", + "path-is-inside", + "promise-inflight", + "qrcode-terminal", + "query-string", + "qw", + "read-cmd-shim", + "read-installed", + "read-package-json", + "read-package-tree", + "read", + "readable-stream", + "readdir-scoped-modules", + "request", + "retry", + "rimraf", + "safe-buffer", + "semver", + "sha", + "slide", + "sorted-object", + "sorted-union-stream", + "ssri", + "stringify-package", + "tar", + "text-table", + "tiny-relative-date", + "uid-number", + "umask", + "unique-filename", + "unpipe", + "update-notifier", + "uuid", + "validate-npm-package-license", + "validate-npm-package-name", + "which", + "worker-farm", + "write-file-atomic" + ], + "dev": true, + "license": "Artistic-2.0", + "dependencies": { + "abbrev": "~1.1.1", + "ansicolors": "~0.3.2", + "ansistyles": "~0.1.3", + "aproba": "^2.0.0", + "archy": "~1.0.0", + "bin-links": "^1.1.8", + "bluebird": "^3.7.2", + "byte-size": "^5.0.1", + "cacache": "^12.0.4", + "call-limit": "^1.1.1", + "chownr": "^1.1.4", + "ci-info": "^2.0.0", + "cli-columns": "^3.1.2", + "cli-table3": "^0.5.1", + "cmd-shim": "^3.0.3", + "columnify": "~1.5.4", + "config-chain": "^1.1.13", + "debuglog": "*", + "detect-indent": "~5.0.0", + "detect-newline": "^2.1.0", + "dezalgo": "^1.0.4", + "editor": "~1.0.0", + "figgy-pudding": "^3.5.2", + "find-npm-prefix": "^1.0.2", + "fs-vacuum": "~1.2.10", + "fs-write-stream-atomic": "~1.0.10", + "gentle-fs": "^2.3.1", + "glob": "^7.2.3", + "graceful-fs": "^4.2.10", + "has-unicode": "~2.0.1", + "hosted-git-info": "^2.8.9", + "iferr": "^1.0.2", + "imurmurhash": "*", + "infer-owner": "^1.0.4", + "inflight": "~1.0.6", + "inherits": "^2.0.4", + "ini": "^1.3.8", + "init-package-json": "^1.10.3", + "is-cidr": "^3.1.1", + "json-parse-better-errors": "^1.0.2", + "JSONStream": "^1.3.5", + "lazy-property": "~1.0.0", + "libcipm": "^4.0.8", + "libnpm": "^3.0.1", + "libnpmaccess": "^3.0.2", + "libnpmhook": "^5.0.3", + "libnpmorg": "^1.0.1", + "libnpmsearch": "^2.0.2", + "libnpmteam": "^1.0.2", + "libnpx": "^10.2.4", + "lock-verify": "^2.2.2", + "lockfile": "^1.0.4", + "lodash._baseindexof": "*", + "lodash._baseuniq": "~4.6.0", + "lodash._bindcallback": "*", + "lodash._cacheindexof": "*", + "lodash._createcache": "*", + "lodash._getnative": "*", + "lodash.clonedeep": "~4.5.0", + "lodash.restparam": "*", + "lodash.union": "~4.6.0", + "lodash.uniq": "~4.5.0", + "lodash.without": "~4.4.0", + "lru-cache": "^5.1.1", + "meant": "^1.0.3", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.6", + "move-concurrently": "^1.0.1", + "node-gyp": "^5.1.1", + "nopt": "^4.0.3", + "normalize-package-data": "^2.5.0", + "npm-audit-report": "^1.3.3", + "npm-cache-filename": "~1.0.2", + "npm-install-checks": "^3.0.2", + "npm-lifecycle": "^3.1.5", + "npm-package-arg": "^6.1.1", + "npm-packlist": "^1.4.8", + "npm-pick-manifest": "^3.0.2", + "npm-profile": "^4.0.4", + "npm-registry-fetch": "^4.0.7", + "npm-user-validate": "^1.0.1", + "npmlog": "~4.1.2", + "once": "~1.4.0", + "opener": "^1.5.2", + "osenv": "^0.1.5", + "pacote": "^9.5.12", + "path-is-inside": "~1.0.2", + "promise-inflight": "~1.0.1", + "qrcode-terminal": "^0.12.0", + "query-string": "^6.14.1", + "qw": "^1.0.2", + "read": "~1.0.7", + "read-cmd-shim": "^1.0.5", + "read-installed": "~4.0.3", + "read-package-json": "^2.1.2", + "read-package-tree": "^5.3.1", + "readable-stream": "^3.6.0", + "readdir-scoped-modules": "^1.1.0", + "request": "^2.88.2", + "retry": "^0.12.0", + "rimraf": "^2.7.1", + "safe-buffer": "^5.2.1", + "semver": "^5.7.1", + "sha": "^3.0.0", + "slide": "~1.1.6", + "sorted-object": "~2.0.1", + "sorted-union-stream": "~2.1.3", + "ssri": "^6.0.2", + "stringify-package": "^1.0.1", + "tar": "^4.4.19", + "text-table": "~0.2.0", + "tiny-relative-date": "^1.3.0", + "uid-number": "0.0.6", + "umask": "~1.1.0", + "unique-filename": "^1.1.1", + "unpipe": "~1.0.0", + "update-notifier": "^2.5.0", + "uuid": "^3.4.0", + "validate-npm-package-license": "^3.0.4", + "validate-npm-package-name": "~3.0.0", + "which": "^1.3.1", + "worker-farm": "^1.7.0", + "write-file-atomic": "^2.4.3" + }, + "bin": { + "npm": "bin/npm-cli.js", + "npx": "bin/npx-cli.js" + }, + "engines": { + "node": "6 >=6.2.0 || 8 || >=9.3.0" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/@iarna/cli": { + "version": "2.1.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.2", + "signal-exit": "^3.0.2" + } + }, + "node_modules/npm/node_modules/abbrev": { + "version": "1.1.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/agent-base": { + "version": "4.3.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "es6-promisify": "^5.0.0" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/npm/node_modules/agentkeepalive": { + "version": "3.5.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "humanize-ms": "^1.2.1" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/npm/node_modules/ansi-align": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "string-width": "^2.0.0" + } + }, + "node_modules/npm/node_modules/ansi-regex": { + "version": "2.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/ansi-styles": { + "version": "3.2.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/ansicolors": { + "version": "0.3.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/ansistyles": { + "version": "0.1.3", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/aproba": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/archy": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/are-we-there-yet": { + "version": "1.1.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "node_modules/npm/node_modules/are-we-there-yet/node_modules/readable-stream": { + "version": "2.3.6", + "dev": true, + "inBundle": true, + "license": "MIT", + "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/npm/node_modules/are-we-there-yet/node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/are-we-there-yet/node_modules/string_decoder": { + "version": "1.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/npm/node_modules/are-we-there-yet/node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/asap": { + "version": "2.0.6", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/asn1": { + "version": "0.2.6", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "safer-buffer": "~2.1.0" + } + }, + "node_modules/npm/node_modules/assert-plus": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/npm/node_modules/asynckit": { + "version": "0.4.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/aws-sign2": { + "version": "0.7.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "engines": { + "node": "*" + } + }, + "node_modules/npm/node_modules/aws4": { + "version": "1.11.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/balanced-match": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "BSD-3-Clause", + "dependencies": { + "tweetnacl": "^0.14.3" + } + }, + "node_modules/npm/node_modules/bin-links": { + "version": "1.1.8", + "dev": true, + "inBundle": true, + "license": "Artistic-2.0", + "dependencies": { + "bluebird": "^3.5.3", + "cmd-shim": "^3.0.0", + "gentle-fs": "^2.3.0", + "graceful-fs": "^4.1.15", + "npm-normalize-package-bin": "^1.0.0", + "write-file-atomic": "^2.3.0" + } + }, + "node_modules/npm/node_modules/bluebird": { + "version": "3.7.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/boxen": { + "version": "1.3.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-align": "^2.0.0", + "camelcase": "^4.0.0", + "chalk": "^2.0.1", + "cli-boxes": "^1.0.0", + "string-width": "^2.0.0", + "term-size": "^1.2.0", + "widest-line": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/brace-expansion": { + "version": "1.1.11", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/npm/node_modules/buffer-from": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/builtins": { + "version": "1.0.3", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/byline": { + "version": "5.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/byte-size": { + "version": "5.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/npm/node_modules/cacache": { + "version": "12.0.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "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/npm/node_modules/call-limit": { + "version": "1.1.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/camelcase": { + "version": "4.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/capture-stack-trace": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/caseless": { + "version": "0.12.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0" + }, + "node_modules/npm/node_modules/chalk": { + "version": "2.4.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/chownr": { + "version": "1.1.4", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/ci-info": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/cidr-regex": { + "version": "2.0.10", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "ip-regex": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/cli-boxes": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/cli-columns": { + "version": "3.1.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "string-width": "^2.0.0", + "strip-ansi": "^3.0.1" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/npm/node_modules/cli-table3": { + "version": "0.5.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "object-assign": "^4.1.0", + "string-width": "^2.1.1" + }, + "engines": { + "node": ">=6" + }, + "optionalDependencies": { + "colors": "^1.1.2" + } + }, + "node_modules/npm/node_modules/cliui": { + "version": "5.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + } + }, + "node_modules/npm/node_modules/cliui/node_modules/ansi-regex": { + "version": "4.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/cliui/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/cliui/node_modules/string-width": { + "version": "3.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/cliui/node_modules/strip-ansi": { + "version": "5.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/clone": { + "version": "1.0.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/npm/node_modules/cmd-shim": { + "version": "3.0.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "graceful-fs": "^4.1.2", + "mkdirp": "~0.5.0" + } + }, + "node_modules/npm/node_modules/code-point-at": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/color-convert": { + "version": "1.9.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "color-name": "^1.1.1" + } + }, + "node_modules/npm/node_modules/color-name": { + "version": "1.1.3", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/colors": { + "version": "1.3.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/npm/node_modules/columnify": { + "version": "1.5.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "strip-ansi": "^3.0.0", + "wcwidth": "^1.0.0" + } + }, + "node_modules/npm/node_modules/combined-stream": { + "version": "1.0.8", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/npm/node_modules/concat-map": { + "version": "0.0.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/concat-stream": { + "version": "1.6.2", + "dev": true, + "engines": [ + "node >= 0.8" + ], + "inBundle": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/npm/node_modules/concat-stream/node_modules/readable-stream": { + "version": "2.3.6", + "dev": true, + "inBundle": true, + "license": "MIT", + "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/npm/node_modules/concat-stream/node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/concat-stream/node_modules/string_decoder": { + "version": "1.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/npm/node_modules/concat-stream/node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/config-chain": { + "version": "1.1.13", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "node_modules/npm/node_modules/configstore": { + "version": "3.1.5", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "dot-prop": "^4.2.1", + "graceful-fs": "^4.1.2", + "make-dir": "^1.0.0", + "unique-string": "^1.0.0", + "write-file-atomic": "^2.0.0", + "xdg-basedir": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/console-control-strings": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/copy-concurrently": { + "version": "1.0.5", + "dev": true, + "inBundle": true, + "license": "ISC", + "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/npm/node_modules/copy-concurrently/node_modules/aproba": { + "version": "1.2.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/copy-concurrently/node_modules/iferr": { + "version": "0.1.5", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/core-util-is": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/create-error-class": { + "version": "3.0.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "capture-stack-trace": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/cross-spawn": { + "version": "5.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "node_modules/npm/node_modules/cross-spawn/node_modules/lru-cache": { + "version": "4.1.5", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "node_modules/npm/node_modules/cross-spawn/node_modules/yallist": { + "version": "2.1.2", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/crypto-random-string": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/cyclist": { + "version": "0.2.2", + "dev": true, + "inBundle": true + }, + "node_modules/npm/node_modules/dashdash": { + "version": "1.14.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/npm/node_modules/debug": { + "version": "3.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/npm/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/debuglog": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/npm/node_modules/decamelize": { + "version": "1.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/decode-uri-component": { + "version": "0.2.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/npm/node_modules/deep-extend": { + "version": "0.6.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/npm/node_modules/defaults": { + "version": "1.0.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "clone": "^1.0.2" + } + }, + "node_modules/npm/node_modules/define-properties": { + "version": "1.1.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "object-keys": "^1.0.12" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/npm/node_modules/delayed-stream": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/npm/node_modules/delegates": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/detect-indent": { + "version": "5.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/detect-newline": { + "version": "2.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/dezalgo": { + "version": "1.0.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "asap": "^2.0.0", + "wrappy": "1" + } + }, + "node_modules/npm/node_modules/dot-prop": { + "version": "4.2.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "is-obj": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/dotenv": { + "version": "5.0.1", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.6.0" + } + }, + "node_modules/npm/node_modules/duplexer3": { + "version": "0.1.4", + "dev": true, + "inBundle": true, + "license": "BSD-3-Clause" + }, + "node_modules/npm/node_modules/duplexify": { + "version": "3.6.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "node_modules/npm/node_modules/duplexify/node_modules/readable-stream": { + "version": "2.3.6", + "dev": true, + "inBundle": true, + "license": "MIT", + "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/npm/node_modules/duplexify/node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/duplexify/node_modules/string_decoder": { + "version": "1.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/npm/node_modules/duplexify/node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/ecc-jsbn": { + "version": "0.1.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/npm/node_modules/editor": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/emoji-regex": { + "version": "7.0.3", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/encoding": { + "version": "0.1.12", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "iconv-lite": "~0.4.13" + } + }, + "node_modules/npm/node_modules/end-of-stream": { + "version": "1.4.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/npm/node_modules/env-paths": { + "version": "2.2.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/err-code": { + "version": "1.1.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/errno": { + "version": "0.1.7", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "prr": "~1.0.1" + }, + "bin": { + "errno": "cli.js" + } + }, + "node_modules/npm/node_modules/es-abstract": { + "version": "1.12.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "es-to-primitive": "^1.1.1", + "function-bind": "^1.1.1", + "has": "^1.0.1", + "is-callable": "^1.1.3", + "is-regex": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/npm/node_modules/es-to-primitive": { + "version": "1.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/npm/node_modules/es6-promise": { + "version": "4.2.8", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/es6-promisify": { + "version": "5.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "es6-promise": "^4.0.3" + } + }, + "node_modules/npm/node_modules/escape-string-regexp": { + "version": "1.0.5", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/npm/node_modules/execa": { + "version": "0.7.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.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": ">=4" + } + }, + "node_modules/npm/node_modules/execa/node_modules/get-stream": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/extend": { + "version": "3.0.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/extsprintf": { + "version": "1.3.0", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/fast-json-stable-stringify": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/figgy-pudding": { + "version": "3.5.2", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/filter-obj": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/find-npm-prefix": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/flush-write-stream": { + "version": "1.0.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.4" + } + }, + "node_modules/npm/node_modules/flush-write-stream/node_modules/readable-stream": { + "version": "2.3.6", + "dev": true, + "inBundle": true, + "license": "MIT", + "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/npm/node_modules/flush-write-stream/node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/flush-write-stream/node_modules/string_decoder": { + "version": "1.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/npm/node_modules/flush-write-stream/node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/forever-agent": { + "version": "0.6.1", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "engines": { + "node": "*" + } + }, + "node_modules/npm/node_modules/form-data": { + "version": "2.3.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/npm/node_modules/from2": { + "version": "2.3.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "node_modules/npm/node_modules/from2/node_modules/readable-stream": { + "version": "2.3.6", + "dev": true, + "inBundle": true, + "license": "MIT", + "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/npm/node_modules/from2/node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/from2/node_modules/string_decoder": { + "version": "1.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/npm/node_modules/from2/node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/fs-minipass": { + "version": "1.2.7", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^2.6.0" + } + }, + "node_modules/npm/node_modules/fs-minipass/node_modules/minipass": { + "version": "2.9.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "node_modules/npm/node_modules/fs-vacuum": { + "version": "1.2.10", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "graceful-fs": "^4.1.2", + "path-is-inside": "^1.0.1", + "rimraf": "^2.5.2" + } + }, + "node_modules/npm/node_modules/fs-write-stream-atomic": { + "version": "1.0.10", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + } + }, + "node_modules/npm/node_modules/fs-write-stream-atomic/node_modules/iferr": { + "version": "0.1.5", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/fs-write-stream-atomic/node_modules/readable-stream": { + "version": "2.3.6", + "dev": true, + "inBundle": true, + "license": "MIT", + "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/npm/node_modules/fs-write-stream-atomic/node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/fs-write-stream-atomic/node_modules/string_decoder": { + "version": "1.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/npm/node_modules/fs-write-stream-atomic/node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/fs.realpath": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/function-bind": { + "version": "1.1.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/gauge": { + "version": "2.7.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "node_modules/npm/node_modules/gauge/node_modules/aproba": { + "version": "1.2.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/gauge/node_modules/string-width": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/genfun": { + "version": "5.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/gentle-fs": { + "version": "2.3.1", + "dev": true, + "inBundle": true, + "license": "Artistic-2.0", + "dependencies": { + "aproba": "^1.1.2", + "chownr": "^1.1.2", + "cmd-shim": "^3.0.3", + "fs-vacuum": "^1.2.10", + "graceful-fs": "^4.1.11", + "iferr": "^0.1.5", + "infer-owner": "^1.0.4", + "mkdirp": "^0.5.1", + "path-is-inside": "^1.0.2", + "read-cmd-shim": "^1.0.1", + "slide": "^1.1.6" + } + }, + "node_modules/npm/node_modules/gentle-fs/node_modules/aproba": { + "version": "1.2.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/gentle-fs/node_modules/iferr": { + "version": "0.1.5", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/get-caller-file": { + "version": "2.0.5", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/npm/node_modules/get-stream": { + "version": "4.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/getpass": { + "version": "0.1.7", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "assert-plus": "^1.0.0" + } + }, + "node_modules/npm/node_modules/glob": { + "version": "7.2.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/glob/node_modules/minimatch": { + "version": "3.1.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/npm/node_modules/global-dirs": { + "version": "0.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ini": "^1.3.4" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/got": { + "version": "6.7.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "create-error-class": "^3.0.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "is-redirect": "^1.0.0", + "is-retry-allowed": "^1.0.0", + "is-stream": "^1.0.0", + "lowercase-keys": "^1.0.0", + "safe-buffer": "^5.0.1", + "timed-out": "^4.0.0", + "unzip-response": "^2.0.1", + "url-parse-lax": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/got/node_modules/get-stream": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/graceful-fs": { + "version": "4.2.10", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/har-schema": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/har-validator": { + "version": "5.1.5", + "deprecated": "this library is no longer supported", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/har-validator/node_modules/ajv": { + "version": "6.12.6", + "dev": true, + "inBundle": true, + "license": "MIT", + "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" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/npm/node_modules/har-validator/node_modules/fast-deep-equal": { + "version": "3.1.3", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/har-validator/node_modules/json-schema-traverse": { + "version": "0.4.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/has": { + "version": "1.0.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/npm/node_modules/has-flag": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/has-symbols": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/npm/node_modules/has-unicode": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/hosted-git-info": { + "version": "2.8.9", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/http-cache-semantics": { + "version": "3.8.1", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause" + }, + "node_modules/npm/node_modules/http-proxy-agent": { + "version": "2.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "agent-base": "4", + "debug": "3.1.0" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/npm/node_modules/http-signature": { + "version": "1.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + }, + "engines": { + "node": ">=0.8", + "npm": ">=1.3.7" + } + }, + "node_modules/npm/node_modules/https-proxy-agent": { + "version": "2.2.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "agent-base": "^4.3.0", + "debug": "^3.1.0" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/npm/node_modules/humanize-ms": { + "version": "1.2.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ms": "^2.0.0" + } + }, + "node_modules/npm/node_modules/iconv-lite": { + "version": "0.4.23", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/iferr": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/npm/node_modules/ignore-walk": { + "version": "3.0.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "minimatch": "^3.0.4" + } + }, + "node_modules/npm/node_modules/import-lazy": { + "version": "2.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/imurmurhash": { + "version": "0.1.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/npm/node_modules/infer-owner": { + "version": "1.0.4", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/inflight": { + "version": "1.0.6", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/npm/node_modules/inherits": { + "version": "2.0.4", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/ini": { + "version": "1.3.8", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/init-package-json": { + "version": "1.10.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.1", + "npm-package-arg": "^4.0.0 || ^5.0.0 || ^6.0.0", + "promzard": "^0.3.0", + "read": "~1.0.1", + "read-package-json": "1 || 2", + "semver": "2.x || 3.x || 4 || 5", + "validate-npm-package-license": "^3.0.1", + "validate-npm-package-name": "^3.0.0" + } + }, + "node_modules/npm/node_modules/ip": { + "version": "1.1.5", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/ip-regex": { + "version": "2.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/is-callable": { + "version": "1.1.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/npm/node_modules/is-ci": { + "version": "1.2.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ci-info": "^1.5.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/npm/node_modules/is-ci/node_modules/ci-info": { + "version": "1.6.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/is-cidr": { + "version": "3.1.1", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "cidr-regex": "^2.0.10" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/is-date-object": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/npm/node_modules/is-fullwidth-code-point": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/is-installed-globally": { + "version": "0.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "global-dirs": "^0.1.0", + "is-path-inside": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/is-npm": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/is-obj": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/is-path-inside": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "path-is-inside": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/is-redirect": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/is-regex": { + "version": "1.0.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "has": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/npm/node_modules/is-retry-allowed": { + "version": "1.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/is-stream": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/is-symbol": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/npm/node_modules/is-typedarray": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/isarray": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/isexe": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/isstream": { + "version": "0.1.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/jsbn": { + "version": "0.1.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/json-parse-better-errors": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/json-schema": { + "version": "0.4.0", + "dev": true, + "inBundle": true, + "license": "(AFL-2.1 OR BSD-3-Clause)" + }, + "node_modules/npm/node_modules/json-stringify-safe": { + "version": "5.0.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/jsonparse": { + "version": "1.3.1", + "dev": true, + "engines": [ + "node >= 0.2.0" + ], + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/JSONStream": { + "version": "1.3.5", + "dev": true, + "inBundle": true, + "license": "(MIT OR Apache-2.0)", + "dependencies": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + }, + "bin": { + "JSONStream": "bin.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/npm/node_modules/jsprim": { + "version": "1.4.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/npm/node_modules/latest-version": { + "version": "3.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "package-json": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/lazy-property": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/libcipm": { + "version": "4.0.8", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "bin-links": "^1.1.2", + "bluebird": "^3.5.1", + "figgy-pudding": "^3.5.1", + "find-npm-prefix": "^1.0.2", + "graceful-fs": "^4.1.11", + "ini": "^1.3.5", + "lock-verify": "^2.1.0", + "mkdirp": "^0.5.1", + "npm-lifecycle": "^3.0.0", + "npm-logical-tree": "^1.2.1", + "npm-package-arg": "^6.1.0", + "pacote": "^9.1.0", + "read-package-json": "^2.0.13", + "rimraf": "^2.6.2", + "worker-farm": "^1.6.0" + } + }, + "node_modules/npm/node_modules/libnpm": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "bin-links": "^1.1.2", + "bluebird": "^3.5.3", + "find-npm-prefix": "^1.0.2", + "libnpmaccess": "^3.0.2", + "libnpmconfig": "^1.2.1", + "libnpmhook": "^5.0.3", + "libnpmorg": "^1.0.1", + "libnpmpublish": "^1.1.2", + "libnpmsearch": "^2.0.2", + "libnpmteam": "^1.0.2", + "lock-verify": "^2.0.2", + "npm-lifecycle": "^3.0.0", + "npm-logical-tree": "^1.2.1", + "npm-package-arg": "^6.1.0", + "npm-profile": "^4.0.2", + "npm-registry-fetch": "^4.0.0", + "npmlog": "^4.1.2", + "pacote": "^9.5.3", + "read-package-json": "^2.0.13", + "stringify-package": "^1.0.0" + } + }, + "node_modules/npm/node_modules/libnpmaccess": { + "version": "3.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^2.0.0", + "get-stream": "^4.0.0", + "npm-package-arg": "^6.1.0", + "npm-registry-fetch": "^4.0.0" + } + }, + "node_modules/npm/node_modules/libnpmconfig": { + "version": "1.2.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "figgy-pudding": "^3.5.1", + "find-up": "^3.0.0", + "ini": "^1.3.5" + } + }, + "node_modules/npm/node_modules/libnpmconfig/node_modules/find-up": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/libnpmconfig/node_modules/locate-path": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/libnpmconfig/node_modules/p-limit": { + "version": "2.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/libnpmconfig/node_modules/p-locate": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/libnpmconfig/node_modules/p-try": { + "version": "2.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/libnpmhook": { + "version": "5.0.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^2.0.0", + "figgy-pudding": "^3.4.1", + "get-stream": "^4.0.0", + "npm-registry-fetch": "^4.0.0" + } + }, + "node_modules/npm/node_modules/libnpmorg": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^2.0.0", + "figgy-pudding": "^3.4.1", + "get-stream": "^4.0.0", + "npm-registry-fetch": "^4.0.0" + } + }, + "node_modules/npm/node_modules/libnpmpublish": { + "version": "1.1.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^2.0.0", + "figgy-pudding": "^3.5.1", + "get-stream": "^4.0.0", + "lodash.clonedeep": "^4.5.0", + "normalize-package-data": "^2.4.0", + "npm-package-arg": "^6.1.0", + "npm-registry-fetch": "^4.0.0", + "semver": "^5.5.1", + "ssri": "^6.0.1" + } + }, + "node_modules/npm/node_modules/libnpmsearch": { + "version": "2.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "figgy-pudding": "^3.5.1", + "get-stream": "^4.0.0", + "npm-registry-fetch": "^4.0.0" + } + }, + "node_modules/npm/node_modules/libnpmteam": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^2.0.0", + "figgy-pudding": "^3.4.1", + "get-stream": "^4.0.0", + "npm-registry-fetch": "^4.0.0" + } + }, + "node_modules/npm/node_modules/libnpx": { + "version": "10.2.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "dotenv": "^5.0.1", + "npm-package-arg": "^6.0.0", + "rimraf": "^2.6.2", + "safe-buffer": "^5.1.0", + "update-notifier": "^2.3.0", + "which": "^1.3.0", + "y18n": "^4.0.0", + "yargs": "^14.2.3" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/lock-verify": { + "version": "2.2.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@iarna/cli": "^2.1.0", + "npm-package-arg": "^6.1.0", + "semver": "^5.4.1" + }, + "bin": { + "lock-verify": "cli.js" + } + }, + "node_modules/npm/node_modules/lockfile": { + "version": "1.0.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "signal-exit": "^3.0.2" + } + }, + "node_modules/npm/node_modules/lodash._baseindexof": { + "version": "3.1.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/lodash._baseuniq": { + "version": "4.6.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "lodash._createset": "~4.0.0", + "lodash._root": "~3.0.0" + } + }, + "node_modules/npm/node_modules/lodash._bindcallback": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/lodash._cacheindexof": { + "version": "3.0.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/lodash._createcache": { + "version": "3.1.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "lodash._getnative": "^3.0.0" + } + }, + "node_modules/npm/node_modules/lodash._createset": { + "version": "4.0.3", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/lodash._getnative": { + "version": "3.9.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/lodash._root": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/lodash.clonedeep": { + "version": "4.5.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/lodash.restparam": { + "version": "3.6.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/lodash.union": { + "version": "4.6.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/lodash.uniq": { + "version": "4.5.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/lodash.without": { + "version": "4.4.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/lowercase-keys": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/lru-cache": { + "version": "5.1.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/npm/node_modules/make-dir": { + "version": "1.3.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/make-fetch-happen": { + "version": "5.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "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/npm/node_modules/meant": { + "version": "1.0.3", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/mime-db": { + "version": "1.35.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/npm/node_modules/mime-types": { + "version": "2.1.19", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "mime-db": "~1.35.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/npm/node_modules/minimatch": { + "version": "3.1.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/npm/node_modules/minimist": { + "version": "1.2.6", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/minizlib": { + "version": "1.3.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "minipass": "^2.9.0" + } + }, + "node_modules/npm/node_modules/minizlib/node_modules/minipass": { + "version": "2.9.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "node_modules/npm/node_modules/mississippi": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause", + "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/npm/node_modules/mkdirp": { + "version": "0.5.6", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/npm/node_modules/move-concurrently": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "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/npm/node_modules/move-concurrently/node_modules/aproba": { + "version": "1.2.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/ms": { + "version": "2.1.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/mute-stream": { + "version": "0.0.7", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/node-fetch-npm": { + "version": "2.0.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "encoding": "^0.1.11", + "json-parse-better-errors": "^1.0.0", + "safe-buffer": "^5.1.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/node-gyp": { + "version": "5.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "env-paths": "^2.2.0", + "glob": "^7.1.4", + "graceful-fs": "^4.2.2", + "mkdirp": "^0.5.1", + "nopt": "^4.0.1", + "npmlog": "^4.1.2", + "request": "^2.88.0", + "rimraf": "^2.6.3", + "semver": "^5.7.1", + "tar": "^4.4.12", + "which": "^1.3.1" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/npm/node_modules/nopt": { + "version": "4.0.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "abbrev": "1", + "osenv": "^0.1.4" + }, + "bin": { + "nopt": "bin/nopt.js" + } + }, + "node_modules/npm/node_modules/normalize-package-data": { + "version": "2.5.0", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause", + "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/npm/node_modules/normalize-package-data/node_modules/resolve": { + "version": "1.10.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "path-parse": "^1.0.6" + } + }, + "node_modules/npm/node_modules/npm-audit-report": { + "version": "1.3.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "cli-table3": "^0.5.0", + "console-control-strings": "^1.1.0" + } + }, + "node_modules/npm/node_modules/npm-bundled": { + "version": "1.1.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-normalize-package-bin": "^1.0.1" + } + }, + "node_modules/npm/node_modules/npm-cache-filename": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/npm-install-checks": { + "version": "3.0.2", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "semver": "^2.3.0 || 3.x || 4 || 5" + } + }, + "node_modules/npm/node_modules/npm-lifecycle": { + "version": "3.1.5", + "dev": true, + "inBundle": true, + "license": "Artistic-2.0", + "dependencies": { + "byline": "^5.0.0", + "graceful-fs": "^4.1.15", + "node-gyp": "^5.0.2", + "resolve-from": "^4.0.0", + "slide": "^1.1.6", + "uid-number": "0.0.6", + "umask": "^1.1.0", + "which": "^1.3.1" + } + }, + "node_modules/npm/node_modules/npm-logical-tree": { + "version": "1.2.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/npm-normalize-package-bin": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/npm-package-arg": { + "version": "6.1.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "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/node_modules/npm-packlist": { + "version": "1.4.8", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1", + "npm-normalize-package-bin": "^1.0.1" + } + }, + "node_modules/npm/node_modules/npm-pick-manifest": { + "version": "3.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "figgy-pudding": "^3.5.1", + "npm-package-arg": "^6.0.0", + "semver": "^5.4.1" + } + }, + "node_modules/npm/node_modules/npm-profile": { + "version": "4.0.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^1.1.2 || 2", + "figgy-pudding": "^3.4.1", + "npm-registry-fetch": "^4.0.0" + } + }, + "node_modules/npm/node_modules/npm-registry-fetch": { + "version": "4.0.7", + "dev": true, + "inBundle": true, + "license": "ISC", + "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/node_modules/npm-registry-fetch/node_modules/safe-buffer": { + "version": "5.2.1", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/npm-run-path": { + "version": "2.0.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "path-key": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/npm-user-validate": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause" + }, + "node_modules/npm/node_modules/npmlog": { + "version": "4.1.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "node_modules/npm/node_modules/number-is-nan": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/oauth-sign": { + "version": "0.9.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "engines": { + "node": "*" + } + }, + "node_modules/npm/node_modules/object-assign": { + "version": "4.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/object-keys": { + "version": "1.0.12", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/npm/node_modules/object.getownpropertydescriptors": { + "version": "2.0.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.1.2", + "es-abstract": "^1.5.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/npm/node_modules/once": { + "version": "1.4.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/npm/node_modules/opener": { + "version": "1.5.2", + "dev": true, + "inBundle": true, + "license": "(WTFPL OR MIT)", + "bin": { + "opener": "bin/opener-bin.js" + } + }, + "node_modules/npm/node_modules/os-homedir": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/os-tmpdir": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/osenv": { + "version": "0.1.5", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "node_modules/npm/node_modules/p-finally": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/package-json": { + "version": "4.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "got": "^6.7.1", + "registry-auth-token": "^3.0.1", + "registry-url": "^3.0.3", + "semver": "^5.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/pacote": { + "version": "9.5.12", + "dev": true, + "inBundle": true, + "license": "MIT", + "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/npm/node_modules/pacote/node_modules/minipass": { + "version": "2.9.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "node_modules/npm/node_modules/parallel-transform": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "cyclist": "~0.2.2", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + } + }, + "node_modules/npm/node_modules/parallel-transform/node_modules/readable-stream": { + "version": "2.3.6", + "dev": true, + "inBundle": true, + "license": "MIT", + "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/npm/node_modules/parallel-transform/node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/parallel-transform/node_modules/string_decoder": { + "version": "1.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/npm/node_modules/parallel-transform/node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/path-exists": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/path-is-absolute": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/path-is-inside": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "(WTFPL OR MIT)" + }, + "node_modules/npm/node_modules/path-key": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/path-parse": { + "version": "1.0.7", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/performance-now": { + "version": "2.1.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/pify": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/prepend-http": { + "version": "1.0.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/process-nextick-args": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/promise-inflight": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/promise-retry": { + "version": "1.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "err-code": "^1.0.0", + "retry": "^0.10.0" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/npm/node_modules/promise-retry/node_modules/retry": { + "version": "0.10.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/npm/node_modules/promzard": { + "version": "0.3.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "read": "1" + } + }, + "node_modules/npm/node_modules/proto-list": { + "version": "1.2.4", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/protoduck": { + "version": "5.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "genfun": "^5.0.0" + } + }, + "node_modules/npm/node_modules/prr": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/pseudomap": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/psl": { + "version": "1.9.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/pump": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/npm/node_modules/pumpify": { + "version": "1.5.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + } + }, + "node_modules/npm/node_modules/pumpify/node_modules/pump": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/npm/node_modules/punycode": { + "version": "1.4.1", + "dev": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/qrcode-terminal": { + "version": "0.12.0", + "dev": true, + "inBundle": true, + "bin": { + "qrcode-terminal": "bin/qrcode-terminal.js" + } + }, + "node_modules/npm/node_modules/qs": { + "version": "6.5.3", + "dev": true, + "inBundle": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/npm/node_modules/query-string": { + "version": "6.14.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "decode-uri-component": "^0.2.0", + "filter-obj": "^1.1.0", + "split-on-first": "^1.0.0", + "strict-uri-encode": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm/node_modules/qw": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/rc": { + "version": "1.2.8", + "dev": true, + "inBundle": true, + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/npm/node_modules/read": { + "version": "1.0.7", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "mute-stream": "~0.0.4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/npm/node_modules/read-cmd-shim": { + "version": "1.0.5", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "graceful-fs": "^4.1.2" + } + }, + "node_modules/npm/node_modules/read-installed": { + "version": "4.0.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "debuglog": "^1.0.1", + "read-package-json": "^2.0.0", + "readdir-scoped-modules": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "slide": "~1.1.3", + "util-extend": "^1.0.1" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.2" + } + }, + "node_modules/npm/node_modules/read-package-json": { + "version": "2.1.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "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/npm/node_modules/read-package-tree": { + "version": "5.3.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "read-package-json": "^2.0.0", + "readdir-scoped-modules": "^1.0.0", + "util-promisify": "^2.1.0" + } + }, + "node_modules/npm/node_modules/readable-stream": { + "version": "3.6.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/npm/node_modules/readdir-scoped-modules": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "debuglog": "^1.0.1", + "dezalgo": "^1.0.0", + "graceful-fs": "^4.1.2", + "once": "^1.3.0" + } + }, + "node_modules/npm/node_modules/registry-auth-token": { + "version": "3.4.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "rc": "^1.1.6", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/npm/node_modules/registry-url": { + "version": "3.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "rc": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/request": { + "version": "2.88.2", + "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "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/npm/node_modules/require-directory": { + "version": "2.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/require-main-filename": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/resolve-from": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/retry": { + "version": "0.12.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/npm/node_modules/rimraf": { + "version": "2.7.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/npm/node_modules/run-queue": { + "version": "1.0.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^1.1.1" + } + }, + "node_modules/npm/node_modules/run-queue/node_modules/aproba": { + "version": "1.2.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/safe-buffer": { + "version": "5.2.1", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/safer-buffer": { + "version": "2.1.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/semver": { + "version": "5.7.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/npm/node_modules/semver-diff": { + "version": "2.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "semver": "^5.0.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/set-blocking": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/sha": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "(BSD-2-Clause OR MIT)", + "dependencies": { + "graceful-fs": "^4.1.2" + } + }, + "node_modules/npm/node_modules/shebang-command": { + "version": "1.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/shebang-regex": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/signal-exit": { + "version": "3.0.2", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/slide": { + "version": "1.1.6", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "*" + } + }, + "node_modules/npm/node_modules/smart-buffer": { + "version": "4.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/npm/node_modules/socks": { + "version": "2.3.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ip": "1.1.5", + "smart-buffer": "^4.1.0" + }, + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/npm/node_modules/socks-proxy-agent": { + "version": "4.0.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "agent-base": "~4.2.1", + "socks": "~2.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/npm/node_modules/socks-proxy-agent/node_modules/agent-base": { + "version": "4.2.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "es6-promisify": "^5.0.0" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/npm/node_modules/sorted-object": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "(WTFPL OR MIT)" + }, + "node_modules/npm/node_modules/sorted-union-stream": { + "version": "2.1.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "from2": "^1.3.0", + "stream-iterate": "^1.1.0" + } + }, + "node_modules/npm/node_modules/sorted-union-stream/node_modules/from2": { + "version": "1.3.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "inherits": "~2.0.1", + "readable-stream": "~1.1.10" + } + }, + "node_modules/npm/node_modules/sorted-union-stream/node_modules/isarray": { + "version": "0.0.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/sorted-union-stream/node_modules/readable-stream": { + "version": "1.1.14", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "node_modules/npm/node_modules/sorted-union-stream/node_modules/string_decoder": { + "version": "0.10.31", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/spdx-correct": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/npm/node_modules/spdx-exceptions": { + "version": "2.1.0", + "dev": true, + "inBundle": true, + "license": "CC-BY-3.0" + }, + "node_modules/npm/node_modules/spdx-expression-parse": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/npm/node_modules/spdx-license-ids": { + "version": "3.0.5", + "dev": true, + "inBundle": true, + "license": "CC0-1.0" + }, + "node_modules/npm/node_modules/split-on-first": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/sshpk": { + "version": "1.17.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "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/npm/node_modules/ssri": { + "version": "6.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "figgy-pudding": "^3.5.1" + } + }, + "node_modules/npm/node_modules/stream-each": { + "version": "1.2.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" + } + }, + "node_modules/npm/node_modules/stream-iterate": { + "version": "1.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "readable-stream": "^2.1.5", + "stream-shift": "^1.0.0" + } + }, + "node_modules/npm/node_modules/stream-iterate/node_modules/readable-stream": { + "version": "2.3.6", + "dev": true, + "inBundle": true, + "license": "MIT", + "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/npm/node_modules/stream-iterate/node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/stream-iterate/node_modules/string_decoder": { + "version": "1.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/npm/node_modules/stream-iterate/node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/stream-shift": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/strict-uri-encode": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/string_decoder": { + "version": "1.3.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/npm/node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.2.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/string-width": { + "version": "2.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/string-width/node_modules/ansi-regex": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/string-width/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/string-width/node_modules/strip-ansi": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/stringify-package": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/strip-ansi": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/strip-eof": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/strip-json-comments": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/supports-color": { + "version": "5.4.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/tar": { + "version": "4.4.19", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "chownr": "^1.1.4", + "fs-minipass": "^1.2.7", + "minipass": "^2.9.0", + "minizlib": "^1.3.3", + "mkdirp": "^0.5.5", + "safe-buffer": "^5.2.1", + "yallist": "^3.1.1" + }, + "engines": { + "node": ">=4.5" + } + }, + "node_modules/npm/node_modules/tar/node_modules/minipass": { + "version": "2.9.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "node_modules/npm/node_modules/tar/node_modules/safe-buffer": { + "version": "5.2.1", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/tar/node_modules/yallist": { + "version": "3.1.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/term-size": { + "version": "1.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "execa": "^0.7.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/text-table": { + "version": "0.2.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/through": { + "version": "2.3.8", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/through2": { + "version": "2.0.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "readable-stream": "^2.1.5", + "xtend": "~4.0.1" + } + }, + "node_modules/npm/node_modules/through2/node_modules/readable-stream": { + "version": "2.3.6", + "dev": true, + "inBundle": true, + "license": "MIT", + "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/npm/node_modules/through2/node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/through2/node_modules/string_decoder": { + "version": "1.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/npm/node_modules/through2/node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/timed-out": { + "version": "4.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/tiny-relative-date": { + "version": "1.3.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/tough-cookie": { + "version": "2.5.0", + "dev": true, + "inBundle": true, + "license": "BSD-3-Clause", + "dependencies": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/npm/node_modules/tough-cookie/node_modules/punycode": { + "version": "2.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/tunnel-agent": { + "version": "0.6.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/npm/node_modules/tweetnacl": { + "version": "0.14.5", + "dev": true, + "inBundle": true, + "license": "Unlicense" + }, + "node_modules/npm/node_modules/typedarray": { + "version": "0.0.6", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/uid-number": { + "version": "0.0.6", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "*" + } + }, + "node_modules/npm/node_modules/umask": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/unique-filename": { + "version": "1.1.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "unique-slug": "^2.0.0" + } + }, + "node_modules/npm/node_modules/unique-slug": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4" + } + }, + "node_modules/npm/node_modules/unique-string": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "crypto-random-string": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/unpipe": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/npm/node_modules/unzip-response": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/update-notifier": { + "version": "2.5.0", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "boxen": "^1.2.1", + "chalk": "^2.0.1", + "configstore": "^3.0.0", + "import-lazy": "^2.1.0", + "is-ci": "^1.0.10", + "is-installed-globally": "^0.1.0", + "is-npm": "^1.0.0", + "latest-version": "^3.0.0", + "semver-diff": "^2.0.0", + "xdg-basedir": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/uri-js": { + "version": "4.4.1", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/npm/node_modules/uri-js/node_modules/punycode": { + "version": "2.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/url-parse-lax": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "prepend-http": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/util-deprecate": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/util-extend": { + "version": "1.0.3", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/util-promisify": { + "version": "2.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "object.getownpropertydescriptors": "^2.0.3" + } + }, + "node_modules/npm/node_modules/uuid": { + "version": "3.4.0", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "dev": true, + "inBundle": true, + "license": "MIT", + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/npm/node_modules/validate-npm-package-license": { + "version": "3.0.4", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/npm/node_modules/validate-npm-package-name": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "builtins": "^1.0.3" + } + }, + "node_modules/npm/node_modules/verror": { + "version": "1.10.0", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "inBundle": true, + "license": "MIT", + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "node_modules/npm/node_modules/wcwidth": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/npm/node_modules/which": { + "version": "1.3.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/npm/node_modules/which-module": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/wide-align": { + "version": "1.1.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "string-width": "^1.0.2" + } + }, + "node_modules/npm/node_modules/wide-align/node_modules/string-width": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/widest-line": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "string-width": "^2.1.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/worker-farm": { + "version": "1.7.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "errno": "~0.1.7" + } + }, + "node_modules/npm/node_modules/wrap-ansi": { + "version": "5.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "4.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/wrap-ansi/node_modules/string-width": { + "version": "3.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "5.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/wrappy": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/write-file-atomic": { + "version": "2.4.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" + } + }, + "node_modules/npm/node_modules/xdg-basedir": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/xtend": { + "version": "4.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/npm/node_modules/y18n": { + "version": "4.0.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/yallist": { + "version": "3.0.3", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/yargs": { + "version": "14.2.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "cliui": "^5.0.0", + "decamelize": "^1.2.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": "^15.0.1" + } + }, + "node_modules/npm/node_modules/yargs-parser": { + "version": "15.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "node_modules/npm/node_modules/yargs-parser/node_modules/camelcase": { + "version": "5.3.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/yargs/node_modules/ansi-regex": { + "version": "4.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/yargs/node_modules/find-up": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/yargs/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/yargs/node_modules/locate-path": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/yargs/node_modules/p-limit": { + "version": "2.3.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm/node_modules/yargs/node_modules/p-locate": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/yargs/node_modules/p-try": { + "version": "2.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/yargs/node_modules/string-width": { + "version": "3.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/yargs/node_modules/strip-ansi": { + "version": "5.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "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-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==", + "dev": true, + "license": "MIT", + "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/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", + "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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-path": { + "version": "0.11.8", + "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.11.8.tgz", + "integrity": "sha512-YJjNZrlXJFM42wTBn6zgOJVar9KFJvzx6sTWDte8sWZF//cnjl0BxHNpfZx+ZffXX63A9q0b1zsFiBX4g4X5KA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.12.0" + } + }, + "node_modules/object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.assign": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.3.tgz", + "integrity": "sha512-ym7h7OZebNS96hn5IJeyUmaWhaSM4SVtAPPfNLQEI2MYWCO2egsITb9nab2+i/Pwibx+R0mtn+ltKJXRSeTMGg==", + "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/object.fromentries": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.4.tgz", + "integrity": "sha512-EsFBshs5RUUpQEY1D4q/m59kMfz4YJvxuNCJcv/jWwOJr34EaVnG11ZrZa0UHB3wnzV1wx8m58T4hQL8IuNXlQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.2", + "has": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.values": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.3.tgz", + "integrity": "sha512-nkF6PfDB9alkOUxpf1HNm/QlkeW3SReqL5WXeBLpEJJnlPSvRaDQpW3gQTksTN3fgJX4hL42RzKyOin6ff3tyw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.2", + "has": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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/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" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/only": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/only/-/only-0.0.2.tgz", + "integrity": "sha1-Kv3oTQPlC5qO3EROMGEKcCle37Q=", + "dev": true + }, + "node_modules/open": { + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", + "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==", + "dev": true, + "license": "MIT" + }, + "node_modules/p-defer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-3.0.0.tgz", + "integrity": "sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "dependencies": { + "p-try": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "dependencies": { + "p-limit": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "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, + "license": "(MIT AND Zlib)" + }, + "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, + "license": "MIT", + "dependencies": { + "cyclist": "^1.0.1", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + } + }, + "node_modules/parallel-transform/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/parallel-transform/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "license": "MIT", + "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/parallel-transform/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, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-asn1": { + "version": "5.1.7", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.7.tgz", + "integrity": "sha512-CTM5kuWR3sx9IFamcl5ErfPl6ea/N8IYwiJ+vpeB2g+1iknv7zBl5uPwbMbRVznRVbrNY6lGuDoE5b30grmbqg==", + "dev": true, + "license": "ISC", + "dependencies": { + "asn1.js": "^4.10.1", + "browserify-aes": "^1.2.0", + "evp_bytestokey": "^1.0.3", + "hash-base": "~3.0", + "pbkdf2": "^3.1.2", + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/parse-asn1/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, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "dependencies": { + "error-ex": "^1.2.0" + }, + "engines": { + "node": ">=0.10.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": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==", + "dev": true, + "license": "MIT", + "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, + "license": "MIT" + }, + "node_modules/path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==", + "dev": true, + "license": "MIT", + "optional": 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-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-to-regexp": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.9.0.tgz", + "integrity": "sha512-xIp7/apCFJuUHdDLWe8O1HIkb0kQrOMb/0u6FXQjemHn/ii5LrIzU6bdECnsiTF/GjZkMEKg1xdiZwNqDYlZ6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "isarray": "0.0.1" + } + }, + "node_modules/path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "dev": true, + "dependencies": { + "pify": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "dev": true, + "license": "MIT", + "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/picocolors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz", + "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "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/pkg-conf": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-3.1.0.tgz", + "integrity": "sha512-m0OTbR/5VPNPqO1ph6Fqbj7Hv6QU7gR/tQW40ZqrL1rjgCU85W6C1bJn0BItuJqnR98PWzw7Z8hHeChD1WrgdQ==", + "dev": true, + "dependencies": { + "find-up": "^3.0.0", + "load-json-file": "^5.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-conf/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/pkg-conf/node_modules/load-json-file": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-5.3.0.tgz", + "integrity": "sha512-cJGP40Jc/VXUsp8/OrnyKyTZ1y6v/dphm3bioS+RrKXjK2BB6wHUd6JptZEFDGgGahMT+InnZO5i1Ei9mpC8Bw==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.15", + "parse-json": "^4.0.0", + "pify": "^4.0.1", + "strip-bom": "^3.0.0", + "type-fest": "^0.3.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-conf/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/pkg-conf/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" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-conf/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/pkg-conf/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/pkg-conf/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/pkg-conf/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/pkg-conf/node_modules/type-fest": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", + "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "dev": true, + "dependencies": { + "find-up": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "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": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss": { + "version": "8.4.47", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz", + "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.1.0", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-modules-extract-imports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", + "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", + "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", + "dev": true, + "dependencies": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-scope": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", + "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "dev": true, + "dependencies": { + "icss-utils": "^5.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "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-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/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "dev": true, + "license": "MIT", + "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/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", + "dev": true, + "license": "ISC" + }, + "node_modules/prop-types": { + "version": "15.7.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", + "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", + "dev": true, + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.8.1" + } + }, + "node_modules/prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", + "dev": true, + "license": "MIT" + }, + "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, + "license": "MIT", + "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.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true, + "license": "MIT" + }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "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/qs": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==", + "dev": true, + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/ramda": { + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.27.1.tgz", + "integrity": "sha512-PgIdVpn5y5Yns8vqb8FzBUEYn98V3xcPgawAkkgj0YJ0qDsnHCiNmZYfOGMgOvoB0eWFLpYbhxUR3mxfDIMvpw==" + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "license": "MIT", + "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, + "license": "MIT", + "dependencies": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "node_modules/react": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", + "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", + "dev": true, + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-docgen": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/react-docgen/-/react-docgen-5.3.1.tgz", + "integrity": "sha512-YG7YujVTwlLslr2Ny8nQiUfbBuEwKsLHJdQTSdEga1eY/nRFh/7LjCWUn6ogYhu2WDKg4z+6W/BJtUi+DPUIlA==", + "dev": true, + "dependencies": { + "@babel/core": "^7.7.5", + "@babel/runtime": "^7.7.6", + "ast-types": "^0.14.2", + "commander": "^2.19.0", + "doctrine": "^3.0.0", + "neo-async": "^2.6.1", + "node-dir": "^0.1.10", + "strip-indent": "^3.0.0" + }, + "bin": { + "react-docgen": "bin/react-docgen.js" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/react-dom": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", + "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", + "dev": true, + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "scheduler": "^0.20.2" + }, + "peerDependencies": { + "react": "17.0.2" + } + }, + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "dev": true + }, + "node_modules/read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "dev": true, + "dependencies": { + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "dev": true, + "dependencies": { + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/rechoir": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.0.tgz", + "integrity": "sha512-ADsDEH2bvbjltXEP+hTIAmeFekTFK0V2BTxMkok6qILyAJEXV0AFfoWcAq4yfll5VdIMd/RVXq0lR+wQi5ZU3Q==", + "dev": true, + "dependencies": { + "resolve": "^1.9.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "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, + "license": "MIT", + "dependencies": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regex-not/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regex-not/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, + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz", + "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexpp": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", + "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "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.9", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.9.tgz", + "integrity": "sha512-ZqbNRz1SNjLAiYuwY0zoXW8Ne675IX5q+YHioAGbCw4X96Mjl2+dcX9B2ciaeyYjViDAfvIjFpQjJgLttTEERQ==", + "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": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==", + "dev": true, + "license": "ISC", + "optional": true + }, + "node_modules/repeat-element": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", + "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", + "dev": true, + "license": "MIT", + "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": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10" + } + }, + "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-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "dev": true, + "dependencies": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-cwd/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-path": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/resolve-path/-/resolve-path-1.4.0.tgz", + "integrity": "sha1-xL2p9e+y/OZSR4c6s2u02DT+Fvc=", + "dev": true, + "dependencies": { + "http-errors": "~1.6.2", + "path-is-absolute": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/resolve-path/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/resolve-path/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/resolve-path/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/resolve-path/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/resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==", + "deprecated": "https://github.com/lydell/resolve-url#deprecated", + "dev": true, + "license": "MIT" + }, + "node_modules/resumablejs": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/resumablejs/-/resumablejs-1.1.0.tgz", + "integrity": "sha512-gUTWTtJ2aheRb5svHDGHMtQsBkGxTILpZApT11ODoxEe5D75GhYL7Nc/WYgCcJXY+5RVmm2BEsp2qriCkKWRRg==" + }, + "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, + "license": "MIT", + "engines": { + "node": ">=0.12" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dev": true, + "license": "MIT", + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/run-queue": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", + "integrity": "sha512-ntymy489o0/QQplUDnpYAYUsO50K9SBrIVaKCWDOJzYJts0f9WH9RFJkyagebkw5+y1oi00R7ynNW/d12GBumg==", + "dev": true, + "license": "ISC", + "dependencies": { + "aproba": "^1.1.1" + } + }, + "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": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ret": "~0.1.10" + } + }, + "node_modules/scheduler": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", + "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", + "dev": true, + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "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" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "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, + "license": "BSD-3-Clause", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "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, + "license": "MIT", + "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/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", + "dev": true, + "license": "MIT" + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "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, + "license": "(MIT AND BSD-3-Clause)", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" + } + }, + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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/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/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/slice-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" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/slice-ansi/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/slice-ansi/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/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, + "license": "MIT", + "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, + "license": "MIT", + "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": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/is-descriptor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", + "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "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, + "license": "MIT", + "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": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "license": "MIT", + "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, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/snapdragon/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "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, + "license": "MIT" + }, + "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/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "license": "BSD-3-Clause", + "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==", + "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", + "dev": true, + "license": "MIT", + "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.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "license": "MIT", + "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, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-url": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", + "deprecated": "See https://github.com/lydell/source-map-url#deprecated", + "dev": true, + "license": "MIT" + }, + "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/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, + "license": "MIT", + "dependencies": { + "extend-shallow": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/split-string/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/split-string/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, + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "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/ssri": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.2.tgz", + "integrity": "sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==", + "dev": true, + "license": "ISC", + "dependencies": { + "figgy-pudding": "^3.5.1" + } + }, + "node_modules/static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-property": "^0.2.5", + "object-copy": "^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, + "license": "MIT", + "dependencies": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + } + }, + "node_modules/stream-browserify/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/stream-browserify/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "license": "MIT", + "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/stream-browserify/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, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "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-http/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/stream-http/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "license": "MIT", + "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/stream-http/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, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/stream-shift": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz", + "integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + }, + "node_modules/string-hash": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/string-hash/-/string-hash-1.1.3.tgz", + "integrity": "sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs=", + "dev": true + }, + "node_modules/string-width": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", + "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "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/string.prototype.matchall": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.4.tgz", + "integrity": "sha512-pknFIWVachNcyqRfaQSeu/FUfpvJTe4uskUSZ9Wc1RijsPuzbZ8TyYT8WCNnntCjUEqQ3vUHMAfVj2+wLAisPQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.2", + "has-symbols": "^1.0.1", + "internal-slot": "^1.0.3", + "regexp.prototype.flags": "^1.3.1", + "side-channel": "^1.0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/style-loader": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-2.0.0.tgz", + "integrity": "sha512-Z0gYUJmzZ6ZdRUqpg1r8GsaFKypE+3xAzuFeMuoHgjc9KZv3wMyCRjQIWEbhoFSq7+7yoHXySDJyyWQaPajeiQ==", + "dev": true, + "dependencies": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/style-loader/node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/style-loader/node_modules/schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/styled-jsx": { + "version": "3.4.7", + "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-3.4.7.tgz", + "integrity": "sha512-PkImcCsovR39byv4Tz83tAPsYs2CiTPOmDSplhe0lsIFVYJyd7rzJ7fbm41vSNsF/lnO+Ob5n/jgMookwY0pww==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "7.8.3", + "babel-plugin-syntax-jsx": "6.18.0", + "convert-source-map": "1.7.0", + "loader-utils": "1.2.3", + "source-map": "0.7.3", + "string-hash": "1.1.3", + "stylis": "3.5.4", + "stylis-rule-sheet": "0.0.10" + }, + "peerDependencies": { + "react": "15.x.x || 16.x.x || 17.x.x" + } + }, + "node_modules/styled-jsx/node_modules/@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "node_modules/styled-jsx/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/styled-jsx/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/styled-jsx/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/styled-jsx/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/stylis": { + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-3.5.4.tgz", + "integrity": "sha512-8/3pSmthWM7lsPBKv7NXkzn2Uc9W7NotcwGNpJaa3k7WMM1XDCA4MgT5k/8BIexd5ydZdboXtU90XH9Ec4Bv/Q==", + "dev": true + }, + "node_modules/stylis-rule-sheet": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stylis-rule-sheet/-/stylis-rule-sheet-0.0.10.tgz", + "integrity": "sha512-nTbZoaqoBnmK+ptANthb10ZRZOGC+EmTLLUxeYIuHNkEKcmKgXX1XWKkUBT2Ac4es3NybooPe0SmvKdhKJZAuw==", + "dev": true, + "peerDependencies": { + "stylis": "^3.5.0" + } + }, + "node_modules/superstruct": { + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-0.12.2.tgz", + "integrity": "sha512-yu+WNa/nSbFa+VBeR2KibfCeIQSKh/aD7G5eFD4Rx4W36MWE3G6SzU3BixDOArLv56u2bz6YEePsHSsioojuXw==", + "dev": true, + "license": "MIT" + }, + "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/table": { + "version": "6.0.9", + "resolved": "https://registry.npmjs.org/table/-/table-6.0.9.tgz", + "integrity": "sha512-F3cLs9a3hL1Z7N4+EkSscsel3z55XT950AvB05bwayrNg5T1/gykXtigioTAjbltvbMSJvvhFCbnf6mX+ntnJQ==", + "dev": true, + "dependencies": { + "ajv": "^8.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "lodash.clonedeep": "^4.5.0", + "lodash.flatten": "^4.4.0", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/table/node_modules/ajv": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.0.3.tgz", + "integrity": "sha512-Df6NAivu9KpZw+q8ySijAgLvr1mUA5ihkRvCLCxpdYR21ann5yIuN+PpFxmweSj7i3yjJ0x5LN5KVs0RRzskAQ==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/table/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "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, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/terser": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.1.tgz", + "integrity": "sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==", + "dev": true, + "license": "BSD-2-Clause", + "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": "1.4.6", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.6.tgz", + "integrity": "sha512-2lBVf/VMVIddjSn3GqbT90GvIJ/eYXJkt8cTzU7NbjKqK8fwv18Ftr4PlbF46b/e88743iZFL5Dtr/rC4hjIeA==", + "dev": true, + "license": "MIT", + "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" + }, + "peerDependencies": { + "webpack": "^4.0.0" + } + }, + "node_modules/terser-webpack-plugin/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, + "license": "MIT", + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/terser-webpack-plugin/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, + "license": "MIT", + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/terser-webpack-plugin/node_modules/is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/terser-webpack-plugin/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, + "license": "MIT", + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/terser-webpack-plugin/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, + "license": "MIT", + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/terser-webpack-plugin/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, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/terser-webpack-plugin/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, + "license": "MIT", + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/terser-webpack-plugin/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, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/terser-webpack-plugin/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, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/terser-webpack-plugin/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, + "license": "MIT", + "dependencies": { + "find-up": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/terser-webpack-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, + "license": "MIT", + "dependencies": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/terser-webpack-plugin/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "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, + "license": "BSD-3-Clause", + "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, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "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/through2/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/through2/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/through2/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/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, + "license": "MIT", + "dependencies": { + "setimmediate": "^1.0.4" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA==", + "dev": true, + "license": "MIT" + }, + "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": "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==", + "dev": true, + "license": "MIT", + "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": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/to-regex/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, + "license": "MIT", + "dependencies": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex/node_modules/is-descriptor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", + "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/to-regex/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, + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.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/tsconfig-paths": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz", + "integrity": "sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw==", + "dev": true, + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.0", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/tslib": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", + "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==", + "dev": true + }, + "node_modules/tsscmp": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz", + "integrity": "sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==", + "dev": true, + "engines": { + "node": ">=0.6.x" + } + }, + "node_modules/tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha512-JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw==", + "dev": true, + "license": "MIT" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "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": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/unbox-primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", + "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has-bigints": "^1.0.1", + "has-symbols": "^1.0.2", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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, + "license": "MIT", + "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/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, + "license": "ISC", + "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, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4" + } + }, + "node_modules/unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==", + "dev": true, + "license": "MIT", + "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": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==", + "dev": true, + "license": "MIT", + "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": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", + "dev": true, + "license": "MIT", + "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": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/untildify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", + "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "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, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=4", + "yarn": "*" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", + "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "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": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==", + "deprecated": "Please see https://github.com/lydell/urix#deprecated", + "dev": true, + "license": "MIT" + }, + "node_modules/url": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.4.tgz", + "integrity": "sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "punycode": "^1.4.1", + "qs": "^6.12.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/url/node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", + "dev": true, + "license": "MIT" + }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "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/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true, + "license": "ISC" + }, + "node_modules/v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "dev": true + }, + "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/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/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, + "license": "MIT" + }, + "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, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0" + }, + "optionalDependencies": { + "chokidar": "^3.4.1", + "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, + "license": "MIT", + "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, + "license": "ISC", + "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": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", + "dev": true, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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/chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "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/watchpack-chokidar2/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, + "license": "MIT", + "optional": true, + "dependencies": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", + "dev": true, + "license": "MIT", + "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/fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "deprecated": "Upgrade to fsevents v2 to mitigate potential security issues", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "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": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==", + "dev": true, + "license": "ISC", + "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": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", + "dev": true, + "license": "MIT", + "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": "sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "binary-extensions": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/is-descriptor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", + "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/watchpack-chokidar2/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, + "license": "MIT", + "optional": true, + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "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": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "dev": true, + "license": "MIT", + "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": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT", + "optional": true + }, + "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, + "license": "MIT", + "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/micromatch/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "license": "MIT", + "optional": 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/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, + "license": "MIT", + "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/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, + "license": "MIT", + "optional": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "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": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack": { + "version": "4.47.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.47.0.tgz", + "integrity": "sha512-td7fYwgLSrky3fI1EuU5cneU4+pbH6GgOfuKNS1tNPcfdGinGELAqsb/BP4nnvZyKSG2i/xFGU7+n2PvZA8HJQ==", + "dev": true, + "license": "MIT", + "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.5.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" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + }, + "webpack-command": { + "optional": true + } + } + }, + "node_modules/webpack-cli": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.6.0.tgz", + "integrity": "sha512-9YV+qTcGMjQFiY7Nb1kmnupvb1x40lfpj8pwdO/bom+sQiP4OBMKjHq29YQrlDWDPZO9r/qWaRRywKaRDKqBTA==", + "dev": true, + "dependencies": { + "@discoveryjs/json-ext": "^0.5.0", + "@webpack-cli/configtest": "^1.0.2", + "@webpack-cli/info": "^1.2.3", + "@webpack-cli/serve": "^1.3.1", + "colorette": "^1.2.1", + "commander": "^7.0.0", + "enquirer": "^2.3.6", + "execa": "^5.0.0", + "fastest-levenshtein": "^1.0.12", + "import-local": "^3.0.2", + "interpret": "^2.2.0", + "rechoir": "^0.7.0", + "v8-compile-cache": "^2.2.0", + "webpack-merge": "^5.7.3" + }, + "bin": { + "webpack-cli": "bin/cli.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "peerDependencies": { + "webpack": "4.x.x || 5.x.x" + }, + "peerDependenciesMeta": { + "@webpack-cli/generators": { + "optional": true + }, + "@webpack-cli/migrate": { + "optional": true + }, + "webpack-bundle-analyzer": { + "optional": true + }, + "webpack-dev-server": { + "optional": true + } + } + }, + "node_modules/webpack-cli/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/webpack-merge": { + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.7.3.tgz", + "integrity": "sha512-6/JUQv0ELQ1igjGDzHkXbVDRxkfA57Zw7PfiupdLFJYrgFqY5ZP8xxbpp2lU3EPwYx89ht5Z/aDkD40hFCm5AA==", + "dev": true, + "dependencies": { + "clone-deep": "^4.0.1", + "wildcard": "^2.0.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/webpack-plugin-ramdisk": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/webpack-plugin-ramdisk/-/webpack-plugin-ramdisk-0.2.0.tgz", + "integrity": "sha512-I5OTfDuaQdiZQUm19Ok/8oCBmYCGqFu8e2sY6ytGT9xehZQJXB6cqdf+rHUr98gzwhcC2O96Wuhs6BQTmOy2hg==", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "chalk": "^4.1.0", + "execa": "^4.0.3", + "superstruct": "^0.12.1" + }, + "engines": { + "node": ">= 10.0.0" + }, + "peerDependencies": { + "webpack": "^4.20.0 || ^5.0.0" + } + }, + "node_modules/webpack-plugin-ramdisk/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, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/webpack-plugin-ramdisk/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/webpack-plugin-ramdisk/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, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/webpack-plugin-ramdisk/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, + "license": "MIT" + }, + "node_modules/webpack-plugin-ramdisk/node_modules/execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/webpack-plugin-ramdisk/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/webpack-plugin-ramdisk/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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/webpack-plugin-ramdisk/node_modules/human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=8.12.0" + } + }, + "node_modules/webpack-plugin-ramdisk/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, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/webpack-plugin-serve": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/webpack-plugin-serve/-/webpack-plugin-serve-1.6.0.tgz", + "integrity": "sha512-0163GYEpDdRmd0D82XCeYalpSrRg9+oqEtoVUeCnn1o1lnGjqFoKdgSZBhXNOg2at52l4ESwLskPhPp3cHLAqA==", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "chalk": "^4.0.0", + "connect-history-api-fallback": "^1.5.0", + "escalade": "^3.1.0", + "globby": "^11.0.0", + "http-proxy-middleware": "^1.0.3", + "is-path-cwd": "^2.2.0", + "is-promise": "^4.0.0", + "json-stringify-safe": "^5.0.1", + "koa": "^2.5.3", + "koa-compress": "^5.0.1", + "koa-connect": "^2.0.1", + "koa-route": "^3.2.0", + "koa-static": "^5.0.0", + "loglevelnext": "^4.0.1", + "nanoid": "^3.1.3", + "onetime": "^5.1.0", + "open": "^7.0.3", + "p-defer": "^3.0.0", + "rimraf": "^3.0.2", + "strip-ansi": "^6.0.0", + "superstruct": "^0.12.1", + "webpack-plugin-ramdisk": "^0.2.0", + "ws": "^7.5.3" + }, + "engines": { + "node": ">= 10.0.0 < 10.14.0 || >= 10.15.0" + }, + "peerDependencies": { + "webpack": "^4.20.2 || ^5.0.0" + } + }, + "node_modules/webpack-plugin-serve/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" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/webpack-plugin-serve/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" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/webpack-plugin-serve/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/webpack-plugin-serve/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/webpack-plugin-serve/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/webpack-plugin-serve/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/webpack-serve": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/webpack-serve/-/webpack-serve-4.0.0.tgz", + "integrity": "sha512-SqyRP13y2S3Z5S5M5WGrK68wQ7ciqZrC6bk2R7NwK9Ebbsg8ltlgqh+ikfA2EBLRtxBeQxDsQIu33DcXk0Tyjw==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "decamelize": "^5.0.0", + "import-local": "^3.0.1", + "is-plain-obj": "^3.0.0", + "object-path": "^0.11.5", + "pkg-conf": "^3.0.0", + "rechoir": "^0.7.0", + "v8-compile-cache": "^2.0.2", + "webpack-plugin-serve": "^1.4.1", + "yargs-parser": "^20.2.7" + }, + "bin": { + "webpack-serve": "bin/webpack-serve" + }, + "engines": { + "node": ">= 8.0.0 < 9.0.0 || >= 10.0.0 < 10.14.0 || >= 10.15.0" + }, + "peerDependencies": { + "webpack": "^4.29.0" + } + }, + "node_modules/webpack-serve/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" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/webpack-serve/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" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/webpack-serve/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/webpack-serve/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/webpack-serve/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/webpack-serve/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/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, + "license": "MIT", + "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, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/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, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "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, + "license": "MIT", + "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/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, + "license": "MIT", + "dependencies": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/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, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "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": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", + "dev": true, + "license": "MIT", + "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/is-descriptor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", + "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/webpack/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, + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "dev": true, + "license": "MIT", + "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": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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, + "license": "MIT", + "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/micromatch/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.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, + "license": "MIT", + "dependencies": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + }, + "engines": { + "node": ">= 4" + } + }, + "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": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/wildcard": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", + "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", + "dev": true + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "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, + "license": "MIT", + "dependencies": { + "errno": "~0.1.7" + } + }, + "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" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "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" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/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/wrap-ansi/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/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": "7.5.10", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "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": "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/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/yargs-parser": { + "version": "20.2.7", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.7.tgz", + "integrity": "sha512-FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/ylru": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ylru/-/ylru-1.2.1.tgz", + "integrity": "sha512-faQrqNMzcPCHGVC2aaOINk13K+aaBDUPjGWl0teOXywElLjyVAB6Oe2jj62jHYtwsU49jXhScYbvPENK+6zAvQ==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + } + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.25.7.tgz", + "integrity": "sha512-0xZJFNE5XMpENsgfHYTw8FbX4kv53mFLn2i3XPoq69LyhYSCBJtitaHx9QnsVTrsogI4Z3+HtEfZ2/GFPOtf5g==", + "dev": true, + "requires": { + "@babel/highlight": "^7.25.7", + "picocolors": "^1.0.0" + } + }, + "@babel/compat-data": { + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.13.12.tgz", + "integrity": "sha512-3eJJ841uKxeV8dcN/2yGEUy+RfgQspPEgQat85umsE1rotuquQ2AbIub4S6j7c50a2d+4myc+zSlnXeIHrOnhQ==", + "dev": true + }, + "@babel/core": { + "version": "7.13.14", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.13.14.tgz", + "integrity": "sha512-wZso/vyF4ki0l0znlgM4inxbdrUvCb+cVz8grxDq+6C9k6qbqoIJteQOKicaKjCipU3ISV+XedCqpL2RJJVehA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/generator": "^7.13.9", + "@babel/helper-compilation-targets": "^7.13.13", + "@babel/helper-module-transforms": "^7.13.14", + "@babel/helpers": "^7.13.10", + "@babel/parser": "^7.13.13", + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.13.13", + "@babel/types": "^7.13.14", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.1.2", + "semver": "^6.3.0", + "source-map": "^0.5.0" + } + }, + "@babel/generator": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.7.tgz", + "integrity": "sha512-5Dqpl5fyV9pIAD62yK9P7fcA768uVPUyrQmqpqstHWgMma4feF1x/oFysBCVZLY5wJ2GkMUCdsNDnGZrPoR6rA==", + "dev": true, + "requires": { + "@babel/types": "^7.25.7", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^3.0.2" + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.13.tgz", + "integrity": "sha512-7YXfX5wQ5aYM/BOlbSccHDbuXXFPxeoUmfWtz8le2yTkTZc+BxsiEnENFoi2SlmA8ewDkG2LgIMIVzzn2h8kfw==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.12.13.tgz", + "integrity": "sha512-CZOv9tGphhDRlVjVkAgm8Nhklm9RzSmWpX2my+t7Ua/KT616pEzXsQCjinzvkRvHWJ9itO4f296efroX23XCMA==", + "dev": true, + "requires": { + "@babel/helper-explode-assignable-expression": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.13.13", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.13.tgz", + "integrity": "sha512-q1kcdHNZehBwD9jYPh3WyXcsFERi39X4I59I3NadciWtNDyZ6x+GboOxncFK0kXlKIv6BJm5acncehXWUjWQMQ==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.13.12", + "@babel/helper-validator-option": "^7.12.17", + "browserslist": "^4.14.5", + "semver": "^6.3.0" + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.13.11", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.13.11.tgz", + "integrity": "sha512-ays0I7XYq9xbjCSvT+EvysLgfc3tOkwCULHjrnscGT3A9qD4sk3wXnJ3of0MAWsWGjdinFvajHU2smYuqXKMrw==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-member-expression-to-functions": "^7.13.0", + "@babel/helper-optimise-call-expression": "^7.12.13", + "@babel/helper-replace-supers": "^7.13.0", + "@babel/helper-split-export-declaration": "^7.12.13" + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.12.17", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.17.tgz", + "integrity": "sha512-p2VGmBu9oefLZ2nQpgnEnG0ZlRPvL8gAGvPUMQwUdaE8k49rOMuZpOwdQoy5qJf6K8jL3bcAMhVUlHAjIgJHUg==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.12.13", + "regexpu-core": "^4.7.1" + } + }, + "@babel/helper-define-polyfill-provider": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.1.5.tgz", + "integrity": "sha512-nXuzCSwlJ/WKr8qxzW816gwyT6VZgiJG17zR40fou70yfAcqjoNyTLl/DQ+FExw5Hx5KNqshmN8Ldl/r2N7cTg==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.13.0", + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/traverse": "^7.13.0", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + } + }, + "@babel/helper-explode-assignable-expression": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.13.0.tgz", + "integrity": "sha512-qS0peLTDP8kOisG1blKbaoBg/o9OSa1qoumMjTK5pM+KDTtpxpsiubnCGP34vK8BXGcb2M9eigwgvoJryrzwWA==", + "dev": true, + "requires": { + "@babel/types": "^7.13.0" + } + }, + "@babel/helper-function-name": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz", + "integrity": "sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.12.13", + "@babel/template": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", + "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.13.0.tgz", + "integrity": "sha512-0kBzvXiIKfsCA0y6cFEIJf4OdzfpRuNk4+YTeHZpGGc666SATFKTz6sRncwFnQk7/ugJ4dSrCj6iJuvW4Qwr2g==", + "dev": true, + "requires": { + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.0" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.12.tgz", + "integrity": "sha512-48ql1CLL59aKbU94Y88Xgb2VFy7a95ykGRbJJaaVv+LX5U8wFpLfiGXJJGUozsmA1oEh/o5Bp60Voq7ACyA/Sw==", + "dev": true, + "requires": { + "@babel/types": "^7.13.12" + } + }, + "@babel/helper-module-imports": { + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.13.12.tgz", + "integrity": "sha512-4cVvR2/1B693IuOvSI20xqqa/+bl7lqAMR59R4iu39R9aOX8/JoYY1sFaNvUMyMBGnHdwvJgUrzNLoUZxXypxA==", + "dev": true, + "requires": { + "@babel/types": "^7.13.12" + } + }, + "@babel/helper-module-transforms": { + "version": "7.13.14", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.13.14.tgz", + "integrity": "sha512-QuU/OJ0iAOSIatyVZmfqB0lbkVP0kDRiKj34xy+QNsnVZi/PA6BoSoreeqnxxa9EHFAIL0R9XOaAR/G9WlIy5g==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.13.12", + "@babel/helper-replace-supers": "^7.13.12", + "@babel/helper-simple-access": "^7.13.12", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/helper-validator-identifier": "^7.12.11", + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.13.13", + "@babel/types": "^7.13.14" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz", + "integrity": "sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz", + "integrity": "sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ==", + "dev": true + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.13.0.tgz", + "integrity": "sha512-pUQpFBE9JvC9lrQbpX0TmeNIy5s7GnZjna2lhhcHC7DzgBs6fWn722Y5cfwgrtrqc7NAJwMvOa0mKhq6XaE4jg==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.12.13", + "@babel/helper-wrap-function": "^7.13.0", + "@babel/types": "^7.13.0" + } + }, + "@babel/helper-replace-supers": { + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.13.12.tgz", + "integrity": "sha512-Gz1eiX+4yDO8mT+heB94aLVNCL+rbuT2xy4YfyNqu8F+OI6vMvJK891qGBTqL9Uc8wxEvRW92Id6G7sDen3fFw==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.13.12", + "@babel/helper-optimise-call-expression": "^7.12.13", + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.12" + } + }, + "@babel/helper-simple-access": { + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.13.12.tgz", + "integrity": "sha512-7FEjbrx5SL9cWvXioDbnlYTppcZGuCY6ow3/D5vMggb2Ywgu4dMrpTJX0JdQAIcRRUElOIxF3yEooa9gUb9ZbA==", + "dev": true, + "requires": { + "@babel/types": "^7.13.12" + } + }, + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz", + "integrity": "sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA==", + "dev": true, + "requires": { + "@babel/types": "^7.12.1" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", + "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-string-parser": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.7.tgz", + "integrity": "sha512-CbkjYdsJNHFk8uqpEkpCvRs3YRp9tY6FmFY7wLMSYuGYkrdUi7r2lc4/wqsvlHoMznX3WJ9IP8giGPq68T/Y6g==", + "dev": true + }, + "@babel/helper-validator-identifier": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.7.tgz", + "integrity": "sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg==", + "dev": true + }, + "@babel/helper-validator-option": { + "version": "7.12.17", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz", + "integrity": "sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw==", + "dev": true + }, + "@babel/helper-wrap-function": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.13.0.tgz", + "integrity": "sha512-1UX9F7K3BS42fI6qd2A4BjKzgGjToscyZTdp1DjknHLCIvpgne6918io+aL5LXFcER/8QWiwpoY902pVEqgTXA==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.12.13", + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.0" + } + }, + "@babel/helpers": { + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.13.10.tgz", + "integrity": "sha512-4VO883+MWPDUVRF3PhiLBUFHoX/bsLTGFpFK/HqvvfBZz2D57u9XzPVNFVBTc0PW/CWR9BXTOKt8NF4DInUHcQ==", + "dev": true, + "requires": { + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.0" + } + }, + "@babel/highlight": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.25.7.tgz", + "integrity": "sha512-iYyACpW3iW8Fw+ZybQK+drQre+ns/tKpXbNESfrhNnPLIklLbXr7MYJ6gPEd0iETGLOK+SxMjVvKb/ffmk+FEw==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.25.7", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + } + }, + "@babel/parser": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.7.tgz", + "integrity": "sha512-aZn7ETtQsjjGG5HruveUK06cU3Hljuhd9Iojm4M8WWv3wLE6OkE5PWbDUkItmMgegmccaITudyuW5RPYrYlgWw==", + "dev": true, + "requires": { + "@babel/types": "^7.25.7" + } + }, + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.13.12.tgz", + "integrity": "sha512-d0u3zWKcoZf379fOeJdr1a5WPDny4aOFZ6hlfKivgK0LY7ZxNfoaHL2fWwdGtHyVvra38FC+HVYkO+byfSA8AQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1", + "@babel/plugin-proposal-optional-chaining": "^7.13.12" + } + }, + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.13.8.tgz", + "integrity": "sha512-rPBnhj+WgoSmgq+4gQUtXx/vOcU+UYtjy1AA/aeD61Hwj410fwYyqfUcRP3lR8ucgliVJL/G7sXcNUecC75IXA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-remap-async-to-generator": "^7.13.0", + "@babel/plugin-syntax-async-generators": "^7.8.4" + } + }, + "@babel/plugin-proposal-class-properties": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.13.0.tgz", + "integrity": "sha512-KnTDjFNC1g+45ka0myZNvSBFLhNCLN+GeGYLDEA8Oq7MZ6yMgfLoIRh86GRT0FjtJhZw8JyUskP9uvj5pHM9Zg==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0" + } + }, + "@babel/plugin-proposal-dynamic-import": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.13.8.tgz", + "integrity": "sha512-ONWKj0H6+wIRCkZi9zSbZtE/r73uOhMVHh256ys0UzfM7I3d4n+spZNWjOnJv2gzopumP2Wxi186vI8N0Y2JyQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + } + }, + "@babel/plugin-proposal-export-namespace-from": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.13.tgz", + "integrity": "sha512-INAgtFo4OnLN3Y/j0VwAgw3HDXcDtX+C/erMvWzuV9v71r7urb6iyMXu7eM9IgLr1ElLlOkaHjJ0SbCmdOQ3Iw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + } + }, + "@babel/plugin-proposal-json-strings": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.13.8.tgz", + "integrity": "sha512-w4zOPKUFPX1mgvTmL/fcEqy34hrQ1CRcGxdphBc6snDnnqJ47EZDIyop6IwXzAC8G916hsIuXB2ZMBCExC5k7Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-json-strings": "^7.8.3" + } + }, + "@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.13.8.tgz", + "integrity": "sha512-aul6znYB4N4HGweImqKn59Su9RS8lbUIqxtXTOcAGtNIDczoEFv+l1EhmX8rUBp3G1jMjKJm8m0jXVp63ZpS4A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + } + }, + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.13.8.tgz", + "integrity": "sha512-iePlDPBn//UhxExyS9KyeYU7RM9WScAG+D3Hhno0PLJebAEpDZMocbDe64eqynhNAnwz/vZoL/q/QB2T1OH39A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + } + }, + "@babel/plugin-proposal-numeric-separator": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.13.tgz", + "integrity": "sha512-O1jFia9R8BUCl3ZGB7eitaAPu62TXJRHn7rh+ojNERCFyqRwJMTmhz+tJ+k0CwI6CLjX/ee4qW74FSqlq9I35w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.13.8.tgz", + "integrity": "sha512-DhB2EuB1Ih7S3/IRX5AFVgZ16k3EzfRbq97CxAVI1KSYcW+lexV8VZb7G7L8zuPVSdQMRn0kiBpf/Yzu9ZKH0g==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.13.8", + "@babel/helper-compilation-targets": "^7.13.8", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.13.0" + } + }, + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.13.8.tgz", + "integrity": "sha512-0wS/4DUF1CuTmGo+NiaHfHcVSeSLj5S3e6RivPTg/2k3wOv3jO35tZ6/ZWsQhQMvdgI7CwphjQa/ccarLymHVA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + } + }, + "@babel/plugin-proposal-optional-chaining": { + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.13.12.tgz", + "integrity": "sha512-fcEdKOkIB7Tf4IxrgEVeFC4zeJSTr78no9wTdBuZZbqF64kzllU0ybo2zrzm7gUQfxGhBgq4E39oRs8Zx/RMYQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + } + }, + "@babel/plugin-proposal-private-methods": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.13.0.tgz", + "integrity": "sha512-MXyyKQd9inhx1kDYPkFRVOBXQ20ES8Pto3T7UZ92xj2mY0EVD8oAVzeyYuVfy/mxAdTSIayOvg+aVzcHV2bn6Q==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0" + } + }, + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.13.tgz", + "integrity": "sha512-XyJmZidNfofEkqFV5VC/bLabGmO5QzenPO/YOfGuEbgU+2sSwMmio3YLb4WtBgcmmdwZHyVyv8on77IUjQ5Gvg==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-jsx": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.13.tgz", + "integrity": "sha512-d4HM23Q1K7oq/SLNmG6mRt85l2csmQ0cHRaxRXjKW0YFdEXqlZ5kzFQKH5Uc3rDJECgu+yCRgPkG04Mm98R/1g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz", + "integrity": "sha512-A81F9pDwyS7yM//KwbCSDqy3Uj4NMIurtplxphWxoYtNPov7cJsDkAFNNyVlIZ3jwGycVsurZ+LtOA8gZ376iQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.13.0.tgz", + "integrity": "sha512-96lgJagobeVmazXFaDrbmCLQxBysKu7U6Do3mLsx27gf5Dk85ezysrs2BZUpXD703U/Su1xTBDxxar2oa4jAGg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.13.0" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.13.0.tgz", + "integrity": "sha512-3j6E004Dx0K3eGmhxVJxwwI89CTJrce7lg3UrtFuDAVQ/2+SJ/h/aSFOeE6/n0WB1GsOffsJp6MnPQNQ8nmwhg==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-remap-async-to-generator": "^7.13.0" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.13.tgz", + "integrity": "sha512-zNyFqbc3kI/fVpqwfqkg6RvBgFpC4J18aKKMmv7KdQ/1GgREapSJAykLMVNwfRGO3BtHj3YQZl8kxCXPcVMVeg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.13.tgz", + "integrity": "sha512-Pxwe0iqWJX4fOOM2kEZeUuAxHMWb9nK+9oh5d11bsLoB0xMg+mkDpt0eYuDZB7ETrY9bbcVlKUGTOGWy7BHsMQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.13.0.tgz", + "integrity": "sha512-9BtHCPUARyVH1oXGcSJD3YpsqRLROJx5ZNP6tN5vnk17N0SVf9WCtf8Nuh1CFmgByKKAIMstitKduoCmsaDK5g==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.12.13", + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-optimise-call-expression": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-replace-supers": "^7.13.0", + "@babel/helper-split-export-declaration": "^7.12.13", + "globals": "^11.1.0" + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.13.0.tgz", + "integrity": "sha512-RRqTYTeZkZAz8WbieLTvKUEUxZlUTdmL5KGMyZj7FnMfLNKV4+r5549aORG/mgojRmFlQMJDUupwAMiF2Q7OUg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.13.0" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.13.0.tgz", + "integrity": "sha512-zym5em7tePoNT9s964c0/KU3JPPnuq7VhIxPRefJ4/s82cD+q1mgKfuGRDMCPL0HTyKz4dISuQlCusfgCJ86HA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.13.0" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.13.tgz", + "integrity": "sha512-foDrozE65ZFdUC2OfgeOCrEPTxdB3yjqxpXh8CH+ipd9CHd4s/iq81kcUpyH8ACGNEPdFqbtzfgzbT/ZGlbDeQ==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.13.tgz", + "integrity": "sha512-NfADJiiHdhLBW3pulJlJI2NB0t4cci4WTZ8FtdIuNc2+8pslXdPtRRAEWqUY+m9kNOk2eRYbTAOipAxlrOcwwQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.13.tgz", + "integrity": "sha512-fbUelkM1apvqez/yYx1/oICVnGo2KM5s63mhGylrmXUxK/IAXSIf87QIxVfZldWf4QsOafY6vV3bX8aMHSvNrA==", + "dev": true, + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.13.0.tgz", + "integrity": "sha512-IHKT00mwUVYE0zzbkDgNRP6SRzvfGCYsOxIRz8KsiaaHCcT9BWIkO+H9QRJseHBLOGBZkHUdHiqj6r0POsdytg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.13.0" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.13.tgz", + "integrity": "sha512-6K7gZycG0cmIwwF7uMK/ZqeCikCGVBdyP2J5SKNCXO5EOHcqi+z7Jwf8AmyDNcBgxET8DrEtCt/mPKPyAzXyqQ==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-literals": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.13.tgz", + "integrity": "sha512-FW+WPjSR7hiUxMcKqyNjP05tQ2kmBCdpEpZHY1ARm96tGQCCBvXKnpjILtDplUnJ/eHZ0lALLM+d2lMFSpYJrQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.13.tgz", + "integrity": "sha512-kxLkOsg8yir4YeEPHLuO2tXP9R/gTjpuTOjshqSpELUN3ZAg2jfDnKUvzzJxObun38sw3wm4Uu69sX/zA7iRvg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.13.0.tgz", + "integrity": "sha512-EKy/E2NHhY/6Vw5d1k3rgoobftcNUmp9fGjb9XZwQLtTctsRBOTRO7RHHxfIky1ogMN5BxN7p9uMA3SzPfotMQ==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.13.8.tgz", + "integrity": "sha512-9QiOx4MEGglfYZ4XOnU79OHr6vIWUakIj9b4mioN8eQIoEh+pf5p/zEB36JpDFWA12nNMiRf7bfoRvl9Rn79Bw==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-simple-access": "^7.12.13", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.13.8.tgz", + "integrity": "sha512-hwqctPYjhM6cWvVIlOIe27jCIBgHCsdH2xCJVAYQm7V5yTMoilbVMi9f6wKg0rpQAOn6ZG4AOyvCqFF/hUh6+A==", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.13.0", + "@babel/helper-module-transforms": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-validator-identifier": "^7.12.11", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.13.0.tgz", + "integrity": "sha512-D/ILzAh6uyvkWjKKyFE/W0FzWwasv6vPTSqPcjxFqn6QpX3u8DjRVliq4F2BamO2Wee/om06Vyy+vPkNrd4wxw==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.13.tgz", + "integrity": "sha512-Xsm8P2hr5hAxyYblrfACXpQKdQbx4m2df9/ZZSQ8MAhsadw06+jW7s9zsSw6he+mJZXRlVMyEnVktJo4zjk1WA==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.12.13" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.13.tgz", + "integrity": "sha512-/KY2hbLxrG5GTQ9zzZSc3xWiOy379pIETEhbtzwZcw9rvuaVV4Fqy7BYGYOWZnaoXIQYbbJ0ziXLa/sKcGCYEQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.13.tgz", + "integrity": "sha512-JzYIcj3XtYspZDV8j9ulnoMPZZnF/Cj0LUxPOjR89BdBVx+zYJI9MdMIlUZjbXDX+6YVeS6I3e8op+qQ3BYBoQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13", + "@babel/helper-replace-supers": "^7.12.13" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.13.0.tgz", + "integrity": "sha512-Jt8k/h/mIwE2JFEOb3lURoY5C85ETcYPnbuAJ96zRBzh1XHtQZfs62ChZ6EP22QlC8c7Xqr9q+e1SU5qttwwjw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.13.0" + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.13.tgz", + "integrity": "sha512-nqVigwVan+lR+g8Fj8Exl0UQX2kymtjcWfMOYM1vTYEKujeyv2SkMgazf2qNcK7l4SDiKyTA/nHCPqL4e2zo1A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-react-display-name": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.12.13.tgz", + "integrity": "sha512-MprESJzI9O5VnJZrL7gg1MpdqmiFcUv41Jc7SahxYsNP2kDkFqClxxTZq+1Qv4AFCamm+GXMRDQINNn+qrxmiA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-react-jsx": { + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.13.12.tgz", + "integrity": "sha512-jcEI2UqIcpCqB5U5DRxIl0tQEProI2gcu+g8VTIqxLO5Iidojb4d77q+fwGseCvd8af/lJ9masp4QWzBXFE2xA==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.12.13", + "@babel/helper-module-imports": "^7.13.12", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-jsx": "^7.12.13", + "@babel/types": "^7.13.12" + } + }, + "@babel/plugin-transform-react-jsx-development": { + "version": "7.12.17", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.12.17.tgz", + "integrity": "sha512-BPjYV86SVuOaudFhsJR1zjgxxOhJDt6JHNoD48DxWEIxUCAMjV1ys6DYw4SDYZh0b1QsS2vfIA9t/ZsQGsDOUQ==", + "dev": true, + "requires": { + "@babel/plugin-transform-react-jsx": "^7.12.17" + } + }, + "@babel/plugin-transform-react-pure-annotations": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.12.1.tgz", + "integrity": "sha512-RqeaHiwZtphSIUZ5I85PEH19LOSzxfuEazoY7/pWASCAIBuATQzpSVD+eT6MebeeZT2F4eSL0u4vw6n4Nm0Mjg==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.13.tgz", + "integrity": "sha512-lxb2ZAvSLyJ2PEe47hoGWPmW22v7CtSl9jW8mingV4H2sEX/JOcrAj2nPuGWi56ERUm2bUpjKzONAuT6HCn2EA==", + "dev": true, + "requires": { + "regenerator-transform": "^0.14.2" + } + }, + "@babel/plugin-transform-reserved-words": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.13.tgz", + "integrity": "sha512-xhUPzDXxZN1QfiOy/I5tyye+TRz6lA7z6xaT4CLOjPRMVg1ldRf0LHw0TDBpYL4vG78556WuHdyO9oi5UmzZBg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.13.tgz", + "integrity": "sha512-xpL49pqPnLtf0tVluuqvzWIgLEhuPpZzvs2yabUHSKRNlN7ScYU7aMlmavOeyXJZKgZKQRBlh8rHbKiJDraTSw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.13.0.tgz", + "integrity": "sha512-V6vkiXijjzYeFmQTr3dBxPtZYLPcUfY34DebOU27jIl2M/Y8Egm52Hw82CSjjPqd54GTlJs5x+CR7HeNr24ckg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.13.tgz", + "integrity": "sha512-Jc3JSaaWT8+fr7GRvQP02fKDsYk4K/lYwWq38r/UGfaxo89ajud321NH28KRQ7xy1Ybc0VUE5Pz8psjNNDUglg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.13.0.tgz", + "integrity": "sha512-d67umW6nlfmr1iehCcBv69eSUSySk1EsIS8aTDX4Xo9qajAh6mYtcl4kJrBkGXuxZPEgVr7RVfAvNW6YQkd4Mw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.13.0" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.13.tgz", + "integrity": "sha512-eKv/LmUJpMnu4npgfvs3LiHhJua5fo/CysENxa45YCQXZwKnGCQKAg87bvoqSW1fFT+HA32l03Qxsm8ouTY3ZQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-unicode-escapes": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.13.tgz", + "integrity": "sha512-0bHEkdwJ/sN/ikBHfSmOXPypN/beiGqjo+o4/5K+vxEFNPRPdImhviPakMKG4x96l85emoa0Z6cDflsdBusZbw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.13.tgz", + "integrity": "sha512-mDRzSNY7/zopwisPZ5kM9XKCfhchqIYwAKRERtEnhYscZB79VRekuRSoYbN0+KVe3y8+q1h6A4svXtP7N+UoCA==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/preset-env": { + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.13.12.tgz", + "integrity": "sha512-JzElc6jk3Ko6zuZgBtjOd01pf9yYDEIH8BcqVuYIuOkzOwDesoa/Nz4gIo4lBG6K861KTV9TvIgmFuT6ytOaAA==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.13.12", + "@babel/helper-compilation-targets": "^7.13.10", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-validator-option": "^7.12.17", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.13.12", + "@babel/plugin-proposal-async-generator-functions": "^7.13.8", + "@babel/plugin-proposal-class-properties": "^7.13.0", + "@babel/plugin-proposal-dynamic-import": "^7.13.8", + "@babel/plugin-proposal-export-namespace-from": "^7.12.13", + "@babel/plugin-proposal-json-strings": "^7.13.8", + "@babel/plugin-proposal-logical-assignment-operators": "^7.13.8", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.13.8", + "@babel/plugin-proposal-numeric-separator": "^7.12.13", + "@babel/plugin-proposal-object-rest-spread": "^7.13.8", + "@babel/plugin-proposal-optional-catch-binding": "^7.13.8", + "@babel/plugin-proposal-optional-chaining": "^7.13.12", + "@babel/plugin-proposal-private-methods": "^7.13.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.12.13", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.12.13", + "@babel/plugin-transform-arrow-functions": "^7.13.0", + "@babel/plugin-transform-async-to-generator": "^7.13.0", + "@babel/plugin-transform-block-scoped-functions": "^7.12.13", + "@babel/plugin-transform-block-scoping": "^7.12.13", + "@babel/plugin-transform-classes": "^7.13.0", + "@babel/plugin-transform-computed-properties": "^7.13.0", + "@babel/plugin-transform-destructuring": "^7.13.0", + "@babel/plugin-transform-dotall-regex": "^7.12.13", + "@babel/plugin-transform-duplicate-keys": "^7.12.13", + "@babel/plugin-transform-exponentiation-operator": "^7.12.13", + "@babel/plugin-transform-for-of": "^7.13.0", + "@babel/plugin-transform-function-name": "^7.12.13", + "@babel/plugin-transform-literals": "^7.12.13", + "@babel/plugin-transform-member-expression-literals": "^7.12.13", + "@babel/plugin-transform-modules-amd": "^7.13.0", + "@babel/plugin-transform-modules-commonjs": "^7.13.8", + "@babel/plugin-transform-modules-systemjs": "^7.13.8", + "@babel/plugin-transform-modules-umd": "^7.13.0", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.12.13", + "@babel/plugin-transform-new-target": "^7.12.13", + "@babel/plugin-transform-object-super": "^7.12.13", + "@babel/plugin-transform-parameters": "^7.13.0", + "@babel/plugin-transform-property-literals": "^7.12.13", + "@babel/plugin-transform-regenerator": "^7.12.13", + "@babel/plugin-transform-reserved-words": "^7.12.13", + "@babel/plugin-transform-shorthand-properties": "^7.12.13", + "@babel/plugin-transform-spread": "^7.13.0", + "@babel/plugin-transform-sticky-regex": "^7.12.13", + "@babel/plugin-transform-template-literals": "^7.13.0", + "@babel/plugin-transform-typeof-symbol": "^7.12.13", + "@babel/plugin-transform-unicode-escapes": "^7.12.13", + "@babel/plugin-transform-unicode-regex": "^7.12.13", + "@babel/preset-modules": "^0.1.4", + "@babel/types": "^7.13.12", + "babel-plugin-polyfill-corejs2": "^0.1.4", + "babel-plugin-polyfill-corejs3": "^0.1.3", + "babel-plugin-polyfill-regenerator": "^0.1.2", + "core-js-compat": "^3.9.0", + "semver": "^6.3.0" + } + }, + "@babel/preset-modules": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.4.tgz", + "integrity": "sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + } + }, + "@babel/preset-react": { + "version": "7.13.13", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.13.13.tgz", + "integrity": "sha512-gx+tDLIE06sRjKJkVtpZ/t3mzCDOnPG+ggHZG9lffUbX8+wC739x20YQc9V35Do6ZAxaUc/HhVHIiOzz5MvDmA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-validator-option": "^7.12.17", + "@babel/plugin-transform-react-display-name": "^7.12.13", + "@babel/plugin-transform-react-jsx": "^7.13.12", + "@babel/plugin-transform-react-jsx-development": "^7.12.17", + "@babel/plugin-transform-react-pure-annotations": "^7.12.1" + } + }, + "@babel/runtime": { + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.10.tgz", + "integrity": "sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "@babel/template": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.7.tgz", + "integrity": "sha512-wRwtAgI3bAS+JGU2upWNL9lSlDcRCqD05BZ1n3X2ONLH1WilFP6O1otQjeMK/1g0pvYcXC7b/qVUB1keofjtZA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.25.7", + "@babel/parser": "^7.25.7", + "@babel/types": "^7.25.7" + } + }, + "@babel/traverse": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.7.tgz", + "integrity": "sha512-jatJPT1Zjqvh/1FyJs6qAHL+Dzb7sTb+xr7Q+gM1b+1oBsMsQQ4FkVKb6dFlJvLlVssqkRzV05Jzervt9yhnzg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.25.7", + "@babel/generator": "^7.25.7", + "@babel/parser": "^7.25.7", + "@babel/template": "^7.25.7", + "@babel/types": "^7.25.7", + "debug": "^4.3.1", + "globals": "^11.1.0" + } + }, + "@babel/types": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.7.tgz", + "integrity": "sha512-vwIVdXG+j+FOpkwqHRcBgHLYNL7XMkufrlaFvL9o6Ai9sJn9+PdyIL5qa0XzTZw084c+u9LOls53eoZWP/W5WQ==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.25.7", + "@babel/helper-validator-identifier": "^7.25.7", + "to-fast-properties": "^2.0.0" + } + }, + "@discoveryjs/json-ext": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.2.tgz", + "integrity": "sha512-HyYEUDeIj5rRQU2Hk5HTB2uHsbRQpF70nvMhVzi+VJR0X+xNEhjPui4/kBf3VeH/wqD28PT4sVOm8qqLjBrSZg==", + "dev": true + }, + "@eslint/eslintrc": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.0.tgz", + "integrity": "sha512-2ZPCc+uNbjV5ERJr+aKSPRwZgKd2z11x0EgLvb1PURmUrn9QNRXFqje0Ldq454PfAVyaJYyrDvvIKSFP4NnBog==", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.1.1", + "espree": "^7.3.0", + "globals": "^12.1.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "globals": { + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", + "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", + "dev": true, + "requires": { + "type-fest": "^0.8.1" + } + } + } + }, + "@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true + }, + "@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true + }, + "@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "@nodelib/fs.scandir": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz", + "integrity": "sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.4", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz", + "integrity": "sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz", + "integrity": "sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.4", + "fastq": "^1.6.0" + } + }, + "@types/http-proxy": { + "version": "1.17.5", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.5.tgz", + "integrity": "sha512-GNkDE7bTv6Sf8JbV2GksknKOsk7OznNYHSdrtvPJXO0qJ9odZig6IZKUi5RFGi6d1bf6dgIAe4uXi3DBc7069Q==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/json-schema": { + "version": "7.0.7", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz", + "integrity": "sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==", + "dev": true + }, + "@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", + "dev": true + }, + "@types/node": { + "version": "14.14.37", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.37.tgz", + "integrity": "sha512-XYmBiy+ohOR4Lh5jE379fV2IU+6Jn4g5qASinhitfyO71b/sCo6MKsMLF5tc7Zf2CE8hViVQyYSobJNke8OvUw==", + "dev": true + }, + "@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" + } + }, + "@webpack-cli/configtest": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.0.2.tgz", + "integrity": "sha512-3OBzV2fBGZ5TBfdW50cha1lHDVf9vlvRXnjpVbJBa20pSZQaSkMJZiwA8V2vD9ogyeXn8nU5s5A6mHyf5jhMzA==", + "dev": true, + "requires": {} + }, + "@webpack-cli/info": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.2.3.tgz", + "integrity": "sha512-lLek3/T7u40lTqzCGpC6CAbY6+vXhdhmwFRxZLMnRm6/sIF/7qMpT8MocXCRQfz0JAh63wpbXLMnsQ5162WS7Q==", + "dev": true, + "requires": { + "envinfo": "^7.7.3" + } + }, + "@webpack-cli/serve": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.3.1.tgz", + "integrity": "sha512-0qXvpeYO6vaNoRBI52/UsbcaBydJCggoBBnIo/ovQQdn6fug0BgwsjorV1hVS7fMqGVTZGcVxv8334gjmbj5hw==", + "dev": true, + "requires": {} + }, + "@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 + }, + "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": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true + }, + "acorn-jsx": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz", + "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==", + "dev": true, + "requires": {} + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "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, + "requires": {} + }, + "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, + "requires": {} + }, + "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 + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "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" + } + }, + "any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=", + "dev": true + }, + "anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "optional": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "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" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", + "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": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", + "dev": true + }, + "array-includes": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.3.tgz", + "integrity": "sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.2", + "get-intrinsic": "^1.1.1", + "is-string": "^1.0.5" + } + }, + "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-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==", + "dev": true + }, + "array.prototype.flat": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz", + "integrity": "sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1" + } + }, + "array.prototype.flatmap": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.4.tgz", + "integrity": "sha512-r9Z0zYoxqHz60vvQbWEdXIEtCwHF0yxaWfno9qzXeNHvfyl3BZqygmGzb84dsubyaXLH4husF+NFgMSdpZhk2Q==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1", + "function-bind": "^1.1.1" + } + }, + "asn1.js": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", + "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + } + } + }, + "assert": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.1.tgz", + "integrity": "sha512-zzw1uCAgLbsKwBfFc8CX78DDg+xZeBksSO3vwVIDDN5i94eOrPsSSyiVhmsSABFDM/OcpE2aagCat9dnWQLG1A==", + "dev": true, + "requires": { + "object.assign": "^4.1.4", + "util": "^0.10.4" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true + }, + "util": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", + "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", + "dev": true, + "requires": { + "inherits": "2.0.3" + } + } + } + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==", + "dev": true + }, + "ast-types": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.14.2.tgz", + "integrity": "sha512-O0yuUDnZeQDL+ncNGlJ78BiO4jnYI3bvMsD5prT0/nsgijG/LpNBIr63gTjVTNsiGkgQhiyCShTgxt8oXOrklA==", + "dev": true, + "requires": { + "tslib": "^2.0.1" + } + }, + "astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true + }, + "async-each": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.6.tgz", + "integrity": "sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg==", + "dev": true, + "optional": 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 + }, + "babel-eslint": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz", + "integrity": "sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.7.0", + "@babel/traverse": "^7.7.0", + "@babel/types": "^7.7.0", + "eslint-visitor-keys": "^1.0.0", + "resolve": "^1.12.0" + } + }, + "babel-loader": { + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.2.tgz", + "integrity": "sha512-JvTd0/D889PQBtUXJ2PXaKU/pjZDMtHA9V2ecm+eNRmmBCMR09a+fmpGTNwnJtFmFl5Ei7Vy47LjBb+L0wQ99g==", + "dev": true, + "requires": { + "find-cache-dir": "^3.3.1", + "loader-utils": "^1.4.0", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" + } + }, + "babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "dev": true, + "requires": { + "object.assign": "^4.1.0" + } + }, + "babel-plugin-polyfill-corejs2": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.1.10.tgz", + "integrity": "sha512-DO95wD4g0A8KRaHKi0D51NdGXzvpqVLnLu5BTvDlpqUEpTmeEtypgC1xqesORaWmiUOQI14UHKlzNd9iZ2G3ZA==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.13.0", + "@babel/helper-define-polyfill-provider": "^0.1.5", + "semver": "^6.1.1" + } + }, + "babel-plugin-polyfill-corejs3": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.1.7.tgz", + "integrity": "sha512-u+gbS9bbPhZWEeyy1oR/YaaSpod/KDT07arZHb80aTpl8H5ZBq+uN1nN9/xtX7jQyfLdPfoqI4Rue/MQSWJquw==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.1.5", + "core-js-compat": "^3.8.1" + } + }, + "babel-plugin-polyfill-regenerator": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.1.6.tgz", + "integrity": "sha512-OUrYG9iKPKz8NxswXbRAdSwF0GhRdIEMTloQATJi4bDuFqrXaXcCUT/VGNrr8pBcjMh1RxZ7Xt9cytVJTJfvMg==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.1.5" + } + }, + "babel-plugin-syntax-jsx": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz", + "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=", + "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": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-descriptor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", + "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + } + } + } + }, + "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 + }, + "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.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "optional": 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" + } + }, + "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.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "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.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "requires": { + "fill-range": "^7.1.1" + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", + "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.1", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.1.tgz", + "integrity": "sha512-YBjSAiTqM04ZVei6sXighu679a3SqWORA3qZTEqZImnlkDIFtKc6pNutpjyZ8RJTjQtuYfeetkxM11GwoYXMIQ==", + "dev": true, + "requires": { + "bn.js": "^5.2.1", + "randombytes": "^2.1.0", + "safe-buffer": "^5.2.1" + }, + "dependencies": { + "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-sign": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.3.tgz", + "integrity": "sha512-JWCZW6SKhfhjJxO8Tyiiy+XYB7cqd2S5/+WeYHsKdNKFlCBhKbblba1A/HN/90YwtxKc8tCErjffZl++UNmGiw==", + "dev": true, + "requires": { + "bn.js": "^5.2.1", + "browserify-rsa": "^4.1.0", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.5", + "hash-base": "~3.0", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.7", + "readable-stream": "^2.3.8", + "safe-buffer": "^5.2.1" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "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" + }, + "dependencies": { + "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-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 + }, + "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" + }, + "dependencies": { + "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 + } + } + } + } + }, + "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.24.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.0.tgz", + "integrity": "sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001663", + "electron-to-chromium": "^1.5.28", + "node-releases": "^2.0.18", + "update-browserslist-db": "^1.1.0" + } + }, + "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" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + } + } + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", + "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": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==", + "dev": true + }, + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "dev": true + }, + "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" + }, + "dependencies": { + "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" + } + }, + "mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "requires": { + "minimist": "^1.2.6" + } + }, + "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" + } + }, + "y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "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" + } + }, + "cache-content-type": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-content-type/-/cache-content-type-1.0.1.tgz", + "integrity": "sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA==", + "dev": true, + "requires": { + "mime-types": "^2.1.18", + "ylru": "^1.2.0" + } + }, + "call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dev": true, + "requires": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "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-lite": { + "version": "1.0.30001667", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001667.tgz", + "integrity": "sha512-7LTwJjcRkzKFmtqGsibMeuXmvFDfZq/nzIjnmgCGzKKRVzjD72selLDK1oPF/Oxzmt4fNcPvTDvGqSDG4tCALw==", + "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" + } + }, + "chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "optional": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "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" + } + }, + "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" + } + }, + "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" + } + }, + "clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + } + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "dev": true + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==", + "dev": true, + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "colorette": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", + "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==", + "dev": true + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, + "component-emitter": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz", + "integrity": "sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==", + "dev": true + }, + "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" + } + }, + "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" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "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" + } + }, + "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" + } + } + } + }, + "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": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==", + "dev": true + }, + "contains-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", + "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", + "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" + } + }, + "cookies": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/cookies/-/cookies-0.8.0.tgz", + "integrity": "sha512-8aPsApQfebXnuI+537McwYsDtjVxGm8gTIzQI3FDW6t5t/DAhERxtnbEPN/8RX+uZthoz4eCOgloXaE5cYyNow==", + "dev": true, + "requires": { + "depd": "~2.0.0", + "keygrip": "~1.1.0" + } + }, + "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": { + "mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "requires": { + "minimist": "^1.2.6" + } + }, + "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": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==", + "dev": true + }, + "copyfiles": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/copyfiles/-/copyfiles-2.4.1.tgz", + "integrity": "sha512-fereAvAvxDrQDOXybk3Qu3dPbOoKoysFMWtkY3mv5BsL8//OSZVL5DCLYqgRfY5cWirgRzlC+WSrxp6Bo3eNZg==", + "dev": true, + "requires": { + "glob": "^7.0.5", + "minimatch": "^3.0.3", + "mkdirp": "^1.0.4", + "noms": "0.0.0", + "through2": "^2.0.1", + "untildify": "^4.0.0", + "yargs": "^16.1.0" + } + }, + "core-js-compat": { + "version": "3.38.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.38.1.tgz", + "integrity": "sha512-JRH6gfXxGmrzF3tZ57lFx97YARxCXPaMzPo6jELZhv88pBH5VXpQ+y0znKGlFnzuaihqhLbefxSJxWJMPtfDzw==", + "dev": true, + "requires": { + "browserslist": "^4.23.3" + } + }, + "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 + }, + "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.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "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": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "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-loader": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-5.2.0.tgz", + "integrity": "sha512-MfRo2MjEeLXMlUkeUwN71Vx5oc6EJnx5UQ4Yi9iUtYQvrPtwLUucYptz0hc6n++kdNcyF5olYBS4vPjJDAcLkw==", + "dev": true, + "requires": { + "camelcase": "^6.2.0", + "cssesc": "^3.0.0", + "icss-utils": "^5.1.0", + "loader-utils": "^2.0.0", + "postcss": "^8.2.8", + "postcss-modules-extract-imports": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.0", + "postcss-modules-scope": "^3.0.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.1.0", + "schema-utils": "^3.0.0", + "semver": "^7.3.4" + }, + "dependencies": { + "loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, + "schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + }, + "semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true + } + } + }, + "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 + }, + "cyclist": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.2.tgz", + "integrity": "sha512-0sVXIohTfLqVIW3kb/0n6IiWF3Ifj5nm2XaSrLq2DI6fKIGa2fYAZdk917rUneaeLVpYfFcyXE2ft0fe3remsA==", + "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" + } + }, + "decamelize": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-5.0.0.tgz", + "integrity": "sha512-U75DcT5hrio3KNtvdULAWnLiAPbFUC4191ldxMmj4FA/mRuBnmDwU0boNfPyFRhnan+Jm+haLeSn3P0afcBn4w==", + "dev": true + }, + "decode-uri-component": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", + "dev": true + }, + "deep-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", + "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=", + "dev": true + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "requires": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + } + }, + "define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "requires": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "dev": true + }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true + }, + "des.js": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.1.0.tgz", + "integrity": "sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==", + "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 + }, + "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.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "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" + }, + "dependencies": { + "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 + } + } + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "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 + }, + "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" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "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" + } + }, + "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" + } + } + } + }, + "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.5.34", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.34.tgz", + "integrity": "sha512-/TZAiChbAflBNjCg+VvstbcwAtIL/VdMFO3NgRFIzBjpvPzWOTIbbO8kNb6RwU4bt9TP7K+3KqBKw/lOU+Y+GA==", + "dev": true + }, + "elliptic": { + "version": "6.5.7", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.7.tgz", + "integrity": "sha512-ESVCtTwiA+XhY3wyh24QqRGBoP3rEdDUl3EDUUo9tft074fi19IrdpH7hLCMMP3CIj7jb3W96rn8lt/BqIlt5Q==", + "dev": true, + "requires": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "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 + }, + "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 + }, + "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" + } + }, + "enhanced-resolve": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz", + "integrity": "sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.5.0", + "tapable": "^1.0.0" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "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" + } + }, + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "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" + } + }, + "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" + } + } + } + }, + "enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "dev": true, + "requires": { + "ansi-colors": "^4.1.1" + } + }, + "envinfo": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.7.4.tgz", + "integrity": "sha512-TQXTYFVVwwluWSFis6K2XKxgrD22jEv0FTuLCQI+OjH7rn93+iY0fSSFM5lrSxFY+H1+B0/cvvlamr3UsBivdQ==", + "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", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0.tgz", + "integrity": "sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "is-callable": "^1.2.3", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.2", + "is-string": "^1.0.5", + "object-inspect": "^1.9.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.0" + } + }, + "es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dev": true, + "requires": { + "get-intrinsic": "^1.2.4" + } + }, + "es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true + }, + "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" + } + }, + "escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "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": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.23.0.tgz", + "integrity": "sha512-kqvNVbdkjzpFy0XOszNwjkKzZ+6TcwCQ/h+ozlcIWwaimBBuhlQ4nN6kbiM2L+OjDcznkTJxzYfRFH92sx4a0Q==", + "dev": true, + "requires": { + "@babel/code-frame": "7.12.11", + "@eslint/eslintrc": "^0.4.0", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "enquirer": "^2.3.5", + "eslint-scope": "^5.1.1", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.1", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.0.0", + "globals": "^13.6.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash": "^4.17.21", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "progress": "^2.0.0", + "regexpp": "^3.1.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", + "strip-json-comments": "^3.1.0", + "table": "^6.0.4", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "dependencies": { + "@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" + } + }, + "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 + }, + "eslint-visitor-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz", + "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==", + "dev": true + }, + "globals": { + "version": "13.7.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.7.0.tgz", + "integrity": "sha512-Aipsz6ZKRxa/xQkZhNg0qIWXT6x6rD46f6x/PCnBomlttdIyAPak4YD9jTmKpZ72uROSMU87qJtcgpgHaVchiA==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "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 + }, + "semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "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" + } + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + } + } + }, + "eslint-config-prettier": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.1.0.tgz", + "integrity": "sha512-oKMhGv3ihGbCIimCAjqkdzx2Q+jthoqnXSP+d86M9tptwugycmTFdVR4IpLgq2c4SHifbwO90z2fQ8/Aio73yw==", + "dev": true, + "requires": {} + }, + "eslint-import-resolver-node": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz", + "integrity": "sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA==", + "dev": true, + "requires": { + "debug": "^2.6.9", + "resolve": "^1.13.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 + } + } + }, + "eslint-module-utils": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz", + "integrity": "sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA==", + "dev": true, + "requires": { + "debug": "^2.6.9", + "pkg-dir": "^2.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 + } + } + }, + "eslint-plugin-import": { + "version": "2.22.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.22.1.tgz", + "integrity": "sha512-8K7JjINHOpH64ozkAhpT3sd+FswIZTfMZTjdx052pnWrgRCVfp8op9tbjpAk3DdUeI/Ba4C8OjdC0r90erHEOw==", + "dev": true, + "requires": { + "array-includes": "^3.1.1", + "array.prototype.flat": "^1.2.3", + "contains-path": "^0.1.0", + "debug": "^2.6.9", + "doctrine": "1.5.0", + "eslint-import-resolver-node": "^0.3.4", + "eslint-module-utils": "^2.6.0", + "has": "^1.0.3", + "minimatch": "^3.0.4", + "object.values": "^1.1.1", + "read-pkg-up": "^2.0.0", + "resolve": "^1.17.0", + "tsconfig-paths": "^3.9.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" + } + }, + "doctrine": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", + "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "isarray": "^1.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "eslint-plugin-react": { + "version": "7.23.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.23.1.tgz", + "integrity": "sha512-MvFGhZjI8Z4HusajmSw0ougGrq3Gs4vT/0WgwksZgf5RrLrRa2oYAw56okU4tZJl8+j7IYNuTM+2RnFEuTSdRQ==", + "dev": true, + "requires": { + "array-includes": "^3.1.3", + "array.prototype.flatmap": "^1.2.4", + "doctrine": "^2.1.0", + "has": "^1.0.3", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.0.4", + "object.entries": "^1.1.3", + "object.fromentries": "^2.0.4", + "object.values": "^1.1.3", + "prop-types": "^15.7.2", + "resolve": "^2.0.0-next.3", + "string.prototype.matchall": "^4.0.4" + }, + "dependencies": { + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "resolve": { + "version": "2.0.0-next.3", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.3.tgz", + "integrity": "sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==", + "dev": true, + "requires": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + } + } + } + }, + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + } + }, + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true + }, + "espree": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", + "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "dev": true, + "requires": { + "acorn": "^7.4.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^1.3.0" + } + }, + "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 + }, + "esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "requires": { + "estraverse": "^5.1.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 + } + } + }, + "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 + }, + "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.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true + }, + "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": "5.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.0.0.tgz", + "integrity": "sha512-ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==", + "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" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + } + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "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": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-descriptor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", + "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + } + } + } + }, + "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.5", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz", + "integrity": "sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.0", + "merge2": "^1.3.0", + "micromatch": "^4.0.2", + "picomatch": "^2.2.1" + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "fastest-levenshtein": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz", + "integrity": "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==", + "dev": true + }, + "fastq": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.11.0.tgz", + "integrity": "sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "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 + }, + "file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "requires": { + "flat-cache": "^3.0.4" + } + }, + "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.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "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" + } + }, + "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": "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" + } + }, + "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 + }, + "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" + } + } + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "requires": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + } + }, + "flatted": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz", + "integrity": "sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==", + "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" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "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" + } + }, + "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" + } + } + } + }, + "follow-redirects": { + "version": "1.15.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", + "dev": true + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==", + "dev": true + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==", + "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": "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "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" + } + }, + "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" + } + } + } + }, + "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": "sha512-gehEzmPn2nAwr39eay+x3X34Ra+M2QlVUTLhkXPjWdeO8RF9kszk116avgBJM3ZyNHgHXBNx+VmPaFC36k0PzA==", + "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.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "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.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dev": true, + "requires": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + } + }, + "get-stream": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.0.tgz", + "integrity": "sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg==", + "dev": true + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==", + "dev": true + }, + "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.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "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.3", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.3.tgz", + "integrity": "sha512-ffdmosjA807y7+lA1NM0jELARVmYul/715xiILEjo3hBLPTcirgQNnXECn5g3mtR8TOLCVbkfua1Hpen25/Xcg==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.1.1", + "ignore": "^5.1.4", + "merge2": "^1.3.0", + "slash": "^3.0.0" + }, + "dependencies": { + "ignore": { + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", + "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", + "dev": true + } + } + }, + "gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.3" + } + }, + "graceful-fs": { + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", + "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", + "dev": true + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-bigints": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", + "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", + "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-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "requires": { + "es-define-property": "^1.0.0" + } + }, + "has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "dev": true + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==", + "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": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==", + "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": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "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": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "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": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "hash-base": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", + "integrity": "sha512-EeeoJKjTyt868liAlVmcv2ZsUfGHlE3Q+BICOXcZiwN3osr5Q/zFGYmTJpoIzuaSTAwndFy+GqhEwlU4L3j4Ow==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "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" + } + }, + "hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "requires": { + "function-bind": "^1.1.2" + } + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", + "dev": true, + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "http-assert": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/http-assert/-/http-assert-1.4.1.tgz", + "integrity": "sha512-rdw7q6GTlibqVVbXr0CKelfV5iY8G2HqEUkhSk297BMbSpSL8crXC+9rjKoMcZZEsksX30le6f/4ul4E28gegw==", + "dev": true, + "requires": { + "deep-equal": "~1.0.1", + "http-errors": "~1.7.2" + }, + "dependencies": { + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "dev": true + }, + "http-errors": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", + "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + } + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", + "dev": true + } + } + }, + "http-errors": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.0.tgz", + "integrity": "sha512-4I8r0C5JDhT5VkvI47QktDW75rNlGVsUf/8hzjCC/wkWI/jdTRmBb9aI7erSG82r1bjKY3F6k28WnsVxB1C73A==", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + }, + "dependencies": { + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "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-middleware": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-1.1.0.tgz", + "integrity": "sha512-OnjU5vyVgcZVe2AjLJyMrk8YLNOC2lspCHirB5ldM+B/dwEfZ5bgVTrFyzE9R7xRWAP/i/FXtvIqKjTNEZBhBg==", + "dev": true, + "requires": { + "@types/http-proxy": "^1.17.5", + "camelcase": "^6.2.0", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + } + }, + "https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==", + "dev": true + }, + "human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true + }, + "icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "dev": true, + "requires": {} + }, + "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": "sha512-DUNFN5j7Tln0D+TxzloUjKB+CtVu6myn0JEFak6dG18mNt9YkQ6lzGCdafwofISZ1lLF3xRHJ98VKy9ynkcFaA==", + "dev": true + }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "import-local": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.2.tgz", + "integrity": "sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==", + "dev": true, + "requires": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.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" + } + }, + "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": "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" + } + }, + "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 + }, + "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" + } + } + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "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 + }, + "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 + }, + "internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + } + }, + "interpret": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", + "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", + "dev": true + }, + "is-accessor-descriptor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.1.tgz", + "integrity": "sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==", + "dev": true, + "requires": { + "hasown": "^2.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-bigint": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.1.tgz", + "integrity": "sha512-J0ELF4yHFxHy0cmSxZuheDOz2luOdVvqjwmEcj8H/L1JHeuEDSDbeRP+Dk9kFVk5RTFzbucJ2Kb9F7ixY2QaCg==", + "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, + "optional": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-boolean-object": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.0.tgz", + "integrity": "sha512-a7Uprx8UtD+HWdyYwnD1+ExtTgqQtD2k/1yJgtXP6wnMm8byhkoTZRl+95LLThpzNZJ5aEvi46cdH+ayMFRwmA==", + "dev": true, + "requires": { + "call-bind": "^1.0.0" + } + }, + "is-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.3", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", + "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==", + "dev": true + }, + "is-core-module": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", + "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-data-descriptor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.1.tgz", + "integrity": "sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==", + "dev": true, + "requires": { + "hasown": "^2.0.0" + } + }, + "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.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + } + }, + "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": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "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": "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-generator-function": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.8.tgz", + "integrity": "sha512-2Omr/twNtufVZFr1GhxjOMFPAj2sjc/dKaIqBhvo4qciXfJmITGH6ZGd8eZYNHza8t1y0e01AuqRhJwfWp26WQ==", + "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-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-number-object": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.4.tgz", + "integrity": "sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw==", + "dev": true + }, + "is-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-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "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-promise": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", + "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==", + "dev": true + }, + "is-regex": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.2.tgz", + "integrity": "sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-symbols": "^1.0.1" + } + }, + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "dev": true + }, + "is-string": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", + "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", + "dev": true + }, + "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-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": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "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 + }, + "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" + } + }, + "jsesc": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", + "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-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-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "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 + }, + "json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true + }, + "jsx-ast-utils": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.0.tgz", + "integrity": "sha512-EIsmt3O3ljsU6sot/J4E1zDRxfBNrhjyf/OKjlydwgEimQuznlM4Wv7U+ueONJMyEn1WRE0K8dhi3dVAXYT24Q==", + "dev": true, + "requires": { + "array-includes": "^3.1.2", + "object.assign": "^4.1.2" + } + }, + "keygrip": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/keygrip/-/keygrip-1.1.0.tgz", + "integrity": "sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==", + "dev": true, + "requires": { + "tsscmp": "1.0.6" + } + }, + "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 + }, + "koa": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/koa/-/koa-2.13.1.tgz", + "integrity": "sha512-Lb2Dloc72auj5vK4X4qqL7B5jyDPQaZucc9sR/71byg7ryoD1NCaCm63CShk9ID9quQvDEi1bGR/iGjCG7As3w==", + "dev": true, + "requires": { + "accepts": "^1.3.5", + "cache-content-type": "^1.0.0", + "content-disposition": "~0.5.2", + "content-type": "^1.0.4", + "cookies": "~0.8.0", + "debug": "~3.1.0", + "delegates": "^1.0.0", + "depd": "^2.0.0", + "destroy": "^1.0.4", + "encodeurl": "^1.0.2", + "escape-html": "^1.0.3", + "fresh": "~0.5.2", + "http-assert": "^1.3.0", + "http-errors": "^1.6.3", + "is-generator-function": "^1.0.7", + "koa-compose": "^4.1.0", + "koa-convert": "^1.2.0", + "on-finished": "^2.3.0", + "only": "~0.0.2", + "parseurl": "^1.3.2", + "statuses": "^1.5.0", + "type-is": "^1.6.16", + "vary": "^1.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 + } + } + }, + "koa-compose": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/koa-compose/-/koa-compose-4.1.0.tgz", + "integrity": "sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw==", + "dev": true + }, + "koa-compress": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/koa-compress/-/koa-compress-5.0.1.tgz", + "integrity": "sha512-uTo7Hcyyt6e9o2X3htRS/SNEKy9vDOUc/r1qs/F0YI2Frv9IEbkjz/9dC6IdJWBQAG34lRuU7jBXeq3DRur9Ng==", + "dev": true, + "requires": { + "bytes": "^3.0.0", + "compressible": "^2.0.0", + "http-errors": "^1.7.3", + "koa-is-json": "^1.0.0", + "statuses": "^2.0.0" + }, + "dependencies": { + "statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true + } + } + }, + "koa-connect": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/koa-connect/-/koa-connect-2.1.0.tgz", + "integrity": "sha512-O9pcFafHk0oQsBevlbTBlB9co+2RUQJ4zCzu3qJPmGlGoeEZkne+7gWDkecqDPSbCtED6LmhlQladxs6NjOnMQ==", + "dev": true + }, + "koa-convert": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/koa-convert/-/koa-convert-1.2.0.tgz", + "integrity": "sha1-2kCHXfSd4FOQmNFwC1CCDOvNIdA=", + "dev": true, + "requires": { + "co": "^4.6.0", + "koa-compose": "^3.0.0" + }, + "dependencies": { + "koa-compose": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/koa-compose/-/koa-compose-3.2.1.tgz", + "integrity": "sha1-qFzLQLfZhtjlo0Wzoazo6rz1Tec=", + "dev": true, + "requires": { + "any-promise": "^1.1.0" + } + } + } + }, + "koa-is-json": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/koa-is-json/-/koa-is-json-1.0.0.tgz", + "integrity": "sha1-JzwH7c3Ljfaiwat9We52SRRR7BQ=", + "dev": true + }, + "koa-route": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/koa-route/-/koa-route-3.2.0.tgz", + "integrity": "sha1-dimLmaa8+p44yrb+XHmocz51i84=", + "dev": true, + "requires": { + "debug": "*", + "methods": "~1.1.0", + "path-to-regexp": "^1.2.0" + } + }, + "koa-send": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/koa-send/-/koa-send-5.0.1.tgz", + "integrity": "sha512-tmcyQ/wXXuxpDxyNXv5yNNkdAMdFRqwtegBXUaowiQzUKqJehttS0x2j0eOZDQAyloAth5w6wwBImnFzkUz3pQ==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "http-errors": "^1.7.3", + "resolve-path": "^1.4.0" + } + }, + "koa-static": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/koa-static/-/koa-static-5.0.0.tgz", + "integrity": "sha512-UqyYyH5YEXaJrf9S8E23GoJFQZXkBVJ9zYYMPGz919MSX1KuvAcycIuS0ci150HCoPf4XQVhQ84Qf8xRPWxFaQ==", + "dev": true, + "requires": { + "debug": "^3.1.0", + "koa-send": "^5.0.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" + } + } + } + }, + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "load-json-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "strip-bom": "^3.0.0" + } + }, + "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": "1.4.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz", + "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "dependencies": { + "json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + } + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "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.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", + "dev": true + }, + "lodash.flatten": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", + "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=", + "dev": true + }, + "lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", + "dev": true + }, + "loglevelnext": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/loglevelnext/-/loglevelnext-4.0.1.tgz", + "integrity": "sha512-/tlMUn5wqgzg9msy0PiWc+8fpVXEuYPq49c2RGyw2NAh0hSrgq6j/Z3YPnwWsILMoFJ+ZT6ePHnWUonkjDnq2Q==", + "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" + } + }, + "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" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==", + "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" + } + }, + "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.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha512-cda4JKCxReDXFXRqOHPQscuIYg1PvxbE2S2GP45rnwfEK+vZaXC8C1OFvdHIbgw0DLzowXGVoxLaAmlgRy14GQ==", + "dev": true, + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "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" + } + }, + "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" + } + } + } + }, + "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.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "requires": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + } + }, + "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.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + } + } + }, + "mime-db": { + "version": "1.46.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.46.0.tgz", + "integrity": "sha512-svXaP8UQRZ5K7or+ZmfNhg2xX3yKDMUzqadsSqi4NCH/KomcH75MAMYAGVlvXn4+b/xOPhS3I2uHKRUzvjY7BQ==", + "dev": true + }, + "mime-types": { + "version": "2.1.29", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.29.tgz", + "integrity": "sha512-Y/jMt/S5sR9OaqteJtslsFZKWOIIqMACsJSiHghlCAyhf7jfVYjKBmLiX8OgpWeW+fjJ2b+Az69aPFPkUOY6xQ==", + "dev": true, + "requires": { + "mime-db": "1.46.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 + }, + "min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true + }, + "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": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", + "dev": true + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true + }, + "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": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, + "move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", + "integrity": "sha512-hdrFxZOycD/g6A6SoI2bB5NA/5NEqD0569+S47WZhPvm46sD50ZHdYaFmnua5lndde9rCHGjmfK7Z8BuCt/PcQ==", + "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": { + "mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "requires": { + "minimist": "^1.2.6" + } + }, + "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 + }, + "nan": { + "version": "2.20.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.20.0.tgz", + "integrity": "sha512-bk3gXBZDGILuuo/6sKtr0DQmSThYHLtNCdSdXk9YkxD/jK6X2vmCyyXBBxyqZ4XcnzTyYEAThfX3DCEnLf6igw==", + "dev": true, + "optional": true + }, + "nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "dev": 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" + }, + "dependencies": { + "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" + } + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "is-descriptor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", + "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + } + }, + "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" + } + } + } + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": 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 + }, + "node-dir": { + "version": "0.1.17", + "resolved": "https://registry.npmjs.org/node-dir/-/node-dir-0.1.17.tgz", + "integrity": "sha1-X1Zl2TNRM1yqvvjxxVRRbPXx5OU=", + "dev": true, + "requires": { + "minimatch": "^3.0.2" + } + }, + "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": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", + "dev": true + }, + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "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" + }, + "dependencies": { + "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_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "requires": { + "safe-buffer": "~5.2.0" + }, + "dependencies": { + "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-releases": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", + "dev": true + }, + "noms": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/noms/-/noms-0.0.0.tgz", + "integrity": "sha1-2o69nzr51nYJGbJ9nNyAkqczKFk=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "~1.0.31" + } + }, + "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": { + "semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "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, + "optional": true + }, + "npm": { + "version": "6.14.18", + "resolved": "https://registry.npmjs.org/npm/-/npm-6.14.18.tgz", + "integrity": "sha512-p3SjqSchSuNQUqbJBgwdv0L3O6bKkaSfQrQzJsskNpNKLg0g37c5xTXFV0SqTlX9GWvoGxBELVJMRWq0J8oaLA==", + "dev": true, + "requires": { + "abbrev": "~1.1.1", + "ansicolors": "~0.3.2", + "ansistyles": "~0.1.3", + "aproba": "^2.0.0", + "archy": "~1.0.0", + "bin-links": "^1.1.8", + "bluebird": "^3.7.2", + "byte-size": "^5.0.1", + "cacache": "^12.0.4", + "call-limit": "^1.1.1", + "chownr": "^1.1.4", + "ci-info": "^2.0.0", + "cli-columns": "^3.1.2", + "cli-table3": "^0.5.1", + "cmd-shim": "^3.0.3", + "columnify": "~1.5.4", + "config-chain": "^1.1.13", + "debuglog": "*", + "detect-indent": "~5.0.0", + "detect-newline": "^2.1.0", + "dezalgo": "^1.0.4", + "editor": "~1.0.0", + "figgy-pudding": "^3.5.2", + "find-npm-prefix": "^1.0.2", + "fs-vacuum": "~1.2.10", + "fs-write-stream-atomic": "~1.0.10", + "gentle-fs": "^2.3.1", + "glob": "^7.2.3", + "graceful-fs": "^4.2.10", + "has-unicode": "~2.0.1", + "hosted-git-info": "^2.8.9", + "iferr": "^1.0.2", + "imurmurhash": "*", + "infer-owner": "^1.0.4", + "inflight": "~1.0.6", + "inherits": "^2.0.4", + "ini": "^1.3.8", + "init-package-json": "^1.10.3", + "is-cidr": "^3.1.1", + "json-parse-better-errors": "^1.0.2", + "JSONStream": "^1.3.5", + "lazy-property": "~1.0.0", + "libcipm": "^4.0.8", + "libnpm": "^3.0.1", + "libnpmaccess": "^3.0.2", + "libnpmhook": "^5.0.3", + "libnpmorg": "^1.0.1", + "libnpmsearch": "^2.0.2", + "libnpmteam": "^1.0.2", + "libnpx": "^10.2.4", + "lock-verify": "^2.2.2", + "lockfile": "^1.0.4", + "lodash._baseindexof": "*", + "lodash._baseuniq": "~4.6.0", + "lodash._bindcallback": "*", + "lodash._cacheindexof": "*", + "lodash._createcache": "*", + "lodash._getnative": "*", + "lodash.clonedeep": "~4.5.0", + "lodash.restparam": "*", + "lodash.union": "~4.6.0", + "lodash.uniq": "~4.5.0", + "lodash.without": "~4.4.0", + "lru-cache": "^5.1.1", + "meant": "^1.0.3", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.6", + "move-concurrently": "^1.0.1", + "node-gyp": "^5.1.1", + "nopt": "^4.0.3", + "normalize-package-data": "^2.5.0", + "npm-audit-report": "^1.3.3", + "npm-cache-filename": "~1.0.2", + "npm-install-checks": "^3.0.2", + "npm-lifecycle": "^3.1.5", + "npm-package-arg": "^6.1.1", + "npm-packlist": "^1.4.8", + "npm-pick-manifest": "^3.0.2", + "npm-profile": "^4.0.4", + "npm-registry-fetch": "^4.0.7", + "npm-user-validate": "^1.0.1", + "npmlog": "~4.1.2", + "once": "~1.4.0", + "opener": "^1.5.2", + "osenv": "^0.1.5", + "pacote": "^9.5.12", + "path-is-inside": "~1.0.2", + "promise-inflight": "~1.0.1", + "qrcode-terminal": "^0.12.0", + "query-string": "^6.14.1", + "qw": "^1.0.2", + "read": "~1.0.7", + "read-cmd-shim": "^1.0.5", + "read-installed": "~4.0.3", + "read-package-json": "^2.1.2", + "read-package-tree": "^5.3.1", + "readable-stream": "^3.6.0", + "readdir-scoped-modules": "^1.1.0", + "request": "^2.88.2", + "retry": "^0.12.0", + "rimraf": "^2.7.1", + "safe-buffer": "^5.2.1", + "semver": "^5.7.1", + "sha": "^3.0.0", + "slide": "~1.1.6", + "sorted-object": "~2.0.1", + "sorted-union-stream": "~2.1.3", + "ssri": "^6.0.2", + "stringify-package": "^1.0.1", + "tar": "^4.4.19", + "text-table": "~0.2.0", + "tiny-relative-date": "^1.3.0", + "uid-number": "0.0.6", + "umask": "~1.1.0", + "unique-filename": "^1.1.1", + "unpipe": "~1.0.0", + "update-notifier": "^2.5.0", + "uuid": "^3.4.0", + "validate-npm-package-license": "^3.0.4", + "validate-npm-package-name": "~3.0.0", + "which": "^1.3.1", + "worker-farm": "^1.7.0", + "write-file-atomic": "^2.4.3" + }, + "dependencies": { + "@iarna/cli": { + "version": "2.1.0", + "bundled": true, + "dev": true, + "requires": { + "glob": "^7.1.2", + "signal-exit": "^3.0.2" + } + }, + "abbrev": { + "version": "1.1.1", + "bundled": true, + "dev": true + }, + "agent-base": { + "version": "4.3.0", + "bundled": true, + "dev": true, + "requires": { + "es6-promisify": "^5.0.0" + } + }, + "agentkeepalive": { + "version": "3.5.2", + "bundled": true, + "dev": true, + "requires": { + "humanize-ms": "^1.2.1" + } + }, + "ansi-align": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "requires": { + "string-width": "^2.0.0" + } + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "bundled": true, + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "ansicolors": { + "version": "0.3.2", + "bundled": true, + "dev": true + }, + "ansistyles": { + "version": "0.1.3", + "bundled": true, + "dev": true + }, + "aproba": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "archy": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "are-we-there-yet": { + "version": "1.1.4", + "bundled": true, + "dev": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "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" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "dev": true + } + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "dev": true + } + } + } + } + }, + "asap": { + "version": "2.0.6", + "bundled": true, + "dev": true + }, + "asn1": { + "version": "0.2.6", + "bundled": true, + "dev": true, + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "bundled": true, + "dev": true + }, + "aws-sign2": { + "version": "0.7.0", + "bundled": true, + "dev": true + }, + "aws4": { + "version": "1.11.0", + "bundled": true, + "dev": true + }, + "balanced-match": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "bin-links": { + "version": "1.1.8", + "bundled": true, + "dev": true, + "requires": { + "bluebird": "^3.5.3", + "cmd-shim": "^3.0.0", + "gentle-fs": "^2.3.0", + "graceful-fs": "^4.1.15", + "npm-normalize-package-bin": "^1.0.0", + "write-file-atomic": "^2.3.0" + } + }, + "bluebird": { + "version": "3.7.2", + "bundled": true, + "dev": true + }, + "boxen": { + "version": "1.3.0", + "bundled": true, + "dev": true, + "requires": { + "ansi-align": "^2.0.0", + "camelcase": "^4.0.0", + "chalk": "^2.0.1", + "cli-boxes": "^1.0.0", + "string-width": "^2.0.0", + "term-size": "^1.2.0", + "widest-line": "^2.0.0" + } + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "buffer-from": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "builtins": { + "version": "1.0.3", + "bundled": true, + "dev": true + }, + "byline": { + "version": "5.0.0", + "bundled": true, + "dev": true + }, + "byte-size": { + "version": "5.0.1", + "bundled": true, + "dev": true + }, + "cacache": { + "version": "12.0.4", + "bundled": true, + "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" + } + }, + "call-limit": { + "version": "1.1.1", + "bundled": true, + "dev": true + }, + "camelcase": { + "version": "4.1.0", + "bundled": true, + "dev": true + }, + "capture-stack-trace": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "caseless": { + "version": "0.12.0", + "bundled": true, + "dev": true + }, + "chalk": { + "version": "2.4.1", + "bundled": true, + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "chownr": { + "version": "1.1.4", + "bundled": true, + "dev": true + }, + "ci-info": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "cidr-regex": { + "version": "2.0.10", + "bundled": true, + "dev": true, + "requires": { + "ip-regex": "^2.1.0" + } + }, + "cli-boxes": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "cli-columns": { + "version": "3.1.2", + "bundled": true, + "dev": true, + "requires": { + "string-width": "^2.0.0", + "strip-ansi": "^3.0.1" + } + }, + "cli-table3": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "requires": { + "colors": "^1.1.2", + "object-assign": "^4.1.0", + "string-width": "^2.1.1" + } + }, + "cliui": { + "version": "5.0.0", + "bundled": true, + "dev": true, + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.1", + "bundled": true, + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "string-width": { + "version": "3.1.0", + "bundled": true, + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "clone": { + "version": "1.0.4", + "bundled": true, + "dev": true + }, + "cmd-shim": { + "version": "3.0.3", + "bundled": true, + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "mkdirp": "~0.5.0" + } + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "color-convert": { + "version": "1.9.1", + "bundled": true, + "dev": true, + "requires": { + "color-name": "^1.1.1" + } + }, + "color-name": { + "version": "1.1.3", + "bundled": true, + "dev": true + }, + "colors": { + "version": "1.3.3", + "bundled": true, + "dev": true, + "optional": true + }, + "columnify": { + "version": "1.5.4", + "bundled": true, + "dev": true, + "requires": { + "strip-ansi": "^3.0.0", + "wcwidth": "^1.0.0" + } + }, + "combined-stream": { + "version": "1.0.8", + "bundled": true, + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true + }, + "concat-stream": { + "version": "1.6.2", + "bundled": true, + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "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" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "dev": true + } + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "dev": true + } + } + } + } + }, + "config-chain": { + "version": "1.1.13", + "bundled": true, + "dev": true, + "requires": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "configstore": { + "version": "3.1.5", + "bundled": true, + "dev": true, + "requires": { + "dot-prop": "^4.2.1", + "graceful-fs": "^4.1.2", + "make-dir": "^1.0.0", + "unique-string": "^1.0.0", + "write-file-atomic": "^2.0.0", + "xdg-basedir": "^3.0.0" + } + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "copy-concurrently": { + "version": "1.0.5", + "bundled": true, + "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": { + "aproba": { + "version": "1.2.0", + "bundled": true, + "dev": true + }, + "iferr": { + "version": "0.1.5", + "bundled": true, + "dev": true + } + } + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "create-error-class": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "requires": { + "capture-stack-trace": "^1.0.0" + } + }, + "cross-spawn": { + "version": "5.1.0", + "bundled": true, + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "dependencies": { + "lru-cache": { + "version": "4.1.5", + "bundled": true, + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "yallist": { + "version": "2.1.2", + "bundled": true, + "dev": true + } + } + }, + "crypto-random-string": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "cyclist": { + "version": "0.2.2", + "bundled": true, + "dev": true + }, + "dashdash": { + "version": "1.14.1", + "bundled": true, + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "debug": { + "version": "3.1.0", + "bundled": true, + "dev": true, + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "bundled": true, + "dev": true + } + } + }, + "debuglog": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "decamelize": { + "version": "1.2.0", + "bundled": true, + "dev": true + }, + "decode-uri-component": { + "version": "0.2.2", + "bundled": true, + "dev": true + }, + "deep-extend": { + "version": "0.6.0", + "bundled": true, + "dev": true + }, + "defaults": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "requires": { + "clone": "^1.0.2" + } + }, + "define-properties": { + "version": "1.1.3", + "bundled": true, + "dev": true, + "requires": { + "object-keys": "^1.0.12" + } + }, + "delayed-stream": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "detect-indent": { + "version": "5.0.0", + "bundled": true, + "dev": true + }, + "detect-newline": { + "version": "2.1.0", + "bundled": true, + "dev": true + }, + "dezalgo": { + "version": "1.0.4", + "bundled": true, + "dev": true, + "requires": { + "asap": "^2.0.0", + "wrappy": "1" + } + }, + "dot-prop": { + "version": "4.2.1", + "bundled": true, + "dev": true, + "requires": { + "is-obj": "^1.0.0" + } + }, + "dotenv": { + "version": "5.0.1", + "bundled": true, + "dev": true + }, + "duplexer3": { + "version": "0.1.4", + "bundled": true, + "dev": true + }, + "duplexify": { + "version": "3.6.0", + "bundled": true, + "dev": true, + "requires": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "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" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "dev": true + } + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "dev": true + } + } + } + } + }, + "ecc-jsbn": { + "version": "0.1.2", + "bundled": true, + "dev": true, + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "editor": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "emoji-regex": { + "version": "7.0.3", + "bundled": true, + "dev": true + }, + "encoding": { + "version": "0.1.12", + "bundled": true, + "dev": true, + "requires": { + "iconv-lite": "~0.4.13" + } + }, + "end-of-stream": { + "version": "1.4.1", + "bundled": true, + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "env-paths": { + "version": "2.2.1", + "bundled": true, + "dev": true + }, + "err-code": { + "version": "1.1.2", + "bundled": true, + "dev": true + }, + "errno": { + "version": "0.1.7", + "bundled": true, + "dev": true, + "requires": { + "prr": "~1.0.1" + } + }, + "es-abstract": { + "version": "1.12.0", + "bundled": true, + "dev": true, + "requires": { + "es-to-primitive": "^1.1.1", + "function-bind": "^1.1.1", + "has": "^1.0.1", + "is-callable": "^1.1.3", + "is-regex": "^1.0.4" + } + }, + "es-to-primitive": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "es6-promise": { + "version": "4.2.8", + "bundled": true, + "dev": true + }, + "es6-promisify": { + "version": "5.0.0", + "bundled": true, + "dev": true, + "requires": { + "es6-promise": "^4.0.3" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "bundled": true, + "dev": true + }, + "execa": { + "version": "0.7.0", + "bundled": true, + "dev": true, + "requires": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.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" + }, + "dependencies": { + "get-stream": { + "version": "3.0.0", + "bundled": true, + "dev": true + } + } + }, + "extend": { + "version": "3.0.2", + "bundled": true, + "dev": true + }, + "extsprintf": { + "version": "1.3.0", + "bundled": true, + "dev": true + }, + "fast-json-stable-stringify": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "figgy-pudding": { + "version": "3.5.2", + "bundled": true, + "dev": true + }, + "filter-obj": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "find-npm-prefix": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "flush-write-stream": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.4" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "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" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "dev": true + } + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "dev": true + } + } + } + } + }, + "forever-agent": { + "version": "0.6.1", + "bundled": true, + "dev": true + }, + "form-data": { + "version": "2.3.3", + "bundled": true, + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "from2": { + "version": "2.3.0", + "bundled": true, + "dev": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "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" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "dev": true + } + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "dev": true + } + } + } + } + }, + "fs-minipass": { + "version": "1.2.7", + "bundled": true, + "dev": true, + "requires": { + "minipass": "^2.6.0" + }, + "dependencies": { + "minipass": { + "version": "2.9.0", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + } + } + }, + "fs-vacuum": { + "version": "1.2.10", + "bundled": true, + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "path-is-inside": "^1.0.1", + "rimraf": "^2.5.2" + } + }, + "fs-write-stream-atomic": { + "version": "1.0.10", + "bundled": true, + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + }, + "dependencies": { + "iferr": { + "version": "0.1.5", + "bundled": true, + "dev": true + }, + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "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" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "dev": true + } + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "dev": true + } + } + } + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "function-bind": { + "version": "1.1.1", + "bundled": true, + "dev": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "dev": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + }, + "dependencies": { + "aproba": { + "version": "1.2.0", + "bundled": true, + "dev": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + } + } + }, + "genfun": { + "version": "5.0.0", + "bundled": true, + "dev": true + }, + "gentle-fs": { + "version": "2.3.1", + "bundled": true, + "dev": true, + "requires": { + "aproba": "^1.1.2", + "chownr": "^1.1.2", + "cmd-shim": "^3.0.3", + "fs-vacuum": "^1.2.10", + "graceful-fs": "^4.1.11", + "iferr": "^0.1.5", + "infer-owner": "^1.0.4", + "mkdirp": "^0.5.1", + "path-is-inside": "^1.0.2", + "read-cmd-shim": "^1.0.1", + "slide": "^1.1.6" + }, + "dependencies": { + "aproba": { + "version": "1.2.0", + "bundled": true, + "dev": true + }, + "iferr": { + "version": "0.1.5", + "bundled": true, + "dev": true + } + } + }, + "get-caller-file": { + "version": "2.0.5", + "bundled": true, + "dev": true + }, + "get-stream": { + "version": "4.1.0", + "bundled": true, + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "getpass": { + "version": "0.1.7", + "bundled": true, + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "glob": { + "version": "7.2.3", + "bundled": true, + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "dependencies": { + "minimatch": { + "version": "3.1.2", + "bundled": true, + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "global-dirs": { + "version": "0.1.1", + "bundled": true, + "dev": true, + "requires": { + "ini": "^1.3.4" + } + }, + "got": { + "version": "6.7.1", + "bundled": true, + "dev": true, + "requires": { + "create-error-class": "^3.0.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "is-redirect": "^1.0.0", + "is-retry-allowed": "^1.0.0", + "is-stream": "^1.0.0", + "lowercase-keys": "^1.0.0", + "safe-buffer": "^5.0.1", + "timed-out": "^4.0.0", + "unzip-response": "^2.0.1", + "url-parse-lax": "^1.0.0" + }, + "dependencies": { + "get-stream": { + "version": "3.0.0", + "bundled": true, + "dev": true + } + } + }, + "graceful-fs": { + "version": "4.2.10", + "bundled": true, + "dev": true + }, + "har-schema": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "har-validator": { + "version": "5.1.5", + "bundled": true, + "dev": true, + "requires": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "bundled": true, + "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" + } + }, + "fast-deep-equal": { + "version": "3.1.3", + "bundled": true, + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "bundled": true, + "dev": true + } + } + }, + "has": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-flag": { + "version": "3.0.0", + "bundled": true, + "dev": true + }, + "has-symbols": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "dev": true + }, + "hosted-git-info": { + "version": "2.8.9", + "bundled": true, + "dev": true + }, + "http-cache-semantics": { + "version": "3.8.1", + "bundled": true, + "dev": true + }, + "http-proxy-agent": { + "version": "2.1.0", + "bundled": true, + "dev": true, + "requires": { + "agent-base": "4", + "debug": "3.1.0" + } + }, + "http-signature": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "https-proxy-agent": { + "version": "2.2.4", + "bundled": true, + "dev": true, + "requires": { + "agent-base": "^4.3.0", + "debug": "^3.1.0" + } + }, + "humanize-ms": { + "version": "1.2.1", + "bundled": true, + "dev": true, + "requires": { + "ms": "^2.0.0" + } + }, + "iconv-lite": { + "version": "0.4.23", + "bundled": true, + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "iferr": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "ignore-walk": { + "version": "3.0.3", + "bundled": true, + "dev": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "import-lazy": { + "version": "2.1.0", + "bundled": true, + "dev": true + }, + "imurmurhash": { + "version": "0.1.4", + "bundled": true, + "dev": true + }, + "infer-owner": { + "version": "1.0.4", + "bundled": true, + "dev": true + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "bundled": true, + "dev": true + }, + "ini": { + "version": "1.3.8", + "bundled": true, + "dev": true + }, + "init-package-json": { + "version": "1.10.3", + "bundled": true, + "dev": true, + "requires": { + "glob": "^7.1.1", + "npm-package-arg": "^4.0.0 || ^5.0.0 || ^6.0.0", + "promzard": "^0.3.0", + "read": "~1.0.1", + "read-package-json": "1 || 2", + "semver": "2.x || 3.x || 4 || 5", + "validate-npm-package-license": "^3.0.1", + "validate-npm-package-name": "^3.0.0" + } + }, + "ip": { + "version": "1.1.5", + "bundled": true, + "dev": true + }, + "ip-regex": { + "version": "2.1.0", + "bundled": true, + "dev": true + }, + "is-callable": { + "version": "1.1.4", + "bundled": true, + "dev": true + }, + "is-ci": { + "version": "1.2.1", + "bundled": true, + "dev": true, + "requires": { + "ci-info": "^1.5.0" + }, + "dependencies": { + "ci-info": { + "version": "1.6.0", + "bundled": true, + "dev": true + } + } + }, + "is-cidr": { + "version": "3.1.1", + "bundled": true, + "dev": true, + "requires": { + "cidr-regex": "^2.0.10" + } + }, + "is-date-object": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "is-installed-globally": { + "version": "0.1.0", + "bundled": true, + "dev": true, + "requires": { + "global-dirs": "^0.1.0", + "is-path-inside": "^1.0.0" + } + }, + "is-npm": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "is-obj": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "is-path-inside": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "requires": { + "path-is-inside": "^1.0.1" + } + }, + "is-redirect": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "is-regex": { + "version": "1.0.4", + "bundled": true, + "dev": true, + "requires": { + "has": "^1.0.1" + } + }, + "is-retry-allowed": { + "version": "1.2.0", + "bundled": true, + "dev": true + }, + "is-stream": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "is-symbol": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "has-symbols": "^1.0.0" + } + }, + "is-typedarray": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "isexe": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "isstream": { + "version": "0.1.2", + "bundled": true, + "dev": true + }, + "jsbn": { + "version": "0.1.1", + "bundled": true, + "dev": true + }, + "json-parse-better-errors": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "bundled": true, + "dev": true + }, + "json-schema": { + "version": "0.4.0", + "bundled": true, + "dev": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "bundled": true, + "dev": true + }, + "jsonparse": { + "version": "1.3.1", + "bundled": true, + "dev": true + }, + "JSONStream": { + "version": "1.3.5", + "bundled": true, + "dev": true, + "requires": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + } + }, + "jsprim": { + "version": "1.4.2", + "bundled": true, + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + } + }, + "latest-version": { + "version": "3.1.0", + "bundled": true, + "dev": true, + "requires": { + "package-json": "^4.0.0" + } + }, + "lazy-property": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "libcipm": { + "version": "4.0.8", + "bundled": true, + "dev": true, + "requires": { + "bin-links": "^1.1.2", + "bluebird": "^3.5.1", + "figgy-pudding": "^3.5.1", + "find-npm-prefix": "^1.0.2", + "graceful-fs": "^4.1.11", + "ini": "^1.3.5", + "lock-verify": "^2.1.0", + "mkdirp": "^0.5.1", + "npm-lifecycle": "^3.0.0", + "npm-logical-tree": "^1.2.1", + "npm-package-arg": "^6.1.0", + "pacote": "^9.1.0", + "read-package-json": "^2.0.13", + "rimraf": "^2.6.2", + "worker-farm": "^1.6.0" + } + }, + "libnpm": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "requires": { + "bin-links": "^1.1.2", + "bluebird": "^3.5.3", + "find-npm-prefix": "^1.0.2", + "libnpmaccess": "^3.0.2", + "libnpmconfig": "^1.2.1", + "libnpmhook": "^5.0.3", + "libnpmorg": "^1.0.1", + "libnpmpublish": "^1.1.2", + "libnpmsearch": "^2.0.2", + "libnpmteam": "^1.0.2", + "lock-verify": "^2.0.2", + "npm-lifecycle": "^3.0.0", + "npm-logical-tree": "^1.2.1", + "npm-package-arg": "^6.1.0", + "npm-profile": "^4.0.2", + "npm-registry-fetch": "^4.0.0", + "npmlog": "^4.1.2", + "pacote": "^9.5.3", + "read-package-json": "^2.0.13", + "stringify-package": "^1.0.0" + } + }, + "libnpmaccess": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "requires": { + "aproba": "^2.0.0", + "get-stream": "^4.0.0", + "npm-package-arg": "^6.1.0", + "npm-registry-fetch": "^4.0.0" + } + }, + "libnpmconfig": { + "version": "1.2.1", + "bundled": true, + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1", + "find-up": "^3.0.0", + "ini": "^1.3.5" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.2.0", + "bundled": true, + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "bundled": true, + "dev": true + } + } + }, + "libnpmhook": { + "version": "5.0.3", + "bundled": true, + "dev": true, + "requires": { + "aproba": "^2.0.0", + "figgy-pudding": "^3.4.1", + "get-stream": "^4.0.0", + "npm-registry-fetch": "^4.0.0" + } + }, + "libnpmorg": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "requires": { + "aproba": "^2.0.0", + "figgy-pudding": "^3.4.1", + "get-stream": "^4.0.0", + "npm-registry-fetch": "^4.0.0" + } + }, + "libnpmpublish": { + "version": "1.1.2", + "bundled": true, + "dev": true, + "requires": { + "aproba": "^2.0.0", + "figgy-pudding": "^3.5.1", + "get-stream": "^4.0.0", + "lodash.clonedeep": "^4.5.0", + "normalize-package-data": "^2.4.0", + "npm-package-arg": "^6.1.0", + "npm-registry-fetch": "^4.0.0", + "semver": "^5.5.1", + "ssri": "^6.0.1" + } + }, + "libnpmsearch": { + "version": "2.0.2", + "bundled": true, + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1", + "get-stream": "^4.0.0", + "npm-registry-fetch": "^4.0.0" + } + }, + "libnpmteam": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "aproba": "^2.0.0", + "figgy-pudding": "^3.4.1", + "get-stream": "^4.0.0", + "npm-registry-fetch": "^4.0.0" + } + }, + "libnpx": { + "version": "10.2.4", + "bundled": true, + "dev": true, + "requires": { + "dotenv": "^5.0.1", + "npm-package-arg": "^6.0.0", + "rimraf": "^2.6.2", + "safe-buffer": "^5.1.0", + "update-notifier": "^2.3.0", + "which": "^1.3.0", + "y18n": "^4.0.0", + "yargs": "^14.2.3" + } + }, + "lock-verify": { + "version": "2.2.2", + "bundled": true, + "dev": true, + "requires": { + "@iarna/cli": "^2.1.0", + "npm-package-arg": "^6.1.0", + "semver": "^5.4.1" + } + }, + "lockfile": { + "version": "1.0.4", + "bundled": true, + "dev": true, + "requires": { + "signal-exit": "^3.0.2" + } + }, + "lodash._baseindexof": { + "version": "3.1.0", + "bundled": true, + "dev": true + }, + "lodash._baseuniq": { + "version": "4.6.0", + "bundled": true, + "dev": true, + "requires": { + "lodash._createset": "~4.0.0", + "lodash._root": "~3.0.0" + } + }, + "lodash._bindcallback": { + "version": "3.0.1", + "bundled": true, + "dev": true + }, + "lodash._cacheindexof": { + "version": "3.0.2", + "bundled": true, + "dev": true + }, + "lodash._createcache": { + "version": "3.1.2", + "bundled": true, + "dev": true, + "requires": { + "lodash._getnative": "^3.0.0" + } + }, + "lodash._createset": { + "version": "4.0.3", + "bundled": true, + "dev": true + }, + "lodash._getnative": { + "version": "3.9.1", + "bundled": true, + "dev": true + }, + "lodash._root": { + "version": "3.0.1", + "bundled": true, + "dev": true + }, + "lodash.clonedeep": { + "version": "4.5.0", + "bundled": true, + "dev": true + }, + "lodash.restparam": { + "version": "3.6.1", + "bundled": true, + "dev": true + }, + "lodash.union": { + "version": "4.6.0", + "bundled": true, + "dev": true + }, + "lodash.uniq": { + "version": "4.5.0", + "bundled": true, + "dev": true + }, + "lodash.without": { + "version": "4.4.0", + "bundled": true, + "dev": true + }, + "lowercase-keys": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "lru-cache": { + "version": "5.1.1", + "bundled": true, + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "make-dir": { + "version": "1.3.0", + "bundled": true, + "dev": true, + "requires": { + "pify": "^3.0.0" + } + }, + "make-fetch-happen": { + "version": "5.0.2", + "bundled": true, + "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" + } + }, + "meant": { + "version": "1.0.3", + "bundled": true, + "dev": true + }, + "mime-db": { + "version": "1.35.0", + "bundled": true, + "dev": true + }, + "mime-types": { + "version": "2.1.19", + "bundled": true, + "dev": true, + "requires": { + "mime-db": "~1.35.0" + } + }, + "minimatch": { + "version": "3.1.2", + "bundled": true, + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.6", + "bundled": true, + "dev": true + }, + "minizlib": { + "version": "1.3.3", + "bundled": true, + "dev": true, + "requires": { + "minipass": "^2.9.0" + }, + "dependencies": { + "minipass": { + "version": "2.9.0", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + } + } + }, + "mississippi": { + "version": "3.0.0", + "bundled": true, + "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" + } + }, + "mkdirp": { + "version": "0.5.6", + "bundled": true, + "dev": true, + "requires": { + "minimist": "^1.2.6" + } + }, + "move-concurrently": { + "version": "1.0.1", + "bundled": true, + "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": { + "aproba": { + "version": "1.2.0", + "bundled": true, + "dev": true + } + } + }, + "ms": { + "version": "2.1.1", + "bundled": true, + "dev": true + }, + "mute-stream": { + "version": "0.0.7", + "bundled": true, + "dev": true + }, + "node-fetch-npm": { + "version": "2.0.2", + "bundled": true, + "dev": true, + "requires": { + "encoding": "^0.1.11", + "json-parse-better-errors": "^1.0.0", + "safe-buffer": "^5.1.1" + } + }, + "node-gyp": { + "version": "5.1.1", + "bundled": true, + "dev": true, + "requires": { + "env-paths": "^2.2.0", + "glob": "^7.1.4", + "graceful-fs": "^4.2.2", + "mkdirp": "^0.5.1", + "nopt": "^4.0.1", + "npmlog": "^4.1.2", + "request": "^2.88.0", + "rimraf": "^2.6.3", + "semver": "^5.7.1", + "tar": "^4.4.12", + "which": "^1.3.1" + } + }, + "nopt": { + "version": "4.0.3", + "bundled": true, + "dev": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "normalize-package-data": { + "version": "2.5.0", + "bundled": true, + "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": { + "resolve": { + "version": "1.10.0", + "bundled": true, + "dev": true, + "requires": { + "path-parse": "^1.0.6" + } + } + } + }, + "npm-audit-report": { + "version": "1.3.3", + "bundled": true, + "dev": true, + "requires": { + "cli-table3": "^0.5.0", + "console-control-strings": "^1.1.0" + } + }, + "npm-bundled": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "requires": { + "npm-normalize-package-bin": "^1.0.1" + } + }, + "npm-cache-filename": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "npm-install-checks": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "requires": { + "semver": "^2.3.0 || 3.x || 4 || 5" + } + }, + "npm-lifecycle": { + "version": "3.1.5", + "bundled": true, + "dev": true, + "requires": { + "byline": "^5.0.0", + "graceful-fs": "^4.1.15", + "node-gyp": "^5.0.2", + "resolve-from": "^4.0.0", + "slide": "^1.1.6", + "uid-number": "0.0.6", + "umask": "^1.1.0", + "which": "^1.3.1" + } + }, + "npm-logical-tree": { + "version": "1.2.1", + "bundled": true, + "dev": true + }, + "npm-normalize-package-bin": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "npm-package-arg": { + "version": "6.1.1", + "bundled": true, + "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-packlist": { + "version": "1.4.8", + "bundled": true, + "dev": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1", + "npm-normalize-package-bin": "^1.0.1" + } + }, + "npm-pick-manifest": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1", + "npm-package-arg": "^6.0.0", + "semver": "^5.4.1" + } + }, + "npm-profile": { + "version": "4.0.4", + "bundled": true, + "dev": true, + "requires": { + "aproba": "^1.1.2 || 2", + "figgy-pudding": "^3.4.1", + "npm-registry-fetch": "^4.0.0" + } + }, + "npm-registry-fetch": { + "version": "4.0.7", + "bundled": true, + "dev": true, + "requires": { + "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" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.1", + "bundled": true, + "dev": true + } + } + }, + "npm-run-path": { + "version": "2.0.2", + "bundled": true, + "dev": true, + "requires": { + "path-key": "^2.0.0" + } + }, + "npm-user-validate": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "dev": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "oauth-sign": { + "version": "0.9.0", + "bundled": true, + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "dev": true + }, + "object-keys": { + "version": "1.0.12", + "bundled": true, + "dev": true + }, + "object.getownpropertydescriptors": { + "version": "2.0.3", + "bundled": true, + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "es-abstract": "^1.5.1" + } + }, + "once": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "opener": { + "version": "1.5.2", + "bundled": true, + "dev": true + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "osenv": { + "version": "0.1.5", + "bundled": true, + "dev": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "p-finally": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "package-json": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "requires": { + "got": "^6.7.1", + "registry-auth-token": "^3.0.1", + "registry-url": "^3.0.3", + "semver": "^5.1.0" + } + }, + "pacote": { + "version": "9.5.12", + "bundled": true, + "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": { + "minipass": { + "version": "2.9.0", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + } + } + }, + "parallel-transform": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "requires": { + "cyclist": "~0.2.2", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "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" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "dev": true + } + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "dev": true + } + } + } + } + }, + "path-exists": { + "version": "3.0.0", + "bundled": true, + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "path-is-inside": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "path-key": { + "version": "2.0.1", + "bundled": true, + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "bundled": true, + "dev": true + }, + "performance-now": { + "version": "2.1.0", + "bundled": true, + "dev": true + }, + "pify": { + "version": "3.0.0", + "bundled": true, + "dev": true + }, + "prepend-http": { + "version": "1.0.4", + "bundled": true, + "dev": true + }, + "process-nextick-args": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "promise-inflight": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "promise-retry": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "requires": { + "err-code": "^1.0.0", + "retry": "^0.10.0" + }, + "dependencies": { + "retry": { + "version": "0.10.1", + "bundled": true, + "dev": true + } + } + }, + "promzard": { + "version": "0.3.0", + "bundled": true, + "dev": true, + "requires": { + "read": "1" + } + }, + "proto-list": { + "version": "1.2.4", + "bundled": true, + "dev": true + }, + "protoduck": { + "version": "5.0.1", + "bundled": true, + "dev": true, + "requires": { + "genfun": "^5.0.0" + } + }, + "prr": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "pseudomap": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "psl": { + "version": "1.9.0", + "bundled": true, + "dev": true + }, + "pump": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "pumpify": { + "version": "1.5.1", + "bundled": true, + "dev": true, + "requires": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + }, + "dependencies": { + "pump": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + } + } + }, + "punycode": { + "version": "1.4.1", + "dev": true + }, + "qrcode-terminal": { + "version": "0.12.0", + "bundled": true, + "dev": true + }, + "qs": { + "version": "6.5.3", + "bundled": true, + "dev": true + }, + "query-string": { + "version": "6.14.1", + "bundled": true, + "dev": true, + "requires": { + "decode-uri-component": "^0.2.0", + "filter-obj": "^1.1.0", + "split-on-first": "^1.0.0", + "strict-uri-encode": "^2.0.0" + } + }, + "qw": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "rc": { + "version": "1.2.8", + "bundled": true, + "dev": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + } + }, + "read": { + "version": "1.0.7", + "bundled": true, + "dev": true, + "requires": { + "mute-stream": "~0.0.4" + } + }, + "read-cmd-shim": { + "version": "1.0.5", + "bundled": true, + "dev": true, + "requires": { + "graceful-fs": "^4.1.2" + } + }, + "read-installed": { + "version": "4.0.3", + "bundled": true, + "dev": true, + "requires": { + "debuglog": "^1.0.1", + "graceful-fs": "^4.1.2", + "read-package-json": "^2.0.0", + "readdir-scoped-modules": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "slide": "~1.1.3", + "util-extend": "^1.0.1" + } + }, + "read-package-json": { + "version": "2.1.2", + "bundled": true, + "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", + "bundled": true, + "dev": true, + "requires": { + "read-package-json": "^2.0.0", + "readdir-scoped-modules": "^1.0.0", + "util-promisify": "^2.1.0" + } + }, + "readable-stream": { + "version": "3.6.0", + "bundled": true, + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "readdir-scoped-modules": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "requires": { + "debuglog": "^1.0.1", + "dezalgo": "^1.0.0", + "graceful-fs": "^4.1.2", + "once": "^1.3.0" + } + }, + "registry-auth-token": { + "version": "3.4.0", + "bundled": true, + "dev": true, + "requires": { + "rc": "^1.1.6", + "safe-buffer": "^5.0.1" + } + }, + "registry-url": { + "version": "3.1.0", + "bundled": true, + "dev": true, + "requires": { + "rc": "^1.0.1" + } + }, + "request": { + "version": "2.88.2", + "bundled": true, + "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" + } + }, + "require-directory": { + "version": "2.1.1", + "bundled": true, + "dev": true + }, + "require-main-filename": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "resolve-from": { + "version": "4.0.0", + "bundled": true, + "dev": true + }, + "retry": { + "version": "0.12.0", + "bundled": true, + "dev": true + }, + "rimraf": { + "version": "2.7.1", + "bundled": true, + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "run-queue": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "requires": { + "aproba": "^1.1.1" + }, + "dependencies": { + "aproba": { + "version": "1.2.0", + "bundled": true, + "dev": true + } + } + }, + "safe-buffer": { + "version": "5.2.1", + "bundled": true, + "dev": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true, + "dev": true + }, + "semver": { + "version": "5.7.1", + "bundled": true, + "dev": true + }, + "semver-diff": { + "version": "2.1.0", + "bundled": true, + "dev": true, + "requires": { + "semver": "^5.0.3" + } + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "sha": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "graceful-fs": "^4.1.2" + } + }, + "shebang-command": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "dev": true + }, + "slide": { + "version": "1.1.6", + "bundled": true, + "dev": true + }, + "smart-buffer": { + "version": "4.1.0", + "bundled": true, + "dev": true + }, + "socks": { + "version": "2.3.3", + "bundled": true, + "dev": true, + "requires": { + "ip": "1.1.5", + "smart-buffer": "^4.1.0" + } + }, + "socks-proxy-agent": { + "version": "4.0.2", + "bundled": true, + "dev": true, + "requires": { + "agent-base": "~4.2.1", + "socks": "~2.3.2" + }, + "dependencies": { + "agent-base": { + "version": "4.2.1", + "bundled": true, + "dev": true, + "requires": { + "es6-promisify": "^5.0.0" + } + } + } + }, + "sorted-object": { + "version": "2.0.1", + "bundled": true, + "dev": true + }, + "sorted-union-stream": { + "version": "2.1.3", + "bundled": true, + "dev": true, + "requires": { + "from2": "^1.3.0", + "stream-iterate": "^1.1.0" + }, + "dependencies": { + "from2": { + "version": "1.3.0", + "bundled": true, + "dev": true, + "requires": { + "inherits": "~2.0.1", + "readable-stream": "~1.1.10" + } + }, + "isarray": { + "version": "0.0.1", + "bundled": true, + "dev": true + }, + "readable-stream": { + "version": "1.1.14", + "bundled": true, + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "bundled": true, + "dev": true + } + } + }, + "spdx-correct": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.1.0", + "bundled": true, + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.5", + "bundled": true, + "dev": true + }, + "split-on-first": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "sshpk": { + "version": "1.17.0", + "bundled": true, + "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": "6.0.2", + "bundled": true, + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1" + } + }, + "stream-each": { + "version": "1.2.2", + "bundled": true, + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" + } + }, + "stream-iterate": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "requires": { + "readable-stream": "^2.1.5", + "stream-shift": "^1.0.0" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "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" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "dev": true + } + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "dev": true + } + } + } + } + }, + "stream-shift": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "strict-uri-encode": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "string_decoder": { + "version": "1.3.0", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "~5.2.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.0", + "bundled": true, + "dev": true + } + } + }, + "string-width": { + "version": "2.1.1", + "bundled": true, + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "bundled": true, + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "stringify-package": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-eof": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "dev": true + }, + "supports-color": { + "version": "5.4.0", + "bundled": true, + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "tar": { + "version": "4.4.19", + "bundled": true, + "dev": true, + "requires": { + "chownr": "^1.1.4", + "fs-minipass": "^1.2.7", + "minipass": "^2.9.0", + "minizlib": "^1.3.3", + "mkdirp": "^0.5.5", + "safe-buffer": "^5.2.1", + "yallist": "^3.1.1" + }, + "dependencies": { + "minipass": { + "version": "2.9.0", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "safe-buffer": { + "version": "5.2.1", + "bundled": true, + "dev": true + }, + "yallist": { + "version": "3.1.1", + "bundled": true, + "dev": true + } + } + }, + "term-size": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "requires": { + "execa": "^0.7.0" + } + }, + "text-table": { + "version": "0.2.0", + "bundled": true, + "dev": true + }, + "through": { + "version": "2.3.8", + "bundled": true, + "dev": true + }, + "through2": { + "version": "2.0.3", + "bundled": true, + "dev": true, + "requires": { + "readable-stream": "^2.1.5", + "xtend": "~4.0.1" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "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" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "dev": true + } + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "dev": true + } + } + } + } + }, + "timed-out": { + "version": "4.0.1", + "bundled": true, + "dev": true + }, + "tiny-relative-date": { + "version": "1.3.0", + "bundled": true, + "dev": true + }, + "tough-cookie": { + "version": "2.5.0", + "bundled": true, + "dev": true, + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, + "dependencies": { + "punycode": { + "version": "2.1.1", + "bundled": true, + "dev": true + } + } + }, + "tunnel-agent": { + "version": "0.6.0", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "bundled": true, + "dev": true + }, + "typedarray": { + "version": "0.0.6", + "bundled": true, + "dev": true + }, + "uid-number": { + "version": "0.0.6", + "bundled": true, + "dev": true + }, + "umask": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "unique-filename": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "requires": { + "unique-slug": "^2.0.0" + } + }, + "unique-slug": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "requires": { + "imurmurhash": "^0.1.4" + } + }, + "unique-string": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "crypto-random-string": "^1.0.0" + } + }, + "unpipe": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "unzip-response": { + "version": "2.0.1", + "bundled": true, + "dev": true + }, + "update-notifier": { + "version": "2.5.0", + "bundled": true, + "dev": true, + "requires": { + "boxen": "^1.2.1", + "chalk": "^2.0.1", + "configstore": "^3.0.0", + "import-lazy": "^2.1.0", + "is-ci": "^1.0.10", + "is-installed-globally": "^0.1.0", + "is-npm": "^1.0.0", + "latest-version": "^3.0.0", + "semver-diff": "^2.0.0", + "xdg-basedir": "^3.0.0" + } + }, + "uri-js": { + "version": "4.4.1", + "bundled": true, + "dev": true, + "requires": { + "punycode": "^2.1.0" + }, + "dependencies": { + "punycode": { + "version": "2.1.1", + "bundled": true, + "dev": true + } + } + }, + "url-parse-lax": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "prepend-http": "^1.0.1" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "util-extend": { + "version": "1.0.3", + "bundled": true, + "dev": true + }, + "util-promisify": { + "version": "2.1.0", + "bundled": true, + "dev": true, + "requires": { + "object.getownpropertydescriptors": "^2.0.3" + } + }, + "uuid": { + "version": "3.4.0", + "bundled": true, + "dev": true + }, + "validate-npm-package-license": { + "version": "3.0.4", + "bundled": true, + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "validate-npm-package-name": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "builtins": "^1.0.3" + } + }, + "verror": { + "version": "1.10.0", + "bundled": true, + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "wcwidth": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "requires": { + "defaults": "^1.0.3" + } + }, + "which": { + "version": "1.3.1", + "bundled": true, + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "wide-align": { + "version": "1.1.2", + "bundled": true, + "dev": true, + "requires": { + "string-width": "^1.0.2" + }, + "dependencies": { + "string-width": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + } + } + }, + "widest-line": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "string-width": "^2.1.1" + } + }, + "worker-farm": { + "version": "1.7.0", + "bundled": true, + "dev": true, + "requires": { + "errno": "~0.1.7" + } + }, + "wrap-ansi": { + "version": "5.1.0", + "bundled": true, + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.1", + "bundled": true, + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "string-width": { + "version": "3.1.0", + "bundled": true, + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "write-file-atomic": { + "version": "2.4.3", + "bundled": true, + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" + } + }, + "xdg-basedir": { + "version": "3.0.0", + "bundled": true, + "dev": true + }, + "xtend": { + "version": "4.0.1", + "bundled": true, + "dev": true + }, + "y18n": { + "version": "4.0.1", + "bundled": true, + "dev": true + }, + "yallist": { + "version": "3.0.3", + "bundled": true, + "dev": true + }, + "yargs": { + "version": "14.2.3", + "bundled": true, + "dev": true, + "requires": { + "cliui": "^5.0.0", + "decamelize": "^1.2.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": "^15.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "bundled": true, + "dev": true + }, + "find-up": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "bundled": true, + "dev": true + }, + "locate-path": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.3.0", + "bundled": true, + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "bundled": true, + "dev": true + }, + "string-width": { + "version": "3.1.0", + "bundled": true, + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "yargs-parser": { + "version": "15.0.1", + "bundled": true, + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "bundled": true, + "dev": true + } + } + } + } + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "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-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==", + "dev": true, + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "object-inspect": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", + "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", + "dev": true + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "object-path": { + "version": "0.11.8", + "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.11.8.tgz", + "integrity": "sha512-YJjNZrlXJFM42wTBn6zgOJVar9KFJvzx6sTWDte8sWZF//cnjl0BxHNpfZx+ZffXX63A9q0b1zsFiBX4g4X5KA==", + "dev": true + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==", + "dev": true, + "requires": { + "isobject": "^3.0.0" + } + }, + "object.assign": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + } + }, + "object.entries": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.3.tgz", + "integrity": "sha512-ym7h7OZebNS96hn5IJeyUmaWhaSM4SVtAPPfNLQEI2MYWCO2egsITb9nab2+i/Pwibx+R0mtn+ltKJXRSeTMGg==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1", + "has": "^1.0.3" + } + }, + "object.fromentries": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.4.tgz", + "integrity": "sha512-EsFBshs5RUUpQEY1D4q/m59kMfz4YJvxuNCJcv/jWwOJr34EaVnG11ZrZa0UHB3wnzV1wx8m58T4hQL8IuNXlQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.2", + "has": "^1.0.3" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "object.values": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.3.tgz", + "integrity": "sha512-nkF6PfDB9alkOUxpf1HNm/QlkeW3SReqL5WXeBLpEJJnlPSvRaDQpW3gQTksTN3fgJX4hL42RzKyOin6ff3tyw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.2", + "has": "^1.0.3" + } + }, + "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" + } + }, + "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" + } + }, + "only": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/only/-/only-0.0.2.tgz", + "integrity": "sha1-Kv3oTQPlC5qO3EROMGEKcCle37Q=", + "dev": true + }, + "open": { + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", + "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", + "dev": true, + "requires": { + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" + } + }, + "optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "requires": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + } + }, + "os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==", + "dev": true + }, + "p-defer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-3.0.0.tgz", + "integrity": "sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw==", + "dev": true + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "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" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "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" + } + }, + "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" + } + } + } + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, + "parse-asn1": { + "version": "5.1.7", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.7.tgz", + "integrity": "sha512-CTM5kuWR3sx9IFamcl5ErfPl6ea/N8IYwiJ+vpeB2g+1iknv7zBl5uPwbMbRVznRVbrNY6lGuDoE5b30grmbqg==", + "dev": true, + "requires": { + "asn1.js": "^4.10.1", + "browserify-aes": "^1.2.0", + "evp_bytestokey": "^1.0.3", + "hash-base": "~3.0", + "pbkdf2": "^3.1.2", + "safe-buffer": "^5.2.1" + }, + "dependencies": { + "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 + } + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "requires": { + "error-ex": "^1.2.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": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==", + "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": "sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==", + "dev": true, + "optional": 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-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "path-to-regexp": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.9.0.tgz", + "integrity": "sha512-xIp7/apCFJuUHdDLWe8O1HIkb0kQrOMb/0u6FXQjemHn/ii5LrIzU6bdECnsiTF/GjZkMEKg1xdiZwNqDYlZ6g==", + "dev": true, + "requires": { + "isarray": "0.0.1" + } + }, + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "dev": true, + "requires": { + "pify": "^2.0.0" + } + }, + "pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "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" + } + }, + "picocolors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz", + "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==", + "dev": true + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "pkg-conf": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-3.1.0.tgz", + "integrity": "sha512-m0OTbR/5VPNPqO1ph6Fqbj7Hv6QU7gR/tQW40ZqrL1rjgCU85W6C1bJn0BItuJqnR98PWzw7Z8hHeChD1WrgdQ==", + "dev": true, + "requires": { + "find-up": "^3.0.0", + "load-json-file": "^5.2.0" + }, + "dependencies": { + "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" + } + }, + "load-json-file": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-5.3.0.tgz", + "integrity": "sha512-cJGP40Jc/VXUsp8/OrnyKyTZ1y6v/dphm3bioS+RrKXjK2BB6wHUd6JptZEFDGgGahMT+InnZO5i1Ei9mpC8Bw==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.15", + "parse-json": "^4.0.0", + "pify": "^4.0.1", + "strip-bom": "^3.0.0", + "type-fest": "^0.3.0" + } + }, + "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" + } + }, + "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-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 + }, + "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" + } + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + }, + "type-fest": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", + "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==", + "dev": true + } + } + }, + "pkg-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "dev": true, + "requires": { + "find-up": "^2.1.0" + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==", + "dev": true + }, + "postcss": { + "version": "8.4.47", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz", + "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==", + "dev": true, + "requires": { + "nanoid": "^3.3.7", + "picocolors": "^1.1.0", + "source-map-js": "^1.2.1" + } + }, + "postcss-modules-extract-imports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", + "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", + "dev": true, + "requires": {} + }, + "postcss-modules-local-by-default": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", + "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", + "dev": true, + "requires": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-modules-scope": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", + "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", + "dev": true, + "requires": { + "postcss-selector-parser": "^6.0.4" + } + }, + "postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "dev": true, + "requires": { + "icss-utils": "^5.0.0" + } + }, + "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-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 + }, + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "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 + }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true + }, + "promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", + "dev": true + }, + "prop-types": { + "version": "15.7.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", + "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", + "dev": true, + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.8.1" + } + }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", + "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.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "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 + }, + "qs": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "dev": true, + "requires": { + "side-channel": "^1.0.6" + } + }, + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==", + "dev": true + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true + }, + "ramda": { + "version": "0.27.1", + "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.27.1.tgz", + "integrity": "sha512-PgIdVpn5y5Yns8vqb8FzBUEYn98V3xcPgawAkkgj0YJ0qDsnHCiNmZYfOGMgOvoB0eWFLpYbhxUR3mxfDIMvpw==" + }, + "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" + } + }, + "react": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", + "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", + "dev": true, + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "react-docgen": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/react-docgen/-/react-docgen-5.3.1.tgz", + "integrity": "sha512-YG7YujVTwlLslr2Ny8nQiUfbBuEwKsLHJdQTSdEga1eY/nRFh/7LjCWUn6ogYhu2WDKg4z+6W/BJtUi+DPUIlA==", + "dev": true, + "requires": { + "@babel/core": "^7.7.5", + "@babel/runtime": "^7.7.6", + "ast-types": "^0.14.2", + "commander": "^2.19.0", + "doctrine": "^3.0.0", + "neo-async": "^2.6.1", + "node-dir": "^0.1.10", + "strip-indent": "^3.0.0" + } + }, + "react-dom": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", + "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", + "dev": true, + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "scheduler": "^0.20.2" + } + }, + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "dev": true + }, + "read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "dev": true, + "requires": { + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" + } + }, + "read-pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "dev": true, + "requires": { + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" + } + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "optional": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "rechoir": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.0.tgz", + "integrity": "sha512-ADsDEH2bvbjltXEP+hTIAmeFekTFK0V2BTxMkok6qILyAJEXV0AFfoWcAq4yfll5VdIMd/RVXq0lR+wQi5ZU3Q==", + "dev": true, + "requires": { + "resolve": "^1.9.0" + } + }, + "regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "regenerate-unicode-properties": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", + "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", + "dev": true, + "requires": { + "regenerate": "^1.4.0" + } + }, + "regenerator-runtime": { + "version": "0.13.7", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", + "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==", + "dev": true + }, + "regenerator-transform": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", + "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", + "dev": true, + "requires": { + "@babel/runtime": "^7.8.4" + } + }, + "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" + }, + "dependencies": { + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "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" + } + } + } + }, + "regexp.prototype.flags": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz", + "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "regexpp": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", + "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", + "dev": true + }, + "regexpu-core": { + "version": "4.7.1", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.1.tgz", + "integrity": "sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ==", + "dev": true, + "requires": { + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^8.2.0", + "regjsgen": "^0.5.1", + "regjsparser": "^0.6.4", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.2.0" + } + }, + "regjsgen": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", + "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==", + "dev": true + }, + "regjsparser": { + "version": "0.6.9", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.9.tgz", + "integrity": "sha512-ZqbNRz1SNjLAiYuwY0zoXW8Ne675IX5q+YHioAGbCw4X96Mjl2+dcX9B2ciaeyYjViDAfvIjFpQjJgLttTEERQ==", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + } + } + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==", + "dev": true, + "optional": true + }, + "repeat-element": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", + "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", + "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-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "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.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "dev": true, + "requires": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + } + }, + "resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "requires": { + "resolve-from": "^5.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + } + } + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + }, + "resolve-path": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/resolve-path/-/resolve-path-1.4.0.tgz", + "integrity": "sha1-xL2p9e+y/OZSR4c6s2u02DT+Fvc=", + "dev": true, + "requires": { + "http-errors": "~1.6.2", + "path-is-absolute": "1.0.1" + }, + "dependencies": { + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "dev": true + }, + "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 + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + } + } + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==", + "dev": true + }, + "resumablejs": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/resumablejs/-/resumablejs-1.1.0.tgz", + "integrity": "sha512-gUTWTtJ2aheRb5svHDGHMtQsBkGxTILpZApT11ODoxEe5D75GhYL7Nc/WYgCcJXY+5RVmm2BEsp2qriCkKWRRg==" + }, + "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 + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "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" + } + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "run-queue": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", + "integrity": "sha512-ntymy489o0/QQplUDnpYAYUsO50K9SBrIVaKCWDOJzYJts0f9WH9RFJkyagebkw5+y1oi00R7ynNW/d12GBumg==", + "dev": true, + "requires": { + "aproba": "^1.1.1" + } + }, + "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": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", + "dev": true, + "requires": { + "ret": "~0.1.10" + } + }, + "scheduler": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", + "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", + "dev": true, + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "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" + } + }, + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "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" + } + }, + "set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "requires": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + } + }, + "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" + } + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", + "dev": true + }, + "setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "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" + } + }, + "shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "requires": { + "kind-of": "^6.0.2" + } + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "dev": true, + "requires": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + } + }, + "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 + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.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" + } + }, + "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 + } + } + }, + "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" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "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": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-descriptor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", + "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + } + } + } + }, + "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": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "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.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "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.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "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.1", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", + "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 + }, + "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" + }, + "dependencies": { + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "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" + } + } + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "ssri": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.2.tgz", + "integrity": "sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1" + } + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==", + "dev": true, + "requires": { + "define-property": "^0.2.5", + "object-copy": "^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" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "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" + } + }, + "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" + } + } + } + }, + "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" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "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" + } + }, + "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" + } + } + } + }, + "stream-shift": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz", + "integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==", + "dev": true + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + }, + "string-hash": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/string-hash/-/string-hash-1.1.3.tgz", + "integrity": "sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs=", + "dev": true + }, + "string-width": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", + "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "string.prototype.matchall": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.4.tgz", + "integrity": "sha512-pknFIWVachNcyqRfaQSeu/FUfpvJTe4uskUSZ9Wc1RijsPuzbZ8TyYT8WCNnntCjUEqQ3vUHMAfVj2+wLAisPQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.2", + "has-symbols": "^1.0.1", + "internal-slot": "^1.0.3", + "regexp.prototype.flags": "^1.3.1", + "side-channel": "^1.0.4" + } + }, + "string.prototype.trimend": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "string.prototype.trimstart": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "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" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true + }, + "strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "requires": { + "min-indent": "^1.0.0" + } + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true + }, + "style-loader": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-2.0.0.tgz", + "integrity": "sha512-Z0gYUJmzZ6ZdRUqpg1r8GsaFKypE+3xAzuFeMuoHgjc9KZv3wMyCRjQIWEbhoFSq7+7yoHXySDJyyWQaPajeiQ==", + "dev": true, + "requires": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "dependencies": { + "loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, + "schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "styled-jsx": { + "version": "3.4.7", + "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-3.4.7.tgz", + "integrity": "sha512-PkImcCsovR39byv4Tz83tAPsYs2CiTPOmDSplhe0lsIFVYJyd7rzJ7fbm41vSNsF/lnO+Ob5n/jgMookwY0pww==", + "dev": true, + "requires": { + "@babel/types": "7.8.3", + "babel-plugin-syntax-jsx": "6.18.0", + "convert-source-map": "1.7.0", + "loader-utils": "1.2.3", + "source-map": "0.7.3", + "string-hash": "1.1.3", + "stylis": "3.5.4", + "stylis-rule-sheet": "0.0.10" + }, + "dependencies": { + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "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.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "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" + } + }, + "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 + } + } + }, + "stylis": { + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-3.5.4.tgz", + "integrity": "sha512-8/3pSmthWM7lsPBKv7NXkzn2Uc9W7NotcwGNpJaa3k7WMM1XDCA4MgT5k/8BIexd5ydZdboXtU90XH9Ec4Bv/Q==", + "dev": true + }, + "stylis-rule-sheet": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stylis-rule-sheet/-/stylis-rule-sheet-0.0.10.tgz", + "integrity": "sha512-nTbZoaqoBnmK+ptANthb10ZRZOGC+EmTLLUxeYIuHNkEKcmKgXX1XWKkUBT2Ac4es3NybooPe0SmvKdhKJZAuw==", + "dev": true, + "requires": {} + }, + "superstruct": { + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-0.12.2.tgz", + "integrity": "sha512-yu+WNa/nSbFa+VBeR2KibfCeIQSKh/aD7G5eFD4Rx4W36MWE3G6SzU3BixDOArLv56u2bz6YEePsHSsioojuXw==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "table": { + "version": "6.0.9", + "resolved": "https://registry.npmjs.org/table/-/table-6.0.9.tgz", + "integrity": "sha512-F3cLs9a3hL1Z7N4+EkSscsel3z55XT950AvB05bwayrNg5T1/gykXtigioTAjbltvbMSJvvhFCbnf6mX+ntnJQ==", + "dev": true, + "requires": { + "ajv": "^8.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "lodash.clonedeep": "^4.5.0", + "lodash.flatten": "^4.4.0", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.0" + }, + "dependencies": { + "ajv": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.0.3.tgz", + "integrity": "sha512-Df6NAivu9KpZw+q8ySijAgLvr1mUA5ihkRvCLCxpdYR21ann5yIuN+PpFxmweSj7i3yjJ0x5LN5KVs0RRzskAQ==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "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 + }, + "terser": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.1.tgz", + "integrity": "sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==", + "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": "1.4.6", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.6.tgz", + "integrity": "sha512-2lBVf/VMVIddjSn3GqbT90GvIJ/eYXJkt8cTzU7NbjKqK8fwv18Ftr4PlbF46b/e88743iZFL5Dtr/rC4hjIeA==", + "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" + }, + "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" + } + }, + "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" + } + }, + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==", + "dev": true + }, + "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" + } + }, + "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" + } + }, + "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-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 + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + }, + "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" + } + }, + "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": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "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 + } + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "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" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "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" + } + }, + "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" + } + } + } + }, + "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" + } + }, + "to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA==", + "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": "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==", + "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": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "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" + }, + "dependencies": { + "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" + } + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "is-descriptor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", + "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + } + }, + "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" + } + } + } + }, + "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 + }, + "tsconfig-paths": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz", + "integrity": "sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw==", + "dev": true, + "requires": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.0", + "strip-bom": "^3.0.0" + }, + "dependencies": { + "json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + } + } + }, + "tslib": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", + "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==", + "dev": true + }, + "tsscmp": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz", + "integrity": "sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==", + "dev": true + }, + "tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha512-JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw==", + "dev": true + }, + "type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1" + } + }, + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "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": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "dev": true + }, + "unbox-primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", + "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has-bigints": "^1.0.1", + "has-symbols": "^1.0.2", + "which-boxed-primitive": "^1.0.2" + } + }, + "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 + }, + "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" + } + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==", + "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": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==", + "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": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", + "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": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + } + } + }, + "untildify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", + "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", + "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, + "optional": true + }, + "update-browserslist-db": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", + "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", + "dev": true, + "requires": { + "escalade": "^3.2.0", + "picocolors": "^1.1.0" + } + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==", + "dev": true + }, + "url": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.4.tgz", + "integrity": "sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg==", + "dev": true, + "requires": { + "punycode": "^1.4.1", + "qs": "^6.12.3" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", + "dev": true + } + } + }, + "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": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "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 + }, + "v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "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" + } + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "dev": true + }, + "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 + }, + "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": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", + "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" + } + }, + "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" + } + }, + "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, + "optional": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", + "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" + } + }, + "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": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==", + "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": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", + "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": "sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==", + "dev": true, + "optional": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-descriptor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", + "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", + "dev": true, + "optional": true, + "requires": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + } + }, + "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, + "optional": true, + "requires": { + "is-plain-object": "^2.0.4" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "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": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "optional": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "optional": true + }, + "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" + }, + "dependencies": { + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dev": true, + "optional": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + } + } + }, + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "optional": 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" + } + }, + "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" + } + }, + "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, + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", + "dev": true, + "optional": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, + "webpack": { + "version": "4.47.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.47.0.tgz", + "integrity": "sha512-td7fYwgLSrky3fI1EuU5cneU4+pbH6GgOfuKNS1tNPcfdGinGELAqsb/BP4nnvZyKSG2i/xFGU7+n2PvZA8HJQ==", + "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.5.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": { + "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 + }, + "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" + } + }, + "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" + } + }, + "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" + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + } + }, + "is-descriptor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", + "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + } + }, + "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" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "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": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "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" + }, + "dependencies": { + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + } + } + }, + "mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "requires": { + "minimist": "^1.2.6" + } + }, + "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" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, + "webpack-cli": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.6.0.tgz", + "integrity": "sha512-9YV+qTcGMjQFiY7Nb1kmnupvb1x40lfpj8pwdO/bom+sQiP4OBMKjHq29YQrlDWDPZO9r/qWaRRywKaRDKqBTA==", + "dev": true, + "requires": { + "@discoveryjs/json-ext": "^0.5.0", + "@webpack-cli/configtest": "^1.0.2", + "@webpack-cli/info": "^1.2.3", + "@webpack-cli/serve": "^1.3.1", + "colorette": "^1.2.1", + "commander": "^7.0.0", + "enquirer": "^2.3.6", + "execa": "^5.0.0", + "fastest-levenshtein": "^1.0.12", + "import-local": "^3.0.2", + "interpret": "^2.2.0", + "rechoir": "^0.7.0", + "v8-compile-cache": "^2.2.0", + "webpack-merge": "^5.7.3" + }, + "dependencies": { + "commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true + } + } + }, + "webpack-merge": { + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.7.3.tgz", + "integrity": "sha512-6/JUQv0ELQ1igjGDzHkXbVDRxkfA57Zw7PfiupdLFJYrgFqY5ZP8xxbpp2lU3EPwYx89ht5Z/aDkD40hFCm5AA==", + "dev": true, + "requires": { + "clone-deep": "^4.0.1", + "wildcard": "^2.0.0" + } + }, + "webpack-plugin-ramdisk": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/webpack-plugin-ramdisk/-/webpack-plugin-ramdisk-0.2.0.tgz", + "integrity": "sha512-I5OTfDuaQdiZQUm19Ok/8oCBmYCGqFu8e2sY6ytGT9xehZQJXB6cqdf+rHUr98gzwhcC2O96Wuhs6BQTmOy2hg==", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "execa": "^4.0.3", + "superstruct": "^0.12.1" + }, + "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.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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 + }, + "execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + } + }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "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 + }, + "human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", + "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" + } + } + } + }, + "webpack-plugin-serve": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/webpack-plugin-serve/-/webpack-plugin-serve-1.6.0.tgz", + "integrity": "sha512-0163GYEpDdRmd0D82XCeYalpSrRg9+oqEtoVUeCnn1o1lnGjqFoKdgSZBhXNOg2at52l4ESwLskPhPp3cHLAqA==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "connect-history-api-fallback": "^1.5.0", + "escalade": "^3.1.0", + "globby": "^11.0.0", + "http-proxy-middleware": "^1.0.3", + "is-path-cwd": "^2.2.0", + "is-promise": "^4.0.0", + "json-stringify-safe": "^5.0.1", + "koa": "^2.5.3", + "koa-compress": "^5.0.1", + "koa-connect": "^2.0.1", + "koa-route": "^3.2.0", + "koa-static": "^5.0.0", + "loglevelnext": "^4.0.1", + "nanoid": "^3.1.3", + "onetime": "^5.1.0", + "open": "^7.0.3", + "p-defer": "^3.0.0", + "rimraf": "^3.0.2", + "strip-ansi": "^6.0.0", + "superstruct": "^0.12.1", + "webpack-plugin-ramdisk": "^0.2.0", + "ws": "^7.5.3" + }, + "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" + } + } + } + }, + "webpack-serve": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/webpack-serve/-/webpack-serve-4.0.0.tgz", + "integrity": "sha512-SqyRP13y2S3Z5S5M5WGrK68wQ7ciqZrC6bk2R7NwK9Ebbsg8ltlgqh+ikfA2EBLRtxBeQxDsQIu33DcXk0Tyjw==", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "decamelize": "^5.0.0", + "import-local": "^3.0.1", + "is-plain-obj": "^3.0.0", + "object-path": "^0.11.5", + "pkg-conf": "^3.0.0", + "rechoir": "^0.7.0", + "v8-compile-cache": "^2.0.2", + "webpack-plugin-serve": "^1.4.1", + "yargs-parser": "^20.2.7" + }, + "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" + } + } + } + }, + "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 + } + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, + "wildcard": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", + "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", + "dev": true + }, + "word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "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" + } + }, + "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" + }, + "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" + } + }, + "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 + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "ws": { + "version": "7.5.10", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "dev": true, + "requires": {} + }, + "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": "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.7", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.7.tgz", + "integrity": "sha512-FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw==", + "dev": true + }, + "ylru": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ylru/-/ylru-1.2.1.tgz", + "integrity": "sha512-faQrqNMzcPCHGVC2aaOINk13K+aaBDUPjGWl0teOXywElLjyVAB6Oe2jj62jHYtwsU49jXhScYbvPENK+6zAvQ==", + "dev": true + } + } +} diff --git a/components/dash-uploader/package.json b/components/dash-uploader/package.json new file mode 100644 index 0000000000..33120b626a --- /dev/null +++ b/components/dash-uploader/package.json @@ -0,0 +1,60 @@ +{ + "name": "dash_uploader", + "version": "0.6.1", + "description": "Upload large files using resumable.js", + "repository": { + "type": "git", + "url": "git://github.com/np-8/dash-uploader.git" + }, + "bugs": { + "url": "https://github.com/np-8/dash-uploader/issues" + }, + "homepage": "https://github.com/np-8/dash-uploader", + "main": "build/index.js", + "scripts": { + "start": "webpack-serve --config ./webpack.serve.config.js --open --host 127.0.0.1", + "validate-init": "python _validate_init.py", + "prepublishOnly": "npm run validate-init", + "build:js": "webpack --mode production", + "build:py": "dash-generate-components ./src/lib/components dash_uploader -p package-info.json ", + "build:py-activated": "(. venv/bin/activate || venv\\scripts\\activate && npm run build:py)", + "build": "npm run build:js && npm run build:py && python ./devscripts/post_build.py", + "build:activated": "npm run build:js && npm run build:py-activated" + }, + "author": "Niko Pasanen ", + "license": "MIT", + "dependencies": { + "lodash": ">=4.17.21", + "ramda": "^0.27.1", + "resumablejs": "^1.1.0" + }, + "devDependencies": { + "@babel/core": "^7.13.14", + "@babel/plugin-proposal-class-properties": "^7.13.0", + "@babel/plugin-proposal-object-rest-spread": "^7.13.8", + "@babel/preset-env": "^7.13.12", + "@babel/preset-react": "^7.13.13", + "babel-eslint": "^10.0.2", + "babel-loader": "^8.2.2", + "copyfiles": "^2.4.1", + "css-loader": "^5.2.0", + "eslint": "^7.23.0", + "eslint-config-prettier": "^8.1.0", + "eslint-plugin-import": "^2.22.1", + "eslint-plugin-react": "^7.23.1", + "npm": "^6.14.15", + "prop-types": "^15.7.2", + "react": "^17.0.2", + "react-docgen": "^5.3.1", + "react-dom": "^17.0.2", + "style-loader": "^2.0.0", + "styled-jsx": "^3.4.4", + "webpack": "^4.29.0", + "webpack-cli": "4.6.0", + "webpack-serve": "4.0.0" + }, + "engines": { + "node": ">=8.11.0", + "npm": ">=6.1.0" + } +} diff --git a/components/dash-uploader/pytest.ini b/components/dash-uploader/pytest.ini new file mode 100644 index 0000000000..b6302a609c --- /dev/null +++ b/components/dash-uploader/pytest.ini @@ -0,0 +1,5 @@ +[pytest] +testpaths = tests/ +addopts = -rsxX -vv +log_format = %(asctime)s | %(levelname)s | %(name)s:%(lineno)d | %(message)s +log_cli_level = ERROR diff --git a/components/dash-uploader/requirements.txt b/components/dash-uploader/requirements.txt new file mode 100644 index 0000000000..9889761e84 --- /dev/null +++ b/components/dash-uploader/requirements.txt @@ -0,0 +1,2 @@ +# dash is required to call `build:py` +dash[dev]>=1.3.1 diff --git a/components/dash-uploader/setup.py b/components/dash-uploader/setup.py new file mode 100644 index 0000000000..c41b729049 --- /dev/null +++ b/components/dash-uploader/setup.py @@ -0,0 +1,38 @@ +import json +from setuptools import setup + +with open("package.json") as f: + package = json.load(f) + +with open("docs/README-PyPi.md", encoding="utf-8") as f: + long_description = f.read() + +package_name = package["name"].replace(" ", "_").replace("-", "_") + +setup( + name=package_name, + version=package["version"], + author=package["author"], + author_email="niko@pasanen.me", + url=package["homepage"], + packages=[ + package_name, + package_name + "._build", + ], + include_package_data=True, + license=package["license"], + description=package.get("description", package_name), + long_description=long_description, + long_description_content_type="text/markdown", + install_requires=[ + "dash>=1.1.0", + ], + extras_require={ + "dev": [ + "pyyaml~=5.3.1", # building with dash-generate-components + ] + }, + classifiers=[ + "Framework :: Dash", + ], +) diff --git a/components/dash-uploader/src/demo/App.js b/components/dash-uploader/src/demo/App.js new file mode 100644 index 0000000000..f0ae8e422c --- /dev/null +++ b/components/dash-uploader/src/demo/App.js @@ -0,0 +1,32 @@ +/* eslint no-magic-numbers: 0 */ +import React, { Component } from 'react'; + +import { Upload_ReactComponent } from '../lib'; + +class App extends Component { + + constructor() { + super(); + this.state = { + value: '' + }; + this.setProps = this.setProps.bind(this); + } + + setProps(newProps) { + this.setState(newProps); + } + + render() { + return ( +
+ +
+ ) + } +} + +export default App; diff --git a/components/dash-uploader/src/demo/index.js b/components/dash-uploader/src/demo/index.js new file mode 100644 index 0000000000..b597a44232 --- /dev/null +++ b/components/dash-uploader/src/demo/index.js @@ -0,0 +1,5 @@ +import React from 'react'; +import ReactDOM from 'react-dom'; +import App from './App'; + +ReactDOM.render(, document.getElementById('root')); diff --git a/components/dash-uploader/tests/__init__.py b/components/dash-uploader/tests/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/components/dash-uploader/tests/apps/__init__.py b/components/dash-uploader/tests/apps/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/components/dash-uploader/tests/apps/disabled.py b/components/dash-uploader/tests/apps/disabled.py new file mode 100644 index 0000000000..d58aab7291 --- /dev/null +++ b/components/dash-uploader/tests/apps/disabled.py @@ -0,0 +1,118 @@ +""" +Test app used by test_disabled. +""" +import uuid +import json + +import dash_uploader as du +import dash +import dash_html_components as html +import dash_core_components as dcc +from dash.dependencies import Output, Input + +app = dash.Dash(__name__) + +UPLOAD_FOLDER_ROOT = r"C:\tmp\Uploads" +du.configure_upload(app, UPLOAD_FOLDER_ROOT) + + +def get_upload_component(id): + return du.Upload( + id=id, + text="Drag and Drop files here", + text_completed="Completed: ", + cancel_button=True, + max_file_size=1800, # 1800 Mb + filetypes=["csv", "zip"], + upload_id=uuid.uuid1(), # Unique session id + max_files=2, + ) + + +def get_app_layout(): + + return html.Div( + [ + html.H1("Demo"), + html.Div( + [ + dcc.Checklist( + id="uploader-configs", + options=[ + {"label": "Disabled", "value": 0}, + {"label": "Disable Drag & Drop", "value": 1}, + ], + value=[], + labelStyle={"display": "inline-block"}, + ), + get_upload_component(id="dash-uploader"), + html.Div(id="callback-output"), + ], + style={ # wrapper div style + "textAlign": "center", + "width": "600px", + "padding": "10px", + "display": "inline-block", + }, + ), + html.Div( + children=[ + "Triggered configs:", + html.Span( + id="configs-output", children=json.dumps([]) + ), # This element needs to be visible, otherwise, selenium could not find its content. + ], + style={"textAlign": "left",}, # wrapper div style + ), + ], + style={"textAlign": "center",}, + ) + + +# get_app_layout is a function +# This way we can use unique session id's as upload_id's +app.layout = get_app_layout + + +# 3) Create a callback +@du.callback( + output=Output("callback-output", "children"), id="dash-uploader", +) +def get_a_list(filenames): + return html.Ul([html.Li(filenames)]) + + +@app.callback(Output("dash-uploader", "disabled"), [Input("uploader-configs", "value")]) +def check_disabled(val_configs): + if 0 in val_configs: # Disabled + return True + else: + return False + + +@app.callback( + Output("dash-uploader", "disableDragAndDrop"), [Input("uploader-configs", "value")] +) +def check_disableDragAndDrop(val_configs): + if 1 in val_configs: # Disabled + return True + else: + return False + + +@app.callback( + Output("configs-output", "children"), + [Input("dash-uploader", "disabled"), Input("dash-uploader", "disableDragAndDrop")], +) +def update_config_states(is_disabled, is_disableDragAndDrop): + """This callback is used for confirming that the states of the element have been changed.""" + val_configs = [] + if is_disabled: + val_configs.append(0) + if is_disableDragAndDrop: + val_configs.append(1) + return json.dumps(val_configs) + + +if __name__ == "__main__": + app.run_server(debug=True) diff --git a/components/dash-uploader/tests/conftest.py b/components/dash-uploader/tests/conftest.py new file mode 100644 index 0000000000..b53c26028d --- /dev/null +++ b/components/dash-uploader/tests/conftest.py @@ -0,0 +1,9 @@ +from selenium import webdriver + + +def pytest_setup_options(): + options = webdriver.ChromeOptions() + # Removes a bunch of errors on Windows, like + # USB: usb_device_win.cc:93 Failed to read descriptors from ... + options.add_experimental_option("excludeSwitches", ["enable-logging"]) + return options diff --git a/components/dash-uploader/tests/js/drag_and_drop_simulation.js b/components/dash-uploader/tests/js/drag_and_drop_simulation.js new file mode 100644 index 0000000000..a5beedff75 --- /dev/null +++ b/components/dash-uploader/tests/js/drag_and_drop_simulation.js @@ -0,0 +1,9 @@ +/** + * JS used for simulating drag and drop. + * source : https://gist.github.com/florentbr/0eff8b785e85e93ecc3ce500169bd676 + * param1 WebElement : Drop area element + * param2 Double : Optional - Drop offset x relative to the top/left corner of the drop area. Center if 0. + * param3 Double : Optional - Drop offset y relative to the top/left corner of the drop area. Center if 0. + * return WebElement : File input + */ +var c=arguments,b=c[0],k=c[1];c=c[2];for(var d=b.ownerDocument||document,l=0;;){var e=b.getBoundingClientRect(),g=e.left+(k||e.width/2),h=e.top+(c||e.height/2),f=d.elementFromPoint(g,h);if(f&&b.contains(f))break;if(1<++l)throw b=Error('Element not interactable'),b.code=15,b;b.scrollIntoView({behavior:'instant',block:'center',inline:'center'})}var a=d.createElement('INPUT');a.setAttribute('type','file');a.setAttribute('multiple','');a.setAttribute('style','position:fixed;z-index:2147483647;left:0;top:0;');a.onchange=function(b){a.parentElement.removeChild(a);b.stopPropagation();var c={constructor:DataTransfer,effectAllowed:'all',dropEffect:'none',types:['Files'],files:a.files,setData:function(){},getData:function(){},clearData:function(){},setDragImage:function(){}};window.DataTransferItemList&&(c.items=Object.setPrototypeOf(Array.prototype.map.call(a.files,function(a){return{constructor:DataTransferItem,kind:'file',type:a.type,getAsFile:function(){return a},getAsString:function(b){var c=new FileReader;c.onload=function(a){b(a.target.result)};c.readAsText(a)}}}),{constructor:DataTransferItemList,add:function(){},clear:function(){},remove:function(){}}));['dragenter','dragover','drop'].forEach(function(a){var b=d.createEvent('DragEvent');b.initMouseEvent(a,!0,!0,d.defaultView,0,0,0,g,h,!1,!1,!1,!1,0,null);Object.setPrototypeOf(b,null);b.dataTransfer=c;Object.setPrototypeOf(b,DragEvent.prototype);f.dispatchEvent(b)})};d.documentElement.appendChild(a);a.getBoundingClientRect();return a; diff --git a/components/dash-uploader/tests/requirements.txt b/components/dash-uploader/tests/requirements.txt new file mode 100644 index 0000000000..492005f3cb --- /dev/null +++ b/components/dash-uploader/tests/requirements.txt @@ -0,0 +1,10 @@ +# Packages needed to run the tests. +# Switch into a virtual environment +# pip install -r requirements.txt + +dash[dev,testing]>=1.3.1 +# Automatically get the latest ChromeDriver. If Chrome updated, use +# pip install --upgrade --force-reinstall chromedriver-binary-auto +# to update the chromedriver binary. +# Needs: import chromedriver_binary to the top of your test script. +chromedriver-binary-auto \ No newline at end of file diff --git a/components/dash-uploader/tests/test_disabled.py b/components/dash-uploader/tests/test_disabled.py new file mode 100644 index 0000000000..171abeb438 --- /dev/null +++ b/components/dash-uploader/tests/test_disabled.py @@ -0,0 +1,284 @@ +"""Test: disabled +The test file used for checking the following properties: + - disabled + - disableDragAndDrop +""" +import json +from pathlib import Path +import shutil + +import chromedriver_binary # noqa: F401 +from dash.testing.application_runners import import_app +import pytest +from selenium.webdriver.common.by import By +from selenium.webdriver.support.ui import WebDriverWait +from selenium.webdriver.support import expected_conditions as EC + +from selenium.common.exceptions import TimeoutException + +from .utils import create_file, load_text_file + +# NOTE: Here are some notes for testing +# Naming convention: test_{tcid}_{test title} +# Running just one tcid: python -m pytest -k {tcid} +# General guide: https://dash.plotly.com/testing +# Debugging: +# 1) Add a non-existent variable to a line (like `xxx`) +# 2) Run test with --pdb flag + + +@pytest.fixture +def testfile10Mb_csv(): + file = Path(__file__).resolve().parent / "mytestfile.csv" + create_file(file, filesize_mb=10) + yield file + file.unlink() + + +@pytest.fixture +def testfileWrongType(): + file = Path(__file__).resolve().parent / "mytestfile.wrong" + create_file(file, filesize_mb=1) + yield file + file.unlink() + + +@pytest.fixture +def js_drag_and_drop(): + """Provide file drag and drop simulation. + selenium only supports drag and drop elements. + The javascript used for triggering a drag and drop file operation. + Thanks for the work: + https://gist.github.com/florentbr/349b1ab024ca9f3de56e6bf8af2ac69e + Used as: + driver.execute_script(js_drag_and_drop, #1, #2, #3) + + Parameters: + ---------- + #1 The element with the drag and drop area. + #2 Drop offset x relative to the top/left corner of the drop area. Center if 0. + #3 Drop offset y relative to the top/left corner of the drop area. Center if 0. + + Returns: + ------- + A file element used for simulating drag and drop. + """ + return load_text_file( + file_path=Path(__file__).resolve().parent / "js" / "drag_and_drop_simulation.js" + ) + + +# Basic test for the "disabled" property. +# Run with pytest -k disabled01 +def test_disabled01_check_disabled_property_update(dash_duo): + """Check the update of the disabled property. + The trigger of "disabled" would make the class of the upload component change. + """ + # Fetch the test app. + app = import_app("tests.apps.disabled") + dash_duo.start_server(app) + wait = WebDriverWait(dash_duo._driver, 10) + + # Find the required components + upload = dash_duo.find_element("#dash-uploader") + configs = dash_duo.find_element("#uploader-configs") + check_boxes = configs.find_elements_by_xpath(".//input[@type='checkbox']") + assert len(check_boxes) == 2, "The provided configs for this app should be 2." + + # Check the upload state, should be default now. + assert ( + upload.get_attribute("class") == "dash-uploader-default" + ), 'The current uploader class should be "dash-uploader-default".' + + # Click the checkbox named "Disabled". + check_boxes[0].click() + + # Wait for "configs-output" updated, with 10 second timeout. + wait.until( + EC.text_to_be_present_in_element( + (By.XPATH, "//span[@id='configs-output']"), json.dumps([0,]) + ) + ) + + # Check the upload state, should be disabled now. + assert ( + upload.get_attribute("class") == "dash-uploader-disabled" + ), 'The current uploader class should be "dash-uploader-disabled".' + + # Click the checkbox named "Disabled" again. + check_boxes[0].click() + + # Wait for "configs-output" updated, with 10 second timeout. + wait.until( + EC.text_to_be_present_in_element( + (By.XPATH, "//span[@id='configs-output']"), json.dumps([]) + ) + ) + + # Check the upload state, should be disabled now. + assert ( + upload.get_attribute("class") == "dash-uploader-default" + ), 'The current uploader class should be "dash-uploader-default".' + + +def test_disabled02_check_disabled_effect( + dash_duo, testfile10Mb_csv, testfileWrongType, js_drag_and_drop +): + """Check the effectiveness of the disabled and disableDragAndDrop property. + The upload component with "disabled" triggered would not accept any files. + The upload component with "disableDragAndDrop" would not accept files uploaded by drag and drop region. + """ + # Fetch the test app. + app = import_app("tests.apps.disabled") + dash_duo.start_server(app) + driver = dash_duo._driver + wait = WebDriverWait(driver, 10) + + # Find the required components + upload = dash_duo.find_element("#dash-uploader") + configs = dash_duo.find_element("#uploader-configs") + check_boxes = configs.find_elements_by_xpath(".//input[@type='checkbox']") + assert len(check_boxes) == 2, "The provided configs for this app should be 2." + + # Define the upload check function. + def upload_test_file_and_validate( + upload_component, is_disabled=False, by_dragndrop=False, expect_success=True + ): + """Upload a file and check the results. + If "expect_success" is True, the file is expected to be uploaded; + If not, the uploading is expected to fail. + """ + upload_input = upload_component.find_element_by_xpath( + ".//input[@name='dash-uploader-upload']" + ) + # First, upload a wrong file. This would reset the message of upload component. + upload_input.send_keys(str(testfileWrongType)) + + if ( + not is_disabled + ): # Skip this step if the component is disabled, because the message would no be changed now. + # Wait until the text is reset. + wait.until( + EC.text_to_be_present_in_element( + (By.XPATH, "//div[@id='dash-uploader']/*/label"), "Invalid" + ) + ) + + if by_dragndrop: + # Create a file_input, which simulates the drag and drop behavior. + # This element is different from the input element created by dash uploader. + drag_and_drag_input = driver.execute_script( + js_drag_and_drop, upload, 20, 20 + ) + drag_and_drag_input.send_keys(str(testfile10Mb_csv)) + else: + # Ensure the uploading button is clickable. + if expect_success: + assert ( + upload_input.is_enabled() + ), "The uploading button is expected to be enabled." + else: # This step is expected to fail when "expect_success=False" + # The err_info is used for showing the message. + with pytest.raises(AssertionError) as err_info: # noqa: F841 + assert ( + upload_input.is_enabled() + ), "The uploading button is expected to be enabled." + return + + # Wait until file is uploaded + upload_input.send_keys(str(testfile10Mb_csv)) + + # The fail case would be used for checking the drag and drop mode. + if expect_success: + wait.until( + EC.text_to_be_present_in_element( + (By.XPATH, "//div[@id='dash-uploader']/*/label"), "Completed" + ) + ) + else: + # The err_info is used for showing the message. + with pytest.raises(TimeoutException) as err_info: # noqa: F841 + wait.until( + EC.text_to_be_present_in_element( + (By.XPATH, "//div[@id='dash-uploader']/*/label"), "Completed" + ) + ) + return + + # Get the div with the output values + callback_output = dash_duo.find_element("#callback-output") + + # Get the name of the uploaded file + uploaded_file = callback_output.find_element_by_xpath("//ul").text + uploaded_file = Path(uploaded_file) + + assert uploaded_file.name == testfile10Mb_csv.name + assert uploaded_file.exists() + assert uploaded_file.stat().st_size == testfile10Mb_csv.stat().st_size + + # cleanup + shutil.rmtree(uploaded_file.parent) + + # Check the upload state, should be default or complelte now. + uploader_class = upload.get_attribute("class") + assert ( + uploader_class == "dash-uploader-default" + or uploader_class == "dash-uploader-complete" + ), 'The current uploader class should be "dash-uploader-default" or "dash-uploader-complete".' + + # Upload the file, both tests are expected to sucess. + upload_test_file_and_validate( + upload, by_dragndrop=False, expect_success=True + ) # By sending the file. + upload_test_file_and_validate( + upload, by_dragndrop=True, expect_success=True + ) # By drag and drop. + + # Check the performance of the disabled case. + check_boxes[0].click() + + # Wait for the component update getting confirmed. + wait.until( + EC.text_to_be_present_in_element( + (By.XPATH, "//span[@id='configs-output']"), json.dumps([0,]) + ) + ) + + # Check the upload state, should be disabled now. + assert ( + upload.get_attribute("class") == "dash-uploader-disabled" + ), 'The current uploader class should be "dash-uploader-disabled".' + + # Upload the file, both tests are expected to fail. + upload_test_file_and_validate( + upload, is_disabled=True, by_dragndrop=False, expect_success=False + ) # By sending the file. + upload_test_file_and_validate( + upload, is_disabled=True, by_dragndrop=True, expect_success=False + ) # By drag and drop. + + # Check the performance of the disableDragAndDrop case. + check_boxes[0].click() + check_boxes[1].click() + + # Wait for the component update getting confirmed. + wait.until( + EC.text_to_be_present_in_element( + (By.XPATH, "//span[@id='configs-output']"), json.dumps([1,]) + ) + ) + + # Check the upload state, should be default or complelte now. + uploader_class = upload.get_attribute("class") + assert ( + uploader_class == "dash-uploader-default" + or uploader_class == "dash-uploader-complete" + ), 'The current uploader class should be "dash-uploader-default" or "dash-uploader-complete".' + + # Upload the file, the normal test is expected to success, while the drag and drop test is expected to fail. + upload_test_file_and_validate( + upload, by_dragndrop=False, expect_success=True + ) # By sending the file. + upload_test_file_and_validate( + upload, by_dragndrop=True, expect_success=False + ) # By drag and drop. diff --git a/components/dash-uploader/tests/test_usage.py b/components/dash-uploader/tests/test_usage.py new file mode 100644 index 0000000000..bc098f309f --- /dev/null +++ b/components/dash-uploader/tests/test_usage.py @@ -0,0 +1,83 @@ +# the functionality of this test file has not been tested. +from pathlib import Path +import shutil + +import chromedriver_binary +from dash.testing.application_runners import import_app +import pytest +from selenium.webdriver.common.by import By +from selenium.webdriver.support.ui import WebDriverWait +from selenium.webdriver.support import expected_conditions as EC + +from .utils import create_file + +## NOTE: Here are some notes for testing +# Naming convention: test_{tcid}_{test title} +# Running just one tcid: python -m pytest -k {tcid} +# General guide: https://dash.plotly.com/testing +# Debugging: +# 1) Add a non-existent variable to a line (like `xxx`) +# 2) Run test with --pdb flag + + +@pytest.fixture +def testfile10Mb_csv(): + file = Path(__file__).resolve().parent / "mytestfile.csv" + create_file(file, filesize_mb=10) + yield file + file.unlink() + + +# Basic test for the component rendering. +# The dash_duo pytest fixture is installed with dash (v1.0+) +# Run with pytest -k render01 +def test_render01_render_component(dash_duo): + # Start a dash app contained as the variable `app` in `usage.py` + app = import_app("usage") + dash_duo.start_server(app) + + upload = dash_duo.find_element("#dash-uploader") + + assert "dash-uploader-default" == upload.get_attribute("class") + + +# Run with pytest -k upload01 +def test_upload01_upload_a_file(dash_duo, testfile10Mb_csv): + app = import_app("usage") + dash_duo.start_server(app) + + # User sees the component + upload = dash_duo.find_element("#dash-uploader") + + # Upload the file. + # Clicking the upload component would open a file dialog and + # this would require the tests to use OS specific GUI tools + # to select the file. This could be added in the future but it's + # probably very this would be broken + upload_input = upload.find_element_by_xpath("//input[@name='dash-uploader-upload']") + upload_input.send_keys(str(testfile10Mb_csv)) + # Wait until file is uploaded + + upload_label = upload.find_element_by_xpath("//label") + + # Wait for "Completed" text, with 10 second timeout + wait = WebDriverWait(dash_duo._driver, 10) + wait.until( + EC.text_to_be_present_in_element( + (By.XPATH, "//div[@id='dash-uploader']/*/label"), "Completed" + ) + ) + + # Get the div with the output values + callback_output = dash_duo.find_element("#callback-output") + + # Get the name of the uploaded file + uploaded_file = callback_output.find_element_by_xpath("//ul").text + uploaded_file = Path(uploaded_file) + + assert uploaded_file.name == testfile10Mb_csv.name + assert uploaded_file.exists() + assert uploaded_file.stat().st_size == testfile10Mb_csv.stat().st_size + + # cleanup + shutil.rmtree(uploaded_file.parent) diff --git a/components/dash-uploader/tests/utils.py b/components/dash-uploader/tests/utils.py new file mode 100644 index 0000000000..39f9fb0242 --- /dev/null +++ b/components/dash-uploader/tests/utils.py @@ -0,0 +1,27 @@ +def create_file(filename, filesize_mb=1): + """ + Create file for testing purposes. + + Parameters + ---------- + filename: str + The filename + filesize_mb: numeric + The file size in Mb. + """ + with open(filename, "wb") as f: + f.seek(1024 * 1024 * filesize_mb) + f.write(b"0") + + +def load_text_file(file_path): + """ + Load text file from the path + + Parameters + ---------- + file_path: str + The path of the file. + """ + with open(file_path, "r") as f: + return f.read() diff --git a/components/dash-uploader/usage.py b/components/dash-uploader/usage.py new file mode 100644 index 0000000000..fb6fcdff87 --- /dev/null +++ b/components/dash-uploader/usage.py @@ -0,0 +1,66 @@ +import uuid + +import dash_uploader as du +import dash +import dash_html_components as html +from dash.dependencies import Output + +app = dash.Dash(__name__) + +UPLOAD_FOLDER_ROOT = r"C:\tmp\Uploads" +du.configure_upload(app, UPLOAD_FOLDER_ROOT) + + +def get_upload_component(id): + return du.Upload( + id=id, + text="Drag and Drop files here", + text_completed="Completed: ", + cancel_button=True, + max_file_size=1800, # 1800 Mb + filetypes=["csv", "zip"], + upload_id=uuid.uuid1(), # Unique session id + max_files=2, + ) + + +def get_app_layout(): + + return html.Div( + [ + html.H1("Demo"), + html.Div( + [ + get_upload_component(id="dash-uploader"), + html.Div(id="callback-output"), + ], + style={ # wrapper div style + "textAlign": "center", + "width": "600px", + "padding": "10px", + "display": "inline-block", + }, + ), + ], + style={ + "textAlign": "center", + }, + ) + + +# get_app_layout is a function +# This way we can use unique session id's as upload_id's +app.layout = get_app_layout + + +# 3) Create a callback +@du.callback( + output=Output("callback-output", "children"), + id="dash-uploader", +) +def get_a_list(filenames): + return html.Ul([html.Li(filenames)]) + + +if __name__ == "__main__": + app.run_server(debug=True) diff --git a/components/dash-uploader/webpack.config.js b/components/dash-uploader/webpack.config.js new file mode 100644 index 0000000000..5087e034bb --- /dev/null +++ b/components/dash-uploader/webpack.config.js @@ -0,0 +1,81 @@ +const path = require('path'); +const packagejson = require('./package.json'); + +const dashLibraryName = packagejson.name.replace(/-/g, '_'); + +module.exports = (env, argv) => { + + let mode; + + const overrides = module.exports || {}; + + // if user specified mode flag take that value + if (argv && argv.mode) { + mode = argv.mode; + } + + // else if configuration object is already set (module.exports) use that value + else if (overrides.mode) { + mode = overrides.mode; + } + + // else take webpack default (production) + else { + mode = 'production'; + } + + let filename = (overrides.output || {}).filename; + if (!filename) { + const modeSuffix = mode === 'development' ? 'dev' : 'min'; + filename = `${dashLibraryName}.${modeSuffix}.js`; + } + + const entry = overrides.entry || { main: './src/lib/index.js' }; + + const devtool = overrides.devtool || 'source-map'; + + const externals = ('externals' in overrides) ? overrides.externals : ({ + react: 'React', + 'react-dom': 'ReactDOM', + 'plotly.js': 'Plotly', + 'prop-types': 'PropTypes', + }); + + return { + mode, + entry, + output: { + path: mode === 'development' ? path.resolve(__dirname, 'inst', 'deps') : path.resolve(__dirname, dashLibraryName, '_build'), + filename, + library: dashLibraryName, + libraryTarget: 'window', + }, + devtool, + externals, + module: { + rules: [ + { + test: /\.jsx?$/, + exclude: /node_modules/, + use: { + loader: 'babel-loader', + }, + }, + { + test: /\.css$/, + use: [ + { + loader: 'style-loader', + options: { + insert: 'head' + } + }, + { + loader: 'css-loader', + }, + ], + }, + ], + }, + } +}; diff --git a/components/dash-uploader/webpack.serve.config.js b/components/dash-uploader/webpack.serve.config.js new file mode 100644 index 0000000000..8f5fad54cb --- /dev/null +++ b/components/dash-uploader/webpack.serve.config.js @@ -0,0 +1,12 @@ +const config = require('./webpack.config.js'); +const path = require('path'); + +config.entry = { main: './src/demo/index.js' }; +config.output = { + filename: 'output.js', + path: path.resolve(__dirname, 'inst', 'deps'), +}; +config.mode = 'development'; +config.externals = undefined; // eslint-disable-line +config.devtool = 'inline-source-map'; +module.exports = config; diff --git a/dash/__init__.py b/dash/__init__.py index 6f16a068aa..40c3b47381 100644 --- a/dash/__init__.py +++ b/dash/__init__.py @@ -17,6 +17,7 @@ from . import dcc # noqa: F401,E402 from . import html # noqa: F401,E402 from . import dash_table # noqa: F401,E402 +from . import dash_uploader # noqa: F401,E402 from .version import __version__ # noqa: F401,E402 from ._callback_context import callback_context, set_props # noqa: F401,E402 from ._callback import callback, clientside_callback # noqa: F401,E402 @@ -73,6 +74,7 @@ def _jupyter_nbextension_paths(): "dcc", "html", "dash_table", + "dash_uploader", "__version__", "callback_context", "set_props", diff --git a/dash/dash_uploader/__init__.py b/dash/dash_uploader/__init__.py new file mode 100644 index 0000000000..d842454932 --- /dev/null +++ b/dash/dash_uploader/__init__.py @@ -0,0 +1,52 @@ +import os as _os +import sys as _sys +import json + +import dash as _dash + +from .configure_upload import configure_upload +from .callbacks import callback +from .httprequesthandler import HttpRequestHandler +from .upload import Upload + +# noinspection PyUnresolvedReferences +from ._build._imports_ import * # noqa: F403,F401 +from ._build._imports_ import __all__ as build_all + +# Defines all exposed APIs of this package. +__all__ = ["configure_upload", "callback", "HttpRequestHandler", "Upload"] + +if not hasattr(_dash, "development"): + print( + "Dash was not successfully imported. " + "Make sure you don't have a file " + 'named \n"dash.py" in your current directory.', + file=_sys.stderr, + ) + _sys.exit(1) + +_basepath = _os.path.dirname(__file__) +_filepath = _os.path.abspath(_os.path.join(_basepath, "_build", "package-info.json")) +with open(_filepath) as f: + package = json.load(f) + +package_name = package["name"].replace(" ", "_").replace("-", "_") +__version__ = package["version"] + +_current_path = _os.path.dirname(_os.path.abspath(__file__)) + +_this_module = _sys.modules[__name__] +_js_dist = [ + {"relative_package_path": "_build/dash_uploader.min.js", "namespace": package_name}, + { + "relative_package_path": "_build/dash_uploader.min.js.map", + "namespace": package_name, + "dynamic": True, + }, +] + +_css_dist = [] + +for _component in build_all: + setattr(locals()[_component], "_js_dist", _js_dist) + setattr(locals()[_component], "_css_dist", _css_dist) diff --git a/dash/dash_uploader/_build/Button.py b/dash/dash_uploader/_build/Button.py new file mode 100644 index 0000000000..e3746d400f --- /dev/null +++ b/dash/dash_uploader/_build/Button.py @@ -0,0 +1,70 @@ +# AUTO GENERATED FILE - DO NOT EDIT + +import typing # noqa: F401 +from typing_extensions import TypedDict, NotRequired, Literal # noqa: F401 +from dash.development.base_component import Component, _explicitize_args +try: + from dash.types import NumberType # noqa: F401 +except ImportError: + # Backwards compatibility for dash<=4.1.0 + if typing.TYPE_CHECKING: + raise + NumberType = typing.Union[ # noqa: F401 + typing.SupportsFloat, typing.SupportsInt, typing.SupportsComplex + ] + +ComponentSingleType = typing.Union[str, int, float, Component, None] +ComponentType = typing.Union[ + ComponentSingleType, + typing.Sequence[ComponentSingleType], +] + + +class Button(Component): + """A Button component. +A Button component. + Used as a part of Upload component. + +Keyword arguments: + +- btnClass (default 'dash-uploader-btn'): + The CSS class for the button. + +- disabled (default False): + Is disabled, the component is not shown. + +- isUploading (default False): + Is True, the parent component has upload in progress. + +- onClick (default () => { }): + Function to call when clicked. + +- text (default ''): + The text on the button.""" + _children_props: typing.List[str] = [] + _base_nodes = ['children'] + _namespace = 'dash_uploader' + _type = 'Button' + + + def __init__( + self, + text: typing.Optional[typing.Any] = None, + btnClass: typing.Optional[typing.Any] = None, + onClick: typing.Optional[typing.Any] = None, + disabled: typing.Optional[typing.Any] = None, + isUploading: typing.Optional[typing.Any] = None, + **kwargs + ): + self._prop_names = ['btnClass', 'disabled', 'isUploading', 'onClick', 'text'] + self._valid_wildcard_attributes = [] + self.available_properties = ['btnClass', 'disabled', 'isUploading', 'onClick', 'text'] + self.available_wildcard_properties = [] + _explicit_args = kwargs.pop('_explicit_args') + _locals = locals() + _locals.update(kwargs) # For wildcard attrs and excess named props + args = {k: _locals[k] for k in _explicit_args} + + super(Button, self).__init__(**args) + +setattr(Button, "__init__", _explicitize_args(Button.__init__)) diff --git a/dash/dash_uploader/_build/ProgressBar.py b/dash/dash_uploader/_build/ProgressBar.py new file mode 100644 index 0000000000..ae56216ae7 --- /dev/null +++ b/dash/dash_uploader/_build/ProgressBar.py @@ -0,0 +1,58 @@ +# AUTO GENERATED FILE - DO NOT EDIT + +import typing # noqa: F401 +from typing_extensions import TypedDict, NotRequired, Literal # noqa: F401 +from dash.development.base_component import Component, _explicitize_args +try: + from dash.types import NumberType # noqa: F401 +except ImportError: + # Backwards compatibility for dash<=4.1.0 + if typing.TYPE_CHECKING: + raise + NumberType = typing.Union[ # noqa: F401 + typing.SupportsFloat, typing.SupportsInt, typing.SupportsComplex + ] + +ComponentSingleType = typing.Union[str, int, float, Component, None] +ComponentType = typing.Union[ + ComponentSingleType, + typing.Sequence[ComponentSingleType], +] + + +class ProgressBar(Component): + """A ProgressBar component. +A ProgressBar component. + Used as a part of Upload component. + +Keyword arguments: + +- isUploading (boolean; default False): + The upload status (boolean). + +- progressBar (number; default 0): + The progressbar value.""" + _children_props: typing.List[str] = [] + _base_nodes = ['children'] + _namespace = 'dash_uploader' + _type = 'ProgressBar' + + + def __init__( + self, + progressBar: typing.Optional[NumberType] = None, + isUploading: typing.Optional[bool] = None, + **kwargs + ): + self._prop_names = ['isUploading', 'progressBar'] + self._valid_wildcard_attributes = [] + self.available_properties = ['isUploading', 'progressBar'] + self.available_wildcard_properties = [] + _explicit_args = kwargs.pop('_explicit_args') + _locals = locals() + _locals.update(kwargs) # For wildcard attrs and excess named props + args = {k: _locals[k] for k in _explicit_args} + + super(ProgressBar, self).__init__(**args) + +setattr(ProgressBar, "__init__", _explicitize_args(ProgressBar.__init__)) diff --git a/dash/dash_uploader/_build/Upload_ReactComponent.py b/dash/dash_uploader/_build/Upload_ReactComponent.py new file mode 100644 index 0000000000..c6a723abc6 --- /dev/null +++ b/dash/dash_uploader/_build/Upload_ReactComponent.py @@ -0,0 +1,166 @@ +# AUTO GENERATED FILE - DO NOT EDIT + +import typing # noqa: F401 +from typing_extensions import TypedDict, NotRequired, Literal # noqa: F401 +from dash.development.base_component import Component, _explicitize_args +try: + from dash.types import NumberType # noqa: F401 +except ImportError: + # Backwards compatibility for dash<=4.1.0 + if typing.TYPE_CHECKING: + raise + NumberType = typing.Union[ # noqa: F401 + typing.SupportsFloat, typing.SupportsInt, typing.SupportsComplex + ] + +ComponentSingleType = typing.Union[str, int, float, Component, None] +ComponentType = typing.Union[ + ComponentSingleType, + typing.Sequence[ComponentSingleType], +] + + +class Upload_ReactComponent(Component): + """An Upload_ReactComponent component. +The Upload component + +Keyword arguments: + +- id (string; default 'default-dash-uploader-id'): + User supplied id of this component. + +- cancelButton (boolean; default True): + Whether or not to have a cancel button. + +- chunkSize (number; default 1024 * 1024): + Size of file chunks to send to server. + +- className (string; default 'dash-uploader-default'): + Class to add to the upload component by default. + +- completeClass (string; default 'dash-uploader-complete'): + Class to add to the upload component when it is complete. + +- completeStyle (dict; optional): + Style when upload is completed (upload finished). + +- completedMessage (string; default 'Complete! '): + Message to display when upload completed. + +- defaultStyle (dict; optional): + Style attributes to add to the upload component. + +- disableDragAndDrop (boolean; default False): + Whether or not to allow file drag and drop. + +- disabled (boolean; default False): + Whether or not to allow file uploading. + +- disabledClass (string; default 'dash-uploader-disabled'): + Class to add to the upload component when it is disabled. + +- disabledMessage (string; default 'The uploader is disabled.'): + Message to display when upload disabled. + +- disabledStyle (dict; optional): + Style when upload is disabled. + +- fileNames (list of strings; optional): + The names of the files uploaded. + +- filetypes (list of strings; default undefined): + List of allowed file types, e.g. ['jpg', 'png']. + +- hoveredClass (string; default 'dash-uploader-hovered'): + Class to add to the upload component when it is hovered. + +- isCompleted (boolean; default False): + The boolean flag telling if upload is completed. + +- maxFileSize (number; default 1024 * 1024 * 10): + Maximum size per file in bytes. + +- maxFiles (number; default 1): + Maximum number of files that can be uploaded in one session. + +- pauseButton (boolean; default True): + Whether or not to have a pause button. + +- pausedClass (string; default 'dash-uploader-paused'): + Class to add to the upload component when it is paused. + +- service (string; default '/API/dash-uploader'): + The service to send the files to. + +- simultaneousUploads (number; optional): + Number of simultaneous uploads to select. + +- simultaneuosUploads (number; default 1): + Number of simulaneous uploads. + +- startButton (boolean; default True): + Whether or not to have a start button. + +- textLabel (string; default 'Click Here to Select a File'): + The string to display in the upload component. + +- upload_id (string; default ''): + The ID for the upload event (for example, session ID). + +- uploadingClass (string; default 'dash-uploader-uploading'): + Class to add to the upload component when it is uploading. + +- uploadingStyle (dict; optional): + Style when upload is in progress.""" + _children_props: typing.List[str] = [] + _base_nodes = ['children'] + _namespace = 'dash_uploader' + _type = 'Upload_ReactComponent' + + + def __init__( + self, + maxFiles: typing.Optional[NumberType] = None, + maxFileSize: typing.Optional[NumberType] = None, + chunkSize: typing.Optional[NumberType] = None, + simultaneousUploads: typing.Optional[NumberType] = None, + service: typing.Optional[str] = None, + className: typing.Optional[str] = None, + hoveredClass: typing.Optional[str] = None, + disabledClass: typing.Optional[str] = None, + pausedClass: typing.Optional[str] = None, + completeClass: typing.Optional[str] = None, + uploadingClass: typing.Optional[str] = None, + defaultStyle: typing.Optional[dict] = None, + disabledStyle: typing.Optional[dict] = None, + uploadingStyle: typing.Optional[dict] = None, + completeStyle: typing.Optional[dict] = None, + textLabel: typing.Optional[str] = None, + disabledMessage: typing.Optional[str] = None, + completedMessage: typing.Optional[str] = None, + fileNames: typing.Optional[typing.Sequence[str]] = None, + filetypes: typing.Optional[typing.Sequence[str]] = None, + startButton: typing.Optional[bool] = None, + pauseButton: typing.Optional[bool] = None, + cancelButton: typing.Optional[bool] = None, + disabled: typing.Optional[bool] = None, + disableDragAndDrop: typing.Optional[bool] = None, + id: typing.Optional[typing.Union[str, dict]] = None, + isCompleted: typing.Optional[bool] = None, + upload_id: typing.Optional[str] = None, + simultaneuosUploads: typing.Optional[NumberType] = None, + onUploadErrorCallback: typing.Optional[typing.Any] = None, + **kwargs + ): + self._prop_names = ['id', 'cancelButton', 'chunkSize', 'className', 'completeClass', 'completeStyle', 'completedMessage', 'defaultStyle', 'disableDragAndDrop', 'disabled', 'disabledClass', 'disabledMessage', 'disabledStyle', 'fileNames', 'filetypes', 'hoveredClass', 'isCompleted', 'maxFileSize', 'maxFiles', 'pauseButton', 'pausedClass', 'service', 'simultaneousUploads', 'simultaneuosUploads', 'startButton', 'textLabel', 'upload_id', 'uploadingClass', 'uploadingStyle'] + self._valid_wildcard_attributes = [] + self.available_properties = ['id', 'cancelButton', 'chunkSize', 'className', 'completeClass', 'completeStyle', 'completedMessage', 'defaultStyle', 'disableDragAndDrop', 'disabled', 'disabledClass', 'disabledMessage', 'disabledStyle', 'fileNames', 'filetypes', 'hoveredClass', 'isCompleted', 'maxFileSize', 'maxFiles', 'pauseButton', 'pausedClass', 'service', 'simultaneousUploads', 'simultaneuosUploads', 'startButton', 'textLabel', 'upload_id', 'uploadingClass', 'uploadingStyle'] + self.available_wildcard_properties = [] + _explicit_args = kwargs.pop('_explicit_args') + _locals = locals() + _locals.update(kwargs) # For wildcard attrs and excess named props + args = {k: _locals[k] for k in _explicit_args} + + super(Upload_ReactComponent, self).__init__(**args) + +setattr(Upload_ReactComponent, "__init__", _explicitize_args(Upload_ReactComponent.__init__)) diff --git a/dash/dash_uploader/_build/__init__.py b/dash/dash_uploader/_build/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/dash/dash_uploader/_build/_imports_.py b/dash/dash_uploader/_build/_imports_.py new file mode 100644 index 0000000000..dea66697e0 --- /dev/null +++ b/dash/dash_uploader/_build/_imports_.py @@ -0,0 +1,9 @@ +from .Button import Button +from .ProgressBar import ProgressBar +from .Upload_ReactComponent import Upload_ReactComponent + +__all__ = [ + "Button", + "ProgressBar", + "Upload_ReactComponent" +] \ No newline at end of file diff --git a/dash/dash_uploader/_build/dash_uploader.min.js b/dash/dash_uploader/_build/dash_uploader.min.js new file mode 100644 index 0000000000..22ee7aefb0 --- /dev/null +++ b/dash/dash_uploader/_build/dash_uploader.min.js @@ -0,0 +1,2 @@ +window.dash_uploader=function(n){var r={};function e(o){if(r[o])return r[o].exports;var t=r[o]={i:o,l:!1,exports:{}};return n[o].call(t.exports,t,t.exports,e),t.l=!0,t.exports}return e.m=n,e.c=r,e.d=function(n,r,o){e.o(n,r)||Object.defineProperty(n,r,{enumerable:!0,get:o})},e.r=function(n){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})},e.t=function(n,r){if(1&r&&(n=e(n)),8&r)return n;if(4&r&&"object"==typeof n&&n&&n.__esModule)return n;var o=Object.create(null);if(e.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:n}),2&r&&"string"!=typeof n)for(var t in n)e.d(o,t,function(r){return n[r]}.bind(null,t));return o},e.n=function(n){var r=n&&n.__esModule?function(){return n.default}:function(){return n};return e.d(r,"a",r),r},e.o=function(n,r){return Object.prototype.hasOwnProperty.call(n,r)},e.p="",e(e.s=8)}([function(n,r){n.exports=window.PropTypes},function(n,r){n.exports=window.React},function(n,r,e){"use strict";var o,t=function(){return void 0===o&&(o=Boolean(window&&document&&document.all&&!window.atob)),o},a=function(){var n={};return function(r){if(void 0===n[r]){var e=document.querySelector(r);if(window.HTMLIFrameElement&&e instanceof window.HTMLIFrameElement)try{e=e.contentDocument.head}catch(n){e=null}n[r]=e}return n[r]}}(),i=[];function s(n){for(var r=-1,e=0;en.length)&&(r=n.length);for(var e=0,o=new Array(r);e .btn-primary.dropdown-toggle {\r\n color: #fff;\r\n background-color: #0062cc;\r\n border-color: #005cbf;\r\n }\r\n \r\n .btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus,\r\n .show > .btn-primary.dropdown-toggle:focus {\r\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\r\n }\r\n \r\n .btn-secondary {\r\n color: #fff;\r\n background-color: #6c757d;\r\n border-color: #6c757d;\r\n }\r\n \r\n .btn-secondary:hover {\r\n color: #fff;\r\n background-color: #5a6268;\r\n border-color: #545b62;\r\n }\r\n \r\n .btn-secondary:focus, .btn-secondary.focus {\r\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\r\n }\r\n \r\n .btn-secondary.disabled, .btn-secondary:disabled {\r\n color: #fff;\r\n background-color: #6c757d;\r\n border-color: #6c757d;\r\n }\r\n \r\n .btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active,\r\n .show > .btn-secondary.dropdown-toggle {\r\n color: #fff;\r\n background-color: #545b62;\r\n border-color: #4e555b;\r\n }\r\n \r\n .btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus,\r\n .show > .btn-secondary.dropdown-toggle:focus {\r\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\r\n }\r\n \r\n .btn-success {\r\n color: #fff;\r\n background-color: #28a745;\r\n border-color: #28a745;\r\n }\r\n \r\n .btn-success:hover {\r\n color: #fff;\r\n background-color: #218838;\r\n border-color: #1e7e34;\r\n }\r\n \r\n .btn-success:focus, .btn-success.focus {\r\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\r\n }\r\n \r\n .btn-success.disabled, .btn-success:disabled {\r\n color: #fff;\r\n background-color: #28a745;\r\n border-color: #28a745;\r\n }\r\n \r\n .btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active,\r\n .show > .btn-success.dropdown-toggle {\r\n color: #fff;\r\n background-color: #1e7e34;\r\n border-color: #1c7430;\r\n }\r\n \r\n .btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus,\r\n .show > .btn-success.dropdown-toggle:focus {\r\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\r\n }\r\n \r\n .btn-info {\r\n color: #fff;\r\n background-color: #17a2b8;\r\n border-color: #17a2b8;\r\n }\r\n \r\n .btn-info:hover {\r\n color: #fff;\r\n background-color: #138496;\r\n border-color: #117a8b;\r\n }\r\n \r\n .btn-info:focus, .btn-info.focus {\r\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\r\n }\r\n \r\n .btn-info.disabled, .btn-info:disabled {\r\n color: #fff;\r\n background-color: #17a2b8;\r\n border-color: #17a2b8;\r\n }\r\n \r\n .btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active,\r\n .show > .btn-info.dropdown-toggle {\r\n color: #fff;\r\n background-color: #117a8b;\r\n border-color: #10707f;\r\n }\r\n \r\n .btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus,\r\n .show > .btn-info.dropdown-toggle:focus {\r\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\r\n }\r\n \r\n .btn-warning {\r\n color: #212529;\r\n background-color: #ffc107;\r\n border-color: #ffc107;\r\n }\r\n \r\n .btn-warning:hover {\r\n color: #212529;\r\n background-color: #e0a800;\r\n border-color: #d39e00;\r\n }\r\n \r\n .btn-warning:focus, .btn-warning.focus {\r\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\r\n }\r\n \r\n .btn-warning.disabled, .btn-warning:disabled {\r\n color: #212529;\r\n background-color: #ffc107;\r\n border-color: #ffc107;\r\n }\r\n \r\n .btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active,\r\n .show > .btn-warning.dropdown-toggle {\r\n color: #212529;\r\n background-color: #d39e00;\r\n border-color: #c69500;\r\n }\r\n \r\n .btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus,\r\n .show > .btn-warning.dropdown-toggle:focus {\r\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\r\n }\r\n \r\n .btn-danger {\r\n color: #fff;\r\n background-color: #dc3545;\r\n border-color: #dc3545;\r\n }\r\n \r\n .btn-danger:hover {\r\n color: #fff;\r\n background-color: #c82333;\r\n border-color: #bd2130;\r\n }\r\n \r\n .btn-danger:focus, .btn-danger.focus {\r\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\r\n }\r\n \r\n .btn-danger.disabled, .btn-danger:disabled {\r\n color: #fff;\r\n background-color: #dc3545;\r\n border-color: #dc3545;\r\n }\r\n \r\n .btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active,\r\n .show > .btn-danger.dropdown-toggle {\r\n color: #fff;\r\n background-color: #bd2130;\r\n border-color: #b21f2d;\r\n }\r\n \r\n .btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus,\r\n .show > .btn-danger.dropdown-toggle:focus {\r\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\r\n }\r\n \r\n .btn-light {\r\n color: #212529;\r\n background-color: #f8f9fa;\r\n border-color: #f8f9fa;\r\n }\r\n \r\n .btn-light:hover {\r\n color: #212529;\r\n background-color: #e2e6ea;\r\n border-color: #dae0e5;\r\n }\r\n \r\n .btn-light:focus, .btn-light.focus {\r\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\r\n }\r\n \r\n .btn-light.disabled, .btn-light:disabled {\r\n color: #212529;\r\n background-color: #f8f9fa;\r\n border-color: #f8f9fa;\r\n }\r\n \r\n .btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active,\r\n .show > .btn-light.dropdown-toggle {\r\n color: #212529;\r\n background-color: #dae0e5;\r\n border-color: #d3d9df;\r\n }\r\n \r\n .btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus,\r\n .show > .btn-light.dropdown-toggle:focus {\r\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\r\n }\r\n \r\n .btn-dark {\r\n color: #fff;\r\n background-color: #343a40;\r\n border-color: #343a40;\r\n }\r\n \r\n .btn-dark:hover {\r\n color: #fff;\r\n background-color: #23272b;\r\n border-color: #1d2124;\r\n }\r\n \r\n .btn-dark:focus, .btn-dark.focus {\r\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\r\n }\r\n \r\n .btn-dark.disabled, .btn-dark:disabled {\r\n color: #fff;\r\n background-color: #343a40;\r\n border-color: #343a40;\r\n }\r\n \r\n .btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active,\r\n .show > .btn-dark.dropdown-toggle {\r\n color: #fff;\r\n background-color: #1d2124;\r\n border-color: #171a1d;\r\n }\r\n \r\n .btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus,\r\n .show > .btn-dark.dropdown-toggle:focus {\r\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\r\n }\r\n \r\n .btn-outline-primary {\r\n color: #007bff;\r\n background-color: transparent;\r\n background-image: none;\r\n border-color: #007bff;\r\n }\r\n \r\n .btn-outline-primary:hover {\r\n color: #fff;\r\n background-color: #007bff;\r\n border-color: #007bff;\r\n }\r\n \r\n .btn-outline-primary:focus, .btn-outline-primary.focus {\r\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\r\n }\r\n \r\n .btn-outline-primary.disabled, .btn-outline-primary:disabled {\r\n color: #007bff;\r\n background-color: transparent;\r\n }\r\n \r\n .btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active,\r\n .show > .btn-outline-primary.dropdown-toggle {\r\n color: #fff;\r\n background-color: #007bff;\r\n border-color: #007bff;\r\n }\r\n \r\n .btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus,\r\n .show > .btn-outline-primary.dropdown-toggle:focus {\r\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\r\n }\r\n \r\n .btn-outline-secondary {\r\n color: #6c757d;\r\n background-color: transparent;\r\n background-image: none;\r\n border-color: #6c757d;\r\n }\r\n \r\n .btn-outline-secondary:hover {\r\n color: #fff;\r\n background-color: #6c757d;\r\n border-color: #6c757d;\r\n }\r\n \r\n .btn-outline-secondary:focus, .btn-outline-secondary.focus {\r\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\r\n }\r\n \r\n .btn-outline-secondary.disabled, .btn-outline-secondary:disabled {\r\n color: #6c757d;\r\n background-color: transparent;\r\n }\r\n \r\n .btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active,\r\n .show > .btn-outline-secondary.dropdown-toggle {\r\n color: #fff;\r\n background-color: #6c757d;\r\n border-color: #6c757d;\r\n }\r\n \r\n .btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus,\r\n .show > .btn-outline-secondary.dropdown-toggle:focus {\r\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\r\n }\r\n \r\n .btn-outline-success {\r\n color: #28a745;\r\n background-color: transparent;\r\n background-image: none;\r\n border-color: #28a745;\r\n }\r\n \r\n .btn-outline-success:hover {\r\n color: #fff;\r\n background-color: #28a745;\r\n border-color: #28a745;\r\n }\r\n \r\n .btn-outline-success:focus, .btn-outline-success.focus {\r\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\r\n }\r\n \r\n .btn-outline-success.disabled, .btn-outline-success:disabled {\r\n color: #28a745;\r\n background-color: transparent;\r\n }\r\n \r\n .btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active,\r\n .show > .btn-outline-success.dropdown-toggle {\r\n color: #fff;\r\n background-color: #28a745;\r\n border-color: #28a745;\r\n }\r\n \r\n .btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus,\r\n .show > .btn-outline-success.dropdown-toggle:focus {\r\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\r\n }\r\n \r\n .btn-outline-info {\r\n color: #17a2b8;\r\n background-color: transparent;\r\n background-image: none;\r\n border-color: #17a2b8;\r\n }\r\n \r\n .btn-outline-info:hover {\r\n color: #fff;\r\n background-color: #17a2b8;\r\n border-color: #17a2b8;\r\n }\r\n \r\n .btn-outline-info:focus, .btn-outline-info.focus {\r\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\r\n }\r\n \r\n .btn-outline-info.disabled, .btn-outline-info:disabled {\r\n color: #17a2b8;\r\n background-color: transparent;\r\n }\r\n \r\n .btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active,\r\n .show > .btn-outline-info.dropdown-toggle {\r\n color: #fff;\r\n background-color: #17a2b8;\r\n border-color: #17a2b8;\r\n }\r\n \r\n .btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus,\r\n .show > .btn-outline-info.dropdown-toggle:focus {\r\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\r\n }\r\n \r\n .btn-outline-warning {\r\n color: #ffc107;\r\n background-color: transparent;\r\n background-image: none;\r\n border-color: #ffc107;\r\n }\r\n \r\n .btn-outline-warning:hover {\r\n color: #212529;\r\n background-color: #ffc107;\r\n border-color: #ffc107;\r\n }\r\n \r\n .btn-outline-warning:focus, .btn-outline-warning.focus {\r\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\r\n }\r\n \r\n .btn-outline-warning.disabled, .btn-outline-warning:disabled {\r\n color: #ffc107;\r\n background-color: transparent;\r\n }\r\n \r\n .btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active,\r\n .show > .btn-outline-warning.dropdown-toggle {\r\n color: #212529;\r\n background-color: #ffc107;\r\n border-color: #ffc107;\r\n }\r\n \r\n .btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus,\r\n .show > .btn-outline-warning.dropdown-toggle:focus {\r\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\r\n }\r\n \r\n .btn-outline-danger {\r\n color: #dc3545;\r\n background-color: transparent;\r\n background-image: none;\r\n border-color: #dc3545;\r\n }\r\n \r\n .btn-outline-danger:hover {\r\n color: #fff;\r\n background-color: #dc3545;\r\n border-color: #dc3545;\r\n }\r\n \r\n .btn-outline-danger:focus, .btn-outline-danger.focus {\r\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\r\n }\r\n \r\n .btn-outline-danger.disabled, .btn-outline-danger:disabled {\r\n color: #dc3545;\r\n background-color: transparent;\r\n }\r\n \r\n .btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active,\r\n .show > .btn-outline-danger.dropdown-toggle {\r\n color: #fff;\r\n background-color: #dc3545;\r\n border-color: #dc3545;\r\n }\r\n \r\n .btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus,\r\n .show > .btn-outline-danger.dropdown-toggle:focus {\r\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\r\n }\r\n \r\n .btn-outline-light {\r\n color: #f8f9fa;\r\n background-color: transparent;\r\n background-image: none;\r\n border-color: #f8f9fa;\r\n }\r\n \r\n .btn-outline-light:hover {\r\n color: #212529;\r\n background-color: #f8f9fa;\r\n border-color: #f8f9fa;\r\n }\r\n \r\n .btn-outline-light:focus, .btn-outline-light.focus {\r\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\r\n }\r\n \r\n .btn-outline-light.disabled, .btn-outline-light:disabled {\r\n color: #f8f9fa;\r\n background-color: transparent;\r\n }\r\n \r\n .btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active,\r\n .show > .btn-outline-light.dropdown-toggle {\r\n color: #212529;\r\n background-color: #f8f9fa;\r\n border-color: #f8f9fa;\r\n }\r\n \r\n .btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus,\r\n .show > .btn-outline-light.dropdown-toggle:focus {\r\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\r\n }\r\n \r\n .btn-outline-dark {\r\n color: #343a40;\r\n background-color: transparent;\r\n background-image: none;\r\n border-color: #343a40;\r\n }\r\n \r\n .btn-outline-dark:hover {\r\n color: #fff;\r\n background-color: #343a40;\r\n border-color: #343a40;\r\n }\r\n \r\n .btn-outline-dark:focus, .btn-outline-dark.focus {\r\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\r\n }\r\n \r\n .btn-outline-dark.disabled, .btn-outline-dark:disabled {\r\n color: #343a40;\r\n background-color: transparent;\r\n }\r\n \r\n .btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active,\r\n .show > .btn-outline-dark.dropdown-toggle {\r\n color: #fff;\r\n background-color: #343a40;\r\n border-color: #343a40;\r\n }\r\n \r\n .btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus,\r\n .show > .btn-outline-dark.dropdown-toggle:focus {\r\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\r\n }\r\n \r\n .btn-link {\r\n font-weight: 400;\r\n color: #007bff;\r\n background-color: transparent;\r\n }\r\n \r\n .btn-link:hover {\r\n color: #0056b3;\r\n text-decoration: underline;\r\n background-color: transparent;\r\n border-color: transparent;\r\n }\r\n \r\n .btn-link:focus, .btn-link.focus {\r\n text-decoration: underline;\r\n border-color: transparent;\r\n box-shadow: none;\r\n }\r\n \r\n .btn-link:disabled, .btn-link.disabled {\r\n color: #6c757d;\r\n pointer-events: none;\r\n }\r\n \r\n .btn-lg, .btn-group-lg > .btn {\r\n padding: 0.5rem 1rem;\r\n font-size: 1.25rem;\r\n line-height: 1.5;\r\n border-radius: 0.3rem;\r\n }\r\n \r\n .btn-sm, .btn-group-sm > .btn {\r\n padding: 0.25rem 0.5rem;\r\n font-size: 0.875rem;\r\n line-height: 1.5;\r\n border-radius: 0.2rem;\r\n }\r\n \r\n .btn-block {\r\n display: block;\r\n width: 100%;\r\n }\r\n \r\n .btn-block + .btn-block {\r\n margin-top: 0.5rem;\r\n }\r\n \r\n input[type="submit"].btn-block,\r\n input[type="reset"].btn-block,\r\n input[type="button"].btn-block {\r\n width: 100%;\r\n }\r\n \r\n \r\n.btn .badge {\r\n position: relative;\r\n top: -1px;\r\n }\r\n\r\n \r\n.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {\r\n padding-right: 0.375rem;\r\n padding-left: 0.375rem;\r\n }\r\n \r\n .btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {\r\n padding-right: 0.75rem;\r\n padding-left: 0.75rem;\r\n }\r\n \r\n .btn-group-vertical {\r\n -ms-flex-direction: column;\r\n flex-direction: column;\r\n -ms-flex-align: start;\r\n align-items: flex-start;\r\n -ms-flex-pack: center;\r\n justify-content: center;\r\n }\r\n \r\n .btn-group-vertical .btn,\r\n .btn-group-vertical .btn-group {\r\n width: 100%;\r\n }\r\n \r\n .btn-group-vertical > .btn + .btn,\r\n .btn-group-vertical > .btn + .btn-group,\r\n .btn-group-vertical > .btn-group + .btn,\r\n .btn-group-vertical > .btn-group + .btn-group {\r\n margin-top: -1px;\r\n margin-left: 0;\r\n }\r\n \r\n .btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),\r\n .btn-group-vertical > .btn-group:not(:last-child) > .btn {\r\n border-bottom-right-radius: 0;\r\n border-bottom-left-radius: 0;\r\n }\r\n \r\n .btn-group-vertical > .btn:not(:first-child),\r\n .btn-group-vertical > .btn-group:not(:first-child) > .btn {\r\n border-top-left-radius: 0;\r\n border-top-right-radius: 0;\r\n }\r\n \r\n .btn-group-toggle > .btn,\r\n .btn-group-toggle > .btn-group > .btn {\r\n margin-bottom: 0;\r\n }\r\n \r\n .btn-group-toggle > .btn input[type="radio"],\r\n .btn-group-toggle > .btn input[type="checkbox"],\r\n .btn-group-toggle > .btn-group > .btn input[type="radio"],\r\n .btn-group-toggle > .btn-group > .btn input[type="checkbox"] {\r\n position: absolute;\r\n clip: rect(0, 0, 0, 0);\r\n pointer-events: none;\r\n }\r\n ',"",{version:3,sources:["webpack://./src/lib/components/button.css"],names:[],mappings:"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",sourcesContent:['/*!\r\nButton related css from bootstrap\r\n\r\n * Bootstrap v4.1.3 (https://getbootstrap.com/)\r\n * Copyright 2011-2018 The Bootstrap Authors\r\n * Copyright 2011-2018 Twitter, Inc.\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\r\n */\r\n\r\n .btn {\r\n display: inline-block;\r\n font-weight: 400;\r\n text-align: center;\r\n white-space: nowrap;\r\n vertical-align: middle;\r\n -webkit-user-select: none;\r\n -moz-user-select: none;\r\n -ms-user-select: none;\r\n user-select: none;\r\n border: 1px solid transparent;\r\n padding: 0.375rem 0.75rem;\r\n font-size: 1rem;\r\n line-height: 1.5;\r\n border-radius: 0.25rem;\r\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\r\n }\r\n\r\n @media screen and (prefers-reduced-motion: reduce) {\r\n .btn {\r\n transition: none;\r\n }\r\n }\r\n\r\n .btn:hover, .btn:focus {\r\n text-decoration: none;\r\n }\r\n\r\n \r\n.btn:focus, .btn.focus {\r\n outline: 0;\r\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\r\n }\r\n \r\n .btn.disabled, .btn:disabled {\r\n opacity: 0.65;\r\n }\r\n \r\n .btn:not(:disabled):not(.disabled) {\r\n cursor: pointer;\r\n }\r\n \r\n a.btn.disabled,\r\n fieldset:disabled a.btn {\r\n pointer-events: none;\r\n }\r\n \r\n .btn-primary {\r\n color: #fff;\r\n background-color: #007bff;\r\n border-color: #007bff;\r\n }\r\n \r\n .btn-primary:hover {\r\n color: #fff;\r\n background-color: #0069d9;\r\n border-color: #0062cc;\r\n }\r\n \r\n .btn-primary:focus, .btn-primary.focus {\r\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\r\n }\r\n \r\n .btn-primary.disabled, .btn-primary:disabled {\r\n color: #fff;\r\n background-color: #007bff;\r\n border-color: #007bff;\r\n }\r\n \r\n .btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active,\r\n .show > .btn-primary.dropdown-toggle {\r\n color: #fff;\r\n background-color: #0062cc;\r\n border-color: #005cbf;\r\n }\r\n \r\n .btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus,\r\n .show > .btn-primary.dropdown-toggle:focus {\r\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\r\n }\r\n \r\n .btn-secondary {\r\n color: #fff;\r\n background-color: #6c757d;\r\n border-color: #6c757d;\r\n }\r\n \r\n .btn-secondary:hover {\r\n color: #fff;\r\n background-color: #5a6268;\r\n border-color: #545b62;\r\n }\r\n \r\n .btn-secondary:focus, .btn-secondary.focus {\r\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\r\n }\r\n \r\n .btn-secondary.disabled, .btn-secondary:disabled {\r\n color: #fff;\r\n background-color: #6c757d;\r\n border-color: #6c757d;\r\n }\r\n \r\n .btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active,\r\n .show > .btn-secondary.dropdown-toggle {\r\n color: #fff;\r\n background-color: #545b62;\r\n border-color: #4e555b;\r\n }\r\n \r\n .btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus,\r\n .show > .btn-secondary.dropdown-toggle:focus {\r\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\r\n }\r\n \r\n .btn-success {\r\n color: #fff;\r\n background-color: #28a745;\r\n border-color: #28a745;\r\n }\r\n \r\n .btn-success:hover {\r\n color: #fff;\r\n background-color: #218838;\r\n border-color: #1e7e34;\r\n }\r\n \r\n .btn-success:focus, .btn-success.focus {\r\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\r\n }\r\n \r\n .btn-success.disabled, .btn-success:disabled {\r\n color: #fff;\r\n background-color: #28a745;\r\n border-color: #28a745;\r\n }\r\n \r\n .btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active,\r\n .show > .btn-success.dropdown-toggle {\r\n color: #fff;\r\n background-color: #1e7e34;\r\n border-color: #1c7430;\r\n }\r\n \r\n .btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus,\r\n .show > .btn-success.dropdown-toggle:focus {\r\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\r\n }\r\n \r\n .btn-info {\r\n color: #fff;\r\n background-color: #17a2b8;\r\n border-color: #17a2b8;\r\n }\r\n \r\n .btn-info:hover {\r\n color: #fff;\r\n background-color: #138496;\r\n border-color: #117a8b;\r\n }\r\n \r\n .btn-info:focus, .btn-info.focus {\r\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\r\n }\r\n \r\n .btn-info.disabled, .btn-info:disabled {\r\n color: #fff;\r\n background-color: #17a2b8;\r\n border-color: #17a2b8;\r\n }\r\n \r\n .btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active,\r\n .show > .btn-info.dropdown-toggle {\r\n color: #fff;\r\n background-color: #117a8b;\r\n border-color: #10707f;\r\n }\r\n \r\n .btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus,\r\n .show > .btn-info.dropdown-toggle:focus {\r\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\r\n }\r\n \r\n .btn-warning {\r\n color: #212529;\r\n background-color: #ffc107;\r\n border-color: #ffc107;\r\n }\r\n \r\n .btn-warning:hover {\r\n color: #212529;\r\n background-color: #e0a800;\r\n border-color: #d39e00;\r\n }\r\n \r\n .btn-warning:focus, .btn-warning.focus {\r\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\r\n }\r\n \r\n .btn-warning.disabled, .btn-warning:disabled {\r\n color: #212529;\r\n background-color: #ffc107;\r\n border-color: #ffc107;\r\n }\r\n \r\n .btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active,\r\n .show > .btn-warning.dropdown-toggle {\r\n color: #212529;\r\n background-color: #d39e00;\r\n border-color: #c69500;\r\n }\r\n \r\n .btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus,\r\n .show > .btn-warning.dropdown-toggle:focus {\r\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\r\n }\r\n \r\n .btn-danger {\r\n color: #fff;\r\n background-color: #dc3545;\r\n border-color: #dc3545;\r\n }\r\n \r\n .btn-danger:hover {\r\n color: #fff;\r\n background-color: #c82333;\r\n border-color: #bd2130;\r\n }\r\n \r\n .btn-danger:focus, .btn-danger.focus {\r\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\r\n }\r\n \r\n .btn-danger.disabled, .btn-danger:disabled {\r\n color: #fff;\r\n background-color: #dc3545;\r\n border-color: #dc3545;\r\n }\r\n \r\n .btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active,\r\n .show > .btn-danger.dropdown-toggle {\r\n color: #fff;\r\n background-color: #bd2130;\r\n border-color: #b21f2d;\r\n }\r\n \r\n .btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus,\r\n .show > .btn-danger.dropdown-toggle:focus {\r\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\r\n }\r\n \r\n .btn-light {\r\n color: #212529;\r\n background-color: #f8f9fa;\r\n border-color: #f8f9fa;\r\n }\r\n \r\n .btn-light:hover {\r\n color: #212529;\r\n background-color: #e2e6ea;\r\n border-color: #dae0e5;\r\n }\r\n \r\n .btn-light:focus, .btn-light.focus {\r\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\r\n }\r\n \r\n .btn-light.disabled, .btn-light:disabled {\r\n color: #212529;\r\n background-color: #f8f9fa;\r\n border-color: #f8f9fa;\r\n }\r\n \r\n .btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active,\r\n .show > .btn-light.dropdown-toggle {\r\n color: #212529;\r\n background-color: #dae0e5;\r\n border-color: #d3d9df;\r\n }\r\n \r\n .btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus,\r\n .show > .btn-light.dropdown-toggle:focus {\r\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\r\n }\r\n \r\n .btn-dark {\r\n color: #fff;\r\n background-color: #343a40;\r\n border-color: #343a40;\r\n }\r\n \r\n .btn-dark:hover {\r\n color: #fff;\r\n background-color: #23272b;\r\n border-color: #1d2124;\r\n }\r\n \r\n .btn-dark:focus, .btn-dark.focus {\r\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\r\n }\r\n \r\n .btn-dark.disabled, .btn-dark:disabled {\r\n color: #fff;\r\n background-color: #343a40;\r\n border-color: #343a40;\r\n }\r\n \r\n .btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active,\r\n .show > .btn-dark.dropdown-toggle {\r\n color: #fff;\r\n background-color: #1d2124;\r\n border-color: #171a1d;\r\n }\r\n \r\n .btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus,\r\n .show > .btn-dark.dropdown-toggle:focus {\r\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\r\n }\r\n \r\n .btn-outline-primary {\r\n color: #007bff;\r\n background-color: transparent;\r\n background-image: none;\r\n border-color: #007bff;\r\n }\r\n \r\n .btn-outline-primary:hover {\r\n color: #fff;\r\n background-color: #007bff;\r\n border-color: #007bff;\r\n }\r\n \r\n .btn-outline-primary:focus, .btn-outline-primary.focus {\r\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\r\n }\r\n \r\n .btn-outline-primary.disabled, .btn-outline-primary:disabled {\r\n color: #007bff;\r\n background-color: transparent;\r\n }\r\n \r\n .btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active,\r\n .show > .btn-outline-primary.dropdown-toggle {\r\n color: #fff;\r\n background-color: #007bff;\r\n border-color: #007bff;\r\n }\r\n \r\n .btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus,\r\n .show > .btn-outline-primary.dropdown-toggle:focus {\r\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\r\n }\r\n \r\n .btn-outline-secondary {\r\n color: #6c757d;\r\n background-color: transparent;\r\n background-image: none;\r\n border-color: #6c757d;\r\n }\r\n \r\n .btn-outline-secondary:hover {\r\n color: #fff;\r\n background-color: #6c757d;\r\n border-color: #6c757d;\r\n }\r\n \r\n .btn-outline-secondary:focus, .btn-outline-secondary.focus {\r\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\r\n }\r\n \r\n .btn-outline-secondary.disabled, .btn-outline-secondary:disabled {\r\n color: #6c757d;\r\n background-color: transparent;\r\n }\r\n \r\n .btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active,\r\n .show > .btn-outline-secondary.dropdown-toggle {\r\n color: #fff;\r\n background-color: #6c757d;\r\n border-color: #6c757d;\r\n }\r\n \r\n .btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus,\r\n .show > .btn-outline-secondary.dropdown-toggle:focus {\r\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\r\n }\r\n \r\n .btn-outline-success {\r\n color: #28a745;\r\n background-color: transparent;\r\n background-image: none;\r\n border-color: #28a745;\r\n }\r\n \r\n .btn-outline-success:hover {\r\n color: #fff;\r\n background-color: #28a745;\r\n border-color: #28a745;\r\n }\r\n \r\n .btn-outline-success:focus, .btn-outline-success.focus {\r\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\r\n }\r\n \r\n .btn-outline-success.disabled, .btn-outline-success:disabled {\r\n color: #28a745;\r\n background-color: transparent;\r\n }\r\n \r\n .btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active,\r\n .show > .btn-outline-success.dropdown-toggle {\r\n color: #fff;\r\n background-color: #28a745;\r\n border-color: #28a745;\r\n }\r\n \r\n .btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus,\r\n .show > .btn-outline-success.dropdown-toggle:focus {\r\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\r\n }\r\n \r\n .btn-outline-info {\r\n color: #17a2b8;\r\n background-color: transparent;\r\n background-image: none;\r\n border-color: #17a2b8;\r\n }\r\n \r\n .btn-outline-info:hover {\r\n color: #fff;\r\n background-color: #17a2b8;\r\n border-color: #17a2b8;\r\n }\r\n \r\n .btn-outline-info:focus, .btn-outline-info.focus {\r\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\r\n }\r\n \r\n .btn-outline-info.disabled, .btn-outline-info:disabled {\r\n color: #17a2b8;\r\n background-color: transparent;\r\n }\r\n \r\n .btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active,\r\n .show > .btn-outline-info.dropdown-toggle {\r\n color: #fff;\r\n background-color: #17a2b8;\r\n border-color: #17a2b8;\r\n }\r\n \r\n .btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus,\r\n .show > .btn-outline-info.dropdown-toggle:focus {\r\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\r\n }\r\n \r\n .btn-outline-warning {\r\n color: #ffc107;\r\n background-color: transparent;\r\n background-image: none;\r\n border-color: #ffc107;\r\n }\r\n \r\n .btn-outline-warning:hover {\r\n color: #212529;\r\n background-color: #ffc107;\r\n border-color: #ffc107;\r\n }\r\n \r\n .btn-outline-warning:focus, .btn-outline-warning.focus {\r\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\r\n }\r\n \r\n .btn-outline-warning.disabled, .btn-outline-warning:disabled {\r\n color: #ffc107;\r\n background-color: transparent;\r\n }\r\n \r\n .btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active,\r\n .show > .btn-outline-warning.dropdown-toggle {\r\n color: #212529;\r\n background-color: #ffc107;\r\n border-color: #ffc107;\r\n }\r\n \r\n .btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus,\r\n .show > .btn-outline-warning.dropdown-toggle:focus {\r\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\r\n }\r\n \r\n .btn-outline-danger {\r\n color: #dc3545;\r\n background-color: transparent;\r\n background-image: none;\r\n border-color: #dc3545;\r\n }\r\n \r\n .btn-outline-danger:hover {\r\n color: #fff;\r\n background-color: #dc3545;\r\n border-color: #dc3545;\r\n }\r\n \r\n .btn-outline-danger:focus, .btn-outline-danger.focus {\r\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\r\n }\r\n \r\n .btn-outline-danger.disabled, .btn-outline-danger:disabled {\r\n color: #dc3545;\r\n background-color: transparent;\r\n }\r\n \r\n .btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active,\r\n .show > .btn-outline-danger.dropdown-toggle {\r\n color: #fff;\r\n background-color: #dc3545;\r\n border-color: #dc3545;\r\n }\r\n \r\n .btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus,\r\n .show > .btn-outline-danger.dropdown-toggle:focus {\r\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\r\n }\r\n \r\n .btn-outline-light {\r\n color: #f8f9fa;\r\n background-color: transparent;\r\n background-image: none;\r\n border-color: #f8f9fa;\r\n }\r\n \r\n .btn-outline-light:hover {\r\n color: #212529;\r\n background-color: #f8f9fa;\r\n border-color: #f8f9fa;\r\n }\r\n \r\n .btn-outline-light:focus, .btn-outline-light.focus {\r\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\r\n }\r\n \r\n .btn-outline-light.disabled, .btn-outline-light:disabled {\r\n color: #f8f9fa;\r\n background-color: transparent;\r\n }\r\n \r\n .btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active,\r\n .show > .btn-outline-light.dropdown-toggle {\r\n color: #212529;\r\n background-color: #f8f9fa;\r\n border-color: #f8f9fa;\r\n }\r\n \r\n .btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus,\r\n .show > .btn-outline-light.dropdown-toggle:focus {\r\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\r\n }\r\n \r\n .btn-outline-dark {\r\n color: #343a40;\r\n background-color: transparent;\r\n background-image: none;\r\n border-color: #343a40;\r\n }\r\n \r\n .btn-outline-dark:hover {\r\n color: #fff;\r\n background-color: #343a40;\r\n border-color: #343a40;\r\n }\r\n \r\n .btn-outline-dark:focus, .btn-outline-dark.focus {\r\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\r\n }\r\n \r\n .btn-outline-dark.disabled, .btn-outline-dark:disabled {\r\n color: #343a40;\r\n background-color: transparent;\r\n }\r\n \r\n .btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active,\r\n .show > .btn-outline-dark.dropdown-toggle {\r\n color: #fff;\r\n background-color: #343a40;\r\n border-color: #343a40;\r\n }\r\n \r\n .btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus,\r\n .show > .btn-outline-dark.dropdown-toggle:focus {\r\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\r\n }\r\n \r\n .btn-link {\r\n font-weight: 400;\r\n color: #007bff;\r\n background-color: transparent;\r\n }\r\n \r\n .btn-link:hover {\r\n color: #0056b3;\r\n text-decoration: underline;\r\n background-color: transparent;\r\n border-color: transparent;\r\n }\r\n \r\n .btn-link:focus, .btn-link.focus {\r\n text-decoration: underline;\r\n border-color: transparent;\r\n box-shadow: none;\r\n }\r\n \r\n .btn-link:disabled, .btn-link.disabled {\r\n color: #6c757d;\r\n pointer-events: none;\r\n }\r\n \r\n .btn-lg, .btn-group-lg > .btn {\r\n padding: 0.5rem 1rem;\r\n font-size: 1.25rem;\r\n line-height: 1.5;\r\n border-radius: 0.3rem;\r\n }\r\n \r\n .btn-sm, .btn-group-sm > .btn {\r\n padding: 0.25rem 0.5rem;\r\n font-size: 0.875rem;\r\n line-height: 1.5;\r\n border-radius: 0.2rem;\r\n }\r\n \r\n .btn-block {\r\n display: block;\r\n width: 100%;\r\n }\r\n \r\n .btn-block + .btn-block {\r\n margin-top: 0.5rem;\r\n }\r\n \r\n input[type="submit"].btn-block,\r\n input[type="reset"].btn-block,\r\n input[type="button"].btn-block {\r\n width: 100%;\r\n }\r\n \r\n \r\n.btn .badge {\r\n position: relative;\r\n top: -1px;\r\n }\r\n\r\n \r\n.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {\r\n padding-right: 0.375rem;\r\n padding-left: 0.375rem;\r\n }\r\n \r\n .btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {\r\n padding-right: 0.75rem;\r\n padding-left: 0.75rem;\r\n }\r\n \r\n .btn-group-vertical {\r\n -ms-flex-direction: column;\r\n flex-direction: column;\r\n -ms-flex-align: start;\r\n align-items: flex-start;\r\n -ms-flex-pack: center;\r\n justify-content: center;\r\n }\r\n \r\n .btn-group-vertical .btn,\r\n .btn-group-vertical .btn-group {\r\n width: 100%;\r\n }\r\n \r\n .btn-group-vertical > .btn + .btn,\r\n .btn-group-vertical > .btn + .btn-group,\r\n .btn-group-vertical > .btn-group + .btn,\r\n .btn-group-vertical > .btn-group + .btn-group {\r\n margin-top: -1px;\r\n margin-left: 0;\r\n }\r\n \r\n .btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),\r\n .btn-group-vertical > .btn-group:not(:last-child) > .btn {\r\n border-bottom-right-radius: 0;\r\n border-bottom-left-radius: 0;\r\n }\r\n \r\n .btn-group-vertical > .btn:not(:first-child),\r\n .btn-group-vertical > .btn-group:not(:first-child) > .btn {\r\n border-top-left-radius: 0;\r\n border-top-right-radius: 0;\r\n }\r\n \r\n .btn-group-toggle > .btn,\r\n .btn-group-toggle > .btn-group > .btn {\r\n margin-bottom: 0;\r\n }\r\n \r\n .btn-group-toggle > .btn input[type="radio"],\r\n .btn-group-toggle > .btn input[type="checkbox"],\r\n .btn-group-toggle > .btn-group > .btn input[type="radio"],\r\n .btn-group-toggle > .btn-group > .btn input[type="checkbox"] {\r\n position: absolute;\r\n clip: rect(0, 0, 0, 0);\r\n pointer-events: none;\r\n }\r\n '],sourceRoot:""}]),r.a=i},function(n,r,e){!function(){"use strict";var r=function(n){if(!(this instanceof r))return new r(n);if(this.version=1,this.support=!("undefined"==typeof File||"undefined"==typeof Blob||"undefined"==typeof FileList||!Blob.prototype.webkitSlice&&!Blob.prototype.mozSlice&&!Blob.prototype.slice),!this.support)return!1;var e=this;e.files=[],e.defaults={chunkSize:1048576,forceChunkSize:!1,simultaneousUploads:3,fileParameterName:"file",chunkNumberParameterName:"resumableChunkNumber",chunkSizeParameterName:"resumableChunkSize",currentChunkSizeParameterName:"resumableCurrentChunkSize",totalSizeParameterName:"resumableTotalSize",typeParameterName:"resumableType",identifierParameterName:"resumableIdentifier",fileNameParameterName:"resumableFilename",relativePathParameterName:"resumableRelativePath",totalChunksParameterName:"resumableTotalChunks",throttleProgressCallbacks:.5,query:{},headers:{},preprocess:null,method:"multipart",uploadMethod:"POST",testMethod:"GET",prioritizeFirstAndLastChunk:!1,target:"/",testTarget:null,parameterNamespace:"",testChunks:!0,generateUniqueIdentifier:null,getTarget:null,maxChunkRetries:100,chunkRetryInterval:void 0,permanentErrors:[400,404,415,500,501],maxFiles:void 0,withCredentials:!1,xhrTimeout:0,clearInput:!0,chunkFormat:"blob",setChunkTypeFromFile:!1,maxFilesErrorCallback:function(n,r){var o=e.getOpt("maxFiles");alert("Please upload no more than "+o+" file"+(1===o?"":"s")+" at a time.")},minFileSize:1,minFileSizeErrorCallback:function(n,r){alert(n.fileName||n.name+" is too small, please upload files larger than "+o.formatSize(e.getOpt("minFileSize"))+".")},maxFileSize:void 0,maxFileSizeErrorCallback:function(n,r){alert(n.fileName||n.name+" is too large, please upload files less than "+o.formatSize(e.getOpt("maxFileSize"))+".")},fileType:[],fileTypeErrorCallback:function(n,r){alert(n.fileName||n.name+" has type not allowed, please upload files of type "+e.getOpt("fileType")+".")}},e.opts=n||{},e.getOpt=function(n){var e=this;if(n instanceof Array){var t={};return o.each(n,(function(n){t[n]=e.getOpt(n)})),t}if(e instanceof b){if(void 0!==e.opts[n])return e.opts[n];e=e.fileObj}if(e instanceof c){if(void 0!==e.opts[n])return e.opts[n];e=e.resumableObj}if(e instanceof r)return void 0!==e.opts[n]?e.opts[n]:e.defaults[n]},e.events=[],e.on=function(n,r){e.events.push(n.toLowerCase(),r)},e.fire=function(){for(var n=[],r=0;r0){var b=!1;for(var u in a.fileType){var f="."+a.fileType[u];if(-1!==l.toLowerCase().indexOf(f.toLowerCase(),l.length-f.length)){b=!0;break}}if(!b)return a.fileTypeErrorCallback(n,t++),!1}if(void 0!==a.minFileSize&&n.sizea.maxFileSize)return a.maxFileSizeErrorCallback(n,t++),!1;function A(o){e.getFromUniqueIdentifier(o)?s.push(n):function(){n.uniqueIdentifier=o;var t=new c(e,n,o);e.files.push(t),i.push(t),t.container=void 0!==r?r.srcElement:null,window.setTimeout((function(){e.fire("fileAdded",t,r)}),0)}(),d()}var p=o.generateUniqueIdentifier(n,r);p&&"function"==typeof p.then?p.then((function(n){A(n)}),(function(){d()})):A(p)}))};function c(n,r,e){var t=this;t.opts={},t.getOpt=n.getOpt,t._prevProgress=0,t.resumableObj=n,t.file=r,t.fileName=r.fileName||r.name,t.size=r.size,t.relativePath=r.relativePath||r.webkitRelativePath||t.fileName,t.uniqueIdentifier=e,t._pause=!1,t.container="";var a=void 0!==e,i=function(n,r){switch(n){case"progress":t.resumableObj.fire("fileProgress",t,r);break;case"error":t.abort(),a=!0,t.chunks=[],t.resumableObj.fire("fileError",t,r);break;case"success":if(a)return;t.resumableObj.fire("fileProgress",t),t.isComplete()&&t.resumableObj.fire("fileSuccess",t,r);break;case"retry":t.resumableObj.fire("fileRetry",t)}};return t.chunks=[],t.abort=function(){var n=0;o.each(t.chunks,(function(r){"uploading"==r.status()&&(r.abort(),n++)})),n>0&&t.resumableObj.fire("fileProgress",t)},t.cancel=function(){var n=t.chunks;t.chunks=[],o.each(n,(function(n){"uploading"==n.status()&&(n.abort(),t.resumableObj.uploadNextChunk())})),t.resumableObj.removeFile(t),t.resumableObj.fire("fileProgress",t)},t.retry=function(){t.bootstrap();var n=!1;t.resumableObj.on("chunkingComplete",(function(){n||t.resumableObj.upload(),n=!0}))},t.bootstrap=function(){t.abort(),a=!1,t.chunks=[],t._prevProgress=0;for(var n=t.getOpt("forceChunkSize")?Math.ceil:Math.floor,r=Math.max(n(t.file.size/t.getOpt("chunkSize")),1),e=0;e.99999?1:n,n=Math.max(t._prevProgress,n),t._prevProgress=n,n},t.isUploading=function(){var n=!1;return o.each(t.chunks,(function(r){if("uploading"==r.status())return n=!0,!1})),n},t.isComplete=function(){var n=!1;return o.each(t.chunks,(function(r){var e=r.status();if("pending"==e||"uploading"==e||1===r.preprocessState)return n=!0,!1})),!n},t.pause=function(n){t._pause=void 0===n?!t._pause:n},t.isPaused=function(){return t._pause},t.resumableObj.fire("chunkingStart",t),t.bootstrap(),this}function b(n,r,e,t){var a=this;a.opts={},a.getOpt=n.getOpt,a.resumableObj=n,a.fileObj=r,a.fileObjSize=r.size,a.fileObjType=r.file.type,a.offset=e,a.callback=t,a.lastProgressCallback=new Date,a.tested=!1,a.retries=0,a.pendingRetry=!1,a.preprocessState=0;var i=a.getOpt("chunkSize");return a.loaded=0,a.startByte=a.offset*i,a.endByte=Math.min(a.fileObjSize,(a.offset+1)*i),a.fileObjSize-a.endByte1e3*a.getOpt("throttleProgressCallbacks")&&(a.callback("progress"),a.lastProgressCallback=new Date),a.loaded=n.loaded||0}),!1),a.loaded=0,a.pendingRetry=!1,a.callback("progress");var r=function(n){var r=a.status();if("success"==r||"error"==r)a.callback(r,a.message()),a.resumableObj.uploadNextChunk();else{a.callback("retry",a.message()),a.abort(),a.retries++;var e=a.getOpt("chunkRetryInterval");void 0!==e?(a.pendingRetry=!0,setTimeout(a.send,e)):a.send()}};a.xhr.addEventListener("load",r,!1),a.xhr.addEventListener("error",r,!1),a.xhr.addEventListener("timeout",r,!1);var e=[["chunkNumberParameterName",a.offset+1],["chunkSizeParameterName",a.getOpt("chunkSize")],["currentChunkSizeParameterName",a.endByte-a.startByte],["totalSizeParameterName",a.fileObjSize],["typeParameterName",a.fileObjType],["identifierParameterName",a.fileObj.uniqueIdentifier],["fileNameParameterName",a.fileObj.fileName],["relativePathParameterName",a.fileObj.relativePath],["totalChunksParameterName",a.fileObj.chunks.length]].filter((function(n){return a.getOpt(n[0])})).reduce((function(n,r){return n[a.getOpt(r[0])]=r[1],n}),{}),t=a.getOpt("query");"function"==typeof t&&(t=t(a.fileObj,a)),o.each(t,(function(n,r){e[n]=r}));var i=a.fileObj.file.slice?"slice":a.fileObj.file.mozSlice?"mozSlice":a.fileObj.file.webkitSlice?"webkitSlice":"slice",s=a.fileObj.file[i](a.startByte,a.endByte,a.getOpt("setChunkTypeFromFile")?a.fileObj.file.type:""),l=null,d=[],c=a.getOpt("parameterNamespace");if("octet"===a.getOpt("method"))l=s,o.each(e,(function(n,r){d.push([encodeURIComponent(c+n),encodeURIComponent(r)].join("="))}));else if(l=new FormData,o.each(e,(function(n,r){l.append(c+n,r),d.push([encodeURIComponent(c+n),encodeURIComponent(r)].join("="))})),"blob"==a.getOpt("chunkFormat"))l.append(c+a.getOpt("fileParameterName"),s,a.fileObj.fileName);else if("base64"==a.getOpt("chunkFormat")){var b=new FileReader;b.onload=function(n){l.append(c+a.getOpt("fileParameterName"),b.result),a.xhr.send(l)},b.readAsDataURL(s)}var u=o.getTarget("upload",d),f=a.getOpt("uploadMethod");a.xhr.open(f,u),"octet"===a.getOpt("method")&&a.xhr.setRequestHeader("Content-Type","application/octet-stream"),a.xhr.timeout=a.getOpt("xhrTimeout"),a.xhr.withCredentials=a.getOpt("withCredentials");var A=a.getOpt("headers");"function"==typeof A&&(A=A(a.fileObj,a)),o.each(A,(function(n,r){a.xhr.setRequestHeader(n,r)})),"blob"==a.getOpt("chunkFormat")&&a.xhr.send(l)}else a.test()},a.abort=function(){a.xhr&&a.xhr.abort(),a.xhr=null},a.status=function(){return a.pendingRetry?"uploading":a.xhr?a.xhr.readyState<4?"uploading":200==a.xhr.status||201==a.xhr.status?"success":o.contains(a.getOpt("permanentErrors"),a.xhr.status)||a.retries>=a.getOpt("maxChunkRetries")?"error":(a.abort(),"pending"):"pending"},a.message=function(){return a.xhr?a.xhr.responseText:""},a.progress=function(n){void 0===n&&(n=!1);var r=n?(a.endByte-a.startByte)/a.fileObjSize:1;if(a.pendingRetry)return 0;switch(a.xhr&&a.xhr.status||(r*=.95),a.status()){case"success":case"error":return 1*r;case"pending":return 0*r;default:return a.loaded/(a.endByte-a.startByte)*r}},this}return e.uploadNextChunk=function(){var n=!1;if(e.getOpt("prioritizeFirstAndLastChunk")&&(o.each(e.files,(function(r){return r.chunks.length&&"pending"==r.chunks[0].status()&&0===r.chunks[0].preprocessState?(r.chunks[0].send(),n=!0,!1):r.chunks.length>1&&"pending"==r.chunks[r.chunks.length-1].status()&&0===r.chunks[r.chunks.length-1].preprocessState?(r.chunks[r.chunks.length-1].send(),n=!0,!1):void 0})),n))return!0;if(o.each(e.files,(function(r){if(!1===r.isPaused()&&o.each(r.chunks,(function(r){if("pending"==r.status()&&0===r.preprocessState)return r.send(),n=!0,!1})),n)return!1})),n)return!0;var r=!1;return o.each(e.files,(function(n){if(!n.isComplete())return r=!0,!1})),r||e.fire("complete"),!1},e.assignBrowse=function(n,r){void 0===n.length&&(n=[n]),o.each(n,(function(n){var o;"INPUT"===n.tagName&&"file"===n.type?o=n:((o=document.createElement("input")).setAttribute("type","file"),o.style.display="none",n.addEventListener("click",(function(){o.style.opacity=0,o.style.display="block",o.focus(),o.click(),o.style.display="none"}),!1),n.appendChild(o));var t=e.getOpt("maxFiles");void 0===t||1!=t?o.setAttribute("multiple","multiple"):o.removeAttribute("multiple"),r?o.setAttribute("webkitdirectory","webkitdirectory"):o.removeAttribute("webkitdirectory");var a=e.getOpt("fileType");void 0!==a&&a.length>=1?o.setAttribute("accept",a.map((function(n){return"."+n})).join(",")):o.removeAttribute("accept"),o.addEventListener("change",(function(n){d(n.target.files,n),e.getOpt("clearInput")&&(n.target.value="")}),!1)}))},e.assignDrop=function(n){void 0===n.length&&(n=[n]),o.each(n,(function(n){n.addEventListener("dragover",a,!1),n.addEventListener("dragenter",a,!1),n.addEventListener("drop",t,!1)}))},e.unAssignDrop=function(n){void 0===n.length&&(n=[n]),o.each(n,(function(n){n.removeEventListener("dragover",a),n.removeEventListener("dragenter",a),n.removeEventListener("drop",t)}))},e.isUploading=function(){var n=!1;return o.each(e.files,(function(r){if(r.isUploading())return n=!0,!1})),n},e.upload=function(){if(!e.isUploading()){e.fire("uploadStart");for(var n=1;n<=e.getOpt("simultaneousUploads");n++)e.uploadNextChunk()}},e.pause=function(){o.each(e.files,(function(n){n.abort()})),e.fire("pause")},e.cancel=function(){e.fire("beforeCancel");for(var n=e.files.length-1;n>=0;n--)e.files[n].cancel();e.fire("cancel")},e.progress=function(){var n=0,r=0;return o.each(e.files,(function(e){n+=e.progress()*e.size,r+=e.size})),r>0?n/r:0},e.addFile=function(n,r){d([n],r)},e.addFiles=function(n,r){d(n,r)},e.removeFile=function(n){for(var r=e.files.length-1;r>=0;r--)e.files[r]===n&&e.files.splice(r,1)},e.getFromUniqueIdentifier=function(n){var r=!1;return o.each(e.files,(function(e){e.uniqueIdentifier==n&&(r=e)})),r},e.getSize=function(){var n=0;return o.each(e.files,(function(r){n+=r.size})),n},e.handleDropEvent=function(n){t(n)},e.handleChangeEvent=function(n){d(n.target.files,n),n.target.value=""},e.updateQuery=function(n){e.opts.query=n},this};n.exports=r}()},function(n,r,e){"use strict";e.r(r),e.d(r,"Upload_ReactComponent",(function(){return F}));var o=e(1),t=e.n(o);function a(n){return(a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(n){return typeof n}:function(n){return n&&"function"==typeof Symbol&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n})(n)}function i(n,r){for(var e=0;e\n // tags it will allow on a page\n\n if (!options.singleton && typeof options.singleton !== 'boolean') {\n options.singleton = isOldIE();\n }\n\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n\n if (Object.prototype.toString.call(newList) !== '[object Array]') {\n return;\n }\n\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDom[index].references--;\n }\n\n var newLastIdentifiers = modulesToDom(newList, options);\n\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n\n var _index = getIndexByIdentifier(_identifier);\n\n if (stylesInDom[_index].references === 0) {\n stylesInDom[_index].updater();\n\n stylesInDom.splice(_index, 1);\n }\n }\n\n lastIdentifiers = newLastIdentifiers;\n };\n};","\"use strict\";\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nmodule.exports = function cssWithMappingToString(item) {\n var _item = _slicedToArray(item, 4),\n content = _item[1],\n cssMapping = _item[3];\n\n if (typeof btoa === \"function\") {\n // eslint-disable-next-line no-undef\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || \"\").concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join(\"\\n\");\n }\n\n return [content].join(\"\\n\");\n};","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\n// eslint-disable-next-line func-names\nmodule.exports = function (cssWithMappingToString) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = cssWithMappingToString(item);\n\n if (item[2]) {\n return \"@media \".concat(item[2], \" {\").concat(content, \"}\");\n }\n\n return content;\n }).join(\"\");\n }; // import a list of modules into the list\n // eslint-disable-next-line func-names\n\n\n list.i = function (modules, mediaQuery, dedupe) {\n if (typeof modules === \"string\") {\n // eslint-disable-next-line no-param-reassign\n modules = [[null, modules, \"\"]];\n }\n\n var alreadyImportedModules = {};\n\n if (dedupe) {\n for (var i = 0; i < this.length; i++) {\n // eslint-disable-next-line prefer-destructuring\n var id = this[i][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n\n for (var _i = 0; _i < modules.length; _i++) {\n var item = [].concat(modules[_i]);\n\n if (dedupe && alreadyImportedModules[item[0]]) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (mediaQuery) {\n if (!item[2]) {\n item[2] = mediaQuery;\n } else {\n item[2] = \"\".concat(mediaQuery, \" and \").concat(item[2]);\n }\n }\n\n list.push(item);\n }\n };\n\n return list;\n};","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"/*!\\r\\nThe progressbar code is taken originally from the Bootstrap package\\r\\n\\r\\n * Bootstrap v4.1.3 (https://getbootstrap.com/)\\r\\n * Copyright 2011-2018 The Bootstrap Authors\\r\\n * Copyright 2011-2018 Twitter, Inc.\\r\\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\\r\\n */\\r\\n\\r\\n .progress {\\r\\n display: -ms-flexbox;\\r\\n display: flex;\\r\\n height: 29px; /*modified*/\\r\\n overflow: hidden;\\r\\n font-size: 11px; /*modified*/\\r\\n background-color: #727272; /*modified*/\\r\\n border-radius: 4px; /*modified*/\\r\\n }\\r\\n \\r\\n progress {\\r\\n vertical-align: baseline;\\r\\n }\\r\\n .progress-bar {\\r\\n display: -ms-flexbox;\\r\\n display: flex;\\r\\n -ms-flex-direction: column;\\r\\n flex-direction: column;\\r\\n -ms-flex-pack: center;\\r\\n justify-content: center;\\r\\n color: #fff;\\r\\n text-align: center;\\r\\n white-space: nowrap;\\r\\n background-color: #007bff;\\r\\n transition: width 0.6s ease;\\r\\n }\\r\\n\\r\\n @media screen and (prefers-reduced-motion: reduce) {\\r\\n .progress-bar {\\r\\n transition: none;\\r\\n }\\r\\n }\\r\\n\\r\\n\\r\\n @-webkit-keyframes progress-bar-stripes {\\r\\n from {\\r\\n background-position: 1rem 0;\\r\\n }\\r\\n to {\\r\\n background-position: 0 0;\\r\\n }\\r\\n }\\r\\n \\r\\n @keyframes progress-bar-stripes {\\r\\n from {\\r\\n background-position: 1rem 0;\\r\\n }\\r\\n to {\\r\\n background-position: 0 0;\\r\\n }\\r\\n }\\r\\n\\r\\n .progress-bar-striped {\\r\\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\\r\\n background-size: 1rem 1rem;\\r\\n }\\r\\n\\r\\n .progress-bar-animated {\\r\\n -webkit-animation: progress-bar-stripes 1s linear infinite;\\r\\n animation: progress-bar-stripes 1s linear infinite;\\r\\n }\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/lib/components/progressbar.css\"],\"names\":[],\"mappings\":\"AAAA;;;;;;;EAOE;;CAED;IACG,oBAAoB;IACpB,aAAa;IACb,YAAY,EAAE,WAAW;IACzB,gBAAgB;IAChB,eAAe,EAAE,WAAW;IAC5B,yBAAyB,EAAE,WAAW;IACtC,kBAAkB,EAAE,WAAW;EACjC;;EAEA;IACE,wBAAwB;EAC1B;CACD;IACG,oBAAoB;IACpB,aAAa;IACb,0BAA0B;IAC1B,sBAAsB;IACtB,qBAAqB;IACrB,uBAAuB;IACvB,WAAW;IACX,kBAAkB;IAClB,mBAAmB;IACnB,yBAAyB;IACzB,2BAA2B;EAC7B;;CAED;IACG;MACE,gBAAgB;IAClB;EACF;;;CAGD;IACG;MACE,2BAA2B;IAC7B;IACA;MACE,wBAAwB;IAC1B;EACF;;EAEA;IACE;MACE,2BAA2B;IAC7B;IACA;MACE,wBAAwB;IAC1B;EACF;;EAEA;IACE,qMAAqM;IACrM,0BAA0B;EAC5B;;CAED;IACG,0DAA0D;IAC1D,kDAAkD;EACpD\",\"sourcesContent\":[\"/*!\\r\\nThe progressbar code is taken originally from the Bootstrap package\\r\\n\\r\\n * Bootstrap v4.1.3 (https://getbootstrap.com/)\\r\\n * Copyright 2011-2018 The Bootstrap Authors\\r\\n * Copyright 2011-2018 Twitter, Inc.\\r\\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\\r\\n */\\r\\n\\r\\n .progress {\\r\\n display: -ms-flexbox;\\r\\n display: flex;\\r\\n height: 29px; /*modified*/\\r\\n overflow: hidden;\\r\\n font-size: 11px; /*modified*/\\r\\n background-color: #727272; /*modified*/\\r\\n border-radius: 4px; /*modified*/\\r\\n }\\r\\n \\r\\n progress {\\r\\n vertical-align: baseline;\\r\\n }\\r\\n .progress-bar {\\r\\n display: -ms-flexbox;\\r\\n display: flex;\\r\\n -ms-flex-direction: column;\\r\\n flex-direction: column;\\r\\n -ms-flex-pack: center;\\r\\n justify-content: center;\\r\\n color: #fff;\\r\\n text-align: center;\\r\\n white-space: nowrap;\\r\\n background-color: #007bff;\\r\\n transition: width 0.6s ease;\\r\\n }\\r\\n\\r\\n @media screen and (prefers-reduced-motion: reduce) {\\r\\n .progress-bar {\\r\\n transition: none;\\r\\n }\\r\\n }\\r\\n\\r\\n\\r\\n @-webkit-keyframes progress-bar-stripes {\\r\\n from {\\r\\n background-position: 1rem 0;\\r\\n }\\r\\n to {\\r\\n background-position: 0 0;\\r\\n }\\r\\n }\\r\\n \\r\\n @keyframes progress-bar-stripes {\\r\\n from {\\r\\n background-position: 1rem 0;\\r\\n }\\r\\n to {\\r\\n background-position: 0 0;\\r\\n }\\r\\n }\\r\\n\\r\\n .progress-bar-striped {\\r\\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\\r\\n background-size: 1rem 1rem;\\r\\n }\\r\\n\\r\\n .progress-bar-animated {\\r\\n -webkit-animation: progress-bar-stripes 1s linear infinite;\\r\\n animation: progress-bar-stripes 1s linear infinite;\\r\\n }\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"/*!\\r\\nButton related css from bootstrap\\r\\n\\r\\n * Bootstrap v4.1.3 (https://getbootstrap.com/)\\r\\n * Copyright 2011-2018 The Bootstrap Authors\\r\\n * Copyright 2011-2018 Twitter, Inc.\\r\\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\\r\\n */\\r\\n\\r\\n .btn {\\r\\n display: inline-block;\\r\\n font-weight: 400;\\r\\n text-align: center;\\r\\n white-space: nowrap;\\r\\n vertical-align: middle;\\r\\n -webkit-user-select: none;\\r\\n -moz-user-select: none;\\r\\n -ms-user-select: none;\\r\\n user-select: none;\\r\\n border: 1px solid transparent;\\r\\n padding: 0.375rem 0.75rem;\\r\\n font-size: 1rem;\\r\\n line-height: 1.5;\\r\\n border-radius: 0.25rem;\\r\\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\\r\\n }\\r\\n\\r\\n @media screen and (prefers-reduced-motion: reduce) {\\r\\n .btn {\\r\\n transition: none;\\r\\n }\\r\\n }\\r\\n\\r\\n .btn:hover, .btn:focus {\\r\\n text-decoration: none;\\r\\n }\\r\\n\\r\\n \\r\\n.btn:focus, .btn.focus {\\r\\n outline: 0;\\r\\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\\r\\n }\\r\\n \\r\\n .btn.disabled, .btn:disabled {\\r\\n opacity: 0.65;\\r\\n }\\r\\n \\r\\n .btn:not(:disabled):not(.disabled) {\\r\\n cursor: pointer;\\r\\n }\\r\\n \\r\\n a.btn.disabled,\\r\\n fieldset:disabled a.btn {\\r\\n pointer-events: none;\\r\\n }\\r\\n \\r\\n .btn-primary {\\r\\n color: #fff;\\r\\n background-color: #007bff;\\r\\n border-color: #007bff;\\r\\n }\\r\\n \\r\\n .btn-primary:hover {\\r\\n color: #fff;\\r\\n background-color: #0069d9;\\r\\n border-color: #0062cc;\\r\\n }\\r\\n \\r\\n .btn-primary:focus, .btn-primary.focus {\\r\\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\\r\\n }\\r\\n \\r\\n .btn-primary.disabled, .btn-primary:disabled {\\r\\n color: #fff;\\r\\n background-color: #007bff;\\r\\n border-color: #007bff;\\r\\n }\\r\\n \\r\\n .btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active,\\r\\n .show > .btn-primary.dropdown-toggle {\\r\\n color: #fff;\\r\\n background-color: #0062cc;\\r\\n border-color: #005cbf;\\r\\n }\\r\\n \\r\\n .btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus,\\r\\n .show > .btn-primary.dropdown-toggle:focus {\\r\\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\\r\\n }\\r\\n \\r\\n .btn-secondary {\\r\\n color: #fff;\\r\\n background-color: #6c757d;\\r\\n border-color: #6c757d;\\r\\n }\\r\\n \\r\\n .btn-secondary:hover {\\r\\n color: #fff;\\r\\n background-color: #5a6268;\\r\\n border-color: #545b62;\\r\\n }\\r\\n \\r\\n .btn-secondary:focus, .btn-secondary.focus {\\r\\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\\r\\n }\\r\\n \\r\\n .btn-secondary.disabled, .btn-secondary:disabled {\\r\\n color: #fff;\\r\\n background-color: #6c757d;\\r\\n border-color: #6c757d;\\r\\n }\\r\\n \\r\\n .btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active,\\r\\n .show > .btn-secondary.dropdown-toggle {\\r\\n color: #fff;\\r\\n background-color: #545b62;\\r\\n border-color: #4e555b;\\r\\n }\\r\\n \\r\\n .btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus,\\r\\n .show > .btn-secondary.dropdown-toggle:focus {\\r\\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\\r\\n }\\r\\n \\r\\n .btn-success {\\r\\n color: #fff;\\r\\n background-color: #28a745;\\r\\n border-color: #28a745;\\r\\n }\\r\\n \\r\\n .btn-success:hover {\\r\\n color: #fff;\\r\\n background-color: #218838;\\r\\n border-color: #1e7e34;\\r\\n }\\r\\n \\r\\n .btn-success:focus, .btn-success.focus {\\r\\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\\r\\n }\\r\\n \\r\\n .btn-success.disabled, .btn-success:disabled {\\r\\n color: #fff;\\r\\n background-color: #28a745;\\r\\n border-color: #28a745;\\r\\n }\\r\\n \\r\\n .btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active,\\r\\n .show > .btn-success.dropdown-toggle {\\r\\n color: #fff;\\r\\n background-color: #1e7e34;\\r\\n border-color: #1c7430;\\r\\n }\\r\\n \\r\\n .btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus,\\r\\n .show > .btn-success.dropdown-toggle:focus {\\r\\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\\r\\n }\\r\\n \\r\\n .btn-info {\\r\\n color: #fff;\\r\\n background-color: #17a2b8;\\r\\n border-color: #17a2b8;\\r\\n }\\r\\n \\r\\n .btn-info:hover {\\r\\n color: #fff;\\r\\n background-color: #138496;\\r\\n border-color: #117a8b;\\r\\n }\\r\\n \\r\\n .btn-info:focus, .btn-info.focus {\\r\\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\\r\\n }\\r\\n \\r\\n .btn-info.disabled, .btn-info:disabled {\\r\\n color: #fff;\\r\\n background-color: #17a2b8;\\r\\n border-color: #17a2b8;\\r\\n }\\r\\n \\r\\n .btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active,\\r\\n .show > .btn-info.dropdown-toggle {\\r\\n color: #fff;\\r\\n background-color: #117a8b;\\r\\n border-color: #10707f;\\r\\n }\\r\\n \\r\\n .btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus,\\r\\n .show > .btn-info.dropdown-toggle:focus {\\r\\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\\r\\n }\\r\\n \\r\\n .btn-warning {\\r\\n color: #212529;\\r\\n background-color: #ffc107;\\r\\n border-color: #ffc107;\\r\\n }\\r\\n \\r\\n .btn-warning:hover {\\r\\n color: #212529;\\r\\n background-color: #e0a800;\\r\\n border-color: #d39e00;\\r\\n }\\r\\n \\r\\n .btn-warning:focus, .btn-warning.focus {\\r\\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\\r\\n }\\r\\n \\r\\n .btn-warning.disabled, .btn-warning:disabled {\\r\\n color: #212529;\\r\\n background-color: #ffc107;\\r\\n border-color: #ffc107;\\r\\n }\\r\\n \\r\\n .btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active,\\r\\n .show > .btn-warning.dropdown-toggle {\\r\\n color: #212529;\\r\\n background-color: #d39e00;\\r\\n border-color: #c69500;\\r\\n }\\r\\n \\r\\n .btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus,\\r\\n .show > .btn-warning.dropdown-toggle:focus {\\r\\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\\r\\n }\\r\\n \\r\\n .btn-danger {\\r\\n color: #fff;\\r\\n background-color: #dc3545;\\r\\n border-color: #dc3545;\\r\\n }\\r\\n \\r\\n .btn-danger:hover {\\r\\n color: #fff;\\r\\n background-color: #c82333;\\r\\n border-color: #bd2130;\\r\\n }\\r\\n \\r\\n .btn-danger:focus, .btn-danger.focus {\\r\\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\\r\\n }\\r\\n \\r\\n .btn-danger.disabled, .btn-danger:disabled {\\r\\n color: #fff;\\r\\n background-color: #dc3545;\\r\\n border-color: #dc3545;\\r\\n }\\r\\n \\r\\n .btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active,\\r\\n .show > .btn-danger.dropdown-toggle {\\r\\n color: #fff;\\r\\n background-color: #bd2130;\\r\\n border-color: #b21f2d;\\r\\n }\\r\\n \\r\\n .btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus,\\r\\n .show > .btn-danger.dropdown-toggle:focus {\\r\\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\\r\\n }\\r\\n \\r\\n .btn-light {\\r\\n color: #212529;\\r\\n background-color: #f8f9fa;\\r\\n border-color: #f8f9fa;\\r\\n }\\r\\n \\r\\n .btn-light:hover {\\r\\n color: #212529;\\r\\n background-color: #e2e6ea;\\r\\n border-color: #dae0e5;\\r\\n }\\r\\n \\r\\n .btn-light:focus, .btn-light.focus {\\r\\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\\r\\n }\\r\\n \\r\\n .btn-light.disabled, .btn-light:disabled {\\r\\n color: #212529;\\r\\n background-color: #f8f9fa;\\r\\n border-color: #f8f9fa;\\r\\n }\\r\\n \\r\\n .btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active,\\r\\n .show > .btn-light.dropdown-toggle {\\r\\n color: #212529;\\r\\n background-color: #dae0e5;\\r\\n border-color: #d3d9df;\\r\\n }\\r\\n \\r\\n .btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus,\\r\\n .show > .btn-light.dropdown-toggle:focus {\\r\\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\\r\\n }\\r\\n \\r\\n .btn-dark {\\r\\n color: #fff;\\r\\n background-color: #343a40;\\r\\n border-color: #343a40;\\r\\n }\\r\\n \\r\\n .btn-dark:hover {\\r\\n color: #fff;\\r\\n background-color: #23272b;\\r\\n border-color: #1d2124;\\r\\n }\\r\\n \\r\\n .btn-dark:focus, .btn-dark.focus {\\r\\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\\r\\n }\\r\\n \\r\\n .btn-dark.disabled, .btn-dark:disabled {\\r\\n color: #fff;\\r\\n background-color: #343a40;\\r\\n border-color: #343a40;\\r\\n }\\r\\n \\r\\n .btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active,\\r\\n .show > .btn-dark.dropdown-toggle {\\r\\n color: #fff;\\r\\n background-color: #1d2124;\\r\\n border-color: #171a1d;\\r\\n }\\r\\n \\r\\n .btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus,\\r\\n .show > .btn-dark.dropdown-toggle:focus {\\r\\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\\r\\n }\\r\\n \\r\\n .btn-outline-primary {\\r\\n color: #007bff;\\r\\n background-color: transparent;\\r\\n background-image: none;\\r\\n border-color: #007bff;\\r\\n }\\r\\n \\r\\n .btn-outline-primary:hover {\\r\\n color: #fff;\\r\\n background-color: #007bff;\\r\\n border-color: #007bff;\\r\\n }\\r\\n \\r\\n .btn-outline-primary:focus, .btn-outline-primary.focus {\\r\\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\\r\\n }\\r\\n \\r\\n .btn-outline-primary.disabled, .btn-outline-primary:disabled {\\r\\n color: #007bff;\\r\\n background-color: transparent;\\r\\n }\\r\\n \\r\\n .btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active,\\r\\n .show > .btn-outline-primary.dropdown-toggle {\\r\\n color: #fff;\\r\\n background-color: #007bff;\\r\\n border-color: #007bff;\\r\\n }\\r\\n \\r\\n .btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus,\\r\\n .show > .btn-outline-primary.dropdown-toggle:focus {\\r\\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\\r\\n }\\r\\n \\r\\n .btn-outline-secondary {\\r\\n color: #6c757d;\\r\\n background-color: transparent;\\r\\n background-image: none;\\r\\n border-color: #6c757d;\\r\\n }\\r\\n \\r\\n .btn-outline-secondary:hover {\\r\\n color: #fff;\\r\\n background-color: #6c757d;\\r\\n border-color: #6c757d;\\r\\n }\\r\\n \\r\\n .btn-outline-secondary:focus, .btn-outline-secondary.focus {\\r\\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\\r\\n }\\r\\n \\r\\n .btn-outline-secondary.disabled, .btn-outline-secondary:disabled {\\r\\n color: #6c757d;\\r\\n background-color: transparent;\\r\\n }\\r\\n \\r\\n .btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active,\\r\\n .show > .btn-outline-secondary.dropdown-toggle {\\r\\n color: #fff;\\r\\n background-color: #6c757d;\\r\\n border-color: #6c757d;\\r\\n }\\r\\n \\r\\n .btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus,\\r\\n .show > .btn-outline-secondary.dropdown-toggle:focus {\\r\\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\\r\\n }\\r\\n \\r\\n .btn-outline-success {\\r\\n color: #28a745;\\r\\n background-color: transparent;\\r\\n background-image: none;\\r\\n border-color: #28a745;\\r\\n }\\r\\n \\r\\n .btn-outline-success:hover {\\r\\n color: #fff;\\r\\n background-color: #28a745;\\r\\n border-color: #28a745;\\r\\n }\\r\\n \\r\\n .btn-outline-success:focus, .btn-outline-success.focus {\\r\\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\\r\\n }\\r\\n \\r\\n .btn-outline-success.disabled, .btn-outline-success:disabled {\\r\\n color: #28a745;\\r\\n background-color: transparent;\\r\\n }\\r\\n \\r\\n .btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active,\\r\\n .show > .btn-outline-success.dropdown-toggle {\\r\\n color: #fff;\\r\\n background-color: #28a745;\\r\\n border-color: #28a745;\\r\\n }\\r\\n \\r\\n .btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus,\\r\\n .show > .btn-outline-success.dropdown-toggle:focus {\\r\\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\\r\\n }\\r\\n \\r\\n .btn-outline-info {\\r\\n color: #17a2b8;\\r\\n background-color: transparent;\\r\\n background-image: none;\\r\\n border-color: #17a2b8;\\r\\n }\\r\\n \\r\\n .btn-outline-info:hover {\\r\\n color: #fff;\\r\\n background-color: #17a2b8;\\r\\n border-color: #17a2b8;\\r\\n }\\r\\n \\r\\n .btn-outline-info:focus, .btn-outline-info.focus {\\r\\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\\r\\n }\\r\\n \\r\\n .btn-outline-info.disabled, .btn-outline-info:disabled {\\r\\n color: #17a2b8;\\r\\n background-color: transparent;\\r\\n }\\r\\n \\r\\n .btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active,\\r\\n .show > .btn-outline-info.dropdown-toggle {\\r\\n color: #fff;\\r\\n background-color: #17a2b8;\\r\\n border-color: #17a2b8;\\r\\n }\\r\\n \\r\\n .btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus,\\r\\n .show > .btn-outline-info.dropdown-toggle:focus {\\r\\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\\r\\n }\\r\\n \\r\\n .btn-outline-warning {\\r\\n color: #ffc107;\\r\\n background-color: transparent;\\r\\n background-image: none;\\r\\n border-color: #ffc107;\\r\\n }\\r\\n \\r\\n .btn-outline-warning:hover {\\r\\n color: #212529;\\r\\n background-color: #ffc107;\\r\\n border-color: #ffc107;\\r\\n }\\r\\n \\r\\n .btn-outline-warning:focus, .btn-outline-warning.focus {\\r\\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\\r\\n }\\r\\n \\r\\n .btn-outline-warning.disabled, .btn-outline-warning:disabled {\\r\\n color: #ffc107;\\r\\n background-color: transparent;\\r\\n }\\r\\n \\r\\n .btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active,\\r\\n .show > .btn-outline-warning.dropdown-toggle {\\r\\n color: #212529;\\r\\n background-color: #ffc107;\\r\\n border-color: #ffc107;\\r\\n }\\r\\n \\r\\n .btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus,\\r\\n .show > .btn-outline-warning.dropdown-toggle:focus {\\r\\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\\r\\n }\\r\\n \\r\\n .btn-outline-danger {\\r\\n color: #dc3545;\\r\\n background-color: transparent;\\r\\n background-image: none;\\r\\n border-color: #dc3545;\\r\\n }\\r\\n \\r\\n .btn-outline-danger:hover {\\r\\n color: #fff;\\r\\n background-color: #dc3545;\\r\\n border-color: #dc3545;\\r\\n }\\r\\n \\r\\n .btn-outline-danger:focus, .btn-outline-danger.focus {\\r\\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\\r\\n }\\r\\n \\r\\n .btn-outline-danger.disabled, .btn-outline-danger:disabled {\\r\\n color: #dc3545;\\r\\n background-color: transparent;\\r\\n }\\r\\n \\r\\n .btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active,\\r\\n .show > .btn-outline-danger.dropdown-toggle {\\r\\n color: #fff;\\r\\n background-color: #dc3545;\\r\\n border-color: #dc3545;\\r\\n }\\r\\n \\r\\n .btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus,\\r\\n .show > .btn-outline-danger.dropdown-toggle:focus {\\r\\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\\r\\n }\\r\\n \\r\\n .btn-outline-light {\\r\\n color: #f8f9fa;\\r\\n background-color: transparent;\\r\\n background-image: none;\\r\\n border-color: #f8f9fa;\\r\\n }\\r\\n \\r\\n .btn-outline-light:hover {\\r\\n color: #212529;\\r\\n background-color: #f8f9fa;\\r\\n border-color: #f8f9fa;\\r\\n }\\r\\n \\r\\n .btn-outline-light:focus, .btn-outline-light.focus {\\r\\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\\r\\n }\\r\\n \\r\\n .btn-outline-light.disabled, .btn-outline-light:disabled {\\r\\n color: #f8f9fa;\\r\\n background-color: transparent;\\r\\n }\\r\\n \\r\\n .btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active,\\r\\n .show > .btn-outline-light.dropdown-toggle {\\r\\n color: #212529;\\r\\n background-color: #f8f9fa;\\r\\n border-color: #f8f9fa;\\r\\n }\\r\\n \\r\\n .btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus,\\r\\n .show > .btn-outline-light.dropdown-toggle:focus {\\r\\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\\r\\n }\\r\\n \\r\\n .btn-outline-dark {\\r\\n color: #343a40;\\r\\n background-color: transparent;\\r\\n background-image: none;\\r\\n border-color: #343a40;\\r\\n }\\r\\n \\r\\n .btn-outline-dark:hover {\\r\\n color: #fff;\\r\\n background-color: #343a40;\\r\\n border-color: #343a40;\\r\\n }\\r\\n \\r\\n .btn-outline-dark:focus, .btn-outline-dark.focus {\\r\\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\\r\\n }\\r\\n \\r\\n .btn-outline-dark.disabled, .btn-outline-dark:disabled {\\r\\n color: #343a40;\\r\\n background-color: transparent;\\r\\n }\\r\\n \\r\\n .btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active,\\r\\n .show > .btn-outline-dark.dropdown-toggle {\\r\\n color: #fff;\\r\\n background-color: #343a40;\\r\\n border-color: #343a40;\\r\\n }\\r\\n \\r\\n .btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus,\\r\\n .show > .btn-outline-dark.dropdown-toggle:focus {\\r\\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\\r\\n }\\r\\n \\r\\n .btn-link {\\r\\n font-weight: 400;\\r\\n color: #007bff;\\r\\n background-color: transparent;\\r\\n }\\r\\n \\r\\n .btn-link:hover {\\r\\n color: #0056b3;\\r\\n text-decoration: underline;\\r\\n background-color: transparent;\\r\\n border-color: transparent;\\r\\n }\\r\\n \\r\\n .btn-link:focus, .btn-link.focus {\\r\\n text-decoration: underline;\\r\\n border-color: transparent;\\r\\n box-shadow: none;\\r\\n }\\r\\n \\r\\n .btn-link:disabled, .btn-link.disabled {\\r\\n color: #6c757d;\\r\\n pointer-events: none;\\r\\n }\\r\\n \\r\\n .btn-lg, .btn-group-lg > .btn {\\r\\n padding: 0.5rem 1rem;\\r\\n font-size: 1.25rem;\\r\\n line-height: 1.5;\\r\\n border-radius: 0.3rem;\\r\\n }\\r\\n \\r\\n .btn-sm, .btn-group-sm > .btn {\\r\\n padding: 0.25rem 0.5rem;\\r\\n font-size: 0.875rem;\\r\\n line-height: 1.5;\\r\\n border-radius: 0.2rem;\\r\\n }\\r\\n \\r\\n .btn-block {\\r\\n display: block;\\r\\n width: 100%;\\r\\n }\\r\\n \\r\\n .btn-block + .btn-block {\\r\\n margin-top: 0.5rem;\\r\\n }\\r\\n \\r\\n input[type=\\\"submit\\\"].btn-block,\\r\\n input[type=\\\"reset\\\"].btn-block,\\r\\n input[type=\\\"button\\\"].btn-block {\\r\\n width: 100%;\\r\\n }\\r\\n \\r\\n \\r\\n.btn .badge {\\r\\n position: relative;\\r\\n top: -1px;\\r\\n }\\r\\n\\r\\n \\r\\n.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {\\r\\n padding-right: 0.375rem;\\r\\n padding-left: 0.375rem;\\r\\n }\\r\\n \\r\\n .btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {\\r\\n padding-right: 0.75rem;\\r\\n padding-left: 0.75rem;\\r\\n }\\r\\n \\r\\n .btn-group-vertical {\\r\\n -ms-flex-direction: column;\\r\\n flex-direction: column;\\r\\n -ms-flex-align: start;\\r\\n align-items: flex-start;\\r\\n -ms-flex-pack: center;\\r\\n justify-content: center;\\r\\n }\\r\\n \\r\\n .btn-group-vertical .btn,\\r\\n .btn-group-vertical .btn-group {\\r\\n width: 100%;\\r\\n }\\r\\n \\r\\n .btn-group-vertical > .btn + .btn,\\r\\n .btn-group-vertical > .btn + .btn-group,\\r\\n .btn-group-vertical > .btn-group + .btn,\\r\\n .btn-group-vertical > .btn-group + .btn-group {\\r\\n margin-top: -1px;\\r\\n margin-left: 0;\\r\\n }\\r\\n \\r\\n .btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),\\r\\n .btn-group-vertical > .btn-group:not(:last-child) > .btn {\\r\\n border-bottom-right-radius: 0;\\r\\n border-bottom-left-radius: 0;\\r\\n }\\r\\n \\r\\n .btn-group-vertical > .btn:not(:first-child),\\r\\n .btn-group-vertical > .btn-group:not(:first-child) > .btn {\\r\\n border-top-left-radius: 0;\\r\\n border-top-right-radius: 0;\\r\\n }\\r\\n \\r\\n .btn-group-toggle > .btn,\\r\\n .btn-group-toggle > .btn-group > .btn {\\r\\n margin-bottom: 0;\\r\\n }\\r\\n \\r\\n .btn-group-toggle > .btn input[type=\\\"radio\\\"],\\r\\n .btn-group-toggle > .btn input[type=\\\"checkbox\\\"],\\r\\n .btn-group-toggle > .btn-group > .btn input[type=\\\"radio\\\"],\\r\\n .btn-group-toggle > .btn-group > .btn input[type=\\\"checkbox\\\"] {\\r\\n position: absolute;\\r\\n clip: rect(0, 0, 0, 0);\\r\\n pointer-events: none;\\r\\n }\\r\\n \", \"\",{\"version\":3,\"sources\":[\"webpack://./src/lib/components/button.css\"],\"names\":[],\"mappings\":\"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\",\"sourcesContent\":[\"/*!\\r\\nButton related css from bootstrap\\r\\n\\r\\n * Bootstrap v4.1.3 (https://getbootstrap.com/)\\r\\n * Copyright 2011-2018 The Bootstrap Authors\\r\\n * Copyright 2011-2018 Twitter, Inc.\\r\\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\\r\\n */\\r\\n\\r\\n .btn {\\r\\n display: inline-block;\\r\\n font-weight: 400;\\r\\n text-align: center;\\r\\n white-space: nowrap;\\r\\n vertical-align: middle;\\r\\n -webkit-user-select: none;\\r\\n -moz-user-select: none;\\r\\n -ms-user-select: none;\\r\\n user-select: none;\\r\\n border: 1px solid transparent;\\r\\n padding: 0.375rem 0.75rem;\\r\\n font-size: 1rem;\\r\\n line-height: 1.5;\\r\\n border-radius: 0.25rem;\\r\\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\\r\\n }\\r\\n\\r\\n @media screen and (prefers-reduced-motion: reduce) {\\r\\n .btn {\\r\\n transition: none;\\r\\n }\\r\\n }\\r\\n\\r\\n .btn:hover, .btn:focus {\\r\\n text-decoration: none;\\r\\n }\\r\\n\\r\\n \\r\\n.btn:focus, .btn.focus {\\r\\n outline: 0;\\r\\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\\r\\n }\\r\\n \\r\\n .btn.disabled, .btn:disabled {\\r\\n opacity: 0.65;\\r\\n }\\r\\n \\r\\n .btn:not(:disabled):not(.disabled) {\\r\\n cursor: pointer;\\r\\n }\\r\\n \\r\\n a.btn.disabled,\\r\\n fieldset:disabled a.btn {\\r\\n pointer-events: none;\\r\\n }\\r\\n \\r\\n .btn-primary {\\r\\n color: #fff;\\r\\n background-color: #007bff;\\r\\n border-color: #007bff;\\r\\n }\\r\\n \\r\\n .btn-primary:hover {\\r\\n color: #fff;\\r\\n background-color: #0069d9;\\r\\n border-color: #0062cc;\\r\\n }\\r\\n \\r\\n .btn-primary:focus, .btn-primary.focus {\\r\\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\\r\\n }\\r\\n \\r\\n .btn-primary.disabled, .btn-primary:disabled {\\r\\n color: #fff;\\r\\n background-color: #007bff;\\r\\n border-color: #007bff;\\r\\n }\\r\\n \\r\\n .btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active,\\r\\n .show > .btn-primary.dropdown-toggle {\\r\\n color: #fff;\\r\\n background-color: #0062cc;\\r\\n border-color: #005cbf;\\r\\n }\\r\\n \\r\\n .btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus,\\r\\n .show > .btn-primary.dropdown-toggle:focus {\\r\\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\\r\\n }\\r\\n \\r\\n .btn-secondary {\\r\\n color: #fff;\\r\\n background-color: #6c757d;\\r\\n border-color: #6c757d;\\r\\n }\\r\\n \\r\\n .btn-secondary:hover {\\r\\n color: #fff;\\r\\n background-color: #5a6268;\\r\\n border-color: #545b62;\\r\\n }\\r\\n \\r\\n .btn-secondary:focus, .btn-secondary.focus {\\r\\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\\r\\n }\\r\\n \\r\\n .btn-secondary.disabled, .btn-secondary:disabled {\\r\\n color: #fff;\\r\\n background-color: #6c757d;\\r\\n border-color: #6c757d;\\r\\n }\\r\\n \\r\\n .btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active,\\r\\n .show > .btn-secondary.dropdown-toggle {\\r\\n color: #fff;\\r\\n background-color: #545b62;\\r\\n border-color: #4e555b;\\r\\n }\\r\\n \\r\\n .btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus,\\r\\n .show > .btn-secondary.dropdown-toggle:focus {\\r\\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\\r\\n }\\r\\n \\r\\n .btn-success {\\r\\n color: #fff;\\r\\n background-color: #28a745;\\r\\n border-color: #28a745;\\r\\n }\\r\\n \\r\\n .btn-success:hover {\\r\\n color: #fff;\\r\\n background-color: #218838;\\r\\n border-color: #1e7e34;\\r\\n }\\r\\n \\r\\n .btn-success:focus, .btn-success.focus {\\r\\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\\r\\n }\\r\\n \\r\\n .btn-success.disabled, .btn-success:disabled {\\r\\n color: #fff;\\r\\n background-color: #28a745;\\r\\n border-color: #28a745;\\r\\n }\\r\\n \\r\\n .btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active,\\r\\n .show > .btn-success.dropdown-toggle {\\r\\n color: #fff;\\r\\n background-color: #1e7e34;\\r\\n border-color: #1c7430;\\r\\n }\\r\\n \\r\\n .btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus,\\r\\n .show > .btn-success.dropdown-toggle:focus {\\r\\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\\r\\n }\\r\\n \\r\\n .btn-info {\\r\\n color: #fff;\\r\\n background-color: #17a2b8;\\r\\n border-color: #17a2b8;\\r\\n }\\r\\n \\r\\n .btn-info:hover {\\r\\n color: #fff;\\r\\n background-color: #138496;\\r\\n border-color: #117a8b;\\r\\n }\\r\\n \\r\\n .btn-info:focus, .btn-info.focus {\\r\\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\\r\\n }\\r\\n \\r\\n .btn-info.disabled, .btn-info:disabled {\\r\\n color: #fff;\\r\\n background-color: #17a2b8;\\r\\n border-color: #17a2b8;\\r\\n }\\r\\n \\r\\n .btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active,\\r\\n .show > .btn-info.dropdown-toggle {\\r\\n color: #fff;\\r\\n background-color: #117a8b;\\r\\n border-color: #10707f;\\r\\n }\\r\\n \\r\\n .btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus,\\r\\n .show > .btn-info.dropdown-toggle:focus {\\r\\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\\r\\n }\\r\\n \\r\\n .btn-warning {\\r\\n color: #212529;\\r\\n background-color: #ffc107;\\r\\n border-color: #ffc107;\\r\\n }\\r\\n \\r\\n .btn-warning:hover {\\r\\n color: #212529;\\r\\n background-color: #e0a800;\\r\\n border-color: #d39e00;\\r\\n }\\r\\n \\r\\n .btn-warning:focus, .btn-warning.focus {\\r\\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\\r\\n }\\r\\n \\r\\n .btn-warning.disabled, .btn-warning:disabled {\\r\\n color: #212529;\\r\\n background-color: #ffc107;\\r\\n border-color: #ffc107;\\r\\n }\\r\\n \\r\\n .btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active,\\r\\n .show > .btn-warning.dropdown-toggle {\\r\\n color: #212529;\\r\\n background-color: #d39e00;\\r\\n border-color: #c69500;\\r\\n }\\r\\n \\r\\n .btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus,\\r\\n .show > .btn-warning.dropdown-toggle:focus {\\r\\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\\r\\n }\\r\\n \\r\\n .btn-danger {\\r\\n color: #fff;\\r\\n background-color: #dc3545;\\r\\n border-color: #dc3545;\\r\\n }\\r\\n \\r\\n .btn-danger:hover {\\r\\n color: #fff;\\r\\n background-color: #c82333;\\r\\n border-color: #bd2130;\\r\\n }\\r\\n \\r\\n .btn-danger:focus, .btn-danger.focus {\\r\\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\\r\\n }\\r\\n \\r\\n .btn-danger.disabled, .btn-danger:disabled {\\r\\n color: #fff;\\r\\n background-color: #dc3545;\\r\\n border-color: #dc3545;\\r\\n }\\r\\n \\r\\n .btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active,\\r\\n .show > .btn-danger.dropdown-toggle {\\r\\n color: #fff;\\r\\n background-color: #bd2130;\\r\\n border-color: #b21f2d;\\r\\n }\\r\\n \\r\\n .btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus,\\r\\n .show > .btn-danger.dropdown-toggle:focus {\\r\\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\\r\\n }\\r\\n \\r\\n .btn-light {\\r\\n color: #212529;\\r\\n background-color: #f8f9fa;\\r\\n border-color: #f8f9fa;\\r\\n }\\r\\n \\r\\n .btn-light:hover {\\r\\n color: #212529;\\r\\n background-color: #e2e6ea;\\r\\n border-color: #dae0e5;\\r\\n }\\r\\n \\r\\n .btn-light:focus, .btn-light.focus {\\r\\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\\r\\n }\\r\\n \\r\\n .btn-light.disabled, .btn-light:disabled {\\r\\n color: #212529;\\r\\n background-color: #f8f9fa;\\r\\n border-color: #f8f9fa;\\r\\n }\\r\\n \\r\\n .btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active,\\r\\n .show > .btn-light.dropdown-toggle {\\r\\n color: #212529;\\r\\n background-color: #dae0e5;\\r\\n border-color: #d3d9df;\\r\\n }\\r\\n \\r\\n .btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus,\\r\\n .show > .btn-light.dropdown-toggle:focus {\\r\\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\\r\\n }\\r\\n \\r\\n .btn-dark {\\r\\n color: #fff;\\r\\n background-color: #343a40;\\r\\n border-color: #343a40;\\r\\n }\\r\\n \\r\\n .btn-dark:hover {\\r\\n color: #fff;\\r\\n background-color: #23272b;\\r\\n border-color: #1d2124;\\r\\n }\\r\\n \\r\\n .btn-dark:focus, .btn-dark.focus {\\r\\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\\r\\n }\\r\\n \\r\\n .btn-dark.disabled, .btn-dark:disabled {\\r\\n color: #fff;\\r\\n background-color: #343a40;\\r\\n border-color: #343a40;\\r\\n }\\r\\n \\r\\n .btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active,\\r\\n .show > .btn-dark.dropdown-toggle {\\r\\n color: #fff;\\r\\n background-color: #1d2124;\\r\\n border-color: #171a1d;\\r\\n }\\r\\n \\r\\n .btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus,\\r\\n .show > .btn-dark.dropdown-toggle:focus {\\r\\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\\r\\n }\\r\\n \\r\\n .btn-outline-primary {\\r\\n color: #007bff;\\r\\n background-color: transparent;\\r\\n background-image: none;\\r\\n border-color: #007bff;\\r\\n }\\r\\n \\r\\n .btn-outline-primary:hover {\\r\\n color: #fff;\\r\\n background-color: #007bff;\\r\\n border-color: #007bff;\\r\\n }\\r\\n \\r\\n .btn-outline-primary:focus, .btn-outline-primary.focus {\\r\\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\\r\\n }\\r\\n \\r\\n .btn-outline-primary.disabled, .btn-outline-primary:disabled {\\r\\n color: #007bff;\\r\\n background-color: transparent;\\r\\n }\\r\\n \\r\\n .btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active,\\r\\n .show > .btn-outline-primary.dropdown-toggle {\\r\\n color: #fff;\\r\\n background-color: #007bff;\\r\\n border-color: #007bff;\\r\\n }\\r\\n \\r\\n .btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus,\\r\\n .show > .btn-outline-primary.dropdown-toggle:focus {\\r\\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\\r\\n }\\r\\n \\r\\n .btn-outline-secondary {\\r\\n color: #6c757d;\\r\\n background-color: transparent;\\r\\n background-image: none;\\r\\n border-color: #6c757d;\\r\\n }\\r\\n \\r\\n .btn-outline-secondary:hover {\\r\\n color: #fff;\\r\\n background-color: #6c757d;\\r\\n border-color: #6c757d;\\r\\n }\\r\\n \\r\\n .btn-outline-secondary:focus, .btn-outline-secondary.focus {\\r\\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\\r\\n }\\r\\n \\r\\n .btn-outline-secondary.disabled, .btn-outline-secondary:disabled {\\r\\n color: #6c757d;\\r\\n background-color: transparent;\\r\\n }\\r\\n \\r\\n .btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active,\\r\\n .show > .btn-outline-secondary.dropdown-toggle {\\r\\n color: #fff;\\r\\n background-color: #6c757d;\\r\\n border-color: #6c757d;\\r\\n }\\r\\n \\r\\n .btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus,\\r\\n .show > .btn-outline-secondary.dropdown-toggle:focus {\\r\\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\\r\\n }\\r\\n \\r\\n .btn-outline-success {\\r\\n color: #28a745;\\r\\n background-color: transparent;\\r\\n background-image: none;\\r\\n border-color: #28a745;\\r\\n }\\r\\n \\r\\n .btn-outline-success:hover {\\r\\n color: #fff;\\r\\n background-color: #28a745;\\r\\n border-color: #28a745;\\r\\n }\\r\\n \\r\\n .btn-outline-success:focus, .btn-outline-success.focus {\\r\\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\\r\\n }\\r\\n \\r\\n .btn-outline-success.disabled, .btn-outline-success:disabled {\\r\\n color: #28a745;\\r\\n background-color: transparent;\\r\\n }\\r\\n \\r\\n .btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active,\\r\\n .show > .btn-outline-success.dropdown-toggle {\\r\\n color: #fff;\\r\\n background-color: #28a745;\\r\\n border-color: #28a745;\\r\\n }\\r\\n \\r\\n .btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus,\\r\\n .show > .btn-outline-success.dropdown-toggle:focus {\\r\\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\\r\\n }\\r\\n \\r\\n .btn-outline-info {\\r\\n color: #17a2b8;\\r\\n background-color: transparent;\\r\\n background-image: none;\\r\\n border-color: #17a2b8;\\r\\n }\\r\\n \\r\\n .btn-outline-info:hover {\\r\\n color: #fff;\\r\\n background-color: #17a2b8;\\r\\n border-color: #17a2b8;\\r\\n }\\r\\n \\r\\n .btn-outline-info:focus, .btn-outline-info.focus {\\r\\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\\r\\n }\\r\\n \\r\\n .btn-outline-info.disabled, .btn-outline-info:disabled {\\r\\n color: #17a2b8;\\r\\n background-color: transparent;\\r\\n }\\r\\n \\r\\n .btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active,\\r\\n .show > .btn-outline-info.dropdown-toggle {\\r\\n color: #fff;\\r\\n background-color: #17a2b8;\\r\\n border-color: #17a2b8;\\r\\n }\\r\\n \\r\\n .btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus,\\r\\n .show > .btn-outline-info.dropdown-toggle:focus {\\r\\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\\r\\n }\\r\\n \\r\\n .btn-outline-warning {\\r\\n color: #ffc107;\\r\\n background-color: transparent;\\r\\n background-image: none;\\r\\n border-color: #ffc107;\\r\\n }\\r\\n \\r\\n .btn-outline-warning:hover {\\r\\n color: #212529;\\r\\n background-color: #ffc107;\\r\\n border-color: #ffc107;\\r\\n }\\r\\n \\r\\n .btn-outline-warning:focus, .btn-outline-warning.focus {\\r\\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\\r\\n }\\r\\n \\r\\n .btn-outline-warning.disabled, .btn-outline-warning:disabled {\\r\\n color: #ffc107;\\r\\n background-color: transparent;\\r\\n }\\r\\n \\r\\n .btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active,\\r\\n .show > .btn-outline-warning.dropdown-toggle {\\r\\n color: #212529;\\r\\n background-color: #ffc107;\\r\\n border-color: #ffc107;\\r\\n }\\r\\n \\r\\n .btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus,\\r\\n .show > .btn-outline-warning.dropdown-toggle:focus {\\r\\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\\r\\n }\\r\\n \\r\\n .btn-outline-danger {\\r\\n color: #dc3545;\\r\\n background-color: transparent;\\r\\n background-image: none;\\r\\n border-color: #dc3545;\\r\\n }\\r\\n \\r\\n .btn-outline-danger:hover {\\r\\n color: #fff;\\r\\n background-color: #dc3545;\\r\\n border-color: #dc3545;\\r\\n }\\r\\n \\r\\n .btn-outline-danger:focus, .btn-outline-danger.focus {\\r\\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\\r\\n }\\r\\n \\r\\n .btn-outline-danger.disabled, .btn-outline-danger:disabled {\\r\\n color: #dc3545;\\r\\n background-color: transparent;\\r\\n }\\r\\n \\r\\n .btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active,\\r\\n .show > .btn-outline-danger.dropdown-toggle {\\r\\n color: #fff;\\r\\n background-color: #dc3545;\\r\\n border-color: #dc3545;\\r\\n }\\r\\n \\r\\n .btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus,\\r\\n .show > .btn-outline-danger.dropdown-toggle:focus {\\r\\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\\r\\n }\\r\\n \\r\\n .btn-outline-light {\\r\\n color: #f8f9fa;\\r\\n background-color: transparent;\\r\\n background-image: none;\\r\\n border-color: #f8f9fa;\\r\\n }\\r\\n \\r\\n .btn-outline-light:hover {\\r\\n color: #212529;\\r\\n background-color: #f8f9fa;\\r\\n border-color: #f8f9fa;\\r\\n }\\r\\n \\r\\n .btn-outline-light:focus, .btn-outline-light.focus {\\r\\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\\r\\n }\\r\\n \\r\\n .btn-outline-light.disabled, .btn-outline-light:disabled {\\r\\n color: #f8f9fa;\\r\\n background-color: transparent;\\r\\n }\\r\\n \\r\\n .btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active,\\r\\n .show > .btn-outline-light.dropdown-toggle {\\r\\n color: #212529;\\r\\n background-color: #f8f9fa;\\r\\n border-color: #f8f9fa;\\r\\n }\\r\\n \\r\\n .btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus,\\r\\n .show > .btn-outline-light.dropdown-toggle:focus {\\r\\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\\r\\n }\\r\\n \\r\\n .btn-outline-dark {\\r\\n color: #343a40;\\r\\n background-color: transparent;\\r\\n background-image: none;\\r\\n border-color: #343a40;\\r\\n }\\r\\n \\r\\n .btn-outline-dark:hover {\\r\\n color: #fff;\\r\\n background-color: #343a40;\\r\\n border-color: #343a40;\\r\\n }\\r\\n \\r\\n .btn-outline-dark:focus, .btn-outline-dark.focus {\\r\\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\\r\\n }\\r\\n \\r\\n .btn-outline-dark.disabled, .btn-outline-dark:disabled {\\r\\n color: #343a40;\\r\\n background-color: transparent;\\r\\n }\\r\\n \\r\\n .btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active,\\r\\n .show > .btn-outline-dark.dropdown-toggle {\\r\\n color: #fff;\\r\\n background-color: #343a40;\\r\\n border-color: #343a40;\\r\\n }\\r\\n \\r\\n .btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus,\\r\\n .show > .btn-outline-dark.dropdown-toggle:focus {\\r\\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\\r\\n }\\r\\n \\r\\n .btn-link {\\r\\n font-weight: 400;\\r\\n color: #007bff;\\r\\n background-color: transparent;\\r\\n }\\r\\n \\r\\n .btn-link:hover {\\r\\n color: #0056b3;\\r\\n text-decoration: underline;\\r\\n background-color: transparent;\\r\\n border-color: transparent;\\r\\n }\\r\\n \\r\\n .btn-link:focus, .btn-link.focus {\\r\\n text-decoration: underline;\\r\\n border-color: transparent;\\r\\n box-shadow: none;\\r\\n }\\r\\n \\r\\n .btn-link:disabled, .btn-link.disabled {\\r\\n color: #6c757d;\\r\\n pointer-events: none;\\r\\n }\\r\\n \\r\\n .btn-lg, .btn-group-lg > .btn {\\r\\n padding: 0.5rem 1rem;\\r\\n font-size: 1.25rem;\\r\\n line-height: 1.5;\\r\\n border-radius: 0.3rem;\\r\\n }\\r\\n \\r\\n .btn-sm, .btn-group-sm > .btn {\\r\\n padding: 0.25rem 0.5rem;\\r\\n font-size: 0.875rem;\\r\\n line-height: 1.5;\\r\\n border-radius: 0.2rem;\\r\\n }\\r\\n \\r\\n .btn-block {\\r\\n display: block;\\r\\n width: 100%;\\r\\n }\\r\\n \\r\\n .btn-block + .btn-block {\\r\\n margin-top: 0.5rem;\\r\\n }\\r\\n \\r\\n input[type=\\\"submit\\\"].btn-block,\\r\\n input[type=\\\"reset\\\"].btn-block,\\r\\n input[type=\\\"button\\\"].btn-block {\\r\\n width: 100%;\\r\\n }\\r\\n \\r\\n \\r\\n.btn .badge {\\r\\n position: relative;\\r\\n top: -1px;\\r\\n }\\r\\n\\r\\n \\r\\n.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {\\r\\n padding-right: 0.375rem;\\r\\n padding-left: 0.375rem;\\r\\n }\\r\\n \\r\\n .btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {\\r\\n padding-right: 0.75rem;\\r\\n padding-left: 0.75rem;\\r\\n }\\r\\n \\r\\n .btn-group-vertical {\\r\\n -ms-flex-direction: column;\\r\\n flex-direction: column;\\r\\n -ms-flex-align: start;\\r\\n align-items: flex-start;\\r\\n -ms-flex-pack: center;\\r\\n justify-content: center;\\r\\n }\\r\\n \\r\\n .btn-group-vertical .btn,\\r\\n .btn-group-vertical .btn-group {\\r\\n width: 100%;\\r\\n }\\r\\n \\r\\n .btn-group-vertical > .btn + .btn,\\r\\n .btn-group-vertical > .btn + .btn-group,\\r\\n .btn-group-vertical > .btn-group + .btn,\\r\\n .btn-group-vertical > .btn-group + .btn-group {\\r\\n margin-top: -1px;\\r\\n margin-left: 0;\\r\\n }\\r\\n \\r\\n .btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),\\r\\n .btn-group-vertical > .btn-group:not(:last-child) > .btn {\\r\\n border-bottom-right-radius: 0;\\r\\n border-bottom-left-radius: 0;\\r\\n }\\r\\n \\r\\n .btn-group-vertical > .btn:not(:first-child),\\r\\n .btn-group-vertical > .btn-group:not(:first-child) > .btn {\\r\\n border-top-left-radius: 0;\\r\\n border-top-right-radius: 0;\\r\\n }\\r\\n \\r\\n .btn-group-toggle > .btn,\\r\\n .btn-group-toggle > .btn-group > .btn {\\r\\n margin-bottom: 0;\\r\\n }\\r\\n \\r\\n .btn-group-toggle > .btn input[type=\\\"radio\\\"],\\r\\n .btn-group-toggle > .btn input[type=\\\"checkbox\\\"],\\r\\n .btn-group-toggle > .btn-group > .btn input[type=\\\"radio\\\"],\\r\\n .btn-group-toggle > .btn-group > .btn input[type=\\\"checkbox\\\"] {\\r\\n position: absolute;\\r\\n clip: rect(0, 0, 0, 0);\\r\\n pointer-events: none;\\r\\n }\\r\\n \"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","/*\n* MIT Licensed\n* http://www.23developer.com/opensource\n* http://github.com/23/resumable.js\n* Steffen Tiedemann Christensen, steffen@23company.com\n*/\n\n(function(){\n\"use strict\";\n\n var Resumable = function(opts){\n if ( !(this instanceof Resumable) ) {\n return new Resumable(opts);\n }\n this.version = 1.0;\n // SUPPORTED BY BROWSER?\n // Check if these features are support by the browser:\n // - File object type\n // - Blob object type\n // - FileList object type\n // - slicing files\n this.support = (\n (typeof(File)!=='undefined')\n &&\n (typeof(Blob)!=='undefined')\n &&\n (typeof(FileList)!=='undefined')\n &&\n (!!Blob.prototype.webkitSlice||!!Blob.prototype.mozSlice||!!Blob.prototype.slice||false)\n );\n if(!this.support) return(false);\n\n\n // PROPERTIES\n var $ = this;\n $.files = [];\n $.defaults = {\n chunkSize:1*1024*1024,\n forceChunkSize:false,\n simultaneousUploads:3,\n fileParameterName:'file',\n chunkNumberParameterName: 'resumableChunkNumber',\n chunkSizeParameterName: 'resumableChunkSize',\n currentChunkSizeParameterName: 'resumableCurrentChunkSize',\n totalSizeParameterName: 'resumableTotalSize',\n typeParameterName: 'resumableType',\n identifierParameterName: 'resumableIdentifier',\n fileNameParameterName: 'resumableFilename',\n relativePathParameterName: 'resumableRelativePath',\n totalChunksParameterName: 'resumableTotalChunks',\n throttleProgressCallbacks: 0.5,\n query:{},\n headers:{},\n preprocess:null,\n method:'multipart',\n uploadMethod: 'POST',\n testMethod: 'GET',\n prioritizeFirstAndLastChunk:false,\n target:'/',\n testTarget: null,\n parameterNamespace:'',\n testChunks:true,\n generateUniqueIdentifier:null,\n getTarget:null,\n maxChunkRetries:100,\n chunkRetryInterval:undefined,\n permanentErrors:[400, 404, 415, 500, 501],\n maxFiles:undefined,\n withCredentials:false,\n xhrTimeout:0,\n clearInput:true,\n chunkFormat:'blob',\n setChunkTypeFromFile:false,\n maxFilesErrorCallback:function (files, errorCount) {\n var maxFiles = $.getOpt('maxFiles');\n alert('Please upload no more than ' + maxFiles + ' file' + (maxFiles === 1 ? '' : 's') + ' at a time.');\n },\n minFileSize:1,\n minFileSizeErrorCallback:function(file, errorCount) {\n alert(file.fileName||file.name +' is too small, please upload files larger than ' + $h.formatSize($.getOpt('minFileSize')) + '.');\n },\n maxFileSize:undefined,\n maxFileSizeErrorCallback:function(file, errorCount) {\n alert(file.fileName||file.name +' is too large, please upload files less than ' + $h.formatSize($.getOpt('maxFileSize')) + '.');\n },\n fileType: [],\n fileTypeErrorCallback: function(file, errorCount) {\n alert(file.fileName||file.name +' has type not allowed, please upload files of type ' + $.getOpt('fileType') + '.');\n }\n };\n $.opts = opts||{};\n $.getOpt = function(o) {\n var $opt = this;\n // Get multiple option if passed an array\n if(o instanceof Array) {\n var options = {};\n $h.each(o, function(option){\n options[option] = $opt.getOpt(option);\n });\n return options;\n }\n // Otherwise, just return a simple option\n if ($opt instanceof ResumableChunk) {\n if (typeof $opt.opts[o] !== 'undefined') { return $opt.opts[o]; }\n else { $opt = $opt.fileObj; }\n }\n if ($opt instanceof ResumableFile) {\n if (typeof $opt.opts[o] !== 'undefined') { return $opt.opts[o]; }\n else { $opt = $opt.resumableObj; }\n }\n if ($opt instanceof Resumable) {\n if (typeof $opt.opts[o] !== 'undefined') { return $opt.opts[o]; }\n else { return $opt.defaults[o]; }\n }\n };\n\n // EVENTS\n // catchAll(event, ...)\n // fileSuccess(file), fileProgress(file), fileAdded(file, event), filesAdded(files, filesSkipped), fileRetry(file),\n // fileError(file, message), complete(), progress(), error(message, file), pause()\n $.events = [];\n $.on = function(event,callback){\n $.events.push(event.toLowerCase(), callback);\n };\n $.fire = function(){\n // `arguments` is an object, not array, in FF, so:\n var args = [];\n for (var i=0; i 0){\n var fileTypeFound = false;\n for(var index in o.fileType){\n var extension = '.' + o.fileType[index];\n\t\t\tif(fileName.toLowerCase().indexOf(extension.toLowerCase(), fileName.length - extension.length) !== -1){\n fileTypeFound = true;\n break;\n }\n }\n if (!fileTypeFound) {\n o.fileTypeErrorCallback(file, errorCount++);\n return false;\n }\n }\n\n if (typeof(o.minFileSize)!=='undefined' && file.sizeo.maxFileSize) {\n o.maxFileSizeErrorCallback(file, errorCount++);\n return false;\n }\n\n function addFile(uniqueIdentifier){\n if (!$.getFromUniqueIdentifier(uniqueIdentifier)) {(function(){\n file.uniqueIdentifier = uniqueIdentifier;\n var f = new ResumableFile($, file, uniqueIdentifier);\n $.files.push(f);\n files.push(f);\n f.container = (typeof event != 'undefined' ? event.srcElement : null);\n window.setTimeout(function(){\n $.fire('fileAdded', f, event)\n },0);\n })()} else {\n filesSkipped.push(file);\n };\n decreaseReamining();\n }\n // directories have size == 0\n var uniqueIdentifier = $h.generateUniqueIdentifier(file, event);\n if(uniqueIdentifier && typeof uniqueIdentifier.then === 'function'){\n // Promise or Promise-like object provided as unique identifier\n uniqueIdentifier\n .then(\n function(uniqueIdentifier){\n // unique identifier generation succeeded\n addFile(uniqueIdentifier);\n },\n function(){\n // unique identifier generation failed\n // skip further processing, only decrease file count\n decreaseReamining();\n }\n );\n }else{\n // non-Promise provided as unique identifier, process synchronously\n addFile(uniqueIdentifier);\n }\n });\n };\n\n // INTERNAL OBJECT TYPES\n function ResumableFile(resumableObj, file, uniqueIdentifier){\n var $ = this;\n $.opts = {};\n $.getOpt = resumableObj.getOpt;\n $._prevProgress = 0;\n $.resumableObj = resumableObj;\n $.file = file;\n $.fileName = file.fileName||file.name; // Some confusion in different versions of Firefox\n $.size = file.size;\n $.relativePath = file.relativePath || file.webkitRelativePath || $.fileName;\n $.uniqueIdentifier = uniqueIdentifier;\n $._pause = false;\n $.container = '';\n var _error = uniqueIdentifier !== undefined;\n\n // Callback when something happens within the chunk\n var chunkEvent = function(event, message){\n // event can be 'progress', 'success', 'error' or 'retry'\n switch(event){\n case 'progress':\n $.resumableObj.fire('fileProgress', $, message);\n break;\n case 'error':\n $.abort();\n _error = true;\n $.chunks = [];\n $.resumableObj.fire('fileError', $, message);\n break;\n case 'success':\n if(_error) return;\n $.resumableObj.fire('fileProgress', $); // it's at least progress\n if($.isComplete()) {\n $.resumableObj.fire('fileSuccess', $, message);\n }\n break;\n case 'retry':\n $.resumableObj.fire('fileRetry', $);\n break;\n }\n };\n\n // Main code to set up a file object with chunks,\n // packaged to be able to handle retries if needed.\n $.chunks = [];\n $.abort = function(){\n // Stop current uploads\n var abortCount = 0;\n $h.each($.chunks, function(c){\n if(c.status()=='uploading') {\n c.abort();\n abortCount++;\n }\n });\n if(abortCount>0) $.resumableObj.fire('fileProgress', $);\n };\n $.cancel = function(){\n // Reset this file to be void\n var _chunks = $.chunks;\n $.chunks = [];\n // Stop current uploads\n $h.each(_chunks, function(c){\n if(c.status()=='uploading') {\n c.abort();\n $.resumableObj.uploadNextChunk();\n }\n });\n $.resumableObj.removeFile($);\n $.resumableObj.fire('fileProgress', $);\n };\n $.retry = function(){\n $.bootstrap();\n var firedRetry = false;\n $.resumableObj.on('chunkingComplete', function(){\n if(!firedRetry) $.resumableObj.upload();\n firedRetry = true;\n });\n };\n $.bootstrap = function(){\n $.abort();\n _error = false;\n // Rebuild stack of chunks from file\n $.chunks = [];\n $._prevProgress = 0;\n var round = $.getOpt('forceChunkSize') ? Math.ceil : Math.floor;\n var maxOffset = Math.max(round($.file.size/$.getOpt('chunkSize')),1);\n for (var offset=0; offset0.99999 ? 1 : ret));\n ret = Math.max($._prevProgress, ret); // We don't want to lose percentages when an upload is paused\n $._prevProgress = ret;\n return(ret);\n };\n $.isUploading = function(){\n var uploading = false;\n $h.each($.chunks, function(chunk){\n if(chunk.status()=='uploading') {\n uploading = true;\n return(false);\n }\n });\n return(uploading);\n };\n $.isComplete = function(){\n var outstanding = false;\n $h.each($.chunks, function(chunk){\n var status = chunk.status();\n if(status=='pending' || status=='uploading' || chunk.preprocessState === 1) {\n outstanding = true;\n return(false);\n }\n });\n return(!outstanding);\n };\n $.pause = function(pause){\n if(typeof(pause)==='undefined'){\n $._pause = ($._pause ? false : true);\n }else{\n $._pause = pause;\n }\n };\n $.isPaused = function() {\n return $._pause;\n };\n\n\n // Bootstrap and return\n $.resumableObj.fire('chunkingStart', $);\n $.bootstrap();\n return(this);\n }\n\n\n function ResumableChunk(resumableObj, fileObj, offset, callback){\n var $ = this;\n $.opts = {};\n $.getOpt = resumableObj.getOpt;\n $.resumableObj = resumableObj;\n $.fileObj = fileObj;\n $.fileObjSize = fileObj.size;\n $.fileObjType = fileObj.file.type;\n $.offset = offset;\n $.callback = callback;\n $.lastProgressCallback = (new Date);\n $.tested = false;\n $.retries = 0;\n $.pendingRetry = false;\n $.preprocessState = 0; // 0 = unprocessed, 1 = processing, 2 = finished\n\n // Computed properties\n var chunkSize = $.getOpt('chunkSize');\n $.loaded = 0;\n $.startByte = $.offset*chunkSize;\n $.endByte = Math.min($.fileObjSize, ($.offset+1)*chunkSize);\n if ($.fileObjSize-$.endByte < chunkSize && !$.getOpt('forceChunkSize')) {\n // The last chunk will be bigger than the chunk size, but less than 2*chunkSize\n $.endByte = $.fileObjSize;\n }\n $.xhr = null;\n\n // test() makes a GET request without any data to see if the chunk has already been uploaded in a previous session\n $.test = function(){\n // Set up request and listen for event\n $.xhr = new XMLHttpRequest();\n\n var testHandler = function(e){\n $.tested = true;\n var status = $.status();\n if(status=='success') {\n $.callback(status, $.message());\n $.resumableObj.uploadNextChunk();\n } else {\n $.send();\n }\n };\n $.xhr.addEventListener('load', testHandler, false);\n $.xhr.addEventListener('error', testHandler, false);\n $.xhr.addEventListener('timeout', testHandler, false);\n\n // Add data from the query options\n var params = [];\n var parameterNamespace = $.getOpt('parameterNamespace');\n var customQuery = $.getOpt('query');\n if(typeof customQuery == 'function') customQuery = customQuery($.fileObj, $);\n $h.each(customQuery, function(k,v){\n params.push([encodeURIComponent(parameterNamespace+k), encodeURIComponent(v)].join('='));\n });\n // Add extra data to identify chunk\n params = params.concat(\n [\n // define key/value pairs for additional parameters\n ['chunkNumberParameterName', $.offset + 1],\n ['chunkSizeParameterName', $.getOpt('chunkSize')],\n ['currentChunkSizeParameterName', $.endByte - $.startByte],\n ['totalSizeParameterName', $.fileObjSize],\n ['typeParameterName', $.fileObjType],\n ['identifierParameterName', $.fileObj.uniqueIdentifier],\n ['fileNameParameterName', $.fileObj.fileName],\n ['relativePathParameterName', $.fileObj.relativePath],\n ['totalChunksParameterName', $.fileObj.chunks.length]\n ].filter(function(pair){\n // include items that resolve to truthy values\n // i.e. exclude false, null, undefined and empty strings\n return $.getOpt(pair[0]);\n })\n .map(function(pair){\n // map each key/value pair to its final form\n return [\n parameterNamespace + $.getOpt(pair[0]),\n encodeURIComponent(pair[1])\n ].join('=');\n })\n );\n // Append the relevant chunk and send it\n $.xhr.open($.getOpt('testMethod'), $h.getTarget('test', params));\n $.xhr.timeout = $.getOpt('xhrTimeout');\n $.xhr.withCredentials = $.getOpt('withCredentials');\n // Add data from header options\n var customHeaders = $.getOpt('headers');\n if(typeof customHeaders === 'function') {\n customHeaders = customHeaders($.fileObj, $);\n }\n $h.each(customHeaders, function(k,v) {\n $.xhr.setRequestHeader(k, v);\n });\n $.xhr.send(null);\n };\n\n $.preprocessFinished = function(){\n $.preprocessState = 2;\n $.send();\n };\n\n // send() uploads the actual data in a POST call\n $.send = function(){\n var preprocess = $.getOpt('preprocess');\n if(typeof preprocess === 'function') {\n switch($.preprocessState) {\n case 0: $.preprocessState = 1; preprocess($); return;\n case 1: return;\n case 2: break;\n }\n }\n if($.getOpt('testChunks') && !$.tested) {\n $.test();\n return;\n }\n\n // Set up request and listen for event\n $.xhr = new XMLHttpRequest();\n\n // Progress\n $.xhr.upload.addEventListener('progress', function(e){\n if( (new Date) - $.lastProgressCallback > $.getOpt('throttleProgressCallbacks') * 1000 ) {\n $.callback('progress');\n $.lastProgressCallback = (new Date);\n }\n $.loaded=e.loaded||0;\n }, false);\n $.loaded = 0;\n $.pendingRetry = false;\n $.callback('progress');\n\n // Done (either done, failed or retry)\n var doneHandler = function(e){\n var status = $.status();\n if(status=='success'||status=='error') {\n $.callback(status, $.message());\n $.resumableObj.uploadNextChunk();\n } else {\n $.callback('retry', $.message());\n $.abort();\n $.retries++;\n var retryInterval = $.getOpt('chunkRetryInterval');\n if(retryInterval !== undefined) {\n $.pendingRetry = true;\n setTimeout($.send, retryInterval);\n } else {\n $.send();\n }\n }\n };\n $.xhr.addEventListener('load', doneHandler, false);\n $.xhr.addEventListener('error', doneHandler, false);\n $.xhr.addEventListener('timeout', doneHandler, false);\n\n // Set up the basic query data from Resumable\n var query = [\n ['chunkNumberParameterName', $.offset + 1],\n ['chunkSizeParameterName', $.getOpt('chunkSize')],\n ['currentChunkSizeParameterName', $.endByte - $.startByte],\n ['totalSizeParameterName', $.fileObjSize],\n ['typeParameterName', $.fileObjType],\n ['identifierParameterName', $.fileObj.uniqueIdentifier],\n ['fileNameParameterName', $.fileObj.fileName],\n ['relativePathParameterName', $.fileObj.relativePath],\n ['totalChunksParameterName', $.fileObj.chunks.length],\n ].filter(function(pair){\n // include items that resolve to truthy values\n // i.e. exclude false, null, undefined and empty strings\n return $.getOpt(pair[0]);\n })\n .reduce(function(query, pair){\n // assign query key/value\n query[$.getOpt(pair[0])] = pair[1];\n return query;\n }, {});\n // Mix in custom data\n var customQuery = $.getOpt('query');\n if(typeof customQuery == 'function') customQuery = customQuery($.fileObj, $);\n $h.each(customQuery, function(k,v){\n query[k] = v;\n });\n\n var func = ($.fileObj.file.slice ? 'slice' : ($.fileObj.file.mozSlice ? 'mozSlice' : ($.fileObj.file.webkitSlice ? 'webkitSlice' : 'slice')));\n var bytes = $.fileObj.file[func]($.startByte, $.endByte, $.getOpt('setChunkTypeFromFile') ? $.fileObj.file.type : \"\");\n var data = null;\n var params = [];\n\n var parameterNamespace = $.getOpt('parameterNamespace');\n if ($.getOpt('method') === 'octet') {\n // Add data from the query options\n data = bytes;\n $h.each(query, function (k, v) {\n params.push([encodeURIComponent(parameterNamespace + k), encodeURIComponent(v)].join('='));\n });\n } else {\n // Add data from the query options\n data = new FormData();\n $h.each(query, function (k, v) {\n data.append(parameterNamespace + k, v);\n params.push([encodeURIComponent(parameterNamespace + k), encodeURIComponent(v)].join('='));\n });\n if ($.getOpt('chunkFormat') == 'blob') {\n data.append(parameterNamespace + $.getOpt('fileParameterName'), bytes, $.fileObj.fileName);\n }\n else if ($.getOpt('chunkFormat') == 'base64') {\n var fr = new FileReader();\n fr.onload = function (e) {\n data.append(parameterNamespace + $.getOpt('fileParameterName'), fr.result);\n $.xhr.send(data);\n }\n fr.readAsDataURL(bytes);\n }\n }\n\n var target = $h.getTarget('upload', params);\n var method = $.getOpt('uploadMethod');\n\n $.xhr.open(method, target);\n if ($.getOpt('method') === 'octet') {\n $.xhr.setRequestHeader('Content-Type', 'application/octet-stream');\n }\n $.xhr.timeout = $.getOpt('xhrTimeout');\n $.xhr.withCredentials = $.getOpt('withCredentials');\n // Add data from header options\n var customHeaders = $.getOpt('headers');\n if(typeof customHeaders === 'function') {\n customHeaders = customHeaders($.fileObj, $);\n }\n\n $h.each(customHeaders, function(k,v) {\n $.xhr.setRequestHeader(k, v);\n });\n\n if ($.getOpt('chunkFormat') == 'blob') {\n $.xhr.send(data);\n }\n };\n $.abort = function(){\n // Abort and reset\n if($.xhr) $.xhr.abort();\n $.xhr = null;\n };\n $.status = function(){\n // Returns: 'pending', 'uploading', 'success', 'error'\n if($.pendingRetry) {\n // if pending retry then that's effectively the same as actively uploading,\n // there might just be a slight delay before the retry starts\n return('uploading');\n } else if(!$.xhr) {\n return('pending');\n } else if($.xhr.readyState<4) {\n // Status is really 'OPENED', 'HEADERS_RECEIVED' or 'LOADING' - meaning that stuff is happening\n return('uploading');\n } else {\n if($.xhr.status == 200 || $.xhr.status == 201) {\n // HTTP 200, 201 (created)\n return('success');\n } else if($h.contains($.getOpt('permanentErrors'), $.xhr.status) || $.retries >= $.getOpt('maxChunkRetries')) {\n // HTTP 415/500/501, permanent error\n return('error');\n } else {\n // this should never happen, but we'll reset and queue a retry\n // a likely case for this would be 503 service unavailable\n $.abort();\n return('pending');\n }\n }\n };\n $.message = function(){\n return($.xhr ? $.xhr.responseText : '');\n };\n $.progress = function(relative){\n if(typeof(relative)==='undefined') relative = false;\n var factor = (relative ? ($.endByte-$.startByte)/$.fileObjSize : 1);\n if($.pendingRetry) return(0);\n if(!$.xhr || !$.xhr.status) factor*=.95;\n var s = $.status();\n switch(s){\n case 'success':\n case 'error':\n return(1*factor);\n case 'pending':\n return(0*factor);\n default:\n return($.loaded/($.endByte-$.startByte)*factor);\n }\n };\n return(this);\n }\n\n // QUEUE\n $.uploadNextChunk = function(){\n var found = false;\n\n // In some cases (such as videos) it's really handy to upload the first\n // and last chunk of a file quickly; this let's the server check the file's\n // metadata and determine if there's even a point in continuing.\n if ($.getOpt('prioritizeFirstAndLastChunk')) {\n $h.each($.files, function(file){\n if(file.chunks.length && file.chunks[0].status()=='pending' && file.chunks[0].preprocessState === 0) {\n file.chunks[0].send();\n found = true;\n return(false);\n }\n if(file.chunks.length>1 && file.chunks[file.chunks.length-1].status()=='pending' && file.chunks[file.chunks.length-1].preprocessState === 0) {\n file.chunks[file.chunks.length-1].send();\n found = true;\n return(false);\n }\n });\n if(found) return(true);\n }\n\n // Now, simply look for the next, best thing to upload\n $h.each($.files, function(file){\n if(file.isPaused()===false){\n $h.each(file.chunks, function(chunk){\n if(chunk.status()=='pending' && chunk.preprocessState === 0) {\n chunk.send();\n found = true;\n return(false);\n }\n });\n }\n if(found) return(false);\n });\n if(found) return(true);\n\n // The are no more outstanding chunks to upload, check is everything is done\n var outstanding = false;\n $h.each($.files, function(file){\n if(!file.isComplete()) {\n outstanding = true;\n return(false);\n }\n });\n if(!outstanding) {\n // All chunks have been uploaded, complete\n $.fire('complete');\n }\n return(false);\n };\n\n\n // PUBLIC METHODS FOR RESUMABLE.JS\n $.assignBrowse = function(domNodes, isDirectory){\n if(typeof(domNodes.length)=='undefined') domNodes = [domNodes];\n\n $h.each(domNodes, function(domNode) {\n var input;\n if(domNode.tagName==='INPUT' && domNode.type==='file'){\n input = domNode;\n } else {\n input = document.createElement('input');\n input.setAttribute('type', 'file');\n input.style.display = 'none';\n domNode.addEventListener('click', function(){\n input.style.opacity = 0;\n input.style.display='block';\n input.focus();\n input.click();\n input.style.display='none';\n }, false);\n domNode.appendChild(input);\n }\n var maxFiles = $.getOpt('maxFiles');\n if (typeof(maxFiles)==='undefined'||maxFiles!=1){\n input.setAttribute('multiple', 'multiple');\n } else {\n input.removeAttribute('multiple');\n }\n if(isDirectory){\n input.setAttribute('webkitdirectory', 'webkitdirectory');\n } else {\n input.removeAttribute('webkitdirectory');\n }\n var fileTypes = $.getOpt('fileType');\n if (typeof (fileTypes) !== 'undefined' && fileTypes.length >= 1) {\n input.setAttribute('accept', fileTypes.map(function (e) { return '.' + e }).join(','));\n }\n else {\n input.removeAttribute('accept');\n }\n // When new files are added, simply append them to the overall list\n input.addEventListener('change', function(e){\n appendFilesFromFileList(e.target.files,e);\n var clearInput = $.getOpt('clearInput');\n if (clearInput) {\n e.target.value = '';\n }\n }, false);\n });\n };\n $.assignDrop = function(domNodes){\n if(typeof(domNodes.length)=='undefined') domNodes = [domNodes];\n\n $h.each(domNodes, function(domNode) {\n domNode.addEventListener('dragover', preventDefault, false);\n domNode.addEventListener('dragenter', preventDefault, false);\n domNode.addEventListener('drop', onDrop, false);\n });\n };\n $.unAssignDrop = function(domNodes) {\n if (typeof(domNodes.length) == 'undefined') domNodes = [domNodes];\n\n $h.each(domNodes, function(domNode) {\n domNode.removeEventListener('dragover', preventDefault);\n domNode.removeEventListener('dragenter', preventDefault);\n domNode.removeEventListener('drop', onDrop);\n });\n };\n $.isUploading = function(){\n var uploading = false;\n $h.each($.files, function(file){\n if (file.isUploading()) {\n uploading = true;\n return(false);\n }\n });\n return(uploading);\n };\n $.upload = function(){\n // Make sure we don't start too many uploads at once\n if($.isUploading()) return;\n // Kick off the queue\n $.fire('uploadStart');\n for (var num=1; num<=$.getOpt('simultaneousUploads'); num++) {\n $.uploadNextChunk();\n }\n };\n $.pause = function(){\n // Resume all chunks currently being uploaded\n $h.each($.files, function(file){\n file.abort();\n });\n $.fire('pause');\n };\n $.cancel = function(){\n $.fire('beforeCancel');\n for(var i = $.files.length - 1; i >= 0; i--) {\n $.files[i].cancel();\n }\n $.fire('cancel');\n };\n $.progress = function(){\n var totalDone = 0;\n var totalSize = 0;\n // Resume all chunks currently being uploaded\n $h.each($.files, function(file){\n totalDone += file.progress()*file.size;\n totalSize += file.size;\n });\n return(totalSize>0 ? totalDone/totalSize : 0);\n };\n $.addFile = function(file, event){\n appendFilesFromFileList([file], event);\n };\n $.addFiles = function(files, event){\n appendFilesFromFileList(files, event);\n };\n $.removeFile = function(file){\n for(var i = $.files.length - 1; i >= 0; i--) {\n if($.files[i] === file) {\n $.files.splice(i, 1);\n }\n }\n };\n $.getFromUniqueIdentifier = function(uniqueIdentifier){\n var ret = false;\n $h.each($.files, function(f){\n if(f.uniqueIdentifier==uniqueIdentifier) ret = f;\n });\n return(ret);\n };\n $.getSize = function(){\n var totalSize = 0;\n $h.each($.files, function(file){\n totalSize += file.size;\n });\n return(totalSize);\n };\n $.handleDropEvent = function (e) {\n onDrop(e);\n };\n $.handleChangeEvent = function (e) {\n appendFilesFromFileList(e.target.files, e);\n e.target.value = '';\n };\n $.updateQuery = function(query){\n $.opts.query = query;\n };\n\n return(this);\n };\n\n\n // Node.js-style export for Node and Component\n if (typeof module != 'undefined') {\n module.exports = Resumable;\n } else if (typeof define === \"function\" && define.amd) {\n // AMD/requirejs: Define the module\n define(function(){\n return Resumable;\n });\n } else {\n // Browser: Expose to window\n window.Resumable = Resumable;\n }\n\n})();\n","import React, { Component } from 'react'\r\n\r\n/**\r\n * A Button component. \r\n * Used as a part of Upload component.\r\n */\r\nclass Button extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n }\r\n\r\n render() {\r\n\r\n return (\r\n
\r\n \r\n {this.props.text}\r\n \r\n
\r\n )\r\n }\r\n}\r\n\r\n\r\nButton.propTypes = {\r\n /**\r\n * The text on the button \r\n */\r\n text: PropTypes.string,\r\n /**\r\n * The CSS class for the button\r\n */\r\n btnClass: PropTypes.string,\r\n /**\r\n * Function to call when clicked\r\n */\r\n onClick: PropTypes.func,\r\n /**\r\n * Is disabled, the component\r\n * is not shown.\r\n */\r\n disabled: PropTypes.bool,\r\n /**\r\n * Is true, the parent component\r\n * has upload in progress.\r\n */\r\n isUploading: PropTypes.bool,\r\n}\r\n\r\nButton.defaultProps = {\r\n text: '',\r\n btnClass: 'dash-uploader-btn',\r\n onClick: () => { },\r\n disabled: false,\r\n isUploading: false,\r\n\r\n};\r\n\r\nexport default Button","import React, { Component } from 'react'\r\n\r\nimport PropTypes from 'prop-types';\r\n\r\n/**\r\n * A ProgressBar component. \r\n * Used as a part of Upload component.\r\n */\r\nclass ProgressBar extends Component {\r\n\r\n constructor(props) {\r\n super(props)\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n\r\n\r\n\r\n
\r\n\r\n {this.props.progressBar.toFixed(2) + '%'}\r\n\r\n
\r\n
\r\n )\r\n }\r\n}\r\n\r\n\r\nProgressBar.propTypes = {\r\n /**\r\n * The progressbar value \r\n */\r\n progressBar: PropTypes.number,\r\n /**\r\n * The upload status (boolean)\r\n */\r\n isUploading: PropTypes.bool,\r\n}\r\n\r\nProgressBar.defaultProps = {\r\n progressBar: 0,\r\n isUploading: false,\r\n};\r\n\r\n\r\nexport default ProgressBar","import api from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../node_modules/css-loader/dist/cjs.js!./progressbar.css\";\n\nvar options = {\"insert\":\"head\"};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import api from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../node_modules/css-loader/dist/cjs.js!./button.css\";\n\nvar options = {\"insert\":\"head\"};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","// v.0.5.0. https://github.com/np-8/dash-uploader \r\n// \r\n// Credits:\r\n// This file is based on following repositories\r\n// v.0.0.3 from https://github.com/rmarren1/dash-resumable-upload\r\n// v.0.0.4 from https://github.com/westonkjones/dash-resumable-upload\r\n\r\nimport React, { Component } from 'react';\r\n\r\nimport Button from './Button.react.js';\r\nimport ProgressBar from './ProgressBar.react.js'\r\nimport PropTypes from 'prop-types';\r\nimport Resumablejs from 'resumablejs';\r\nimport './progressbar.css';\r\nimport './button.css';\r\n\r\n/**\r\n * The Upload component\r\n */\r\nexport default class Upload_ReactComponent extends Component {\r\n\r\n static initialState = {\r\n progressBar: 0,\r\n messageStatus: '',\r\n fileList: { files: [] },\r\n isPaused: false,\r\n isUploading: false,\r\n isHovered: false,\r\n isComplete: false,\r\n showEnabledButtons: false,\r\n currentFile: ''\r\n }\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = Upload_ReactComponent.initialState;\r\n this.toggleHovered = this.toggleHovered.bind(this)\r\n this.cancelUpload = this.cancelUpload.bind(this)\r\n this.pauseUpload = this.pauseUpload.bind(this)\r\n this.startUpload = this.startUpload.bind(this)\r\n this.createButton = this.createButton.bind(this)\r\n this.resumable = null;\r\n }\r\n\r\n resetBuilder() {\r\n this.setState(Upload_ReactComponent.initialState)\r\n }\r\n\r\n componentDidMount() {\r\n\r\n const ResumableField = new Resumablejs({\r\n target: this.props.service,\r\n query: { upload_id: this.props.upload_id },\r\n fileType: this.props.filetypes,\r\n maxFiles: this.props.maxFiles,\r\n maxFileSize: this.props.maxFileSize,\r\n fileTypeErrorCallback: () => {\r\n this.setState({\r\n messageStatus: 'Invalid file type!'\r\n });\r\n },\r\n testMethod: 'post',\r\n testChunks: false,\r\n headers: {},\r\n chunkSize: this.props.chunkSize,\r\n simultaneousUploads: this.props.simultaneousUploads,\r\n forceChunkSize: false\r\n });\r\n\r\n this.props.setProps({\r\n isCompleted: false\r\n });\r\n // Clicking the component will open upload dialog \r\n ResumableField.assignBrowse(this.uploader);\r\n\r\n // Enable or Disable DragAnd Drop\r\n if (this.props.disableDragAndDrop === false && this.props.disabled === false) {\r\n ResumableField.assignDrop(this.dropZone);\r\n }\r\n\r\n ResumableField.on('fileAdded', (file) => {\r\n this.props.setProps({\r\n // Currently supports uploading only one file at a time.\r\n isCompleted: false,\r\n fileNames: [],\r\n });\r\n this.setState({\r\n messageStatus: this.props.fileAddedMessage || ' Starting upload! of ' + file.fileName,\r\n showEnabledButtons: true,\r\n // Currently supports uploading only one file at a time.\r\n isComplete: false,\r\n fileList: { files: [] },\r\n currentFile: file.fileName,\r\n });\r\n\r\n if (typeof this.props.onFileAdded === 'function') {\r\n this.props.onFileAdded(file, this.resumable);\r\n } else {\r\n ResumableField.upload();\r\n }\r\n });\r\n\r\n // Uploading a file is completed\r\n // The \"fileNames\" is a list, even though currently uploading\r\n // only one file at a time is supported.\r\n ResumableField.on('fileSuccess', (file, fileServer) => {\r\n\r\n if (this.props.fileNameServer) {\r\n const objectServer = JSON.parse(fileServer);\r\n file.fileName = objectServer[this.props.fileNameServer];\r\n } else {\r\n file.fileName = fileServer;\r\n }\r\n const currentFiles = this.state.fileList.files;\r\n currentFiles.push(file);\r\n\r\n const fileNames = this.props.fileNames\r\n fileNames.push(file.fileName);\r\n\r\n if (this.props.setProps) {\r\n this.props.setProps({\r\n fileNames: fileNames,\r\n isCompleted: true\r\n });\r\n }\r\n this.setState({\r\n fileList: { files: currentFiles },\r\n isComplete: true,\r\n showEnabledButtons: false,\r\n messageStatus: this.props.completedMessage + file.fileName || fileServer\r\n }, () => {\r\n if (typeof this.props.onFileSuccess === 'function') {\r\n this.props.onFileSuccess(file, fileServer);\r\n }\r\n });\r\n\r\n // Make re-upload of a file with same filename possible.\r\n ResumableField.removeFile(file);\r\n });\r\n\r\n\r\n\r\n ResumableField.on('progress', () => {\r\n\r\n\r\n this.setState({\r\n isUploading: ResumableField.isUploading()\r\n });\r\n\r\n if ((ResumableField.progress() * 100) < 100) {\r\n this.setState({\r\n messageStatus: 'Uploading \"' + this.state.currentFile + '\"',\r\n progressBar: ResumableField.progress() * 100\r\n });\r\n } else {\r\n setTimeout(() => {\r\n this.setState({\r\n progressBar: 0\r\n })\r\n }, 1000);\r\n }\r\n\r\n });\r\n\r\n\r\n\r\n ResumableField.on('fileError', (file, errorCount) => {\r\n\r\n if (typeof (this.props.onUploadErrorCallback) !== 'undefined') {\r\n this.props.onUploadErrorCallback(file, errorCount);\r\n } else {\r\n console.log('fileError with resumable.js! (file, errorCount)', file, errorCount)\r\n }\r\n\r\n });\r\n\r\n this.resumable = ResumableField;\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n const prevEnableDrop = (prevProps.disableDragAndDrop === false && prevProps.disabled === false);\r\n const curEnableDrop = (this.props.disableDragAndDrop === false && this.props.disabled === false);\r\n if (curEnableDrop !== prevEnableDrop) {\r\n if (curEnableDrop) {\r\n this.resumable.assignDrop(this.dropZone);\r\n } else {\r\n this.resumable.unAssignDrop(this.dropZone);\r\n }\r\n }\r\n }\r\n\r\n cancelUpload() {\r\n this.resumable.cancel();\r\n this.resetBuilder();\r\n }\r\n\r\n\r\n pauseUpload() {\r\n if (!this.state.isPaused) {\r\n this.resumable.pause();\r\n this.setState({\r\n isPaused: true,\r\n isUploading: true\r\n });\r\n } else {\r\n this.resumable.upload();\r\n this.setState({\r\n isPaused: false,\r\n isUploading: true\r\n });\r\n }\r\n }\r\n\r\n startUpload() {\r\n this.setState({\r\n isPaused: false\r\n });\r\n }\r\n\r\n toggleHovered() {\r\n this.setState({\r\n isHovered: !this.state.isHovered\r\n })\r\n }\r\n\r\n createButton(onClick, text, btnEnabledInSettings, disabled, btnClass) {\r\n let btn = null;\r\n if (this.state.showEnabledButtons && btnEnabledInSettings) {\r\n if (typeof btnEnabledInSettings === 'string' || typeof btnEnabledInSettings === 'boolean') {\r\n btn = \r\n }\r\n else { btn = btnEnabledInSettings }\r\n }\r\n return btn\r\n }\r\n\r\n render() {\r\n\r\n const fileList = null;\r\n\r\n let startButton = this.createButton(\r\n this.startUpload,\r\n 'upload',\r\n this.props.startButton,\r\n this.state.isUploading,\r\n \"dash-uploader-btn-start\"\r\n );\r\n\r\n let cancelButton = this.createButton(\r\n this.cancelUpload,\r\n 'cancel',\r\n this.props.cancelButton,\r\n !this.state.isUploading,\r\n \"dash-uploader-btn-cancel\"\r\n );\r\n\r\n let pauseButton = this.createButton(\r\n this.pauseUpload,\r\n (this.state.isPaused ? 'resume' : 'pause'),\r\n this.props.pauseButton,\r\n !this.state.isUploading,\r\n \"dash-uploader-btn-pause\"\r\n );\r\n\r\n\r\n const getStyle = () => {\r\n if (this.state.isUploading) {\r\n return this.props.uploadingStyle;\r\n } else if (this.props.disabled) {\r\n return this.props.disabledStyle;\r\n } else if (this.state.isComplete) {\r\n return this.props.completeStyle;\r\n }\r\n return this.props.defaultStyle;\r\n\r\n }\r\n\r\n const getClass = () => {\r\n if (this.state.isUploading) {\r\n return this.props.uploadingClass;\r\n } else if (this.state.isPaused) {\r\n return this.props.pausedClass;\r\n } else if (this.props.disabled) {\r\n return this.props.disabledClass;\r\n } else if (this.state.isHovered) {\r\n return this.props.hoveredClass;\r\n } else if (this.state.isComplete) {\r\n return this.props.completeClass;\r\n }\r\n return this.props.className;\r\n\r\n }\r\n\r\n const getMessage = () => {\r\n if (this.state.isUploading === false && this.props.disabled === true && this.props.disabledMessage) {\r\n return this.props.disabledMessage;\r\n }\r\n else if (this.state.messageStatus === '') {\r\n if (this.props.textLabel) {\r\n return this.props.textLabel;\r\n }\r\n return null;\r\n } else {\r\n return this.state.messageStatus;\r\n }\r\n \r\n }\r\n\r\n return (\r\n
this.dropZone = node} >\r\n
\r\n \r\n\r\n {getMessage()}\r\n this.uploader = node}\r\n type=\"file\"\r\n className='btn'\r\n name={this.props.id + '-upload'}\r\n accept={this.props.fileAccept || '*'}\r\n disabled={this.state.isUploading || this.props.disabled}\r\n style={{\r\n 'opacity': '0',\r\n 'width': '0',\r\n 'height': '0',\r\n 'position': 'absolute',\r\n 'overflow': 'hidden',\r\n 'zIndex': '-1',\r\n }}\r\n />\r\n \r\n \r\n {fileList}\r\n {startButton}\r\n {pauseButton}\r\n {cancelButton}\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nUpload_ReactComponent.propTypes = {\r\n /**\r\n * Maximum number of files that can be uploaded in one session\r\n */\r\n maxFiles: PropTypes.number,\r\n\r\n /**\r\n * Maximum size per file in bytes.\r\n */\r\n maxFileSize: PropTypes.number,\r\n\r\n /**\r\n * Size of file chunks to send to server.\r\n */\r\n chunkSize: PropTypes.number,\r\n\r\n /**\r\n * Number of simultaneous uploads to select\r\n */\r\n simultaneousUploads: PropTypes.number,\r\n\r\n /**\r\n * The service to send the files to\r\n */\r\n service: PropTypes.string,\r\n\r\n /**\r\n * Class to add to the upload component by default\r\n */\r\n className: PropTypes.string,\r\n\r\n /**\r\n * Class to add to the upload component when it is hovered\r\n */\r\n hoveredClass: PropTypes.string,\r\n\r\n /**\r\n * Class to add to the upload component when it is disabled\r\n */\r\n disabledClass: PropTypes.string,\r\n\r\n /**\r\n * Class to add to the upload component when it is paused\r\n */\r\n pausedClass: PropTypes.string,\r\n\r\n /**\r\n * Class to add to the upload component when it is complete\r\n */\r\n completeClass: PropTypes.string,\r\n\r\n /**\r\n * Class to add to the upload component when it is uploading\r\n */\r\n uploadingClass: PropTypes.string,\r\n\r\n /**\r\n * Style attributes to add to the upload component\r\n */\r\n defaultStyle: PropTypes.object,\r\n\r\n /**\r\n * Style when upload is disabled\r\n */\r\n disabledStyle: PropTypes.object,\r\n\r\n /**\r\n * Style when upload is in progress\r\n */\r\n uploadingStyle: PropTypes.object,\r\n\r\n /**\r\n * Style when upload is completed (upload finished)\r\n */\r\n completeStyle: PropTypes.object,\r\n\r\n /**\r\n * The string to display in the upload component\r\n */\r\n textLabel: PropTypes.string,\r\n\r\n /**\r\n * Message to display when upload disabled\r\n */\r\n disabledMessage: PropTypes.string,\r\n\r\n /**\r\n * Message to display when upload completed\r\n */\r\n completedMessage: PropTypes.string,\r\n\r\n /**\r\n * The names of the files uploaded\r\n */\r\n fileNames: PropTypes.arrayOf(PropTypes.string),\r\n\r\n /**\r\n * List of allowed file types, e.g. ['jpg', 'png']\r\n */\r\n filetypes: PropTypes.arrayOf(PropTypes.string),\r\n\r\n /**\r\n * Whether or not to have a start button\r\n */\r\n startButton: PropTypes.bool,\r\n\r\n /**\r\n * Whether or not to have a pause button\r\n */\r\n pauseButton: PropTypes.bool,\r\n\r\n /**\r\n * Whether or not to have a cancel button\r\n */\r\n cancelButton: PropTypes.bool,\r\n\r\n /**\r\n * Whether or not to allow file uploading\r\n */\r\n disabled: PropTypes.bool,\r\n\r\n /**\r\n * Whether or not to allow file drag and drop\r\n */\r\n disableDragAndDrop: PropTypes.bool,\r\n\r\n /**\r\n * Dash-supplied function for updating props\r\n */\r\n setProps: PropTypes.func,\r\n\r\n /**\r\n * User supplied id of this component\r\n */\r\n id: PropTypes.string,\r\n\r\n /**\r\n * The boolean flag telling if upload is completed.\r\n */\r\n isCompleted: PropTypes.bool,\r\n\r\n /**\r\n * The ID for the upload event (for example, session ID)\r\n */\r\n upload_id: PropTypes.string,\r\n\r\n /**\r\n * Number of simulaneous uploads.\r\n */\r\n simultaneuosUploads: PropTypes.number,\r\n\r\n /**\r\n * Function to call on upload error (untested)\r\n */\r\n onUploadErrorCallback: PropTypes.func,\r\n}\r\n\r\nUpload_ReactComponent.defaultProps = {\r\n maxFiles: 1,\r\n maxFileSize: 1024 * 1024 * 10,\r\n chunkSize: 1024 * 1024,\r\n simultaneuosUploads: 1,\r\n service: '/API/dash-uploader',\r\n className: 'dash-uploader-default',\r\n hoveredClass: 'dash-uploader-hovered',\r\n completeClass: 'dash-uploader-complete',\r\n disabledClass: 'dash-uploader-disabled',\r\n pausedClass: 'dash-uploader-paused',\r\n uploadingClass: 'dash-uploader-uploading',\r\n defaultStyle: {},\r\n disabledStyle: {},\r\n uploadingStyle: {},\r\n completeStyle: {},\r\n textLabel: 'Click Here to Select a File',\r\n disabledMessage: 'The uploader is disabled.',\r\n completedMessage: 'Complete! ',\r\n fileNames: [],\r\n filetypes: undefined,\r\n startButton: true,\r\n pauseButton: true,\r\n cancelButton: true,\r\n disabled: false,\r\n disableDragAndDrop: false,\r\n id: 'default-dash-uploader-id',\r\n onUploadErrorCallback: undefined,\r\n isCompleted: false,\r\n upload_id: ''\r\n};\r\n"],"sourceRoot":""} \ No newline at end of file diff --git a/dash/dash_uploader/_build/metadata.json b/dash/dash_uploader/_build/metadata.json new file mode 100644 index 0000000000..bb6084f529 --- /dev/null +++ b/dash/dash_uploader/_build/metadata.json @@ -0,0 +1 @@ +{"src/lib/components/Button.react.js":{"description":"A Button component. \r\n Used as a part of Upload component.","displayName":"Button","methods":[],"props":{"text":{"type":{"name":"custom","raw":"PropTypes.string"},"required":false,"description":"The text on the button","defaultValue":{"value":"''","computed":false}},"btnClass":{"type":{"name":"custom","raw":"PropTypes.string"},"required":false,"description":"The CSS class for the button","defaultValue":{"value":"'dash-uploader-btn'","computed":false}},"onClick":{"type":{"name":"custom","raw":"PropTypes.func"},"required":false,"description":"Function to call when clicked","defaultValue":{"value":"() => { }","computed":false}},"disabled":{"type":{"name":"custom","raw":"PropTypes.bool"},"required":false,"description":"Is disabled, the component\r\nis not shown.","defaultValue":{"value":"false","computed":false}},"isUploading":{"type":{"name":"custom","raw":"PropTypes.bool"},"required":false,"description":"Is true, the parent component\r\n has upload in progress.","defaultValue":{"value":"false","computed":false}}}},"src/lib/components/ProgressBar.react.js":{"description":"A ProgressBar component. \r\n Used as a part of Upload component.","displayName":"ProgressBar","methods":[],"props":{"progressBar":{"type":{"name":"number"},"required":false,"description":"The progressbar value","defaultValue":{"value":"0","computed":false}},"isUploading":{"type":{"name":"bool"},"required":false,"description":"The upload status (boolean)","defaultValue":{"value":"false","computed":false}}}},"src/lib/components/Upload_ReactComponent.react.js":{"description":"The Upload component","displayName":"Upload_ReactComponent","methods":[{"name":"resetBuilder","docblock":null,"modifiers":[],"params":[],"returns":null},{"name":"cancelUpload","docblock":null,"modifiers":[],"params":[],"returns":null},{"name":"pauseUpload","docblock":null,"modifiers":[],"params":[],"returns":null},{"name":"startUpload","docblock":null,"modifiers":[],"params":[],"returns":null},{"name":"toggleHovered","docblock":null,"modifiers":[],"params":[],"returns":null},{"name":"createButton","docblock":null,"modifiers":[],"params":[{"name":"onClick","type":null},{"name":"text","type":null},{"name":"btnEnabledInSettings","type":null},{"name":"disabled","type":null},{"name":"btnClass","type":null}],"returns":null}],"props":{"maxFiles":{"type":{"name":"number"},"required":false,"description":"Maximum number of files that can be uploaded in one session","defaultValue":{"value":"1","computed":false}},"maxFileSize":{"type":{"name":"number"},"required":false,"description":"Maximum size per file in bytes.","defaultValue":{"value":"1024 * 1024 * 10","computed":false}},"chunkSize":{"type":{"name":"number"},"required":false,"description":"Size of file chunks to send to server.","defaultValue":{"value":"1024 * 1024","computed":false}},"simultaneousUploads":{"type":{"name":"number"},"required":false,"description":"Number of simultaneous uploads to select"},"service":{"type":{"name":"string"},"required":false,"description":"The service to send the files to","defaultValue":{"value":"'/API/dash-uploader'","computed":false}},"className":{"type":{"name":"string"},"required":false,"description":"Class to add to the upload component by default","defaultValue":{"value":"'dash-uploader-default'","computed":false}},"hoveredClass":{"type":{"name":"string"},"required":false,"description":"Class to add to the upload component when it is hovered","defaultValue":{"value":"'dash-uploader-hovered'","computed":false}},"disabledClass":{"type":{"name":"string"},"required":false,"description":"Class to add to the upload component when it is disabled","defaultValue":{"value":"'dash-uploader-disabled'","computed":false}},"pausedClass":{"type":{"name":"string"},"required":false,"description":"Class to add to the upload component when it is paused","defaultValue":{"value":"'dash-uploader-paused'","computed":false}},"completeClass":{"type":{"name":"string"},"required":false,"description":"Class to add to the upload component when it is complete","defaultValue":{"value":"'dash-uploader-complete'","computed":false}},"uploadingClass":{"type":{"name":"string"},"required":false,"description":"Class to add to the upload component when it is uploading","defaultValue":{"value":"'dash-uploader-uploading'","computed":false}},"defaultStyle":{"type":{"name":"object"},"required":false,"description":"Style attributes to add to the upload component","defaultValue":{"value":"{}","computed":false}},"disabledStyle":{"type":{"name":"object"},"required":false,"description":"Style when upload is disabled","defaultValue":{"value":"{}","computed":false}},"uploadingStyle":{"type":{"name":"object"},"required":false,"description":"Style when upload is in progress","defaultValue":{"value":"{}","computed":false}},"completeStyle":{"type":{"name":"object"},"required":false,"description":"Style when upload is completed (upload finished)","defaultValue":{"value":"{}","computed":false}},"textLabel":{"type":{"name":"string"},"required":false,"description":"The string to display in the upload component","defaultValue":{"value":"'Click Here to Select a File'","computed":false}},"disabledMessage":{"type":{"name":"string"},"required":false,"description":"Message to display when upload disabled","defaultValue":{"value":"'The uploader is disabled.'","computed":false}},"completedMessage":{"type":{"name":"string"},"required":false,"description":"Message to display when upload completed","defaultValue":{"value":"'Complete! '","computed":false}},"fileNames":{"type":{"name":"arrayOf","value":{"name":"string"}},"required":false,"description":"The names of the files uploaded","defaultValue":{"value":"[]","computed":false}},"filetypes":{"type":{"name":"arrayOf","value":{"name":"string"}},"required":false,"description":"List of allowed file types, e.g. ['jpg', 'png']","defaultValue":{"value":"undefined","computed":true}},"startButton":{"type":{"name":"bool"},"required":false,"description":"Whether or not to have a start button","defaultValue":{"value":"true","computed":false}},"pauseButton":{"type":{"name":"bool"},"required":false,"description":"Whether or not to have a pause button","defaultValue":{"value":"true","computed":false}},"cancelButton":{"type":{"name":"bool"},"required":false,"description":"Whether or not to have a cancel button","defaultValue":{"value":"true","computed":false}},"disabled":{"type":{"name":"bool"},"required":false,"description":"Whether or not to allow file uploading","defaultValue":{"value":"false","computed":false}},"disableDragAndDrop":{"type":{"name":"bool"},"required":false,"description":"Whether or not to allow file drag and drop","defaultValue":{"value":"false","computed":false}},"setProps":{"type":{"name":"func"},"required":false,"description":"Dash-supplied function for updating props"},"id":{"type":{"name":"string"},"required":false,"description":"User supplied id of this component","defaultValue":{"value":"'default-dash-uploader-id'","computed":false}},"isCompleted":{"type":{"name":"bool"},"required":false,"description":"The boolean flag telling if upload is completed.","defaultValue":{"value":"false","computed":false}},"upload_id":{"type":{"name":"string"},"required":false,"description":"The ID for the upload event (for example, session ID)","defaultValue":{"value":"''","computed":false}},"simultaneuosUploads":{"type":{"name":"number"},"required":false,"description":"Number of simulaneous uploads.","defaultValue":{"value":"1","computed":false}},"onUploadErrorCallback":{"type":{"name":"func"},"required":false,"description":"Function to call on upload error (untested)","defaultValue":{"value":"undefined","computed":true}}}}} \ No newline at end of file diff --git a/dash/dash_uploader/_build/package-info.json b/dash/dash_uploader/_build/package-info.json new file mode 100644 index 0000000000..33120b626a --- /dev/null +++ b/dash/dash_uploader/_build/package-info.json @@ -0,0 +1,60 @@ +{ + "name": "dash_uploader", + "version": "0.6.1", + "description": "Upload large files using resumable.js", + "repository": { + "type": "git", + "url": "git://github.com/np-8/dash-uploader.git" + }, + "bugs": { + "url": "https://github.com/np-8/dash-uploader/issues" + }, + "homepage": "https://github.com/np-8/dash-uploader", + "main": "build/index.js", + "scripts": { + "start": "webpack-serve --config ./webpack.serve.config.js --open --host 127.0.0.1", + "validate-init": "python _validate_init.py", + "prepublishOnly": "npm run validate-init", + "build:js": "webpack --mode production", + "build:py": "dash-generate-components ./src/lib/components dash_uploader -p package-info.json ", + "build:py-activated": "(. venv/bin/activate || venv\\scripts\\activate && npm run build:py)", + "build": "npm run build:js && npm run build:py && python ./devscripts/post_build.py", + "build:activated": "npm run build:js && npm run build:py-activated" + }, + "author": "Niko Pasanen ", + "license": "MIT", + "dependencies": { + "lodash": ">=4.17.21", + "ramda": "^0.27.1", + "resumablejs": "^1.1.0" + }, + "devDependencies": { + "@babel/core": "^7.13.14", + "@babel/plugin-proposal-class-properties": "^7.13.0", + "@babel/plugin-proposal-object-rest-spread": "^7.13.8", + "@babel/preset-env": "^7.13.12", + "@babel/preset-react": "^7.13.13", + "babel-eslint": "^10.0.2", + "babel-loader": "^8.2.2", + "copyfiles": "^2.4.1", + "css-loader": "^5.2.0", + "eslint": "^7.23.0", + "eslint-config-prettier": "^8.1.0", + "eslint-plugin-import": "^2.22.1", + "eslint-plugin-react": "^7.23.1", + "npm": "^6.14.15", + "prop-types": "^15.7.2", + "react": "^17.0.2", + "react-docgen": "^5.3.1", + "react-dom": "^17.0.2", + "style-loader": "^2.0.0", + "styled-jsx": "^3.4.4", + "webpack": "^4.29.0", + "webpack-cli": "4.6.0", + "webpack-serve": "4.0.0" + }, + "engines": { + "node": ">=8.11.0", + "npm": ">=6.1.0" + } +} diff --git a/dash/dash_uploader/callbacks.py b/dash/dash_uploader/callbacks.py new file mode 100644 index 0000000000..4c6fb1cb3b --- /dev/null +++ b/dash/dash_uploader/callbacks.py @@ -0,0 +1,111 @@ +from packaging import version +from pathlib import Path + +from dash.version import __version__ as dashversion +from dash.dependencies import Input, State + +from . import settings + + +def compare_dash_version(req_version="1.12"): + """Compare the version of dash. + Will return True if current dash version is greater than + the argument "req_version". + This is a private method, and should not be exposed to users. + """ + cur_version = version.parse(dashversion) + return cur_version >= version.parse(req_version) + + +def create_dash_callback(callback, settings): # pylint: disable=redefined-outer-name + """Wrap the dash callback with the du.settings. + This function could be used as a wrapper. It will add the + configurations of dash-uploader to the callback. + This is a private method, and should not be exposed to users. + """ + + def wrapper(iscompleted, filenames, upload_id): + if not iscompleted: + return + + out = [] + if filenames is not None: + if upload_id: + root_folder = Path(settings.UPLOAD_FOLDER_ROOT) / upload_id + else: + root_folder = Path(settings.UPLOAD_FOLDER_ROOT) + + for filename in filenames: + file = root_folder / filename + out.append(str(file)) + + return callback(out) + + return wrapper + + +def callback( + output, + id="dash-uploader", +): + """ + Add a callback to dash application. + This callback fires when upload is completed. + Note: Must be called after du.configure_upload! + + Parameters + ---------- + output: dash Ouput + The output dash component + id: str + The id of the du.Upload component. + + Example + ------- + @du.callback( + output=Output('callback-output', 'children'), + id='dash-uploader', + ) + def get_a_list(filenames): + return html.Ul([html.Li(filenames)]) + + + """ + + def add_callback(function): + """ + Parameters + --------- + function: callable + Function that receivers one argument, + filenames and returns one argument, + a dash component. The filenames is either + None or list of str containing the uploaded + file(s). + output: dash.dependencies.Output + The dash output. For example: + Output('callback-output', 'children') + + """ + dash_callback = create_dash_callback( + function, + settings, + ) + + if not hasattr(settings, "app"): + raise Exception( + "The du.configure_upload must be called before the @du.callback can be used! Please, configure the dash-uploader." + ) + + kwargs = dict() + if compare_dash_version("1.12"): + kwargs["prevent_initial_call"] = True + dash_callback = settings.app.callback( + output, + [Input(id, "isCompleted")], + [State(id, "fileNames"), State(id, "upload_id")], + **kwargs + )(dash_callback) + return function + + return add_callback diff --git a/dash/dash_uploader/configure_upload.py b/dash/dash_uploader/configure_upload.py new file mode 100644 index 0000000000..cd765846ca --- /dev/null +++ b/dash/dash_uploader/configure_upload.py @@ -0,0 +1,110 @@ +import logging + +from . import settings +from .upload import update_upload_api +from .httprequesthandler import HttpRequestHandler + + +logger = logging.getLogger("dash_uploader") + + +def configure_upload( + app, folder, use_upload_id=True, upload_api=None, http_request_handler=None +): + r""" + Configure the upload APIs for dash app. + This function is required to be called before using du.callback. + + Parameters + --------- + app: dash.Dash + The application instance + folder: str + The folder where to upload files. + Can be relative ("uploads") or + absolute (r"C:\tmp\my_uploads"). + If the folder does not exist, it will + be created automatically. + use_upload_id: bool + Determines if the uploads are put into + folders defined by a "upload id" (upload_id). + If True, uploads will be put into `folder`//; + that is, every user (for example with different + session id) will use their own folder. If False, + all files from all sessions are uploaded into + same folder (not recommended). + upload_api: None or str + The upload api endpoint to use; the url that is used + internally for the upload component POST and GET HTTP + requests. For example: "/API/dash-uploader" + http_request_handler: None or class + Used for custom configuration on the Http POST and GET requests. + This can be used to add validation for the HTTP requests (Important + if your site is public!). If None, dash_uploader.HttpRequestHandler is used. + If you provide a class, use a subclass of HttpRequestHandler. + See the documentation of dash_uploader.HttpRequestHandler for + more details. + """ + settings.UPLOAD_FOLDER_ROOT = folder + settings.app = app + + if upload_api is None: + upload_api = settings.upload_api + else: + # Set the upload api since du.Upload components + # that are created after du.configure_upload + # need to be able to read the api endpoint. + settings.upload_api = upload_api + + # Needed if using a proxy + settings.requests_pathname_prefix = app.config.get("requests_pathname_prefix", "/") + settings.routes_pathname_prefix = app.config.get("routes_pathname_prefix", "/") + + upload_api = update_upload_api(settings.routes_pathname_prefix, upload_api) + + if http_request_handler is None: + http_request_handler = HttpRequestHandler + + decorate_server( + app.server, + folder, + upload_api, + http_request_handler=http_request_handler, + use_upload_id=use_upload_id, + ) + + +def decorate_server( + server, + temp_base, + upload_api, + http_request_handler, + use_upload_id=True, +): + """ + Parameters + ---------- + server: flask.Flask + The flask server instance + temp_base: str + The upload root folder + upload_api: str + The upload api endpoint to use; the url that is used + internally for the upload component POST and GET HTTP + requests. + use_upload_id: bool + Determines if the uploads are put into + folders defined by a "upload id" (upload_id). + If True, uploads will be put into `folder`//; + that is, every user (for example with different + session id) will use their own folder. If False, + all files from all sessions are uploaded into + same folder (not recommended). + """ + + handler = http_request_handler( + server, upload_folder=temp_base, use_upload_id=use_upload_id + ) + + server.add_url_rule(upload_api, None, handler.get, methods=["GET"]) + server.add_url_rule(upload_api, None, handler.post, methods=["POST"]) diff --git a/dash/dash_uploader/httprequesthandler.py b/dash/dash_uploader/httprequesthandler.py new file mode 100644 index 0000000000..9b00137bca --- /dev/null +++ b/dash/dash_uploader/httprequesthandler.py @@ -0,0 +1,198 @@ +import logging +import os +import shutil +import time +import traceback + +from flask import request +from flask import abort + +logger = logging.getLogger(__name__) + + +def get_chunk_name(uploaded_filename, chunk_number): + return uploaded_filename + "_part_%03d" % chunk_number + + +class BaseHttpRequestHandler: + def __init__(self, server, upload_folder, use_upload_id): + """ + Parameters + ---------- + server: flask.Flask + The flask server instance + upload_folder: str + The folder to use for uploads + use_upload_id: bool + Determines if the uploads are put into + folders defined by a "upload id" (upload_id). + If True, uploads will be put into `folder`//; + that is, every user (for example with different + session id) will use their own folder. If False, + all files from all sessions are uploaded into + same folder (not recommended). + + """ + self.server = server + self.upload_folder = upload_folder + self.use_upload_id = use_upload_id + + def post(self): + try: + return self._post() + except Exception: + logger.error(traceback.format_exc()) + + def _post(self): + resumableTotalChunks = request.form.get("resumableTotalChunks", type=int) + resumableChunkNumber = request.form.get( + "resumableChunkNumber", default=1, type=int + ) + resumableFilename = request.form.get( + "resumableFilename", default="error", type=str + ) + resumableIdentifier = request.form.get( + "resumableIdentifier", default="error", type=str + ) + upload_id = request.form.get("upload_id", default="", type=str) + + # get the chunk data + chunk_data = request.files["file"] + + # make our temp directory + temp_root = self.get_temp_root(upload_id) + temp_dir = os.path.join(temp_root, resumableIdentifier) + if not os.path.isdir(temp_dir): + os.makedirs(temp_dir) + + # save the chunk data + chunk_name = get_chunk_name(resumableFilename, resumableChunkNumber) + chunk_file = os.path.join(temp_dir, chunk_name) + + # make a lock file + lock_file_path = os.path.join( + temp_dir, ".lock_{:d}".format(resumableChunkNumber) + ) + + with open(lock_file_path, "a"): + os.utime(lock_file_path, None) + chunk_data.save(chunk_file) + os.unlink(lock_file_path) + + # check if the upload is complete + chunk_paths = [ + os.path.join(temp_dir, get_chunk_name(resumableFilename, x)) + for x in range(1, resumableTotalChunks + 1) + ] + upload_complete = all([os.path.exists(p) for p in chunk_paths]) + + # combine all the chunks to create the final file + if upload_complete: + + # Make sure all files are finished writing + # but do not wait forever.. + tried = 0 + while any( + [ + os.path.isfile(os.path.join(temp_dir, ".lock_{:d}".format(chunk))) + for chunk in range(1, resumableTotalChunks + 1) + ] + ): + tried += 1 + if tried >= 5: + logger.error("Error uploading files with temp_dir: %s.", temp_dir) + raise Exception("Error uploading files with temp_dir: " + temp_dir) + time.sleep(1) + + # Make sure some other chunk didn't trigger file reconstruction + target_file_name = os.path.join(temp_root, resumableFilename) + if os.path.exists(target_file_name): + logger.info("File %s exists already. Overwriting..", target_file_name) + os.unlink(target_file_name) + + with open(target_file_name, "ab") as target_file: + for p in chunk_paths: + with open(p, "rb") as stored_chunk_file: + target_file.write(stored_chunk_file.read()) + self.server.logger.debug("File saved to: %s", target_file_name) + shutil.rmtree(temp_dir) + + return resumableFilename + + def get(self): + try: + return self._get() + except Exception: + logger.error(traceback.format_exc()) + + def _get(self): + # resumable.js uses a GET request to check if it uploaded the file already. + # https://github.com/23/resumable.js#handling-get-or-test-requests + # TODO: Since testChunks is set to false, this seems to be permanently disabled. + # Should this be removed altogether? + + resumableIdentifier = request.args.get("resumableIdentifier", type=str) + resumableFilename = request.args.get("resumableFilename", type=str) + resumableChunkNumber = request.args.get("resumableChunkNumber", type=int) + + upload_id = request.args.get("upload_id", default="", type=str) + + if not (resumableIdentifier and resumableFilename and resumableChunkNumber): + # Parameters are missing or invalid + abort(500, "Parameter error") + + # chunk folder path based on the parameters + temp_dir = os.path.join(self.get_temp_root(upload_id), resumableIdentifier) + + # chunk path based on the parameters + chunk_file = os.path.join( + temp_dir, get_chunk_name(resumableFilename, resumableChunkNumber) + ) + self.server.logger.debug("Getting chunk: %s", chunk_file) + + if os.path.isfile(chunk_file): + # Let resumable.js know this chunk already exists + return "OK" + else: + # Let resumable.js know this chunk does not exists + # and needs to be uploaded + abort(404, "Not found") + + def get_temp_root(self, upload_id): + return ( + os.path.join(self.upload_folder, upload_id) + if self.use_upload_id + else self.upload_folder + ) + + +class HttpRequestHandler(BaseHttpRequestHandler): + # You may use the flask.request + # and flask.session inside the methods of this + # class when needed. + def __init__(self, *args, **kwargs): # pylint: disable=useless-super-delegation + super().__init__(*args, **kwargs) + + def post_before(self): + pass + + def post(self): + self.post_before() + returnvalue = super().post() + self.post_after() + return returnvalue + + def post_after(self): + pass + + def get_before(self): + pass + + def get(self): + self.get_before() + returnvalue = super().get() + self.get_after() + return returnvalue + + def get_after(self): + pass diff --git a/dash/dash_uploader/settings.py b/dash/dash_uploader/settings.py new file mode 100644 index 0000000000..019300a1f2 --- /dev/null +++ b/dash/dash_uploader/settings.py @@ -0,0 +1,20 @@ +# The default upload api endpoint +# The du.configure_upload can change this +upload_api = "/API/resumable" + +# Needed if using a proxy; when dash.Dash is used +# with a `requests_pathname_prefix`. +# The front-end will prefix this string to the requests +# that are made to the proxy server +requests_pathname_prefix = "/" + +# From dash source code: +# Note that `requests_pathname_prefix` is the prefix for the AJAX calls that +# originate from the client (the web browser) and `routes_pathname_prefix` is +# the prefix for the API routes on the backend (this flask server). +# `url_base_pathname` will set `requests_pathname_prefix` and +# `routes_pathname_prefix` to the same value. +# If you need these to be different values then you should set +# `requests_pathname_prefix` and `routes_pathname_prefix`, +# not `url_base_pathname`. +routes_pathname_prefix = "/" diff --git a/dash/dash_uploader/upload.py b/dash/dash_uploader/upload.py new file mode 100644 index 0000000000..7f4c3eceb9 --- /dev/null +++ b/dash/dash_uploader/upload.py @@ -0,0 +1,171 @@ +import uuid + +from ._build.Upload_ReactComponent import Upload_ReactComponent +from . import settings + +DEFAULT_STYLE = { + "width": "100%", + # min-height and line-height should be the same to make + # the centering work. + "minHeight": "100px", + "lineHeight": "100px", + "textAlign": "center", + "borderWidth": "1px", + "borderStyle": "dashed", + "borderRadius": "7px", +} + + +def update_upload_api(requests_pathname_prefix, upload_api): + """Path join for the API path name. + This is a private method, and should not be exposed to users. + """ + if requests_pathname_prefix == "/": + return upload_api + return "/".join( + [ + requests_pathname_prefix.rstrip("/"), + upload_api.lstrip("/"), + ] + ) + + +def combine(overiding_dict, base_dict): + """Combining two dictionaries without modifying them. + This is a private method, and should not be exposed to users. + """ + if overiding_dict is None: + return dict(base_dict) + return {**base_dict, **overiding_dict} + + +# Implemented as function, but still uppercase. +# This is because subclassing the Dash-auto-generated +# "Upload from Upload.py" will give some errors +def Upload( + id="dash-uploader", + text="Drag and Drop Here to upload!", + text_completed="Uploaded: ", + text_disabled="The uploader is disabled.", + cancel_button=True, + pause_button=False, + disabled=False, + filetypes=None, + max_file_size=1024, + chunk_size=1, + default_style=None, + upload_id=None, + max_files=1, +): + """ + du.Upload component + + Parameters + ---------- + text: str + The text to show in the upload "Drag + and Drop" area. Optional. + text_completed: str + The text to show in the upload area + after upload has completed successfully before + the name of the uploaded file. For example, if user + uploaded "data.zip" and `text_completed` is + "Ready! ", then user would see text "Ready! + data.zip". + text_disabled: str + The text to show in the upload area when the + the component is disabled. + cancel_button: bool + If True, shows a cancel button. + pause_button: bool + If True, shows a pause button. + disabled: bool + If True, the file is not allowed to be uploaded. + filetypes: list of str or None + The filetypes that can be uploaded. + For example ['zip', 'rar']. + Note that this just checks the extension of the + filename, and user might still upload any kind + of file (by renaming)! + By default, all filetypes are accepted. + max_file_size: numeric + The maximum file size in Megabytes. Optional. + chunk_size: numeric + The chunk size in Megabytes. Optional. + default_style: None or dict + Inline CSS styling for the main div element. + If None, use the default style of the component. + If dict, will use the union on the given dict + and the default style. (you may override + part of the style by giving a dictionary) + More styling options through the CSS classes. + upload_id: None or str + The upload id, created with uuid.uuid1() or uuid.uuid4(), + for example. If none, creates random session id with + uuid.uuid1(). + max_files: int (default: 1) + EXPERIMENTAL feature. Read below. For bulletproof + implementation, force usage of zip files and keep + max_files = 1. + + The number of files that can be added to + the upload field simultaneously. + + Notes: + (1) If even a single file which is not supported file + type, is added to the upload queue, upload process of + all files will be permanently interrupted. + (2) Use reasonably small amount in "max_files". + (3) When uploading two folders with Chrome, there is + a bug in resumable.js which makes only one of the + folders to be uploaded. See: + https://github.com/23/resumable.js/issues/416 + (4) When uploading folders, note that the subdirectories + are NOT created -> All files in the folders will + be uploaded to the single upload folder. + + Returns + ------- + Upload: dash component + Initiated Dash component for app.layout. + """ + + # Handle styling + default_style = combine(default_style, DEFAULT_STYLE) + disabled_style = combine({"opacity": "0.5"}, default_style) + upload_style = combine({"lineHeight": "0px"}, default_style) + + if upload_id is None: + upload_id = uuid.uuid1() + + service = update_upload_api(settings.requests_pathname_prefix, settings.upload_api) + + arguments = dict( + id=id, + isCompleted=False, + # Have not tested if using many files + # is reliable -> Do not allow + maxFiles=max_files, + maxFileSize=max_file_size * 1024 * 1024, + chunkSize=chunk_size * 1024 * 1024, + textLabel=text, + service=service, + startButton=False, + disabled=disabled, + # Not tested so default to one. + simultaneousUploads=1, + completedMessage=text_completed, + disabledMessage=text_disabled, + cancelButton=cancel_button, + pauseButton=pause_button, + defaultStyle=default_style, + disabledStyle=disabled_style, + uploadingStyle=upload_style, + completeStyle=default_style, + upload_id=str(upload_id), + ) + + if filetypes: + arguments["filetypes"] = filetypes + + return Upload_ReactComponent(**arguments) diff --git a/dash/dash_uploader/utils.py b/dash/dash_uploader/utils.py new file mode 100644 index 0000000000..84f8d09b9a --- /dev/null +++ b/dash/dash_uploader/utils.py @@ -0,0 +1,19 @@ +import packaging +import pkg_resources + +## Dash version +dash_version_str = pkg_resources.get_distribution("dash").version +dash_version = packaging.version.parse(dash_version_str) + + +def dash_version_is_greater_or_equal_to(version): + """ + Check if the installed version of Dash is + greater or equal than some version. + + Parameters + ---------- + version: str + The version string. E.g. '1.14.0' + """ + return dash_version >= packaging.version.parse(version) diff --git a/dash/development/update_components.py b/dash/development/update_components.py index 2789be22fd..d7d34bf00a 100644 --- a/dash/development/update_components.py +++ b/dash/development/update_components.py @@ -23,6 +23,7 @@ class _CombinedFormatter( "dash-core-components": "dcc", "dash-html-components": "html", "dash-table": "dash_table", + "dash-uploader": "dash_uploader", } From 8f1fedda2bb9608af0411590a14b15d65d0b4c44 Mon Sep 17 00:00:00 2001 From: ravikr1 Date: Sun, 28 Jun 2026 12:42:18 +0530 Subject: [PATCH 2/6] Add unit tests --- tests/unit/test_dash_uploader.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 tests/unit/test_dash_uploader.py diff --git a/tests/unit/test_dash_uploader.py b/tests/unit/test_dash_uploader.py new file mode 100644 index 0000000000..d7ffcf08ce --- /dev/null +++ b/tests/unit/test_dash_uploader.py @@ -0,0 +1,19 @@ +import dash +from dash import dash_uploader + + +def test_dash_uploader_is_exported_from_dash_root(): + assert hasattr(dash, "dash_uploader") + assert dash.dash_uploader is dash_uploader + assert hasattr(dash_uploader, "configure_upload") + assert hasattr(dash_uploader, "callback") + assert hasattr(dash_uploader, "HttpRequestHandler") + assert hasattr(dash_uploader, "Upload") + + +def test_dash_uploader_upload_component_factory(): + upload_component = dash_uploader.Upload() + + assert upload_component._type == "Upload_ReactComponent" + assert upload_component._namespace == "dash_uploader" + assert upload_component.id == "dash-uploader" From 035d1e36ba21ea19c05d5b93ea49d9d3c13c88ea Mon Sep 17 00:00:00 2001 From: ravikr1 Date: Sun, 28 Jun 2026 13:58:11 +0530 Subject: [PATCH 3/6] fix: remove non-null assertion in workerClient.ts --- dash/dash-renderer/src/utils/workerClient.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/dash/dash-renderer/src/utils/workerClient.ts b/dash/dash-renderer/src/utils/workerClient.ts index 1c07a4c1c3..1cc68a73c1 100644 --- a/dash/dash-renderer/src/utils/workerClient.ts +++ b/dash/dash-renderer/src/utils/workerClient.ts @@ -216,11 +216,12 @@ class WorkerClient { } const requestId = `${this.rendererId}-${++this.requestCounter}`; + const worker = this.worker; return new Promise((resolve, reject) => { this.pendingCallbacks.set(requestId, {resolve, reject}); - this.worker!.port.postMessage({ + worker.port.postMessage({ type: WorkerMessageType.CALLBACK_REQUEST, rendererId: this.rendererId, requestId, From cbf7cdbee2009d63b309dd99ab5b931ba00e13d4 Mon Sep 17 00:00:00 2001 From: ravikr1 Date: Sun, 28 Jun 2026 13:59:01 +0530 Subject: [PATCH 4/6] fix: exclude dash_uploader from pylint checks (auto-generated package) --- .pylintrc | 1 + 1 file changed, 1 insertion(+) diff --git a/.pylintrc b/.pylintrc index 39e142048d..190f88bab4 100644 --- a/.pylintrc +++ b/.pylintrc @@ -18,6 +18,7 @@ ignore-patterns= ignore-paths=^dash/dcc/.*$, ^dash/html/.*$, ^dash/dash_table/.*$, + ^dash/dash_uploader/.*$, ^.*/node_modules/.*$ # Python code to execute, usually for sys.path manipulation such as From 3dc958eee86343c851eac20b885e161c5d5fffec Mon Sep 17 00:00:00 2001 From: ravikr1 Date: Sun, 28 Jun 2026 14:06:16 +0530 Subject: [PATCH 5/6] fix: add proper type annotations to callback decorator for mypy strict mode compatibility - Add type annotations to wrap_func to preserve function signature using ParamSpec and TypeVar - Add return type annotation to register_callback - Remove redundant cast() call that was obscuring type information - Remove unused cast import These changes ensure that mypy can properly understand that the callback decorator preserves the original function's signature and return type in strict mode. --- dash/_callback.py | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/dash/_callback.py b/dash/_callback.py index cf34172a80..4801c5e9ee 100644 --- a/dash/_callback.py +++ b/dash/_callback.py @@ -2,7 +2,7 @@ import hashlib import inspect from functools import wraps -from typing import Callable, Optional, Any, List, Tuple, Union, Dict, TypeVar, cast +from typing import Callable, Optional, Any, List, Tuple, Union, Dict, TypeVar from typing_extensions import ParamSpec @@ -249,9 +249,7 @@ def callback( mcp_expose_docstring=mcp_expose_docstring, ) - return cast( - Callable[[Callable[Params, ReturnVar]], Callable[Params, ReturnVar]], raw - ) + return raw def validate_background_inputs(deps): @@ -656,12 +654,12 @@ def _prepare_response( # pylint: disable=too-many-branches,too-many-statements def register_callback( - callback_list, - callback_map, - config_prevent_initial_callbacks, - *_args, - **_kwargs, -): + callback_list: List[Any], + callback_map: Dict[str, Any], + config_prevent_initial_callbacks: bool, + *_args: Any, + **_kwargs: Any, +) -> Callable[[Callable[Params, ReturnVar]], Callable[Params, ReturnVar]]: ( output, flat_inputs, @@ -718,7 +716,7 @@ def register_callback( ) # pylint: disable=too-many-locals - def wrap_func(func): + def wrap_func(func: Callable[Params, ReturnVar]) -> Callable[Params, ReturnVar]: if _kwargs.get("api_endpoint"): api_endpoint = _kwargs.get("api_endpoint") GLOBAL_API_PATHS[api_endpoint] = func From 7ebe8a24b189378fd963cae3b521d654c7a41fdb Mon Sep 17 00:00:00 2001 From: ravikr1 Date: Sun, 28 Jun 2026 14:11:08 +0530 Subject: [PATCH 6/6] Revert not needed change --- dash/dash-renderer/src/utils/workerClient.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/dash/dash-renderer/src/utils/workerClient.ts b/dash/dash-renderer/src/utils/workerClient.ts index 1cc68a73c1..1c07a4c1c3 100644 --- a/dash/dash-renderer/src/utils/workerClient.ts +++ b/dash/dash-renderer/src/utils/workerClient.ts @@ -216,12 +216,11 @@ class WorkerClient { } const requestId = `${this.rendererId}-${++this.requestCounter}`; - const worker = this.worker; return new Promise((resolve, reject) => { this.pendingCallbacks.set(requestId, {resolve, reject}); - worker.port.postMessage({ + this.worker!.port.postMessage({ type: WorkerMessageType.CALLBACK_REQUEST, rendererId: this.rendererId, requestId,