diff --git a/.eslintrc.js b/.eslintrc.js
new file mode 100644
index 0000000..86d6560
--- /dev/null
+++ b/.eslintrc.js
@@ -0,0 +1,14 @@
+module.exports = {
+ parser: '@typescript-eslint/parser',
+ parserOptions: {
+ sourceType: 'module',
+ },
+ rules: {
+ 'no-unused-vars': [
+ 'error',
+ // we are only using this rule to check for unused arguments since TS
+ // catches unused variables but not args.
+ { varsIgnorePattern: '.*', args: 'after-used', argsIgnorePattern: '^_' },
+ ],
+ },
+};
diff --git a/.gitignore b/.gitignore
index da38761..247486e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,11 +2,13 @@
~*
dist/
+types/
node_modules/
coverage/
reports/
+types/
src/**/*.js
-types/**/*.map
+
# ignore log files
*.log
diff --git a/.prettierrc b/.prettierrc
new file mode 100644
index 0000000..324ece1
--- /dev/null
+++ b/.prettierrc
@@ -0,0 +1,6 @@
+{
+ "semi": true,
+ "trailingComma": "es5",
+ "singleQuote": true,
+ "arrowParens": "avoid"
+}
diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
index 0000000..7bc057d
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,180 @@
+# [Unreleased](https://github.com/ModusCreateOrg/ionic-vue/compare/v3.0.0-beta.1...dev)
+
+### Bug fixes
+* Do not add "can-go-back" class when swiping back to "/"
+
+---
+
+# [3.0.0-beta.1](https://github.com/ModusCreateOrg/ionic-vue/compare/v3.0.0-alpha.17...v3.0.0-beta.1)
+
+### Features
+* Switched to @ionic/core beta for ionic/vue v0.4.0
+* Updated to latest Vue 3.0 release
+* Added CommonJS modules
+
+### Bug fixes
+* Improve merging of Ionic and Vue classes
+* Improvements on adding event listeners
+* General refactors
+
+# [3.0.0-alpha.17](https://github.com/ModusCreateOrg/ionic-vue/compare/v3.0.0-alpha.16...v3.0.0-alpha.17)
+
+### Breaking changes
+* In order to allow for Ionic to initialize it's custom elements it is now required to await for a `isReady` function before mounting the application. Similarly how it is done with VueRouter.
+```
+// v3.0.0-alpha.17 unwards
+const app = createApp(App)
+ .use(IonicVue, globalIonicConfig)
+ .use(router);
+
+IonicVue.isReady().then(() => {
+ router.isReady().then(() => {
+ app.mount("#app");
+ });
+});
+```
+
+### Bug fixes
+* Fix swipe-back route props parsing
+* Fix Ionic initialisation
+
+# [3.0.0-alpha.16](https://github.com/ModusCreateOrg/ionic-vue/compare/v3.0.0-alpha.15...v3.0.0-alpha.16)
+
+### Features
+* Improve tooling and IDE support by wrapping components with defineComponent
+* Vetur support
+
+### Bug fixes
+* Fix IonBackButton props
+* Fix IonSplitPane within IonRouterView being hidden after navigation
+* Fix removal of ionic classes with dynamic Vue class property values
+* Add missing component displayName props
+
+# [3.0.0-alpha.15](https://github.com/ModusCreateOrg/ionic-vue/compare/v3.0.0-alpha.14...v3.0.0-alpha.15)
+
+### Features
+* Added IonPage and IonRouterLink Ionic components
+* Switched to eslint
+
+### Bug fixes
+* Fix handling of target attribute
+* Fix IonTabs refs
+* Fix switching between tabs with routes and plain tabs causing a redirect
+* Fix IonRadioGroup v-model
+
+# [3.0.0-alpha.14](https://github.com/ModusCreateOrg/ionic-vue/compare/v3.0.0-alpha.13...v3.0.0-alpha.14)
+
+### Bug fixes
+* Fix rendering of route components when using swipe-back gesture
+
+# [3.0.0-alpha.13](https://github.com/ModusCreateOrg/ionic-vue/compare/v3.0.0-alpha.12...v3.0.0-alpha.13)
+
+### Features
+* Ionic components href attribute behaves like RouterLink's to attribute
+* Support routerAnimation and routerDirection props for Ionic components
+
+### Bug fixes
+* Scroll is no longer reset if swipe back is cancelled
+* Fix props no longer being applied correctly to overlay components
+* Fix onClick overriding on certain Ionic components
+
+# [3.0.0-alpha.12](https://github.com/ModusCreateOrg/ionic-vue/compare/v3.0.0-alpha.11...v3.0.0-alpha.12)
+
+### Features
+* Export transition props when rendering children in RouterView
+
+# [3.0.0-alpha.11](https://github.com/ModusCreateOrg/ionic-vue/compare/v3.0.0-alpha.10...v3.0.0-alpha.11)
+
+### Features
+* IonRouterView - remove keepAlive prop and use v-slot prop instead
+
+# [3.0.0-alpha.10](https://github.com/ModusCreateOrg/ionic-vue/compare/v3.0.0-alpha.9...v3.0.0-alpha.10)
+
+### Features
+* Added onIonTabsDidChange and onIonTabsWillChange events to IonTabs component
+
+### Bug fixes
+* Fix ionic input events not firing (i.e. IonSelect's @ionChange)
+* Fix ionic input value not being set when used without v-model (i.e. )
+
+# [3.0.0-alpha.9](https://github.com/ModusCreateOrg/ionic-vue/compare/v3.0.0-alpha.8...v3.0.0-alpha.9)
+
+### Features
+* Improve component props typings and definitions
+
+### Bug fixes
+* Allow IonBackButton to be used without router
+* Fix IonContent scoll element evaluating to false
+
+# [3.0.0-alpha.8](https://github.com/ModusCreateOrg/ionic-vue/compare/v3.0.0-alpha.7...v3.0.0-alpha.8)
+
+### Features
+* Added Keep Alive support to IonRouterView
+
+### Bug fixes
+* Fix default active tab selection
+
+# [3.0.0-alpha.7](https://github.com/ModusCreateOrg/ionic-vue/compare/v3.0.0-alpha.6...v3.0.0-alpha.7)
+
+### Features
+* Added routing to tabs
+* Added the rest of the missing Ionic components
+
+# [3.0.0-alpha.5](https://github.com/ModusCreateOrg/ionic-vue/compare/v3.0.0-alpha.4...v3.0.0-alpha.5)
+
+### Features
+* Added tabs support (no routing yet) - IonTabs, IonTabBar, IonTab, IonTabButton
+* Added IonIcon component
+* Update to vue@3.0.0-beta.15
+* Update to vue-router@4.0.0-alpha.12
+
+### Bug fixes
+* Fix setup of Ionic config
+
+# [3.0.0-alpha.4](https://github.com/ModusCreateOrg/ionic-vue/compare/v3.0.0-alpha.3...v3.0.0-alpha.4)
+
+### Features
+* Restore scroll on navigation
+* Update to vue@3.0.0-beta.10
+* Update to vue-router@4.0.0-alpha.10
+
+
+# [3.0.0-alpha.3](https://github.com/ModusCreateOrg/ionic-vue/compare/v3.0.0-alpha.2...v3.0.0-alpha.3)
+
+### Features
+* Swipe to go back for iOS mode
+* Hardware back button support
+* Update to vue@3.0.0-beta.5
+* Update to vue-router@4.0.0-alpha.9
+
+### Bug fixes
+* Improve back button display logic
+
+# [3.0.0-alpha.2](https://github.com/ModusCreateOrg/ionic-vue/compare/v3.0.0-alpha.1...v3.0.0-alpha.2)
+
+### Features
+* Router ``
+* Native general components: `IonHeader`, `IonToolbar`, `IonTitle`, `IonContent`, `IonButtons`
+* Native back button `IonBackButton`
+
+### Performance Improvements
+* Simplified navigation direction logic
+
+
+# [3.0.0-alpha.1](https://github.com/ModusCreateOrg/ionic-vue/compare/v1.3.6...v3.0.0-alpha.1)
+
+### BREAKING CHANGES
+* `IonicVue` is now a named export
+* Routing is temporarily disabled
+* Ionic controllers are replaced with native components and are not longer exported, import from `@ionic/core` if needed
+* Global `$ionic` property (`Vue.$ionic` and `this.$ionic`) are removed in favor of tree-shakable components
+
+### Features
+* Rewrite from ground up for Vue v3 support
+* Native overlay components: `IonModal`, `IonActionSheet`, `IonPopover`
+* Native input components: `IonInput`, `IonCheckbox`, `IonDatetime`, `IonRange`, `IonRadio`, `IonSearchbar`, `IonSelect`, `IonTextarea`, `IonToggle`
+* Native general components: `IonItem`, `IonLabel`, `IonButton`
+* `v-model` support for all components: `` or ``
+
+### Performance Improvements
+* Everything is (and will be) a functional component utilising Reactivity APIs
diff --git a/README.md b/README.md
index e580a17..0e06488 100644
--- a/README.md
+++ b/README.md
@@ -1,164 +1,186 @@
-# Ionic-Vue becomes @ionic/vue
-**Important: This project has been contributed to the Ionic core and can be used as [@ionic/vue](https://github.com/ionic-team/ionic/tree/master/vue).**
-
-Modus Create engineers will continue to support the community at the Ionic's official [Issue board](https://github.com/ionic-team/ionic/issues)
-
-However, this repository is still being actively maintained and kept in-sync with the official @ionic/vue. The main difference being the availability of pending upstream pull requests and flexibility of choosing dependency versions.
-
-Our goal is to allow developers to be on the bleeding-edge and freely experiment, thus we are delivering features and bug fixes as fast as possible.
-
-Bug fixes, features, documentation and any other changes are always contributed back to upstream @ionic/vue.
-
----
----
-
# Ionic-Vue
[](https://circleci.com/gh/ModusCreateOrg/ionic-vue)
[](https://codecov.io/gh/ModusCreateOrg/ionic-vue)
[](https://sonarcloud.io/dashboard?id=ionic_vue)
[](http://makeapullrequest.com)
-[](https://github.com/your/your-project/blob/master/LICENSE)
+[](https://github.com/ModusCreateOrg/ionic-vue/blob/master/LICENSE)
-Ionic integration adapters for Vue.
+Ionic 5 integration adapters for Vue 3.
+## Status: Alpha
+
+This is a prerelease, most of the functionality is in there such as the router, animations, input and overlay components. Since we are building on top of prereleases of Vue and VueRouter there may be breaking changes and bugs. The prerelease is created for early adopters to test the library and provide feedback, bug reports and feature requests.
+
## Roadmap
-Overview: all of the controllers and major features such as transitions and router have been implemented and tested for several months now.
-Apart from minor improvements and further testing of various mixes of Ionic components and implementations this library is considered feature complete.
-
-| Feature | Status | @ionic/vue | Notes |
-|-------------|---------|------------|-------|
-| Router | :heavy_check_mark: | :heavy_check_mark: | Fully implemented |
-| Router View | :heavy_check_mark: | :heavy_check_mark: | Fully implemented |
-| Tabs | :heavy_check_mark: | :heavy_check_mark: | Fully implemented |
-| Controllers | :heavy_check_mark: | :heavy_check_mark: | Fully implemented |
-| TypeScript | :heavy_check_mark: | :heavy_check_mark: | Fully implemented |
-| MS Edge Fix | :heavy_check_mark: | :heavy_check_mark: | Fully implemented |
-| Router keep-alive | :heavy_check_mark: | [Pending](https://github.com/ionic-team/ionic/pull/18561) | - |
-| Functional Inputs | :heavy_check_mark: | [Pending](https://github.com/ionic-team/ionic/pull/19087) | - |
-| Import controllers directly | :heavy_check_mark: | [Pending](https://github.com/ionic-team/ionic/pull/19573) | Improve treeshaking and sync with react and angular implementations |
-| Unit tests | :x: | :x: | Outdated as were originally written in plain JS, need to be updated for TS |
-
-## Ionic versions 4 and 5
-:warning: Moving forward all versions of `ionic-vue` will be supporting Ionic 5 only, if you'd like to continue using Ionic 4 please use `ionic-vue` version `1.3.4`
+Please consult the [projects page](https://github.com/ModusCreateOrg/ionic-vue/projects/1) for more details.
## Installing / Getting started
A quick introduction of the minimal setup you need to get a hello world up and running.
-```shell
+```sh
npm install @ionic/core @modus/ionic-vue
```
Now you can use it during the initialization step of your Vue app.
+Note that `createRouter` is imported from `@modus/ionic-vue` and not `vue-router` this will allow you to get Ionic transitions between your routes out of the box.
```js
-import Vue from 'vue'
-import '@ionic/core/css/ionic.bundle.css'
-import Ionic, { IonicVueRouter } from '@modus/ionic-vue'
-import Home from './Home.vue'
-
-Vue.use(Ionic)
-Vue.use(IonicVueRouter)
-
-new Vue({
- router: new IonicVueRouter({
- routes: [
- { path: '/', component: Home },
- { path: '/page', component: () => import('./Page.vue') }
- ],
- }),
-}).$mount('ion-app')
+import { createApp } from "vue";
+import { createWebHistory } from "vue-router";
+import { IonicVue, createRouter } from "@modus/ionic-vue";
+
+// Ionic core styles
+import "@ionic/core/css/ionic.bundle.css";
+
+import App from "./App.vue";
+import Home from "./components/Home.vue";
+import Page from "./components/Page.vue";
+
+const history = createWebHistory();
+const router = createRouter({
+ history,
+ routes: [
+ { path: "/", component: Home },
+ { path: "/page", component: Page },
+ ],
+});
+
+const globalIonicConfig = { mode: 'ios' };
+
+const app = createApp(App)
+ .use(IonicVue, globalIonicConfig)
+ .use(router);
+
+ IonicVue.isReady().then(() => {
+ router.isReady().then(() => {
+ app.mount("#app");
+ });
+ });
```
-Ionic requires a root element of `ion-app` in your HTML.
+All components should be explicitly imported now, this allows for smaller build sizes and improved tree-shaking.
+Import `IonApp` and `IonRouterView` from `@modus/ionic-vue`, this will be your app's entry point.
-IonicVueRouter requires `ion-vue-router` element in order to render Ionic transitions. Otherwise you can use the [official VueRouter](https://router.vuejs.org/)
+```vue
+
+
+
+
+
-```html
-
-
- ...
+
```
-### IonicVue
-
-`IonicVue` abstracts DOM interaction of Ionic UI components inside a Vue application.
-
-```js
-import { alertController } from '@ionic/vue';
-
-Vue.component('Foo', {
+Everything is a component now, here's an example of how you could trigger a modal
+
+```vue
+
+
+
+
+ Home
+
+
+
+
+
+
+
+ {{ msg }}
+ Open modal
+
+
+
+ My modal content
+
+ My input
+
+
+
+
+
+
+
```
-IonicVue supports all of the Ionic controllers:
-
-- [Action Sheet](https://github.com/ionic-team/ionic/tree/master/core/src/components/action-sheet-controller)
-- [Alert](https://github.com/ionic-team/ionic/tree/master/core/src/components/alert-controller)
-- [Loading](https://github.com/ionic-team/ionic/tree/master/core/src/components/loading-controller)
-- [Menu](https://github.com/ionic-team/ionic/tree/master/core/src/components/menu-controller)
-- [Modal](https://github.com/ionic-team/ionic/tree/master/core/src/components/modal-controller)
-- [Picker](https://github.com/ionic-team/ionic/tree/master/core/src/components/picker-controller)
-- [Popover](https://github.com/ionic-team/ionic/tree/master/core/src/components/popover-controller)
-- [Toast](https://github.com/ionic-team/ionic/tree/master/core/src/components/toast-controller)
-
-### IonicVueRouter
-
-`IonicVueRouter` binds Ionic transitions and routing functionalities with Vue Router.
+### IonicVue Router
+IonicVue Router binds Ionic transitions and routing functionalities to Vue Router.
It is an extension of the official Vue Router thus it can be used as a drop-in replacement with all of the methods, hooks, etc. working as expected.
## Developing
-### Setting up Dev
-
-Simply clone the repo and install dependencies to get started with development.
+Clone the repo's `dev` branch and install dependencies to get started with development.
```shell
-git clone https://github.com/moduscreateorg/ionic-vue.git
+git clone https://github.com/moduscreateorg/ionic-vue.git -b dev
cd ionic-vue/
npm install
```
-Testing will require peer dependencies to be installed. Peer dependencies are:
-
-- `vue`
-- `vue-template-compiler`
-- `vue-router`
-- `@ionic/core`
-
-You can install peer dependencies without modifying package.json.
-
-```sh
-npm run install.peer
-```
-
We recommend trying out your `ionic-vue` changes in an actual app. You can do that with `npm link`:
```sh
@@ -168,8 +190,6 @@ cd ../sample-app/
npm link @modus/ionic-vue
```
-[Beep](https://github.com/ModusCreateOrg/beep) is a fantastic sample application you can use to test `ionic-vue`.
-
### Building
Rollup automatically creates distribution packages.
@@ -192,14 +212,6 @@ For production build run:
npm run prod
```
-## Tests
-
-Make sure you have installed peer dependencies (explained above) before running tests.
-
-```shell
-npm test
-```
-
## Static Analysis
The ionic-vue project uses SonarQube's SonarCloud product for static analysis scans.
diff --git a/build/release.sh b/build/release.sh
index aff0482..a012a16 100755
--- a/build/release.sh
+++ b/build/release.sh
@@ -5,20 +5,21 @@ echo "Enter release version: "
read VERSION
read -p "Releasing $VERSION - are you sure? (y/n)" -n 1 -r
-echo # (optional) move to a new line
+echo #move to new line
+
if [[ $REPLY =~ ^[Yy]$ ]]
then
- npm run lint.fix
echo "Releasing $VERSION ..."
VERSION=$VERSION npm run prod
# commit
+ npm version $VERSION --no-git-tag-version
git add -A
- git commit --allow-empty -m "[build] $VERSION"
- npm version $VERSION --message "[release] $VERSION"
+ git commit -m "[build] $VERSION"
+ git tag v$VERSION
# publish
- git push origin refs/tags/v$VERSION
git push
- npm publish
+ git push --tags
+ npm publish --tag next
fi
diff --git a/build/rollup.config.js b/build/rollup.config.js
index 833d5d8..fac6925 100644
--- a/build/rollup.config.js
+++ b/build/rollup.config.js
@@ -1,10 +1,10 @@
-import path from "path";
-import vue from "rollup-plugin-vue";
-import { terser } from "rollup-plugin-terser";
-import typescript from "rollup-plugin-typescript2";
-import { version as packageVersion } from "../package.json";
+import path from 'path';
+import { terser } from 'rollup-plugin-terser';
+import typescript from 'rollup-plugin-typescript2';
+import keysTransformer from 'ts-transformer-keys/transformer';
+import { version as packageVersion } from '../package.json';
-const resolve = _path => path.resolve(__dirname, "../", _path);
+const resolve = _path => path.resolve(__dirname, '../', _path);
const version = process.env.VERSION || packageVersion;
const banner = `/*!
* @modus/ionic-vue v${version}
@@ -17,11 +17,11 @@ function outputConfig(suffix, format, opts = {}) {
return Object.assign(
{
file: resolve(`./dist/ionic-vue${suffix}.js`),
- name: "IonicVue",
- exports: "named",
+ name: 'IonicVue',
+ exports: 'named',
sourcemap: true,
format,
- banner
+ banner,
},
opts
);
@@ -29,32 +29,32 @@ function outputConfig(suffix, format, opts = {}) {
function baseConfig() {
return {
- input: resolve("./src/index.ts"),
- output: [
- outputConfig("", "umd", {
- globals: {
- vue: "Vue"
- }
- }),
- outputConfig(".esm", "esm"),
- outputConfig(".common", "cjs")
- ],
+ input: resolve('./src/index.ts'),
+ output: [outputConfig('', 'esm'), outputConfig('.cjs', 'cjs')],
external: [
- "vue",
- "vue-router",
- "@ionic/core",
- "@ionic/core/loader",
- "ionicons",
- "ionicons/icons"
+ 'vue',
+ 'vue-router',
+ '@ionic/core',
+ '@ionic/core/loader',
+ 'ionicons',
+ 'ionicons/icons',
],
+ treeshake: {
+ moduleSideEffects: false,
+ },
plugins: [
- vue(),
typescript({
useTsconfigDeclarationDir: true,
objectHashIgnoreUnknownHack: false,
- clean: true
- })
- ]
+ clean: true,
+ transformers: [
+ service => ({
+ before: [keysTransformer(service.getProgram())],
+ after: [],
+ }),
+ ],
+ }),
+ ],
};
}
@@ -66,7 +66,7 @@ export default args => {
prodConfig.plugins.push(terser());
for (const item of prodConfig.output) {
- item.file = item.file.replace(".js", ".min.js");
+ item.file = item.file.replace('.js', '.min.js');
item.sourcemap = false;
}
diff --git a/jest.config.js b/jest.config.js
index 55532d7..1c34e73 100644
--- a/jest.config.js
+++ b/jest.config.js
@@ -1,12 +1,8 @@
module.exports = {
- testURL: 'http://localhost/',
- moduleFileExtensions: ['js', 'vue'],
- moduleNameMapper: {
- '^vue$': 'vue/dist/vue.common.js',
- },
+ moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json', 'node', 'vue'],
transform: {
- '^.+\\.js$': '/node_modules/babel-jest',
- '.*\\.(vue)$': '/node_modules/jest-vue-preprocessor',
+ '^.+\\.ts?$': 'ts-jest'
},
- "testResultsProcessor": "jest-sonar-reporter"
-}
+ testRegex: '(/__tests__/.*|(\\.|/)(test|spec))\\.ts?$',
+ 'testResultsProcessor': 'jest-sonar-reporter'
+};
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
index 3dea324..3796f06 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,259 +1,198 @@
{
"name": "@modus/ionic-vue",
- "version": "1.3.6",
+ "version": "3.0.0-beta.1",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
"@babel/code-frame": {
- "version": "7.5.5",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz",
- "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
+ "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
"dev": true,
"requires": {
- "@babel/highlight": "^7.0.0"
+ "@babel/highlight": "^7.10.4"
}
},
"@babel/core": {
- "version": "7.9.0",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.9.0.tgz",
- "integrity": "sha512-kWc7L0fw1xwvI0zi8OKVBuxRVefwGOrKSQMvrQ3dW+bIIavBY3/NpXmpjMy7bQnLgwgzWQZ8TlM57YHpHNHz4w==",
- "dev": true,
- "requires": {
- "@babel/code-frame": "^7.8.3",
- "@babel/generator": "^7.9.0",
- "@babel/helper-module-transforms": "^7.9.0",
- "@babel/helpers": "^7.9.0",
- "@babel/parser": "^7.9.0",
- "@babel/template": "^7.8.6",
- "@babel/traverse": "^7.9.0",
- "@babel/types": "^7.9.0",
+ "version": "7.11.1",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.11.1.tgz",
+ "integrity": "sha512-XqF7F6FWQdKGGWAzGELL+aCO1p+lRY5Tj5/tbT3St1G8NaH70jhhDIKknIZaDans0OQBG5wRAldROLHSt44BgQ==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.10.4",
+ "@babel/generator": "^7.11.0",
+ "@babel/helper-module-transforms": "^7.11.0",
+ "@babel/helpers": "^7.10.4",
+ "@babel/parser": "^7.11.1",
+ "@babel/template": "^7.10.4",
+ "@babel/traverse": "^7.11.0",
+ "@babel/types": "^7.11.0",
"convert-source-map": "^1.7.0",
"debug": "^4.1.0",
"gensync": "^1.0.0-beta.1",
"json5": "^2.1.2",
- "lodash": "^4.17.13",
+ "lodash": "^4.17.19",
"resolve": "^1.3.2",
"semver": "^5.4.1",
"source-map": "^0.5.0"
},
"dependencies": {
- "@babel/code-frame": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz",
- "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==",
- "dev": true,
- "requires": {
- "@babel/highlight": "^7.8.3"
- }
- },
- "@babel/highlight": {
- "version": "7.9.0",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz",
- "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==",
- "dev": true,
- "requires": {
- "@babel/helper-validator-identifier": "^7.9.0",
- "chalk": "^2.0.0",
- "js-tokens": "^4.0.0"
- }
- },
- "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"
- }
- },
- "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"
- }
- },
- "debug": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
- "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
- "dev": true,
- "requires": {
- "ms": "^2.1.1"
- }
- },
- "js-tokens": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
- "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
"dev": true
},
- "json5": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz",
- "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==",
- "dev": true,
- "requires": {
- "minimist": "^1.2.5"
- }
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
"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"
- }
}
}
},
"@babel/generator": {
- "version": "7.9.5",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.5.tgz",
- "integrity": "sha512-GbNIxVB3ZJe3tLeDm1HSn2AhuD/mVcyLDpgtLXa5tplmWrJdF/elxB56XNqCuD6szyNkDi6wuoKXln3QeBmCHQ==",
+ "version": "7.11.0",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.11.0.tgz",
+ "integrity": "sha512-fEm3Uzw7Mc9Xi//qU20cBKatTfs2aOtKqmvy/Vm7RkJEGFQ4xc9myCfbXxqK//ZS8MR/ciOHw6meGASJuKmDfQ==",
"dev": true,
"requires": {
- "@babel/types": "^7.9.5",
+ "@babel/types": "^7.11.0",
"jsesc": "^2.5.1",
- "lodash": "^4.17.13",
"source-map": "^0.5.0"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ }
}
},
"@babel/helper-function-name": {
- "version": "7.9.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz",
- "integrity": "sha512-JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz",
+ "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==",
"dev": true,
"requires": {
- "@babel/helper-get-function-arity": "^7.8.3",
- "@babel/template": "^7.8.3",
- "@babel/types": "^7.9.5"
+ "@babel/helper-get-function-arity": "^7.10.4",
+ "@babel/template": "^7.10.4",
+ "@babel/types": "^7.10.4"
}
},
"@babel/helper-get-function-arity": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz",
- "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz",
+ "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==",
"dev": true,
"requires": {
- "@babel/types": "^7.8.3"
+ "@babel/types": "^7.10.4"
}
},
"@babel/helper-member-expression-to-functions": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.3.tgz",
- "integrity": "sha512-fO4Egq88utkQFjbPrSHGmGLFqmrshs11d46WI+WZDESt7Wu7wN2G2Iu+NMMZJFDOVRHAMIkB5SNh30NtwCA7RA==",
+ "version": "7.11.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.11.0.tgz",
+ "integrity": "sha512-JbFlKHFntRV5qKw3YC0CvQnDZ4XMwgzzBbld7Ly4Mj4cbFy3KywcR8NtNctRToMWJOVvLINJv525Gd6wwVEx/Q==",
"dev": true,
"requires": {
- "@babel/types": "^7.8.3"
+ "@babel/types": "^7.11.0"
}
},
"@babel/helper-module-imports": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz",
- "integrity": "sha512-R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz",
+ "integrity": "sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw==",
"dev": true,
"requires": {
- "@babel/types": "^7.8.3"
+ "@babel/types": "^7.10.4"
}
},
"@babel/helper-module-transforms": {
- "version": "7.9.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.9.0.tgz",
- "integrity": "sha512-0FvKyu0gpPfIQ8EkxlrAydOWROdHpBmiCiRwLkUiBGhCUPRRbVD2/tm3sFr/c/GWFrQ/ffutGUAnx7V0FzT2wA==",
+ "version": "7.11.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.11.0.tgz",
+ "integrity": "sha512-02EVu8COMuTRO1TAzdMtpBPbe6aQ1w/8fePD2YgQmxZU4gpNWaL9gK3Jp7dxlkUlUCJOTaSeA+Hrm1BRQwqIhg==",
"dev": true,
"requires": {
- "@babel/helper-module-imports": "^7.8.3",
- "@babel/helper-replace-supers": "^7.8.6",
- "@babel/helper-simple-access": "^7.8.3",
- "@babel/helper-split-export-declaration": "^7.8.3",
- "@babel/template": "^7.8.6",
- "@babel/types": "^7.9.0",
- "lodash": "^4.17.13"
+ "@babel/helper-module-imports": "^7.10.4",
+ "@babel/helper-replace-supers": "^7.10.4",
+ "@babel/helper-simple-access": "^7.10.4",
+ "@babel/helper-split-export-declaration": "^7.11.0",
+ "@babel/template": "^7.10.4",
+ "@babel/types": "^7.11.0",
+ "lodash": "^4.17.19"
}
},
"@babel/helper-optimise-call-expression": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.3.tgz",
- "integrity": "sha512-Kag20n86cbO2AvHca6EJsvqAd82gc6VMGule4HwebwMlwkpXuVqrNRj6CkCV2sKxgi9MyAUnZVnZ6lJ1/vKhHQ==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz",
+ "integrity": "sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==",
"dev": true,
"requires": {
- "@babel/types": "^7.8.3"
+ "@babel/types": "^7.10.4"
}
},
"@babel/helper-plugin-utils": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz",
- "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz",
+ "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==",
"dev": true
},
"@babel/helper-replace-supers": {
- "version": "7.8.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.8.6.tgz",
- "integrity": "sha512-PeMArdA4Sv/Wf4zXwBKPqVj7n9UF/xg6slNRtZW84FM7JpE1CbG8B612FyM4cxrf4fMAMGO0kR7voy1ForHHFA==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz",
+ "integrity": "sha512-sPxZfFXocEymYTdVK1UNmFPBN+Hv5mJkLPsYWwGBxZAxaWfFu+xqp7b6qWD0yjNuNL2VKc6L5M18tOXUP7NU0A==",
"dev": true,
"requires": {
- "@babel/helper-member-expression-to-functions": "^7.8.3",
- "@babel/helper-optimise-call-expression": "^7.8.3",
- "@babel/traverse": "^7.8.6",
- "@babel/types": "^7.8.6"
+ "@babel/helper-member-expression-to-functions": "^7.10.4",
+ "@babel/helper-optimise-call-expression": "^7.10.4",
+ "@babel/traverse": "^7.10.4",
+ "@babel/types": "^7.10.4"
}
},
"@babel/helper-simple-access": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.8.3.tgz",
- "integrity": "sha512-VNGUDjx5cCWg4vvCTR8qQ7YJYZ+HBjxOgXEl7ounz+4Sn7+LMD3CFrCTEU6/qXKbA2nKg21CwhhBzO0RpRbdCw==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.10.4.tgz",
+ "integrity": "sha512-0fMy72ej/VEvF8ULmX6yb5MtHG4uH4Dbd6I/aHDb/JVg0bbivwt9Wg+h3uMvX+QSFtwr5MeItvazbrc4jtRAXw==",
"dev": true,
"requires": {
- "@babel/template": "^7.8.3",
- "@babel/types": "^7.8.3"
+ "@babel/template": "^7.10.4",
+ "@babel/types": "^7.10.4"
}
},
"@babel/helper-split-export-declaration": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz",
- "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==",
+ "version": "7.11.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz",
+ "integrity": "sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==",
"dev": true,
"requires": {
- "@babel/types": "^7.8.3"
+ "@babel/types": "^7.11.0"
}
},
"@babel/helper-validator-identifier": {
- "version": "7.9.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz",
- "integrity": "sha512-/8arLKUFq882w4tWGj9JYzRpAlZgiWUJ+dtteNTDqrRBz9Iguck9Rn3ykuBDoUwh2TO4tSAJlrxDUOXWklJe4g==",
- "dev": true
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz",
+ "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw=="
},
"@babel/helpers": {
- "version": "7.9.2",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.9.2.tgz",
- "integrity": "sha512-JwLvzlXVPjO8eU9c/wF9/zOIN7X6h8DYf7mG4CiFRZRvZNKEF5dQ3H3V+ASkHoIB3mWhatgl5ONhyqHRI6MppA==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.10.4.tgz",
+ "integrity": "sha512-L2gX/XeUONeEbI78dXSrJzGdz4GQ+ZTA/aazfUsFaWjSe95kiCuOZ5HsXvkiw3iwF+mFHSRUfJU8t6YavocdXA==",
"dev": true,
"requires": {
- "@babel/template": "^7.8.3",
- "@babel/traverse": "^7.9.0",
- "@babel/types": "^7.9.0"
+ "@babel/template": "^7.10.4",
+ "@babel/traverse": "^7.10.4",
+ "@babel/types": "^7.10.4"
}
},
"@babel/highlight": {
- "version": "7.5.0",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz",
- "integrity": "sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz",
+ "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==",
"dev": true,
"requires": {
+ "@babel/helper-validator-identifier": "^7.10.4",
"chalk": "^2.0.0",
- "esutils": "^2.0.2",
"js-tokens": "^4.0.0"
},
"dependencies": {
@@ -277,10 +216,25 @@
"supports-color": "^5.3.0"
}
},
- "js-tokens": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
- "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
+ "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
+ },
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
"dev": true
},
"supports-color": {
@@ -295,9 +249,9 @@
}
},
"@babel/parser": {
- "version": "7.9.4",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz",
- "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==",
+ "version": "7.11.3",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.11.3.tgz",
+ "integrity": "sha512-REo8xv7+sDxkKvoxEywIdsNFiZLybwdI7hcT5uEPyQrSMB4YQ973BfC9OOrD/81MaIjh6UxdulIQXkjmiH3PcA==",
"dev": true
},
"@babel/plugin-syntax-async-generators": {
@@ -319,12 +273,21 @@
}
},
"@babel/plugin-syntax-class-properties": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.8.3.tgz",
- "integrity": "sha512-UcAyQWg2bAN647Q+O811tG9MrJ38Z10jjhQdKNAL8fsyPzE3cCN/uT+f55cFVY4aGO4jqJAvmqsuY3GQDwAoXg==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.10.4.tgz",
+ "integrity": "sha512-GCSBF7iUle6rNugfURwNmCGG3Z/2+opxAMLs1nND4bhEG5PuxTIggDBoeYYSujAlLtsupzOHYJQgPS3pivwXIA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-syntax-import-meta": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz",
+ "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==",
"dev": true,
"requires": {
- "@babel/helper-plugin-utils": "^7.8.3"
+ "@babel/helper-plugin-utils": "^7.10.4"
}
},
"@babel/plugin-syntax-json-strings": {
@@ -337,12 +300,12 @@
}
},
"@babel/plugin-syntax-logical-assignment-operators": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.8.3.tgz",
- "integrity": "sha512-Zpg2Sgc++37kuFl6ppq2Q7Awc6E6AIW671x5PY8E/f7MCIyPPGK/EoeZXvvY3P42exZ3Q4/t3YOzP/HiN79jDg==",
+ "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.8.3"
+ "@babel/helper-plugin-utils": "^7.10.4"
}
},
"@babel/plugin-syntax-nullish-coalescing-operator": {
@@ -355,12 +318,12 @@
}
},
"@babel/plugin-syntax-numeric-separator": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.8.3.tgz",
- "integrity": "sha512-H7dCMAdN83PcCmqmkHB5dtp+Xa9a6LKSvA2hiFBC/5alSHxM5VgWZXFqDi0YFe8XNGT6iCa+z4V4zSt/PdZ7Dw==",
+ "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.8.3"
+ "@babel/helper-plugin-utils": "^7.10.4"
}
},
"@babel/plugin-syntax-object-rest-spread": {
@@ -391,185 +354,42 @@
}
},
"@babel/template": {
- "version": "7.8.6",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz",
- "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz",
+ "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==",
"dev": true,
"requires": {
- "@babel/code-frame": "^7.8.3",
- "@babel/parser": "^7.8.6",
- "@babel/types": "^7.8.6"
- },
- "dependencies": {
- "@babel/code-frame": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz",
- "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==",
- "dev": true,
- "requires": {
- "@babel/highlight": "^7.8.3"
- }
- },
- "@babel/highlight": {
- "version": "7.9.0",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz",
- "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==",
- "dev": true,
- "requires": {
- "@babel/helper-validator-identifier": "^7.9.0",
- "chalk": "^2.0.0",
- "js-tokens": "^4.0.0"
- }
- },
- "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"
- }
- },
- "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"
- }
- },
- "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
- },
- "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"
- }
- }
+ "@babel/code-frame": "^7.10.4",
+ "@babel/parser": "^7.10.4",
+ "@babel/types": "^7.10.4"
}
},
"@babel/traverse": {
- "version": "7.9.5",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.5.tgz",
- "integrity": "sha512-c4gH3jsvSuGUezlP6rzSJ6jf8fYjLj3hsMZRx/nX0h+fmHN0w+ekubRrHPqnMec0meycA2nwCsJ7dC8IPem2FQ==",
+ "version": "7.11.0",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.11.0.tgz",
+ "integrity": "sha512-ZB2V+LskoWKNpMq6E5UUCrjtDUh5IOTAyIl0dTjIEoXum/iKWkoIEKIRDnUucO6f+2FzNkE0oD4RLKoPIufDtg==",
"dev": true,
"requires": {
- "@babel/code-frame": "^7.8.3",
- "@babel/generator": "^7.9.5",
- "@babel/helper-function-name": "^7.9.5",
- "@babel/helper-split-export-declaration": "^7.8.3",
- "@babel/parser": "^7.9.0",
- "@babel/types": "^7.9.5",
+ "@babel/code-frame": "^7.10.4",
+ "@babel/generator": "^7.11.0",
+ "@babel/helper-function-name": "^7.10.4",
+ "@babel/helper-split-export-declaration": "^7.11.0",
+ "@babel/parser": "^7.11.0",
+ "@babel/types": "^7.11.0",
"debug": "^4.1.0",
"globals": "^11.1.0",
- "lodash": "^4.17.13"
- },
- "dependencies": {
- "@babel/code-frame": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz",
- "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==",
- "dev": true,
- "requires": {
- "@babel/highlight": "^7.8.3"
- }
- },
- "@babel/highlight": {
- "version": "7.9.0",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz",
- "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==",
- "dev": true,
- "requires": {
- "@babel/helper-validator-identifier": "^7.9.0",
- "chalk": "^2.0.0",
- "js-tokens": "^4.0.0"
- }
- },
- "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"
- }
- },
- "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"
- }
- },
- "debug": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
- "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
- "dev": true,
- "requires": {
- "ms": "^2.1.1"
- }
- },
- "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
- },
- "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
- },
- "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
- },
- "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"
- }
- }
+ "lodash": "^4.17.19"
}
},
"@babel/types": {
- "version": "7.9.5",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz",
- "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==",
+ "version": "7.11.0",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.0.tgz",
+ "integrity": "sha512-O53yME4ZZI0jO1EVGtF1ePGl0LHirG4P1ibcD80XyzZcKhcMFeCXmh4Xb1ifGBIV233Qg12x4rBfQgA+tmOukA==",
"dev": true,
"requires": {
- "@babel/helper-validator-identifier": "^7.9.5",
- "lodash": "^4.17.13",
+ "@babel/helper-validator-identifier": "^7.10.4",
+ "lodash": "^4.17.19",
"to-fast-properties": "^2.0.0"
- },
- "dependencies": {
- "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
- }
}
},
"@bcoe/v8-coverage": {
@@ -588,14 +408,30 @@
"minimist": "^1.2.0"
}
},
+ "@ionic/core": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/@ionic/core/-/core-0.4.0.tgz",
+ "integrity": "sha512-xGeBQuNDQYimUvic6TMS02EXJXZgbLM0jU1vH00mJIMrQC0met8Uw1DG5ziOUL5gTYjH8KankXKCWBuoufOBOg==",
+ "requires": {
+ "ionicons": "^5.1.2",
+ "tslib": "^1.10.0"
+ }
+ },
+ "@ionic/docs": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/@ionic/docs/-/docs-5.3.1.tgz",
+ "integrity": "sha512-FZs6WrkAa8vun2yr5+Jj2X8Tl+yEeH8AP0KKGDbeQbyLw4UXn2/WyMwVDSAuRjLt3u1HTY2HhxjGvt1v9YDF9A==",
+ "dev": true
+ },
"@istanbuljs/load-nyc-config": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.0.0.tgz",
- "integrity": "sha512-ZR0rq/f/E4f4XcgnDvtMWXCUJpi8eO0rssVhmztsZqLIEFA9UUP9zmpE0VxlM+kv/E1ul2I876Fwil2ayptDVg==",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz",
+ "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==",
"dev": true,
"requires": {
"camelcase": "^5.3.1",
"find-up": "^4.1.0",
+ "get-package-type": "^0.1.0",
"js-yaml": "^3.13.1",
"resolve-from": "^5.0.0"
}
@@ -607,97 +443,46 @@
"dev": true
},
"@jest/console": {
- "version": "25.3.0",
- "resolved": "https://registry.npmjs.org/@jest/console/-/console-25.3.0.tgz",
- "integrity": "sha512-LvSDNqpmZIZyweFaEQ6wKY7CbexPitlsLHGJtcooNECo0An/w49rFhjCJzu6efeb6+a3ee946xss1Jcd9r03UQ==",
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/console/-/console-25.5.0.tgz",
+ "integrity": "sha512-T48kZa6MK1Y6k4b89sexwmSF4YLeZS/Udqg3Jj3jG/cHH+N/sLFCEoXEDMOKugJQ9FxPN1osxIknvKkxt6MKyw==",
"dev": true,
"requires": {
- "@jest/source-map": "^25.2.6",
+ "@jest/types": "^25.5.0",
"chalk": "^3.0.0",
- "jest-util": "^25.3.0",
+ "jest-message-util": "^25.5.0",
+ "jest-util": "^25.5.0",
"slash": "^3.0.0"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
- "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
- "dev": true,
- "requires": {
- "@types/color-name": "^1.1.1",
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
- "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
- "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.1.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
- "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
- "dev": true,
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
}
},
"@jest/core": {
- "version": "25.3.0",
- "resolved": "https://registry.npmjs.org/@jest/core/-/core-25.3.0.tgz",
- "integrity": "sha512-+D5a/tFf6pA/Gqft2DLBp/yeSRgXhlJ+Wpst0X/ZkfTRP54qDR3C61VfHwaex+GzZBiTcE9vQeoZ2v5T10+Mqw==",
+ "version": "25.5.4",
+ "resolved": "https://registry.npmjs.org/@jest/core/-/core-25.5.4.tgz",
+ "integrity": "sha512-3uSo7laYxF00Dg/DMgbn4xMJKmDdWvZnf89n8Xj/5/AeQ2dOQmn6b6Hkj/MleyzZWXpwv+WSdYWl4cLsy2JsoA==",
"dev": true,
"requires": {
- "@jest/console": "^25.3.0",
- "@jest/reporters": "^25.3.0",
- "@jest/test-result": "^25.3.0",
- "@jest/transform": "^25.3.0",
- "@jest/types": "^25.3.0",
+ "@jest/console": "^25.5.0",
+ "@jest/reporters": "^25.5.1",
+ "@jest/test-result": "^25.5.0",
+ "@jest/transform": "^25.5.1",
+ "@jest/types": "^25.5.0",
"ansi-escapes": "^4.2.1",
"chalk": "^3.0.0",
"exit": "^0.1.2",
- "graceful-fs": "^4.2.3",
- "jest-changed-files": "^25.3.0",
- "jest-config": "^25.3.0",
- "jest-haste-map": "^25.3.0",
- "jest-message-util": "^25.3.0",
+ "graceful-fs": "^4.2.4",
+ "jest-changed-files": "^25.5.0",
+ "jest-config": "^25.5.4",
+ "jest-haste-map": "^25.5.1",
+ "jest-message-util": "^25.5.0",
"jest-regex-util": "^25.2.6",
- "jest-resolve": "^25.3.0",
- "jest-resolve-dependencies": "^25.3.0",
- "jest-runner": "^25.3.0",
- "jest-runtime": "^25.3.0",
- "jest-snapshot": "^25.3.0",
- "jest-util": "^25.3.0",
- "jest-validate": "^25.3.0",
- "jest-watcher": "^25.3.0",
+ "jest-resolve": "^25.5.1",
+ "jest-resolve-dependencies": "^25.5.4",
+ "jest-runner": "^25.5.4",
+ "jest-runtime": "^25.5.4",
+ "jest-snapshot": "^25.5.1",
+ "jest-util": "^25.5.0",
+ "jest-validate": "^25.5.0",
+ "jest-watcher": "^25.5.0",
"micromatch": "^4.0.2",
"p-each-series": "^2.1.0",
"realpath-native": "^2.0.0",
@@ -706,469 +491,212 @@
"strip-ansi": "^6.0.0"
},
"dependencies": {
- "ansi-regex": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
- "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
- "dev": true
- },
- "ansi-styles": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
- "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
- "dev": true,
- "requires": {
- "@types/color-name": "^1.1.1",
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
- "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
+ "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": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
+ "glob": "^7.1.3"
}
},
- "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==",
+ "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": {
- "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
- },
- "graceful-fs": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
- "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==",
- "dev": true
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true
- },
- "strip-ansi": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
- "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
- "dev": true,
- "requires": {
- "ansi-regex": "^5.0.0"
- }
- },
- "supports-color": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
- "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
- "dev": true,
- "requires": {
- "has-flag": "^4.0.0"
+ "ansi-regex": "^5.0.0"
}
}
}
},
"@jest/environment": {
- "version": "25.3.0",
- "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-25.3.0.tgz",
- "integrity": "sha512-vgooqwJTHLLak4fE+TaCGeYP7Tz1Y3CKOsNxR1sE0V3nx3KRUHn3NUnt+wbcfd5yQWKZQKAfW6wqbuwQLrXo3g==",
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-25.5.0.tgz",
+ "integrity": "sha512-U2VXPEqL07E/V7pSZMSQCvV5Ea4lqOlT+0ZFijl/i316cRMHvZ4qC+jBdryd+lmRetjQo0YIQr6cVPNxxK87mA==",
"dev": true,
"requires": {
- "@jest/fake-timers": "^25.3.0",
- "@jest/types": "^25.3.0",
- "jest-mock": "^25.3.0"
+ "@jest/fake-timers": "^25.5.0",
+ "@jest/types": "^25.5.0",
+ "jest-mock": "^25.5.0"
}
},
"@jest/fake-timers": {
- "version": "25.3.0",
- "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-25.3.0.tgz",
- "integrity": "sha512-NHAj7WbsyR3qBJPpBwSwqaq2WluIvUQsyzpJTN7XDVk7VnlC/y1BAnaYZL3vbPIP8Nhm0Ae5DJe0KExr/SdMJQ==",
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-25.5.0.tgz",
+ "integrity": "sha512-9y2+uGnESw/oyOI3eww9yaxdZyHq7XvprfP/eeoCsjqKYts2yRlsHS/SgjPDV8FyMfn2nbMy8YzUk6nyvdLOpQ==",
"dev": true,
"requires": {
- "@jest/types": "^25.3.0",
- "jest-message-util": "^25.3.0",
- "jest-mock": "^25.3.0",
- "jest-util": "^25.3.0",
+ "@jest/types": "^25.5.0",
+ "jest-message-util": "^25.5.0",
+ "jest-mock": "^25.5.0",
+ "jest-util": "^25.5.0",
"lolex": "^5.0.0"
}
},
+ "@jest/globals": {
+ "version": "25.5.2",
+ "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-25.5.2.tgz",
+ "integrity": "sha512-AgAS/Ny7Q2RCIj5kZ+0MuKM1wbF0WMLxbCVl/GOMoCNbODRdJ541IxJ98xnZdVSZXivKpJlNPIWa3QmY0l4CXA==",
+ "dev": true,
+ "requires": {
+ "@jest/environment": "^25.5.0",
+ "@jest/types": "^25.5.0",
+ "expect": "^25.5.0"
+ }
+ },
"@jest/reporters": {
- "version": "25.3.0",
- "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-25.3.0.tgz",
- "integrity": "sha512-1u0ZBygs0C9DhdYgLCrRfZfNKQa+9+J7Uo+Z9z0RWLHzgsxhoG32lrmMOtUw48yR6bLNELdvzormwUqSk4H4Vg==",
+ "version": "25.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-25.5.1.tgz",
+ "integrity": "sha512-3jbd8pPDTuhYJ7vqiHXbSwTJQNavczPs+f1kRprRDxETeE3u6srJ+f0NPuwvOmk+lmunZzPkYWIFZDLHQPkviw==",
"dev": true,
"requires": {
"@bcoe/v8-coverage": "^0.2.3",
- "@jest/console": "^25.3.0",
- "@jest/test-result": "^25.3.0",
- "@jest/transform": "^25.3.0",
- "@jest/types": "^25.3.0",
+ "@jest/console": "^25.5.0",
+ "@jest/test-result": "^25.5.0",
+ "@jest/transform": "^25.5.1",
+ "@jest/types": "^25.5.0",
"chalk": "^3.0.0",
"collect-v8-coverage": "^1.0.0",
"exit": "^0.1.2",
"glob": "^7.1.2",
+ "graceful-fs": "^4.2.4",
"istanbul-lib-coverage": "^3.0.0",
"istanbul-lib-instrument": "^4.0.0",
"istanbul-lib-report": "^3.0.0",
"istanbul-lib-source-maps": "^4.0.0",
"istanbul-reports": "^3.0.2",
- "jest-haste-map": "^25.3.0",
- "jest-resolve": "^25.3.0",
- "jest-util": "^25.3.0",
- "jest-worker": "^25.2.6",
+ "jest-haste-map": "^25.5.1",
+ "jest-resolve": "^25.5.1",
+ "jest-util": "^25.5.0",
+ "jest-worker": "^25.5.0",
"node-notifier": "^6.0.0",
"slash": "^3.0.0",
"source-map": "^0.6.0",
"string-length": "^3.1.0",
"terminal-link": "^2.0.0",
- "v8-to-istanbul": "^4.0.1"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
- "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
- "dev": true,
- "requires": {
- "@types/color-name": "^1.1.1",
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
- "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
- "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
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "dev": true
- },
- "supports-color": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
- "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
- "dev": true,
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
+ "v8-to-istanbul": "^4.1.3"
}
},
"@jest/source-map": {
- "version": "25.2.6",
- "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-25.2.6.tgz",
- "integrity": "sha512-VuIRZF8M2zxYFGTEhkNSvQkUKafQro4y+mwUxy5ewRqs5N/ynSFUODYp3fy1zCnbCMy1pz3k+u57uCqx8QRSQQ==",
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-25.5.0.tgz",
+ "integrity": "sha512-eIGx0xN12yVpMcPaVpjXPnn3N30QGJCJQSkEDUt9x1fI1Gdvb07Ml6K5iN2hG7NmMP6FDmtPEssE3z6doOYUwQ==",
"dev": true,
"requires": {
"callsites": "^3.0.0",
- "graceful-fs": "^4.2.3",
+ "graceful-fs": "^4.2.4",
"source-map": "^0.6.0"
- },
- "dependencies": {
- "graceful-fs": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
- "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==",
- "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
- }
}
},
"@jest/test-result": {
- "version": "25.3.0",
- "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-25.3.0.tgz",
- "integrity": "sha512-mqrGuiiPXl1ap09Mydg4O782F3ouDQfsKqtQzIjitpwv3t1cHDwCto21jThw6WRRE+dKcWQvLG70GpyLJICfGw==",
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-25.5.0.tgz",
+ "integrity": "sha512-oV+hPJgXN7IQf/fHWkcS99y0smKLU2czLBJ9WA0jHITLst58HpQMtzSYxzaBvYc6U5U6jfoMthqsUlUlbRXs0A==",
"dev": true,
"requires": {
- "@jest/console": "^25.3.0",
- "@jest/types": "^25.3.0",
+ "@jest/console": "^25.5.0",
+ "@jest/types": "^25.5.0",
"@types/istanbul-lib-coverage": "^2.0.0",
"collect-v8-coverage": "^1.0.0"
}
},
"@jest/test-sequencer": {
- "version": "25.3.0",
- "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-25.3.0.tgz",
- "integrity": "sha512-Xvns3xbji7JCvVcDGvqJ/pf4IpmohPODumoPEZJ0/VgC5gI4XaNVIBET2Dq5Czu6Gk3xFcmhtthh/MBOTljdNg==",
+ "version": "25.5.4",
+ "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-25.5.4.tgz",
+ "integrity": "sha512-pTJGEkSeg1EkCO2YWq6hbFvKNXk8ejqlxiOg1jBNLnWrgXOkdY6UmqZpwGFXNnRt9B8nO1uWMzLLZ4eCmhkPNA==",
"dev": true,
"requires": {
- "@jest/test-result": "^25.3.0",
- "jest-haste-map": "^25.3.0",
- "jest-runner": "^25.3.0",
- "jest-runtime": "^25.3.0"
+ "@jest/test-result": "^25.5.0",
+ "graceful-fs": "^4.2.4",
+ "jest-haste-map": "^25.5.1",
+ "jest-runner": "^25.5.4",
+ "jest-runtime": "^25.5.4"
}
},
"@jest/transform": {
- "version": "25.3.0",
- "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-25.3.0.tgz",
- "integrity": "sha512-W01p8kTDvvEX6kd0tJc7Y5VdYyFaKwNWy1HQz6Jqlhu48z/8Gxp+yFCDVj+H8Rc7ezl3Mg0hDaGuFVkmHOqirg==",
+ "version": "25.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-25.5.1.tgz",
+ "integrity": "sha512-Y8CEoVwXb4QwA6Y/9uDkn0Xfz0finGkieuV0xkdF9UtZGJeLukD5nLkaVrVsODB1ojRWlaoD0AJZpVHCSnJEvg==",
"dev": true,
"requires": {
"@babel/core": "^7.1.0",
- "@jest/types": "^25.3.0",
+ "@jest/types": "^25.5.0",
"babel-plugin-istanbul": "^6.0.0",
"chalk": "^3.0.0",
"convert-source-map": "^1.4.0",
"fast-json-stable-stringify": "^2.0.0",
- "graceful-fs": "^4.2.3",
- "jest-haste-map": "^25.3.0",
+ "graceful-fs": "^4.2.4",
+ "jest-haste-map": "^25.5.1",
"jest-regex-util": "^25.2.6",
- "jest-util": "^25.3.0",
+ "jest-util": "^25.5.0",
"micromatch": "^4.0.2",
"pirates": "^4.0.1",
"realpath-native": "^2.0.0",
"slash": "^3.0.0",
"source-map": "^0.6.1",
"write-file-atomic": "^3.0.0"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
- "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
- "dev": true,
- "requires": {
- "@types/color-name": "^1.1.1",
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
- "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
- "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
- },
- "graceful-fs": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
- "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==",
- "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
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "dev": true
- },
- "supports-color": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
- "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
- "dev": true,
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
}
},
"@jest/types": {
- "version": "25.3.0",
- "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.3.0.tgz",
- "integrity": "sha512-UkaDNewdqXAmCDbN2GlUM6amDKS78eCqiw/UmF5nE0mmLTd6moJkiZJML/X52Ke3LH7Swhw883IRXq8o9nWjVw==",
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz",
+ "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==",
"dev": true,
"requires": {
"@types/istanbul-lib-coverage": "^2.0.0",
"@types/istanbul-reports": "^1.1.1",
"@types/yargs": "^15.0.0",
"chalk": "^3.0.0"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
- "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
- "dev": true,
- "requires": {
- "@types/color-name": "^1.1.1",
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
- "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
- "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.1.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
- "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
- "dev": true,
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
+ }
+ },
+ "@rollup/plugin-node-resolve": {
+ "version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-9.0.0.tgz",
+ "integrity": "sha512-gPz+utFHLRrd41WMP13Jq5mqqzHL3OXrfj3/MkSyB6UBIcuNt9j60GCbarzMzdf1VHFpOxfQh/ez7wyadLMqkg==",
+ "dev": true,
+ "requires": {
+ "@rollup/pluginutils": "^3.1.0",
+ "@types/resolve": "1.17.1",
+ "builtin-modules": "^3.1.0",
+ "deepmerge": "^4.2.2",
+ "is-module": "^1.0.0",
+ "resolve": "^1.17.0"
}
},
"@rollup/pluginutils": {
- "version": "3.0.9",
- "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.0.9.tgz",
- "integrity": "sha512-TLZavlfPAZYI7v33wQh4mTP6zojne14yok3DNSLcjoG/Hirxfkonn6icP5rrNWRn8nZsirJBFFpijVOJzkUHDg==",
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz",
+ "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==",
"dev": true,
"requires": {
"@types/estree": "0.0.39",
"estree-walker": "^1.0.1",
- "micromatch": "^4.0.2"
+ "picomatch": "^2.2.2"
},
"dependencies": {
- "braces": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
- "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
- "dev": true,
- "requires": {
- "fill-range": "^7.0.1"
- }
- },
"estree-walker": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz",
"integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==",
"dev": true
- },
- "fill-range": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
- "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
- "dev": true,
- "requires": {
- "to-regex-range": "^5.0.1"
- }
- },
- "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
- },
- "micromatch": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz",
- "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==",
- "dev": true,
- "requires": {
- "braces": "^3.0.1",
- "picomatch": "^2.0.5"
- }
- },
- "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"
- }
}
}
},
"@sinonjs/commons": {
- "version": "1.7.2",
- "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.7.2.tgz",
- "integrity": "sha512-+DUO6pnp3udV/v2VfUWgaY5BIE1IfT7lLfeDzPVeMT1XKkaAp9LgSI9x5RtrFQoZ9Oi0PgXQQHPaoKu7dCjVxw==",
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.1.tgz",
+ "integrity": "sha512-892K+kWUUi3cl+LlqEWIDrhvLgdL79tECi8JZUyq6IviKy/DNhuzCRlbHUjxK89f4ypPMMaFnFuR9Ie6DoIMsw==",
"dev": true,
"requires": {
"type-detect": "4.0.8"
}
},
"@types/babel__core": {
- "version": "7.1.7",
- "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.7.tgz",
- "integrity": "sha512-RL62NqSFPCDK2FM1pSDH0scHpJvsXtZNiYlMB73DgPBaG1E38ZYVL+ei5EkWRbr+KC4YNiAUNBnRj+bgwpgjMw==",
+ "version": "7.1.9",
+ "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.9.tgz",
+ "integrity": "sha512-sY2RsIJ5rpER1u3/aQ8OFSI7qGIy8o1NEEbgb2UaJcvOtXOMpd39ko723NBpjQFg9SIX7TXtjejZVGeIMLhoOw==",
"dev": true,
"requires": {
"@babel/parser": "^7.1.0",
@@ -1198,9 +726,9 @@
}
},
"@types/babel__traverse": {
- "version": "7.0.10",
- "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.10.tgz",
- "integrity": "sha512-74fNdUGrWsgIB/V9kTO5FGHPWYY6Eqn+3Z7L6Hc4e/BxjYV7puvBqp5HwsVYYfLm6iURYBNCx4Ut37OF9yitCw==",
+ "version": "7.0.13",
+ "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.13.tgz",
+ "integrity": "sha512-i+zS7t6/s9cdQvbqKDARrcbrPvtJGlbYsMkazo03nTAK3RX9FNrLllXys22uiTGJapPOTZTQ35nHh4ISph4SLQ==",
"dev": true,
"requires": {
"@babel/types": "^7.3.0"
@@ -1212,16 +740,31 @@
"integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==",
"dev": true
},
+ "@types/eslint-visitor-keys": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz",
+ "integrity": "sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag==",
+ "dev": true
+ },
"@types/estree": {
"version": "0.0.39",
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz",
"integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==",
"dev": true
},
+ "@types/graceful-fs": {
+ "version": "4.1.3",
+ "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.3.tgz",
+ "integrity": "sha512-AiHRaEB50LQg0pZmm659vNBb9f4SJ0qrAnteuzhSeAUcJKxoYgEnprg/83kppCnc2zvtCKbdZry1a5pVY3lOTQ==",
+ "dev": true,
+ "requires": {
+ "@types/node": "*"
+ }
+ },
"@types/istanbul-lib-coverage": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz",
- "integrity": "sha512-hRJD2ahnnpLgsj6KWMYSrmXkM3rm2Dl1qkx6IOFD5FnuNPXJIG5L0dhgKXCYTRMGzU4n0wImQ/xfmRc4POUFlg==",
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz",
+ "integrity": "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==",
"dev": true
},
"@types/istanbul-lib-report": {
@@ -1234,19 +777,41 @@
}
},
"@types/istanbul-reports": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.1.tgz",
- "integrity": "sha512-UpYjBi8xefVChsCoBpKShdxTllC9pwISirfoZsUa2AAdQg/Jd2KQGtSbw+ya7GPo7x/wAPlH6JBhKhAsXUEZNA==",
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz",
+ "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==",
"dev": true,
"requires": {
"@types/istanbul-lib-coverage": "*",
"@types/istanbul-lib-report": "*"
}
},
+ "@types/jest": {
+ "version": "25.2.3",
+ "resolved": "https://registry.npmjs.org/@types/jest/-/jest-25.2.3.tgz",
+ "integrity": "sha512-JXc1nK/tXHiDhV55dvfzqtmP4S3sy3T3ouV2tkViZgxY/zeUkcpQcQPGRlgF4KmWzWW5oiWYSZwtCB+2RsE4Fw==",
+ "dev": true,
+ "requires": {
+ "jest-diff": "^25.2.1",
+ "pretty-format": "^25.2.1"
+ }
+ },
+ "@types/json-schema": {
+ "version": "7.0.5",
+ "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.5.tgz",
+ "integrity": "sha512-7+2BITlgjgDhH0vvwZU/HZJVyk+2XUlvxXe8dFMedNX/aMkaOq++rMAFXc0tM7ij15QaWlbdQASBR9dihi+bDQ==",
+ "dev": true
+ },
"@types/node": {
- "version": "12.7.2",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-12.7.2.tgz",
- "integrity": "sha512-dyYO+f6ihZEtNPDcWNR1fkoTDf3zAK3lAABDze3mz6POyIercH0lEUawUFXlG8xaQZmm1yEBON/4TsYv/laDYg==",
+ "version": "14.6.0",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-14.6.0.tgz",
+ "integrity": "sha512-mikldZQitV94akrc4sCcSjtJfsTKt4p+e/s0AGscVA6XArQ9kFclP+ZiYUMnq987rc6QlYxXv/EivqlfSLxpKA==",
+ "dev": true
+ },
+ "@types/normalize-package-data": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz",
+ "integrity": "sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==",
"dev": true
},
"@types/prettier": {
@@ -1255,6 +820,15 @@
"integrity": "sha512-5qOlnZscTn4xxM5MeGXAMOsIOIKIbh9e85zJWfBRVPlRMEVawzoPhINYbRGkBZCI8LxvBe7tJCdWiarA99OZfQ==",
"dev": true
},
+ "@types/resolve": {
+ "version": "1.17.1",
+ "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz",
+ "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==",
+ "dev": true,
+ "requires": {
+ "@types/node": "*"
+ }
+ },
"@types/stack-utils": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-1.0.1.tgz",
@@ -1262,9 +836,9 @@
"dev": true
},
"@types/yargs": {
- "version": "15.0.4",
- "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.4.tgz",
- "integrity": "sha512-9T1auFmbPZoxHz0enUFlUuKRy3it01R+hlggyVUMtnCTQRunsQYifnSGb8hET4Xo8yiC0o0r1paW3ud5+rbURg==",
+ "version": "15.0.5",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.5.tgz",
+ "integrity": "sha512-Dk/IDOPtOgubt/IaevIUbTgV7doaKkoorvOyYM2CMwuDyP89bekI7H4xLIwunNYiK9jhCkmc6pUrJk3cj2AB9w==",
"dev": true,
"requires": {
"@types/yargs-parser": "*"
@@ -1276,78 +850,149 @@
"integrity": "sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw==",
"dev": true
},
- "@vue/component-compiler": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/@vue/component-compiler/-/component-compiler-3.6.0.tgz",
- "integrity": "sha512-NIA0vmOI4zbtJAn69iZls8IJ8VxmguswAuiUdu8TcR+YYTYzntfw290HUCSFjzAdRg+FUWZv8r+wc3TzJ/IjwA==",
+ "@typescript-eslint/experimental-utils": {
+ "version": "3.9.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-3.9.1.tgz",
+ "integrity": "sha512-lkiZ8iBBaYoyEKhCkkw4SAeatXyBq9Ece5bZXdLe1LWBUwTszGbmbiqmQbwWA8cSYDnjWXp9eDbXpf9Sn0hLAg==",
"dev": true,
"requires": {
- "@vue/component-compiler-utils": "^2.1.0",
- "clean-css": "^4.1.11",
- "hash-sum": "^1.0.2",
- "postcss-modules-sync": "^1.0.0",
- "source-map": "0.6.*"
- },
- "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
- }
+ "@types/json-schema": "^7.0.3",
+ "@typescript-eslint/types": "3.9.1",
+ "@typescript-eslint/typescript-estree": "3.9.1",
+ "eslint-scope": "^5.0.0",
+ "eslint-utils": "^2.0.0"
}
},
- "@vue/component-compiler-utils": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/@vue/component-compiler-utils/-/component-compiler-utils-2.6.0.tgz",
- "integrity": "sha512-IHjxt7LsOFYc0DkTncB7OXJL7UzwOLPPQCfEUNyxL2qt+tF12THV+EO33O1G2Uk4feMSWua3iD39Itszx0f0bw==",
+ "@typescript-eslint/parser": {
+ "version": "3.9.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-3.9.1.tgz",
+ "integrity": "sha512-y5QvPFUn4Vl4qM40lI+pNWhTcOWtpZAJ8pOEQ21fTTW4xTJkRplMjMRje7LYTXqVKKX9GJhcyweMz2+W1J5bMg==",
"dev": true,
"requires": {
- "consolidate": "^0.15.1",
- "hash-sum": "^1.0.2",
- "lru-cache": "^4.1.2",
- "merge-source-map": "^1.1.0",
- "postcss": "^7.0.14",
- "postcss-selector-parser": "^5.0.0",
- "prettier": "1.16.3",
- "source-map": "~0.6.1",
- "vue-template-es2015-compiler": "^1.9.0"
+ "@types/eslint-visitor-keys": "^1.0.0",
+ "@typescript-eslint/experimental-utils": "3.9.1",
+ "@typescript-eslint/types": "3.9.1",
+ "@typescript-eslint/typescript-estree": "3.9.1",
+ "eslint-visitor-keys": "^1.1.0"
+ }
+ },
+ "@typescript-eslint/types": {
+ "version": "3.9.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-3.9.1.tgz",
+ "integrity": "sha512-15JcTlNQE1BsYy5NBhctnEhEoctjXOjOK+Q+rk8ugC+WXU9rAcS2BYhoh6X4rOaXJEpIYDl+p7ix+A5U0BqPTw==",
+ "dev": true
+ },
+ "@typescript-eslint/typescript-estree": {
+ "version": "3.9.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-3.9.1.tgz",
+ "integrity": "sha512-IqM0gfGxOmIKPhiHW/iyAEXwSVqMmR2wJ9uXHNdFpqVvPaQ3dWg302vW127sBpAiqM9SfHhyS40NKLsoMpN2KA==",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/types": "3.9.1",
+ "@typescript-eslint/visitor-keys": "3.9.1",
+ "debug": "^4.1.1",
+ "glob": "^7.1.6",
+ "is-glob": "^4.0.1",
+ "lodash": "^4.17.15",
+ "semver": "^7.3.2",
+ "tsutils": "^3.17.1"
+ }
+ },
+ "@typescript-eslint/visitor-keys": {
+ "version": "3.9.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-3.9.1.tgz",
+ "integrity": "sha512-zxdtUjeoSh+prCpogswMwVUJfEFmCOjdzK9rpNjNBfm6EyPt99x3RrJoBOGZO23FCt0WPKUCOL5mb/9D5LjdwQ==",
+ "dev": true,
+ "requires": {
+ "eslint-visitor-keys": "^1.1.0"
+ }
+ },
+ "@vue/compiler-core": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.0.0.tgz",
+ "integrity": "sha512-XqPC7vdv4rFE77S71oCHmT1K4Ks3WE2Gi6Lr4B5wn0Idmp+NyQQBUHsCNieMDRiEpgtJrw+yOHslrsV0AfAsfQ==",
+ "requires": {
+ "@babel/parser": "^7.11.5",
+ "@babel/types": "^7.11.5",
+ "@vue/shared": "3.0.0",
+ "estree-walker": "^2.0.1",
+ "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
+ "@babel/parser": {
+ "version": "7.11.5",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.11.5.tgz",
+ "integrity": "sha512-X9rD8qqm695vgmeaQ4fvz/o3+Wk4ZzQvSHkDBgpYKxpD4qTAUm88ZKtHkVqIOsYFFbIQ6wQYhC6q7pjqVK0E0Q=="
+ },
+ "@babel/types": {
+ "version": "7.11.5",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.5.tgz",
+ "integrity": "sha512-bvM7Qz6eKnJVFIn+1LPtjlBFPVN5jNDc1XmN15vWe7Q3DPBufWWsLiIvUu7xW87uTG6QoggpIDnUgLQvPheU+Q==",
+ "requires": {
+ "@babel/helper-validator-identifier": "^7.10.4",
+ "lodash": "^4.17.19",
+ "to-fast-properties": "^2.0.0"
+ }
}
}
},
- "@vue/test-utils": {
- "version": "1.0.0-beta.29",
- "resolved": "https://registry.npmjs.org/@vue/test-utils/-/test-utils-1.0.0-beta.29.tgz",
- "integrity": "sha512-yX4sxEIHh4M9yAbLA/ikpEnGKMNBCnoX98xE1RwxfhQVcn0MaXNSj1Qmac+ZydTj6VBSEVukchBogXBTwc+9iA==",
- "dev": true,
+ "@vue/compiler-dom": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.0.0.tgz",
+ "integrity": "sha512-ukDEGOP8P7lCPyStuM3F2iD5w2QPgUu2xwCW2XNeqPjFKIlR2xMsWjy4raI/cLjN6W16GtlMFaZdK8tLj5PRog==",
"requires": {
- "dom-event-types": "^1.0.0",
- "lodash": "^4.17.4"
+ "@vue/compiler-core": "3.0.0",
+ "@vue/shared": "3.0.0"
}
},
- "abab": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.3.tgz",
- "integrity": "sha512-tsFzPpcttalNjFBCFMqsKYQcWxxen1pgJR56by//QwvJc4/OUS3kPOOttx2tSIfjsylB0pYu7f5D3K1RCxUnUg==",
+ "@vue/reactivity": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.0.0.tgz",
+ "integrity": "sha512-mEGkztGQrAPZRhV7C6PorrpT3+NtuA4dY2QjMzzrW31noKhssWTajRZTwpLF39NBRrF5UU6cp9+1I0FfavMgEQ==",
+ "requires": {
+ "@vue/shared": "3.0.0"
+ }
+ },
+ "@vue/runtime-core": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.0.0.tgz",
+ "integrity": "sha512-3ABMLeA0ZbeVNLbGGLXr+pNUwqXILOqz8WCVGfDWwQb+jW114Cm8djOHVVDoqdvRETQvDf8yHSUmpKHZpQuTkA==",
+ "requires": {
+ "@vue/reactivity": "3.0.0",
+ "@vue/shared": "3.0.0"
+ }
+ },
+ "@vue/runtime-dom": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.0.0.tgz",
+ "integrity": "sha512-f312n5w9gK6mVvkDSj6/Xnot1XjlKXzFBYybmoy6ahAVC8ExbQ+LOWti1IZM/adU8VMNdKaw7Q53Hxz3y5jX8g==",
+ "requires": {
+ "@vue/runtime-core": "3.0.0",
+ "@vue/shared": "3.0.0",
+ "csstype": "^2.6.8"
+ }
+ },
+ "@vue/shared": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.0.0.tgz",
+ "integrity": "sha512-4XWL/avABGxU2E2ZF1eZq3Tj7fvksCMssDZUHOykBIMmh5d+KcAnQMC5XHMhtnA0NAvktYsA2YpdsVwVmhWzvA=="
+ },
+ "@vue/test-utils": {
+ "version": "2.0.0-beta.2",
+ "resolved": "https://registry.npmjs.org/@vue/test-utils/-/test-utils-2.0.0-beta.2.tgz",
+ "integrity": "sha512-RgbV/79clAYtRqmHHz3aISpveiUz2RwZJHWzo972AEYO336SrPqp0u4VeTHNl8yc+wn5GwSGoEusjf9d4jjLDw==",
"dev": true
},
- "acorn": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.1.tgz",
- "integrity": "sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg==",
+ "abab": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.4.tgz",
+ "integrity": "sha512-Eu9ELJWCz/c1e9gTiCY+FceWxcqzjYEbqMgtndnuSqZSUCOL73TWNK2mHfIj4Cw2E/ongOp+JISVNCmovt2KYQ==",
"dev": true
},
- "acorn-dynamic-import": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz",
- "integrity": "sha512-d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw==",
+ "acorn": {
+ "version": "7.4.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.0.tgz",
+ "integrity": "sha512-+G7P8jJmCHr+S+cLfQxygbWhXy+8YTVGzAkpEbcLo2mLoL7tij/VG41QSHACSf5QgYRhMZYHuNc6drJaO0Da+w==",
"dev": true
},
"acorn-globals": {
@@ -1369,9 +1014,9 @@
}
},
"acorn-jsx": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.0.2.tgz",
- "integrity": "sha512-tiNTrP1MP0QrChmD2DdupCr6HWSFeKVw5d/dHTu4Y7rkAkRhU/Dt7dphAfIUyxtHpl/eBVip5uTNSpQJHylpAw==",
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz",
+ "integrity": "sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==",
"dev": true
},
"acorn-walk": {
@@ -1381,9 +1026,9 @@
"dev": true
},
"ajv": {
- "version": "6.12.0",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz",
- "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==",
+ "version": "6.12.4",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.4.tgz",
+ "integrity": "sha512-eienB2c9qVQs2KWexhkrdMLVDoIQCz5KSeLxwg9Lzk4DOfBtIK9PQwwufcsn1jjGuf9WZmqPMbGxOzfcuphJCQ==",
"dev": true,
"requires": {
"fast-deep-equal": "^3.1.1",
@@ -1392,26 +1037,44 @@
"uri-js": "^4.2.2"
}
},
- "ansi-escapes": {
- "version": "4.3.1",
+ "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-escapes": {
+ "version": "4.3.1",
"resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz",
"integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==",
"dev": true,
"requires": {
"type-fest": "^0.11.0"
+ },
+ "dependencies": {
+ "type-fest": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz",
+ "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==",
+ "dev": true
+ }
}
},
"ansi-regex": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
- "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+ "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
"dev": true
},
"ansi-styles": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
- "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
- "dev": true
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
+ "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
+ "dev": true,
+ "requires": {
+ "@types/color-name": "^1.1.1",
+ "color-convert": "^2.0.1"
+ }
},
"anymatch": {
"version": "3.1.1",
@@ -1423,6 +1086,12 @@
"picomatch": "^2.0.4"
}
},
+ "arg": {
+ "version": "4.1.3",
+ "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
+ "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==",
+ "dev": true
+ },
"argparse": {
"version": "1.0.10",
"resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
@@ -1508,9 +1177,9 @@
"dev": true
},
"aws4": {
- "version": "1.9.1",
- "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz",
- "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==",
+ "version": "1.10.1",
+ "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.10.1.tgz",
+ "integrity": "sha512-zg7Hz2k5lI8kb7U32998pRRFin7zJlkfezGJjUc2heaD4Pw2wObakCDVzkKztTm/Ln7eiVvYsjqak0Ed4LkMDA==",
"dev": true
},
"babel-code-frame": {
@@ -1522,6 +1191,39 @@
"chalk": "^1.1.3",
"esutils": "^2.0.2",
"js-tokens": "^3.0.2"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^2.2.1",
+ "escape-string-regexp": "^1.0.2",
+ "has-ansi": "^2.0.0",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^2.0.0"
+ }
+ },
+ "js-tokens": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz",
+ "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ }
}
},
"babel-helper-builder-binary-assignment-operator-visitor": {
@@ -1652,70 +1354,19 @@
}
},
"babel-jest": {
- "version": "25.3.0",
- "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-25.3.0.tgz",
- "integrity": "sha512-qiXeX1Cmw4JZ5yQ4H57WpkO0MZ61Qj+YnsVUwAMnDV5ls+yHon11XjarDdgP7H8lTmiEi6biiZA8y3Tmvx6pCg==",
+ "version": "25.5.1",
+ "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-25.5.1.tgz",
+ "integrity": "sha512-9dA9+GmMjIzgPnYtkhBg73gOo/RHqPmLruP3BaGL4KEX3Dwz6pI8auSN8G8+iuEG90+GSswyKvslN+JYSaacaQ==",
"dev": true,
"requires": {
- "@jest/transform": "^25.3.0",
- "@jest/types": "^25.3.0",
+ "@jest/transform": "^25.5.1",
+ "@jest/types": "^25.5.0",
"@types/babel__core": "^7.1.7",
"babel-plugin-istanbul": "^6.0.0",
- "babel-preset-jest": "^25.3.0",
+ "babel-preset-jest": "^25.5.0",
"chalk": "^3.0.0",
+ "graceful-fs": "^4.2.4",
"slash": "^3.0.0"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
- "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
- "dev": true,
- "requires": {
- "@types/color-name": "^1.1.1",
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
- "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
- "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.1.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
- "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
- "dev": true,
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
}
},
"babel-messages": {
@@ -1750,11 +1401,13 @@
}
},
"babel-plugin-jest-hoist": {
- "version": "25.2.6",
- "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-25.2.6.tgz",
- "integrity": "sha512-qE2xjMathybYxjiGFJg0mLFrz0qNp83aNZycWDY/SuHiZNq+vQfRQtuINqyXyue1ELd8Rd+1OhFSLjms8msMbw==",
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-25.5.0.tgz",
+ "integrity": "sha512-u+/W+WAjMlvoocYGTwthAiQSxDcJAyHpQ6oWlHdFZaaN+Rlk8Q7iiwDPg2lN/FyJtAYnKjFxbn7xus4HCFkg5g==",
"dev": true,
"requires": {
+ "@babel/template": "^7.3.3",
+ "@babel/types": "^7.3.3",
"@types/babel__traverse": "^7.0.6"
}
},
@@ -2061,14 +1714,15 @@
}
},
"babel-preset-current-node-syntax": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-0.1.2.tgz",
- "integrity": "sha512-u/8cS+dEiK1SFILbOC8/rUI3ml9lboKuuMvZ/4aQnQmhecQAgPw5ew066C1ObnEAUmlx7dv/s2z52psWEtLNiw==",
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-0.1.3.tgz",
+ "integrity": "sha512-uyexu1sVwcdFnyq9o8UQYsXwXflIh8LvrF5+cKrYam93ned1CStffB3+BEcsxGSgagoA3GEyjDqO4a/58hyPYQ==",
"dev": true,
"requires": {
"@babel/plugin-syntax-async-generators": "^7.8.4",
"@babel/plugin-syntax-bigint": "^7.8.3",
"@babel/plugin-syntax-class-properties": "^7.8.3",
+ "@babel/plugin-syntax-import-meta": "^7.8.3",
"@babel/plugin-syntax-json-strings": "^7.8.3",
"@babel/plugin-syntax-logical-assignment-operators": "^7.8.3",
"@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3",
@@ -2114,15 +1768,23 @@
"browserslist": "^3.2.6",
"invariant": "^2.2.2",
"semver": "^5.3.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "dev": true
+ }
}
},
"babel-preset-jest": {
- "version": "25.3.0",
- "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-25.3.0.tgz",
- "integrity": "sha512-tjdvLKNMwDI9r+QWz9sZUQGTq1dpoxjUqFUpEasAc7MOtHg9XuLT2fx0udFG+k1nvMV0WvHHVAN7VmCZ+1Zxbw==",
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-25.5.0.tgz",
+ "integrity": "sha512-8ZczygctQkBU+63DtSOKGh7tFL0CeCuz+1ieud9lJ1WPQ9O6A1a/r+LGn6Y705PA6whHQ3T1XuB/PmpfNYf8Fw==",
"dev": true,
"requires": {
- "babel-plugin-jest-hoist": "^25.2.6",
+ "babel-plugin-jest-hoist": "^25.5.0",
"babel-preset-current-node-syntax": "^0.1.2"
}
},
@@ -2164,6 +1826,29 @@
"globals": "^9.18.0",
"invariant": "^2.2.2",
"lodash": "^4.17.4"
+ },
+ "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"
+ }
+ },
+ "globals": {
+ "version": "9.18.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz",
+ "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==",
+ "dev": true
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ }
}
},
"babel-types": {
@@ -2176,6 +1861,14 @@
"esutils": "^2.0.2",
"lodash": "^4.17.4",
"to-fast-properties": "^1.0.3"
+ },
+ "dependencies": {
+ "to-fast-properties": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz",
+ "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=",
+ "dev": true
+ }
}
},
"babylon": {
@@ -2255,15 +1948,9 @@
}
},
"big.js": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz",
- "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==",
- "dev": true
- },
- "bluebird": {
- "version": "3.5.5",
- "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.5.tgz",
- "integrity": "sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w==",
+ "version": "5.2.2",
+ "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz",
+ "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==",
"dev": true
},
"brace-expansion": {
@@ -2318,6 +2005,15 @@
"electron-to-chromium": "^1.3.47"
}
},
+ "bs-logger": {
+ "version": "0.2.6",
+ "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz",
+ "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==",
+ "dev": true,
+ "requires": {
+ "fast-json-stable-stringify": "2.x"
+ }
+ },
"bser": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz",
@@ -2327,106 +2023,6 @@
"node-int64": "^0.4.0"
}
},
- "buble": {
- "version": "0.19.8",
- "resolved": "https://registry.npmjs.org/buble/-/buble-0.19.8.tgz",
- "integrity": "sha512-IoGZzrUTY5fKXVkgGHw3QeXFMUNBFv+9l8a4QJKG1JhG3nCMHTdEX1DCOg8568E2Q9qvAQIiSokv6Jsgx8p2cA==",
- "dev": true,
- "requires": {
- "acorn": "^6.1.1",
- "acorn-dynamic-import": "^4.0.0",
- "acorn-jsx": "^5.0.1",
- "chalk": "^2.4.2",
- "magic-string": "^0.25.3",
- "minimist": "^1.2.0",
- "os-homedir": "^2.0.0",
- "regexpu-core": "^4.5.4"
- },
- "dependencies": {
- "acorn": {
- "version": "6.4.1",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz",
- "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==",
- "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"
- }
- },
- "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"
- }
- },
- "jsesc": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
- "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=",
- "dev": true
- },
- "minimist": {
- "version": "1.2.5",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
- "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
- "dev": true
- },
- "os-homedir": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-2.0.0.tgz",
- "integrity": "sha512-saRNz0DSC5C/I++gFIaJTXoFJMRwiP5zHar5vV3xQ2TkgEw6hDCcU5F272JjUylpiVgBrZNQHnfjkLabTfb92Q==",
- "dev": true
- },
- "regexpu-core": {
- "version": "4.5.5",
- "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.5.5.tgz",
- "integrity": "sha512-FpI67+ky9J+cDizQUJlIlNZFKual/lUkFr1AG6zOCpwZ9cLrg8UUVakyUQJD7fCDIe9Z2nwTQJNPyonatNmDFQ==",
- "dev": true,
- "requires": {
- "regenerate": "^1.4.0",
- "regenerate-unicode-properties": "^8.1.0",
- "regjsgen": "^0.5.0",
- "regjsparser": "^0.6.0",
- "unicode-match-property-ecmascript": "^1.0.4",
- "unicode-match-property-value-ecmascript": "^1.1.0"
- }
- },
- "regjsgen": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.0.tgz",
- "integrity": "sha512-RnIrLhrXCX5ow/E5/Mh2O4e/oa1/jW0eaBKTSy3LaCj+M3Bqvm97GWDp2yUtzIs4LEn65zR2yiYGFqb2ApnzDA==",
- "dev": true
- },
- "regjsparser": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.0.tgz",
- "integrity": "sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ==",
- "dev": true,
- "requires": {
- "jsesc": "~0.5.0"
- }
- },
- "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"
- }
- }
- }
- },
"buffer-from": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
@@ -2434,9 +2030,9 @@
"dev": true
},
"builtin-modules": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
- "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=",
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.1.0.tgz",
+ "integrity": "sha512-k0KL0aWZuBt2lrxrcASWDfwOLMnodeQjodT/1SxEQAXsHANgo6ZC/VEaSEHCXt7aSTZ4/4H5LKa+tBXmW7Vtvw==",
"dev": true
},
"cache-base": {
@@ -2462,6 +2058,16 @@
"integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
"dev": true
},
+ "camel-case": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.1.tgz",
+ "integrity": "sha512-7fa2WcG4fYFkclIvEmxBbTvmibwF2/agfEBc6q3lOpVu0A13ltLsA+Hr/8Hp6kp5f+G7hKi6t8lys6XxP+1K6Q==",
+ "dev": true,
+ "requires": {
+ "pascal-case": "^3.1.1",
+ "tslib": "^1.10.0"
+ }
+ },
"camelcase": {
"version": "5.3.1",
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
@@ -2469,11 +2075,22 @@
"dev": true
},
"caniuse-lite": {
- "version": "1.0.30000989",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000989.tgz",
- "integrity": "sha512-vrMcvSuMz16YY6GSVZ0dWDTJP8jqk3iFQ/Aq5iqblPwxSVVZI+zxDyTX0VPqtQsDnfdrBDcsmhgTEOh5R8Lbpw==",
+ "version": "1.0.30001116",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001116.tgz",
+ "integrity": "sha512-f2lcYnmAI5Mst9+g0nkMIznFGsArRmZ0qU+dnq8l91hymdc2J3SFbiPhOJEeDqC1vtE8nc1qNQyklzB8veJefQ==",
"dev": true
},
+ "capital-case": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/capital-case/-/capital-case-1.0.3.tgz",
+ "integrity": "sha512-OlUSJpUr7SY0uZFOxcwnDOU7/MpHlKTZx2mqnDYQFrDudXLFm0JJ9wr/l4csB+rh2Ug0OPuoSO53PqiZBqno9A==",
+ "dev": true,
+ "requires": {
+ "no-case": "^3.0.3",
+ "tslib": "^1.10.0",
+ "upper-case-first": "^2.0.1"
+ }
+ },
"capture-exit": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz",
@@ -2490,16 +2107,33 @@
"dev": true
},
"chalk": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
- "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
+ "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
"dev": true,
"requires": {
- "ansi-styles": "^2.2.1",
- "escape-string-regexp": "^1.0.2",
- "has-ansi": "^2.0.0",
- "strip-ansi": "^3.0.0",
- "supports-color": "^2.0.0"
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "change-case": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/change-case/-/change-case-4.1.1.tgz",
+ "integrity": "sha512-qRlUWn/hXnX1R1LBDF/RelJLiqNjKjUqlmuBVSEIyye8kq49CXqkZWKmi8XeUAdDXWFOcGLUMZ+aHn3Q5lzUXw==",
+ "dev": true,
+ "requires": {
+ "camel-case": "^4.1.1",
+ "capital-case": "^1.0.3",
+ "constant-case": "^3.0.3",
+ "dot-case": "^3.0.3",
+ "header-case": "^2.0.3",
+ "no-case": "^3.0.3",
+ "param-case": "^3.0.3",
+ "pascal-case": "^3.1.1",
+ "path-case": "^3.0.3",
+ "sentence-case": "^3.0.3",
+ "snake-case": "^3.0.3",
+ "tslib": "^1.10.0"
}
},
"ci-info": {
@@ -2531,23 +2165,6 @@
}
}
},
- "clean-css": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.1.tgz",
- "integrity": "sha512-4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g==",
- "dev": true,
- "requires": {
- "source-map": "~0.6.0"
- },
- "dependencies": {
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "dev": true
- }
- }
- },
"cliui": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz",
@@ -2559,12 +2176,29 @@
"wrap-ansi": "^6.2.0"
},
"dependencies": {
- "ansi-regex": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
- "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
+ "emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "dev": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
"dev": true
},
+ "string-width": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
+ "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
+ "dev": true,
+ "requires": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.0"
+ }
+ },
"strip-ansi": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
@@ -2599,18 +2233,18 @@
}
},
"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==",
+ "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.3"
+ "color-name": "~1.1.4"
}
},
"color-name": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
+ "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
},
"combined-stream": {
@@ -2623,9 +2257,9 @@
}
},
"commander": {
- "version": "2.20.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz",
- "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==",
+ "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": {
@@ -2646,13 +2280,15 @@
"integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
"dev": true
},
- "consolidate": {
- "version": "0.15.1",
- "resolved": "https://registry.npmjs.org/consolidate/-/consolidate-0.15.1.tgz",
- "integrity": "sha512-DW46nrsMJgy9kqAbPt5rKaCr7uFtpo4mSUvLHIUbJEjm0vo+aY5QLwBUq3FK4tRnJr/X0Psc0C4jf/h+HtXSMw==",
+ "constant-case": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-3.0.3.tgz",
+ "integrity": "sha512-FXtsSnnrFYpzDmvwDGQW+l8XK3GV1coLyBN0eBz16ZUzGaZcT2ANVCJmLeuw2GQgxKHQIe9e0w2dzkSfaRlUmA==",
"dev": true,
"requires": {
- "bluebird": "^3.1.1"
+ "no-case": "^3.0.3",
+ "tslib": "^1.10.0",
+ "upper-case": "^2.0.1"
}
},
"convert-source-map": {
@@ -2671,9 +2307,9 @@
"dev": true
},
"core-js": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.9.tgz",
- "integrity": "sha512-HOpZf6eXmnl7la+cUdMnLvUxKNqLUzJvgIziQ0DiF3JwSImNphIqdGqzj6hIKyX04MmV0poclQ7+wjWvxQyR2A==",
+ "version": "2.6.11",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz",
+ "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==",
"dev": true
},
"core-util-is": {
@@ -2695,6 +2331,12 @@
"which": "^1.2.9"
},
"dependencies": {
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "dev": true
+ },
"which": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
@@ -2706,42 +2348,6 @@
}
}
},
- "css-selector-tokenizer": {
- "version": "0.7.1",
- "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.1.tgz",
- "integrity": "sha512-xYL0AMZJ4gFzJQsHUKa5jiWWi2vH77WVNg7JYRyewwj6oPh4yb/y6Y9ZCw9dsj/9UauMhtuxR+ogQd//EdEVNA==",
- "dev": true,
- "requires": {
- "cssesc": "^0.1.0",
- "fastparse": "^1.1.1",
- "regexpu-core": "^1.0.0"
- },
- "dependencies": {
- "cssesc": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz",
- "integrity": "sha1-yBSQPkViM3GgR3tAEJqq++6t27Q=",
- "dev": true
- },
- "regexpu-core": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz",
- "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=",
- "dev": true,
- "requires": {
- "regenerate": "^1.2.1",
- "regjsgen": "^0.2.0",
- "regjsparser": "^0.1.4"
- }
- }
- }
- },
- "cssesc": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz",
- "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==",
- "dev": true
- },
"cssom": {
"version": "0.4.4",
"resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz",
@@ -2749,9 +2355,9 @@
"dev": true
},
"cssstyle": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.2.0.tgz",
- "integrity": "sha512-sEb3XFPx3jNnCAMtqrXPDeSgQr+jojtCeNf8cvMNMh1cG970+lljssvQDzPq6lmmJu2Vhqood/gtEomBiHOGnA==",
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz",
+ "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==",
"dev": true,
"requires": {
"cssom": "~0.3.6"
@@ -2765,6 +2371,11 @@
}
}
},
+ "csstype": {
+ "version": "2.6.13",
+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.13.tgz",
+ "integrity": "sha512-ul26pfSQTZW8dcOnD2iiJssfXw0gdNVX9IJDH/X3K5DGPfj+fUYe3kB+swUY6BF3oZDxaID3AJt+9/ojSAE05A=="
+ },
"dashdash": {
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
@@ -2786,12 +2397,12 @@
}
},
"debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
+ "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
"dev": true,
"requires": {
- "ms": "2.0.0"
+ "ms": "^2.1.1"
}
},
"decamelize": {
@@ -2884,35 +2495,14 @@
"dev": true
},
"doctrine": {
- "version": "0.7.2",
- "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-0.7.2.tgz",
- "integrity": "sha1-fLhgNZujvpDgQLJrcpzkv6ZUxSM=",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
+ "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
"dev": true,
"requires": {
- "esutils": "^1.1.6",
- "isarray": "0.0.1"
- },
- "dependencies": {
- "esutils": {
- "version": "1.1.6",
- "resolved": "https://registry.npmjs.org/esutils/-/esutils-1.1.6.tgz",
- "integrity": "sha1-wBzKqa5LiXxtDD4hCuUvPHqEQ3U=",
- "dev": true
- },
- "isarray": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
- "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
- "dev": true
- }
+ "esutils": "^2.0.2"
}
},
- "dom-event-types": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/dom-event-types/-/dom-event-types-1.0.0.tgz",
- "integrity": "sha512-2G2Vwi2zXTHBGqXHsJ4+ak/iP0N8Ar+G8a7LiD2oup5o4sQWytwqqrZu/O6hIMV0KMID2PL69OhpshLO0n7UJQ==",
- "dev": true
- },
"domexception": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz",
@@ -2922,8 +2512,18 @@
"webidl-conversions": "^4.0.2"
}
},
- "ecc-jsbn": {
- "version": "0.1.2",
+ "dot-case": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.3.tgz",
+ "integrity": "sha512-7hwEmg6RiSQfm/GwPL4AAWXKy3YNNZA3oFv2Pdiey0mwkRCPZ9x6SZbkLcn8Ma5PYeVokzoD4Twv2n7LKp5WeA==",
+ "dev": true,
+ "requires": {
+ "no-case": "^3.0.3",
+ "tslib": "^1.10.0"
+ }
+ },
+ "ecc-jsbn": {
+ "version": "0.1.2",
"resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
"integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
"dev": true,
@@ -2933,21 +2533,21 @@
}
},
"electron-to-chromium": {
- "version": "1.3.238",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.238.tgz",
- "integrity": "sha512-k+s6EIiSTgfOm7WiMlGBMMMtBQXSui8OfLN1sXU3RohJOuLGVq0lVm7hXyDIDBcbPM0MeZabAdIPQOSEZT3ZLg==",
+ "version": "1.3.539",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.539.tgz",
+ "integrity": "sha512-rM0LWDIstdqfaRUADZetNrL6+zd/0NBmavbMEhBXgc2u/CC1d1GaDyN5hho29fFvBiOVFwrSWZkzmNcZnCEDog==",
"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==",
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
+ "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
"dev": true
},
"emojis-list": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz",
- "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz",
+ "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==",
"dev": true
},
"end-of-stream": {
@@ -2959,6 +2559,44 @@
"once": "^1.4.0"
}
},
+ "enhanced-resolve": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz",
+ "integrity": "sha512-3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ==",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "memory-fs": "^0.5.0",
+ "tapable": "^1.0.0"
+ }
+ },
+ "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"
+ }
+ },
+ "errno": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz",
+ "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==",
+ "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"
+ }
+ },
"escape-string-regexp": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
@@ -2966,9 +2604,9 @@
"dev": true
},
"escodegen": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.1.tgz",
- "integrity": "sha512-Bmt7NcRySdIfNPfU2ZoXDrrXsG9ZjvDxcAlMfDUgRBjLOWTuIACXPBFJH7Z+cLb40JeQco5toikyc9t9P8E9SQ==",
+ "version": "1.14.3",
+ "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz",
+ "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==",
"dev": true,
"requires": {
"esprima": "^4.0.1",
@@ -2978,21 +2616,221 @@
"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==",
+ "levn": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
+ "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
"dev": true,
- "optional": true
+ "requires": {
+ "prelude-ls": "~1.1.2",
+ "type-check": "~0.3.2"
+ }
+ },
+ "optionator": {
+ "version": "0.8.3",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz",
+ "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==",
+ "dev": true,
+ "requires": {
+ "deep-is": "~0.1.3",
+ "fast-levenshtein": "~2.0.6",
+ "levn": "~0.3.0",
+ "prelude-ls": "~1.1.2",
+ "type-check": "~0.3.2",
+ "word-wrap": "~1.2.3"
+ }
+ },
+ "prelude-ls": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
+ "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=",
+ "dev": true
+ },
+ "type-check": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
+ "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
+ "dev": true,
+ "requires": {
+ "prelude-ls": "~1.1.2"
+ }
+ }
+ }
+ },
+ "eslint": {
+ "version": "7.7.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.7.0.tgz",
+ "integrity": "sha512-1KUxLzos0ZVsyL81PnRN335nDtQ8/vZUD6uMtWbF+5zDtjKcsklIi78XoE0MVL93QvWTu+E5y44VyyCsOMBrIg==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.0.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.0",
+ "eslint-utils": "^2.1.0",
+ "eslint-visitor-keys": "^1.3.0",
+ "espree": "^7.2.0",
+ "esquery": "^1.2.0",
+ "esutils": "^2.0.2",
+ "file-entry-cache": "^5.0.1",
+ "functional-red-black-tree": "^1.0.1",
+ "glob-parent": "^5.0.0",
+ "globals": "^12.1.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.19",
+ "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": "^5.2.3",
+ "text-table": "^0.2.0",
+ "v8-compile-cache": "^2.0.3"
+ },
+ "dependencies": {
+ "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"
+ }
+ },
+ "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"
+ }
+ },
+ "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"
+ }
+ },
+ "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
+ },
+ "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
+ },
+ "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"
+ }
}
}
},
+ "eslint-scope": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.0.tgz",
+ "integrity": "sha512-iiGRvtxWqgtx5m8EyQUJihBloE4EnYeGE/bz1wSPwJE6tZuJUtHlhqDM4Xj2ukE8Dyy1+HCZ4hE0fzIVMzb58w==",
+ "dev": true,
+ "requires": {
+ "esrecurse": "^4.1.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.2.0",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-7.2.0.tgz",
+ "integrity": "sha512-H+cQ3+3JYRMEIOl87e7QdHX70ocly5iW4+dttuR8iYSPr/hXKFb+7dBsZ7+u1adC4VrnPlTkv0+OwuPnDop19g==",
+ "dev": true,
+ "requires": {
+ "acorn": "^7.3.1",
+ "acorn-jsx": "^5.2.0",
+ "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.3.1",
+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz",
+ "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==",
+ "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.2.1",
+ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz",
+ "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==",
+ "dev": true,
+ "requires": {
+ "estraverse": "^4.1.0"
+ }
+ },
"estraverse": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
@@ -3000,10 +2838,9 @@
"dev": true
},
"estree-walker": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz",
- "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==",
- "dev": true
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.1.tgz",
+ "integrity": "sha512-tF0hv+Yi2Ot1cwj9eYHtxC0jB9bmjacjQs6ZBTj82H8JwUywFuc+7E83NWfNMwHXZc11mjfFcVXPe9gEP4B8dg=="
},
"esutils": {
"version": "2.0.3",
@@ -3053,6 +2890,15 @@
"to-regex": "^3.0.1"
},
"dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
"define-property": {
"version": "0.2.5",
"resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
@@ -3070,48 +2916,27 @@
"requires": {
"is-extendable": "^0.1.0"
}
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
}
}
},
"expect": {
- "version": "25.3.0",
- "resolved": "https://registry.npmjs.org/expect/-/expect-25.3.0.tgz",
- "integrity": "sha512-buboTXML2h/L0Kh44Ys2Cx49mX20ISc5KDirkxIs3Q9AJv0kazweUAbukegr+nHDOvFRKmxdojjIHCjqAceYfg==",
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/expect/-/expect-25.5.0.tgz",
+ "integrity": "sha512-w7KAXo0+6qqZZhovCaBVPSIqQp7/UTcx4M9uKt2m6pd2VB1voyC8JizLRqeEqud3AAVP02g+hbErDu5gu64tlA==",
"dev": true,
"requires": {
- "@jest/types": "^25.3.0",
+ "@jest/types": "^25.5.0",
"ansi-styles": "^4.0.0",
"jest-get-type": "^25.2.6",
- "jest-matcher-utils": "^25.3.0",
- "jest-message-util": "^25.3.0",
+ "jest-matcher-utils": "^25.5.0",
+ "jest-message-util": "^25.5.0",
"jest-regex-util": "^25.2.6"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
- "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
- "dev": true,
- "requires": {
- "@types/color-name": "^1.1.1",
- "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
- }
}
},
"extend": {
@@ -3213,9 +3038,9 @@
"dev": true
},
"fast-deep-equal": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz",
- "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==",
+ "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-json-stable-stringify": {
@@ -3230,12 +3055,6 @@
"integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
"dev": true
},
- "fastparse": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz",
- "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==",
- "dev": true
- },
"fb-watchman": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz",
@@ -3245,6 +3064,15 @@
"bser": "2.1.1"
}
},
+ "file-entry-cache": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz",
+ "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==",
+ "dev": true,
+ "requires": {
+ "flat-cache": "^2.0.1"
+ }
+ },
"fill-range": {
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
@@ -3262,6 +3090,20 @@
"requires": {
"json5": "^0.5.1",
"path-exists": "^3.0.0"
+ },
+ "dependencies": {
+ "json5": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz",
+ "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=",
+ "dev": true
+ },
+ "path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
+ "dev": true
+ }
}
},
"find-cache-dir": {
@@ -3273,66 +3115,6 @@
"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": {
@@ -3343,16 +3125,25 @@
"requires": {
"locate-path": "^5.0.0",
"path-exists": "^4.0.0"
- },
- "dependencies": {
- "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
- }
}
},
+ "flat-cache": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz",
+ "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==",
+ "dev": true,
+ "requires": {
+ "flatted": "^2.0.0",
+ "rimraf": "2.6.3",
+ "write": "1.0.3"
+ }
+ },
+ "flatted": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz",
+ "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==",
+ "dev": true
+ },
"for-in": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
@@ -3403,20 +3194,17 @@
"dev": true
},
"fsevents": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.2.tgz",
- "integrity": "sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA==",
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz",
+ "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==",
"dev": true,
"optional": true
},
- "generic-names": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/generic-names/-/generic-names-1.0.3.tgz",
- "integrity": "sha1-LXhqEhruUIh2eWk56OO/+DbCCRc=",
- "dev": true,
- "requires": {
- "loader-utils": "^0.2.16"
- }
+ "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.1",
@@ -3430,6 +3218,12 @@
"integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
"dev": true
},
+ "get-package-type": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz",
+ "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==",
+ "dev": true
+ },
"get-stream": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
@@ -3455,9 +3249,9 @@
}
},
"glob": {
- "version": "7.1.4",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz",
- "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==",
+ "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",
@@ -3468,16 +3262,25 @@
"path-is-absolute": "^1.0.0"
}
},
+ "glob-parent": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz",
+ "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==",
+ "dev": true,
+ "requires": {
+ "is-glob": "^4.0.1"
+ }
+ },
"globals": {
- "version": "9.18.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz",
- "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==",
+ "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
},
"graceful-fs": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz",
- "integrity": "sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q==",
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz",
+ "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==",
"dev": true
},
"growly": {
@@ -3494,12 +3297,12 @@
"dev": true
},
"har-validator": {
- "version": "5.1.3",
- "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
- "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
+ "version": "5.1.5",
+ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz",
+ "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==",
"dev": true,
"requires": {
- "ajv": "^6.5.5",
+ "ajv": "^6.12.3",
"har-schema": "^2.0.0"
}
},
@@ -3510,12 +3313,20 @@
"dev": true,
"requires": {
"ansi-regex": "^2.0.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+ "dev": true
+ }
}
},
"has-flag": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true
},
"has-value": {
@@ -3570,12 +3381,22 @@
}
}
},
- "hash-sum": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz",
- "integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=",
- "dev": true
- },
+ "header-case": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/header-case/-/header-case-2.0.3.tgz",
+ "integrity": "sha512-LChe/V32mnUQnTwTxd3aAlNMk8ia9tjCDb/LjYtoMrdAPApxLB+azejUk5ERZIZdIqvinwv6BAUuFXH/tQPdZA==",
+ "dev": true,
+ "requires": {
+ "capital-case": "^1.0.3",
+ "tslib": "^1.10.0"
+ }
+ },
+ "hosted-git-info": {
+ "version": "2.8.8",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz",
+ "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==",
+ "dev": true
+ },
"html-encoding-sniffer": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz",
@@ -3617,12 +3438,30 @@
"safer-buffer": ">= 2.1.2 < 3"
}
},
- "icss-replace-symbols": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz",
- "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=",
+ "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.2.1",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz",
+ "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==",
+ "dev": true,
+ "requires": {
+ "parent-module": "^1.0.0",
+ "resolve-from": "^4.0.0"
+ },
+ "dependencies": {
+ "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
+ }
+ }
+ },
"import-local": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.2.tgz",
@@ -3639,12 +3478,6 @@
"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
- },
"inflight": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
@@ -3670,6 +3503,11 @@
"loose-envify": "^1.0.0"
}
},
+ "ionicons": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/ionicons/-/ionicons-5.1.2.tgz",
+ "integrity": "sha512-zO7ZgbBbXhpA7cXO2rDzTNdcCqErjg1Sprq/ossTvaiV0MriOjRE7JO3EGvYjDTPzF9YALGpvLXqCgsRT0tprA=="
+ },
"ip-regex": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz",
@@ -3696,6 +3534,12 @@
}
}
},
+ "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-buffer": {
"version": "1.1.6",
"resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
@@ -3750,16 +3594,29 @@
}
}
},
+ "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,
+ "optional": true
+ },
"is-extendable": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
"integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
"dev": true
},
+ "is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
+ "dev": true
+ },
"is-fullwidth-code-point": {
- "version": "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==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
"dev": true
},
"is-generator-fn": {
@@ -3768,6 +3625,21 @@
"integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==",
"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-module": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz",
+ "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=",
+ "dev": true
+ },
"is-number": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
@@ -3802,11 +3674,14 @@
"dev": true
},
"is-wsl": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.1.1.tgz",
- "integrity": "sha512-umZHcSrwlDHo2TGMXv0DZ8dIUGunZ2Iv68YZnrmCiBPkZ4aaOhtv7pXJKeki9k3qJ3RJr0cDyitcl5wEH3AYog==",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz",
+ "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==",
"dev": true,
- "optional": true
+ "optional": true,
+ "requires": {
+ "is-docker": "^2.0.0"
+ }
},
"isarray": {
"version": "1.0.0",
@@ -3839,15 +3714,12 @@
"dev": true
},
"istanbul-lib-instrument": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.1.tgz",
- "integrity": "sha512-imIchxnodll7pvQBYOqUu88EufLCU56LMeFPZZM/fJZ1irYcYdqroaV+ACK1Ila8ls09iEYArp+nqyC6lW1Vfg==",
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz",
+ "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==",
"dev": true,
"requires": {
"@babel/core": "^7.7.5",
- "@babel/parser": "^7.7.5",
- "@babel/template": "^7.7.4",
- "@babel/traverse": "^7.7.4",
"@istanbuljs/schema": "^0.1.2",
"istanbul-lib-coverage": "^3.0.0",
"semver": "^6.3.0"
@@ -3870,23 +3742,6 @@
"istanbul-lib-coverage": "^3.0.0",
"make-dir": "^3.0.0",
"supports-color": "^7.1.0"
- },
- "dependencies": {
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true
- },
- "supports-color": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
- "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
- "dev": true,
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
}
},
"istanbul-lib-source-maps": {
@@ -3898,29 +3753,6 @@
"debug": "^4.1.1",
"istanbul-lib-coverage": "^3.0.0",
"source-map": "^0.6.1"
- },
- "dependencies": {
- "debug": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
- "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
- "dev": true,
- "requires": {
- "ms": "^2.1.1"
- }
- },
- "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
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "dev": true
- }
}
},
"istanbul-reports": {
@@ -3934,104 +3766,55 @@
}
},
"jest": {
- "version": "25.3.0",
- "resolved": "https://registry.npmjs.org/jest/-/jest-25.3.0.tgz",
- "integrity": "sha512-iKd5ShQSHzFT5IL/6h5RZJhApgqXSoPxhp5HEi94v6OAw9QkF8T7X+liEU2eEHJ1eMFYTHmeWLrpBWulsDpaUg==",
+ "version": "25.5.4",
+ "resolved": "https://registry.npmjs.org/jest/-/jest-25.5.4.tgz",
+ "integrity": "sha512-hHFJROBTqZahnO+X+PMtT6G2/ztqAZJveGqz//FnWWHurizkD05PQGzRZOhF3XP6z7SJmL+5tCfW8qV06JypwQ==",
"dev": true,
"requires": {
- "@jest/core": "^25.3.0",
+ "@jest/core": "^25.5.4",
"import-local": "^3.0.2",
- "jest-cli": "^25.3.0"
+ "jest-cli": "^25.5.4"
},
"dependencies": {
- "ansi-styles": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
- "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
- "dev": true,
- "requires": {
- "@types/color-name": "^1.1.1",
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
- "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
- "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
- },
"jest-cli": {
- "version": "25.3.0",
- "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-25.3.0.tgz",
- "integrity": "sha512-XpNQPlW1tzpP7RGG8dxpkRegYDuLjzSiENu92+CYM87nEbmEPb3b4+yo8xcsHOnj0AG7DUt9b3uG8LuHI3MDzw==",
+ "version": "25.5.4",
+ "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-25.5.4.tgz",
+ "integrity": "sha512-rG8uJkIiOUpnREh1768/N3n27Cm+xPFkSNFO91tgg+8o2rXeVLStz+vkXkGr4UtzH6t1SNbjwoiswd7p4AhHTw==",
"dev": true,
"requires": {
- "@jest/core": "^25.3.0",
- "@jest/test-result": "^25.3.0",
- "@jest/types": "^25.3.0",
+ "@jest/core": "^25.5.4",
+ "@jest/test-result": "^25.5.0",
+ "@jest/types": "^25.5.0",
"chalk": "^3.0.0",
"exit": "^0.1.2",
+ "graceful-fs": "^4.2.4",
"import-local": "^3.0.2",
"is-ci": "^2.0.0",
- "jest-config": "^25.3.0",
- "jest-util": "^25.3.0",
- "jest-validate": "^25.3.0",
+ "jest-config": "^25.5.4",
+ "jest-util": "^25.5.0",
+ "jest-validate": "^25.5.0",
"prompts": "^2.0.1",
"realpath-native": "^2.0.0",
"yargs": "^15.3.1"
}
- },
- "supports-color": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
- "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
- "dev": true,
- "requires": {
- "has-flag": "^4.0.0"
- }
}
}
},
"jest-changed-files": {
- "version": "25.3.0",
- "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-25.3.0.tgz",
- "integrity": "sha512-eqd5hyLbUjIVvLlJ3vQ/MoPxsxfESVXG9gvU19XXjKzxr+dXmZIqCXiY0OiYaibwlHZBJl2Vebkc0ADEMzCXew==",
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-25.5.0.tgz",
+ "integrity": "sha512-EOw9QEqapsDT7mKF162m8HFzRPbmP8qJQny6ldVOdOVBz3ACgPm/1nAn5fPQ/NDaYhX/AHkrGwwkCncpAVSXcw==",
"dev": true,
"requires": {
- "@jest/types": "^25.3.0",
+ "@jest/types": "^25.5.0",
"execa": "^3.2.0",
"throat": "^5.0.0"
},
"dependencies": {
"cross-spawn": {
- "version": "7.0.2",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.2.tgz",
- "integrity": "sha512-PD6G8QG3S4FK/XCGFbEQrDqO2AnMMsy0meR7lerlIOHAAbkuavGU/pOqprrlvfTNjvowivTeBsjebAL0NSoMxw==",
+ "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",
@@ -4058,9 +3841,9 @@
}
},
"get-stream": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz",
- "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==",
+ "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"
@@ -4111,145 +3894,42 @@
}
},
"jest-config": {
- "version": "25.3.0",
- "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-25.3.0.tgz",
- "integrity": "sha512-CmF1JnNWFmoCSPC4tnU52wnVBpuxHjilA40qH/03IHxIevkjUInSMwaDeE6ACfxMPTLidBGBCO3EbxvzPbo8wA==",
+ "version": "25.5.4",
+ "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-25.5.4.tgz",
+ "integrity": "sha512-SZwR91SwcdK6bz7Gco8qL7YY2sx8tFJYzvg216DLihTWf+LKY/DoJXpM9nTzYakSyfblbqeU48p/p7Jzy05Atg==",
"dev": true,
"requires": {
"@babel/core": "^7.1.0",
- "@jest/test-sequencer": "^25.3.0",
- "@jest/types": "^25.3.0",
- "babel-jest": "^25.3.0",
+ "@jest/test-sequencer": "^25.5.4",
+ "@jest/types": "^25.5.0",
+ "babel-jest": "^25.5.1",
"chalk": "^3.0.0",
"deepmerge": "^4.2.2",
"glob": "^7.1.1",
- "jest-environment-jsdom": "^25.3.0",
- "jest-environment-node": "^25.3.0",
+ "graceful-fs": "^4.2.4",
+ "jest-environment-jsdom": "^25.5.0",
+ "jest-environment-node": "^25.5.0",
"jest-get-type": "^25.2.6",
- "jest-jasmine2": "^25.3.0",
+ "jest-jasmine2": "^25.5.4",
"jest-regex-util": "^25.2.6",
- "jest-resolve": "^25.3.0",
- "jest-util": "^25.3.0",
- "jest-validate": "^25.3.0",
+ "jest-resolve": "^25.5.1",
+ "jest-util": "^25.5.0",
+ "jest-validate": "^25.5.0",
"micromatch": "^4.0.2",
- "pretty-format": "^25.3.0",
+ "pretty-format": "^25.5.0",
"realpath-native": "^2.0.0"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
- "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
- "dev": true,
- "requires": {
- "@types/color-name": "^1.1.1",
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
- "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
- "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.1.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
- "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
- "dev": true,
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
}
},
"jest-diff": {
- "version": "25.3.0",
- "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-25.3.0.tgz",
- "integrity": "sha512-vyvs6RPoVdiwARwY4kqFWd4PirPLm2dmmkNzKqo38uZOzJvLee87yzDjIZLmY1SjM3XR5DwsUH+cdQ12vgqi1w==",
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-25.5.0.tgz",
+ "integrity": "sha512-z1kygetuPiREYdNIumRpAHY6RXiGmp70YHptjdaxTWGmA085W3iCnXNx0DhflK3vwrKmrRWyY1wUpkPMVxMK7A==",
"dev": true,
"requires": {
"chalk": "^3.0.0",
"diff-sequences": "^25.2.6",
"jest-get-type": "^25.2.6",
- "pretty-format": "^25.3.0"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
- "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
- "dev": true,
- "requires": {
- "@types/color-name": "^1.1.1",
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
- "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
- "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.1.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
- "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
- "dev": true,
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
+ "pretty-format": "^25.5.0"
}
},
"jest-docblock": {
@@ -4262,95 +3942,43 @@
}
},
"jest-each": {
- "version": "25.3.0",
- "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-25.3.0.tgz",
- "integrity": "sha512-aBfS4VOf/Qs95yUlX6d6WBv0szvOcTkTTyCIaLuQGj4bSHsT+Wd9dDngVHrCe5uytxpN8VM+NAloI6nbPjXfXw==",
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-25.5.0.tgz",
+ "integrity": "sha512-QBogUxna3D8vtiItvn54xXde7+vuzqRrEeaw8r1s+1TG9eZLVJE5ZkKoSUlqFwRjnlaA4hyKGiu9OlkFIuKnjA==",
"dev": true,
"requires": {
- "@jest/types": "^25.3.0",
+ "@jest/types": "^25.5.0",
"chalk": "^3.0.0",
"jest-get-type": "^25.2.6",
- "jest-util": "^25.3.0",
- "pretty-format": "^25.3.0"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
- "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
- "dev": true,
- "requires": {
- "@types/color-name": "^1.1.1",
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
- "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
- "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.1.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
- "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
- "dev": true,
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
+ "jest-util": "^25.5.0",
+ "pretty-format": "^25.5.0"
}
},
"jest-environment-jsdom": {
- "version": "25.3.0",
- "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-25.3.0.tgz",
- "integrity": "sha512-jdE4bQN+k2QEZ9sWOxsqDJvMzbdFSCN/4tw8X0TQaCqyzKz58PyEf41oIr4WO7ERdp7WaJGBSUKF7imR3UW1lg==",
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-25.5.0.tgz",
+ "integrity": "sha512-7Jr02ydaq4jaWMZLY+Skn8wL5nVIYpWvmeatOHL3tOcV3Zw8sjnPpx+ZdeBfc457p8jCR9J6YCc+Lga0oIy62A==",
"dev": true,
"requires": {
- "@jest/environment": "^25.3.0",
- "@jest/fake-timers": "^25.3.0",
- "@jest/types": "^25.3.0",
- "jest-mock": "^25.3.0",
- "jest-util": "^25.3.0",
+ "@jest/environment": "^25.5.0",
+ "@jest/fake-timers": "^25.5.0",
+ "@jest/types": "^25.5.0",
+ "jest-mock": "^25.5.0",
+ "jest-util": "^25.5.0",
"jsdom": "^15.2.1"
}
},
"jest-environment-node": {
- "version": "25.3.0",
- "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-25.3.0.tgz",
- "integrity": "sha512-XO09S29Nx1NU7TiMPHMoDIkxoGBuKSTbE+sHp0gXbeLDXhIdhysUI25kOqFFSD9AuDgvPvxWCXrvNqiFsOH33g==",
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-25.5.0.tgz",
+ "integrity": "sha512-iuxK6rQR2En9EID+2k+IBs5fCFd919gVVK5BeND82fYeLWPqvRcFNPKu9+gxTwfB5XwBGBvZ0HFQa+cHtIoslA==",
"dev": true,
"requires": {
- "@jest/environment": "^25.3.0",
- "@jest/fake-timers": "^25.3.0",
- "@jest/types": "^25.3.0",
- "jest-mock": "^25.3.0",
- "jest-util": "^25.3.0",
+ "@jest/environment": "^25.5.0",
+ "@jest/fake-timers": "^25.5.0",
+ "@jest/types": "^25.5.0",
+ "jest-mock": "^25.5.0",
+ "jest-util": "^25.5.0",
"semver": "^6.3.0"
},
"dependencies": {
@@ -4369,264 +3997,102 @@
"dev": true
},
"jest-haste-map": {
- "version": "25.3.0",
- "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-25.3.0.tgz",
- "integrity": "sha512-LjXaRa+F8wwtSxo9G+hHD/Cp63PPQzvaBL9XCVoJD2rrcJO0Zr2+YYzAFWWYJ5GlPUkoaJFJtOuk0sL6MJY80A==",
+ "version": "25.5.1",
+ "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-25.5.1.tgz",
+ "integrity": "sha512-dddgh9UZjV7SCDQUrQ+5t9yy8iEgKc1AKqZR9YDww8xsVOtzPQSMVLDChc21+g29oTRexb9/B0bIlZL+sWmvAQ==",
"dev": true,
"requires": {
- "@jest/types": "^25.3.0",
+ "@jest/types": "^25.5.0",
+ "@types/graceful-fs": "^4.1.2",
"anymatch": "^3.0.3",
"fb-watchman": "^2.0.0",
"fsevents": "^2.1.2",
- "graceful-fs": "^4.2.3",
- "jest-serializer": "^25.2.6",
- "jest-util": "^25.3.0",
- "jest-worker": "^25.2.6",
+ "graceful-fs": "^4.2.4",
+ "jest-serializer": "^25.5.0",
+ "jest-util": "^25.5.0",
+ "jest-worker": "^25.5.0",
"micromatch": "^4.0.2",
"sane": "^4.0.3",
"walker": "^1.0.7",
"which": "^2.0.2"
- },
- "dependencies": {
- "graceful-fs": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
- "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==",
- "dev": true
- }
}
},
"jest-jasmine2": {
- "version": "25.3.0",
- "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-25.3.0.tgz",
- "integrity": "sha512-NCYOGE6+HNzYFSui52SefgpsnIzvxjn6KAgqw66BdRp37xpMD/4kujDHLNW5bS5i53os5TcMn6jYrzQRO8VPrQ==",
+ "version": "25.5.4",
+ "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-25.5.4.tgz",
+ "integrity": "sha512-9acbWEfbmS8UpdcfqnDO+uBUgKa/9hcRh983IHdM+pKmJPL77G0sWAAK0V0kr5LK3a8cSBfkFSoncXwQlRZfkQ==",
"dev": true,
"requires": {
"@babel/traverse": "^7.1.0",
- "@jest/environment": "^25.3.0",
- "@jest/source-map": "^25.2.6",
- "@jest/test-result": "^25.3.0",
- "@jest/types": "^25.3.0",
+ "@jest/environment": "^25.5.0",
+ "@jest/source-map": "^25.5.0",
+ "@jest/test-result": "^25.5.0",
+ "@jest/types": "^25.5.0",
"chalk": "^3.0.0",
"co": "^4.6.0",
- "expect": "^25.3.0",
+ "expect": "^25.5.0",
"is-generator-fn": "^2.0.0",
- "jest-each": "^25.3.0",
- "jest-matcher-utils": "^25.3.0",
- "jest-message-util": "^25.3.0",
- "jest-runtime": "^25.3.0",
- "jest-snapshot": "^25.3.0",
- "jest-util": "^25.3.0",
- "pretty-format": "^25.3.0",
+ "jest-each": "^25.5.0",
+ "jest-matcher-utils": "^25.5.0",
+ "jest-message-util": "^25.5.0",
+ "jest-runtime": "^25.5.4",
+ "jest-snapshot": "^25.5.1",
+ "jest-util": "^25.5.0",
+ "pretty-format": "^25.5.0",
"throat": "^5.0.0"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
- "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
- "dev": true,
- "requires": {
- "@types/color-name": "^1.1.1",
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
- "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
- "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.1.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
- "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
- "dev": true,
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
}
},
"jest-leak-detector": {
- "version": "25.3.0",
- "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-25.3.0.tgz",
- "integrity": "sha512-jk7k24dMIfk8LUSQQGN8PyOy9+J0NAfHZWiDmUDYVMctY8FLJQ1eQ8+PjMoN8PgwhLIggUqgYJnyRFvUz3jLRw==",
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-25.5.0.tgz",
+ "integrity": "sha512-rV7JdLsanS8OkdDpZtgBf61L5xZ4NnYLBq72r6ldxahJWWczZjXawRsoHyXzibM5ed7C2QRjpp6ypgwGdKyoVA==",
"dev": true,
"requires": {
"jest-get-type": "^25.2.6",
- "pretty-format": "^25.3.0"
+ "pretty-format": "^25.5.0"
}
},
"jest-matcher-utils": {
- "version": "25.3.0",
- "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-25.3.0.tgz",
- "integrity": "sha512-ZBUJ2fchNIZt+fyzkuCFBb8SKaU//Rln45augfUtbHaGyVxCO++ANARdBK9oPGXU3hEDgyy7UHnOP/qNOJXFUg==",
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-25.5.0.tgz",
+ "integrity": "sha512-VWI269+9JS5cpndnpCwm7dy7JtGQT30UHfrnM3mXl22gHGt/b7NkjBqXfbhZ8V4B7ANUsjK18PlSBmG0YH7gjw==",
"dev": true,
"requires": {
"chalk": "^3.0.0",
- "jest-diff": "^25.3.0",
+ "jest-diff": "^25.5.0",
"jest-get-type": "^25.2.6",
- "pretty-format": "^25.3.0"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
- "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
- "dev": true,
- "requires": {
- "@types/color-name": "^1.1.1",
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
- "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
- "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.1.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
- "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
- "dev": true,
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
+ "pretty-format": "^25.5.0"
}
},
"jest-message-util": {
- "version": "25.3.0",
- "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-25.3.0.tgz",
- "integrity": "sha512-5QNy9Id4WxJbRITEbA1T1kem9bk7y2fD0updZMSTNHtbEDnYOGLDPAuFBhFgVmOZpv0n6OMdVkK+WhyXEPCcOw==",
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-25.5.0.tgz",
+ "integrity": "sha512-ezddz3YCT/LT0SKAmylVyWWIGYoKHOFOFXx3/nA4m794lfVUskMcwhip6vTgdVrOtYdjeQeis2ypzes9mZb4EA==",
"dev": true,
"requires": {
"@babel/code-frame": "^7.0.0",
- "@jest/types": "^25.3.0",
+ "@jest/types": "^25.5.0",
"@types/stack-utils": "^1.0.1",
"chalk": "^3.0.0",
+ "graceful-fs": "^4.2.4",
"micromatch": "^4.0.2",
"slash": "^3.0.0",
"stack-utils": "^1.0.1"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
- "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
- "dev": true,
- "requires": {
- "@types/color-name": "^1.1.1",
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
- "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
- "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.1.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
- "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
- "dev": true,
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
}
},
"jest-mock": {
- "version": "25.3.0",
- "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-25.3.0.tgz",
- "integrity": "sha512-yRn6GbuqB4j3aYu+Z1ezwRiZfp0o9om5uOcBovVtkcRLeBCNP5mT0ysdenUsxAHnQUgGwPOE1wwhtQYe6NKirQ==",
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-25.5.0.tgz",
+ "integrity": "sha512-eXWuTV8mKzp/ovHc5+3USJMYsTBhyQ+5A1Mak35dey/RG8GlM4YWVylZuGgVXinaW6tpvk/RSecmF37FKUlpXA==",
"dev": true,
"requires": {
- "@jest/types": "^25.3.0"
+ "@jest/types": "^25.5.0"
}
},
"jest-pnp-resolver": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.1.tgz",
- "integrity": "sha512-pgFw2tm54fzgYvc/OHrnysABEObZCUNFnhjoRjaVOCN8NYc032/gVjPaHD4Aq6ApkSieWtfKAFQtmDKAmhupnQ==",
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz",
+ "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==",
"dev": true
},
"jest-regex-util": {
@@ -4636,350 +4102,131 @@
"dev": true
},
"jest-resolve": {
- "version": "25.3.0",
- "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-25.3.0.tgz",
- "integrity": "sha512-IHoQAAybulsJ+ZgWis+ekYKDAoFkVH5Nx/znpb41zRtpxj4fr2WNV9iDqavdSm8GIpMlsfZxbC/fV9DhW0q9VQ==",
+ "version": "25.5.1",
+ "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-25.5.1.tgz",
+ "integrity": "sha512-Hc09hYch5aWdtejsUZhA+vSzcotf7fajSlPA6EZPE1RmPBAD39XtJhvHWFStid58iit4IPDLI/Da4cwdDmAHiQ==",
"dev": true,
"requires": {
- "@jest/types": "^25.3.0",
+ "@jest/types": "^25.5.0",
"browser-resolve": "^1.11.3",
"chalk": "^3.0.0",
+ "graceful-fs": "^4.2.4",
"jest-pnp-resolver": "^1.2.1",
+ "read-pkg-up": "^7.0.1",
"realpath-native": "^2.0.0",
- "resolve": "^1.15.1"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
- "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
- "dev": true,
- "requires": {
- "@types/color-name": "^1.1.1",
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
- "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
- "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
- },
- "resolve": {
- "version": "1.15.1",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz",
- "integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==",
- "dev": true,
- "requires": {
- "path-parse": "^1.0.6"
- }
- },
- "supports-color": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
- "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
- "dev": true,
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
+ "resolve": "^1.17.0",
+ "slash": "^3.0.0"
}
},
"jest-resolve-dependencies": {
- "version": "25.3.0",
- "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-25.3.0.tgz",
- "integrity": "sha512-bDUlLYmHW+f7J7KgcY2lkq8EMRqKonRl0XoD4Wp5SJkgAxKJnsaIOlrrVNTfXYf+YOu3VCjm/Ac2hPF2nfsCIA==",
+ "version": "25.5.4",
+ "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-25.5.4.tgz",
+ "integrity": "sha512-yFmbPd+DAQjJQg88HveObcGBA32nqNZ02fjYmtL16t1xw9bAttSn5UGRRhzMHIQbsep7znWvAvnD4kDqOFM0Uw==",
"dev": true,
"requires": {
- "@jest/types": "^25.3.0",
+ "@jest/types": "^25.5.0",
"jest-regex-util": "^25.2.6",
- "jest-snapshot": "^25.3.0"
+ "jest-snapshot": "^25.5.1"
}
},
"jest-runner": {
- "version": "25.3.0",
- "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-25.3.0.tgz",
- "integrity": "sha512-csDqSC9qGHYWDrzrElzEgFbteztFeZJmKhSgY5jlCIcN0+PhActzRNku0DA1Xa1HxGOb0/AfbP1EGJlP4fGPtA==",
+ "version": "25.5.4",
+ "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-25.5.4.tgz",
+ "integrity": "sha512-V/2R7fKZo6blP8E9BL9vJ8aTU4TH2beuqGNxHbxi6t14XzTb+x90B3FRgdvuHm41GY8ch4xxvf0ATH4hdpjTqg==",
"dev": true,
"requires": {
- "@jest/console": "^25.3.0",
- "@jest/environment": "^25.3.0",
- "@jest/test-result": "^25.3.0",
- "@jest/types": "^25.3.0",
+ "@jest/console": "^25.5.0",
+ "@jest/environment": "^25.5.0",
+ "@jest/test-result": "^25.5.0",
+ "@jest/types": "^25.5.0",
"chalk": "^3.0.0",
"exit": "^0.1.2",
- "graceful-fs": "^4.2.3",
- "jest-config": "^25.3.0",
+ "graceful-fs": "^4.2.4",
+ "jest-config": "^25.5.4",
"jest-docblock": "^25.3.0",
- "jest-haste-map": "^25.3.0",
- "jest-jasmine2": "^25.3.0",
- "jest-leak-detector": "^25.3.0",
- "jest-message-util": "^25.3.0",
- "jest-resolve": "^25.3.0",
- "jest-runtime": "^25.3.0",
- "jest-util": "^25.3.0",
- "jest-worker": "^25.2.6",
+ "jest-haste-map": "^25.5.1",
+ "jest-jasmine2": "^25.5.4",
+ "jest-leak-detector": "^25.5.0",
+ "jest-message-util": "^25.5.0",
+ "jest-resolve": "^25.5.1",
+ "jest-runtime": "^25.5.4",
+ "jest-util": "^25.5.0",
+ "jest-worker": "^25.5.0",
"source-map-support": "^0.5.6",
"throat": "^5.0.0"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
- "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
- "dev": true,
- "requires": {
- "@types/color-name": "^1.1.1",
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
- "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
- "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
- },
- "graceful-fs": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
- "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==",
- "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.1.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
- "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
- "dev": true,
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
}
},
"jest-runtime": {
- "version": "25.3.0",
- "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-25.3.0.tgz",
- "integrity": "sha512-gn5KYB1wxXRM3nfw8fVpthFu60vxQUCr+ShGq41+ZBFF3DRHZRKj3HDWVAVB4iTNBj2y04QeAo5cZ/boYaPg0w==",
- "dev": true,
- "requires": {
- "@jest/console": "^25.3.0",
- "@jest/environment": "^25.3.0",
- "@jest/source-map": "^25.2.6",
- "@jest/test-result": "^25.3.0",
- "@jest/transform": "^25.3.0",
- "@jest/types": "^25.3.0",
+ "version": "25.5.4",
+ "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-25.5.4.tgz",
+ "integrity": "sha512-RWTt8LeWh3GvjYtASH2eezkc8AehVoWKK20udV6n3/gC87wlTbE1kIA+opCvNWyyPeBs6ptYsc6nyHUb1GlUVQ==",
+ "dev": true,
+ "requires": {
+ "@jest/console": "^25.5.0",
+ "@jest/environment": "^25.5.0",
+ "@jest/globals": "^25.5.2",
+ "@jest/source-map": "^25.5.0",
+ "@jest/test-result": "^25.5.0",
+ "@jest/transform": "^25.5.1",
+ "@jest/types": "^25.5.0",
"@types/yargs": "^15.0.0",
"chalk": "^3.0.0",
"collect-v8-coverage": "^1.0.0",
"exit": "^0.1.2",
"glob": "^7.1.3",
- "graceful-fs": "^4.2.3",
- "jest-config": "^25.3.0",
- "jest-haste-map": "^25.3.0",
- "jest-message-util": "^25.3.0",
- "jest-mock": "^25.3.0",
+ "graceful-fs": "^4.2.4",
+ "jest-config": "^25.5.4",
+ "jest-haste-map": "^25.5.1",
+ "jest-message-util": "^25.5.0",
+ "jest-mock": "^25.5.0",
"jest-regex-util": "^25.2.6",
- "jest-resolve": "^25.3.0",
- "jest-snapshot": "^25.3.0",
- "jest-util": "^25.3.0",
- "jest-validate": "^25.3.0",
+ "jest-resolve": "^25.5.1",
+ "jest-snapshot": "^25.5.1",
+ "jest-util": "^25.5.0",
+ "jest-validate": "^25.5.0",
"realpath-native": "^2.0.0",
"slash": "^3.0.0",
"strip-bom": "^4.0.0",
"yargs": "^15.3.1"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
- "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
- "dev": true,
- "requires": {
- "@types/color-name": "^1.1.1",
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
- "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
- "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
- },
- "graceful-fs": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
- "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==",
- "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.1.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
- "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
- "dev": true,
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
}
},
"jest-serializer": {
- "version": "25.2.6",
- "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-25.2.6.tgz",
- "integrity": "sha512-RMVCfZsezQS2Ww4kB5HJTMaMJ0asmC0BHlnobQC6yEtxiFKIxohFA4QSXSabKwSggaNkqxn6Z2VwdFCjhUWuiQ==",
- "dev": true
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-25.5.0.tgz",
+ "integrity": "sha512-LxD8fY1lByomEPflwur9o4e2a5twSQ7TaVNLlFUuToIdoJuBt8tzHfCsZ42Ok6LkKXWzFWf3AGmheuLAA7LcCA==",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.2.4"
+ }
},
"jest-snapshot": {
- "version": "25.3.0",
- "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-25.3.0.tgz",
- "integrity": "sha512-GGpR6Oro2htJPKh5RX4PR1xwo5jCEjtvSPLW1IS7N85y+2bWKbiknHpJJRKSdGXghElb5hWaeQASJI4IiRayGg==",
+ "version": "25.5.1",
+ "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-25.5.1.tgz",
+ "integrity": "sha512-C02JE1TUe64p2v1auUJ2ze5vcuv32tkv9PyhEb318e8XOKF7MOyXdJ7kdjbvrp3ChPLU2usI7Rjxs97Dj5P0uQ==",
"dev": true,
"requires": {
"@babel/types": "^7.0.0",
- "@jest/types": "^25.3.0",
+ "@jest/types": "^25.5.0",
"@types/prettier": "^1.19.0",
"chalk": "^3.0.0",
- "expect": "^25.3.0",
- "jest-diff": "^25.3.0",
+ "expect": "^25.5.0",
+ "graceful-fs": "^4.2.4",
+ "jest-diff": "^25.5.0",
"jest-get-type": "^25.2.6",
- "jest-matcher-utils": "^25.3.0",
- "jest-message-util": "^25.3.0",
- "jest-resolve": "^25.3.0",
+ "jest-matcher-utils": "^25.5.0",
+ "jest-message-util": "^25.5.0",
+ "jest-resolve": "^25.5.1",
"make-dir": "^3.0.0",
"natural-compare": "^1.4.0",
- "pretty-format": "^25.3.0",
+ "pretty-format": "^25.5.0",
"semver": "^6.3.0"
},
"dependencies": {
- "ansi-styles": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
- "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
- "dev": true,
- "requires": {
- "@types/color-name": "^1.1.1",
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
- "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
- "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
- },
"semver": {
"version": "6.3.0",
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
"integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
"dev": true
- },
- "supports-color": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
- "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
- "dev": true,
- "requires": {
- "has-flag": "^4.0.0"
- }
}
}
},
@@ -4993,264 +4240,77 @@
}
},
"jest-util": {
- "version": "25.3.0",
- "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.3.0.tgz",
- "integrity": "sha512-dc625P/KS/CpWTJJJxKc4bA3A6c+PJGBAqS8JTJqx4HqPoKNqXg/Ec8biL2Z1TabwK7E7Ilf0/ukSEXM1VwzNA==",
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.5.0.tgz",
+ "integrity": "sha512-KVlX+WWg1zUTB9ktvhsg2PXZVdkI1NBevOJSkTKYAyXyH4QSvh+Lay/e/v+bmaFfrkfx43xD8QTfgobzlEXdIA==",
"dev": true,
"requires": {
- "@jest/types": "^25.3.0",
+ "@jest/types": "^25.5.0",
"chalk": "^3.0.0",
+ "graceful-fs": "^4.2.4",
"is-ci": "^2.0.0",
"make-dir": "^3.0.0"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
- "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
- "dev": true,
- "requires": {
- "@types/color-name": "^1.1.1",
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
- "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
- "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.1.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
- "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
- "dev": true,
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
}
},
"jest-validate": {
- "version": "25.3.0",
- "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-25.3.0.tgz",
- "integrity": "sha512-3WuXgIZ4HXUvW6gk9twFFkT9j6zUorKnF2oEY8VEsHb7x5LGvVlN3WUsbqazVKuyXwvikO2zFJ/YTySMsMje2w==",
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-25.5.0.tgz",
+ "integrity": "sha512-okUFKqhZIpo3jDdtUXUZ2LxGUZJIlfdYBvZb1aczzxrlyMlqdnnws9MOxezoLGhSaFc2XYaHNReNQfj5zPIWyQ==",
"dev": true,
"requires": {
- "@jest/types": "^25.3.0",
+ "@jest/types": "^25.5.0",
"camelcase": "^5.3.1",
"chalk": "^3.0.0",
"jest-get-type": "^25.2.6",
"leven": "^3.1.0",
- "pretty-format": "^25.3.0"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
- "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
- "dev": true,
- "requires": {
- "@types/color-name": "^1.1.1",
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
- "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
- "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.1.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
- "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
- "dev": true,
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
+ "pretty-format": "^25.5.0"
}
},
"jest-vue-preprocessor": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/jest-vue-preprocessor/-/jest-vue-preprocessor-1.5.0.tgz",
- "integrity": "sha512-2O0pewvL8urvjjkDq/ZorvFpk3vKtXFawfJ3nVlv38o7V3j4YY0nAWh+7p/2yYLZrBOg2aDTiQTwxCRt4qZNWA==",
+ "version": "1.7.1",
+ "resolved": "https://registry.npmjs.org/jest-vue-preprocessor/-/jest-vue-preprocessor-1.7.1.tgz",
+ "integrity": "sha512-3JStGaNMuSzuo6OytlnUjtF+L9iYwKMu+BCrQYPXu3DEpzmKuuY3bZiTUz6+x9NbElKz2NMQNxysIgNZaT/QqA==",
"dev": true,
"requires": {
"babel-plugin-transform-runtime": "6.23.0",
"find-babel-config": "1.2.0",
- "typescript": "2.7.2",
- "vue-property-decorator": "6.1.0"
- },
- "dependencies": {
- "typescript": {
- "version": "2.7.2",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.7.2.tgz",
- "integrity": "sha512-p5TCYZDAO0m4G344hD+wx/LATebLWZNkkh2asWUFqSsD2OrDNhbAHuSjobrmsUmdzjJjEeZVU9g1h3O6vpstnw==",
- "dev": true
- }
+ "vue-property-decorator": "8.3.0"
}
},
"jest-watcher": {
- "version": "25.3.0",
- "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-25.3.0.tgz",
- "integrity": "sha512-dtFkfidFCS9Ucv8azOg2hkiY3sgJEHeTLtGFHS+jfBEE7eRtrO6+2r1BokyDkaG2FOD7485r/SgpC1MFAENfeA==",
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-25.5.0.tgz",
+ "integrity": "sha512-XrSfJnVASEl+5+bb51V0Q7WQx65dTSk7NL4yDdVjPnRNpM0hG+ncFmDYJo9O8jaSRcAitVbuVawyXCRoxGrT5Q==",
"dev": true,
"requires": {
- "@jest/test-result": "^25.3.0",
- "@jest/types": "^25.3.0",
+ "@jest/test-result": "^25.5.0",
+ "@jest/types": "^25.5.0",
"ansi-escapes": "^4.2.1",
"chalk": "^3.0.0",
- "jest-util": "^25.3.0",
+ "jest-util": "^25.5.0",
"string-length": "^3.1.0"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
- "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
- "dev": true,
- "requires": {
- "@types/color-name": "^1.1.1",
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
- "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
- "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.1.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
- "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
- "dev": true,
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
}
},
"jest-worker": {
- "version": "25.2.6",
- "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-25.2.6.tgz",
- "integrity": "sha512-FJn9XDUSxcOR4cwDzRfL1z56rUofNTFs539FGASpd50RHdb6EVkhxQqktodW2mI49l+W3H+tFJDotCHUQF6dmA==",
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-25.5.0.tgz",
+ "integrity": "sha512-/dsSmUkIy5EBGfv/IjjqmFxrNAUpBERfGs1oHROyD7yxjG/w+t0GOJDX8O1k32ySmd7+a5IhnJU2qQFcJ4n1vw==",
"dev": true,
"requires": {
"merge-stream": "^2.0.0",
"supports-color": "^7.0.0"
- },
- "dependencies": {
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true
- },
- "supports-color": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
- "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
- "dev": true,
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
}
},
- "js-base64": {
- "version": "2.5.1",
- "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.5.1.tgz",
- "integrity": "sha512-M7kLczedRMYX4L8Mdh4MzyAMM9O5osx+4FcOQuTvr3A9F2D9S5JXheN0ewNbrvK2UatkTRhL5ejGmGSjNMiZuw==",
- "dev": true
- },
"js-tokens": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz",
- "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=",
+ "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.13.1",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz",
- "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==",
+ "version": "3.14.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz",
+ "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==",
"dev": true,
"requires": {
"argparse": "^1.0.7",
@@ -5303,6 +4363,12 @@
"integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
"dev": true
},
+ "json-parse-better-errors": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
+ "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==",
+ "dev": true
+ },
"json-schema": {
"version": "0.2.3",
"resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
@@ -5315,6 +4381,12 @@
"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",
@@ -5322,10 +4394,13 @@
"dev": true
},
"json5": {
- "version": "0.5.1",
- "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz",
- "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=",
- "dev": true
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz",
+ "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==",
+ "dev": true,
+ "requires": {
+ "minimist": "^1.2.5"
+ }
},
"jsonfile": {
"version": "4.0.0",
@@ -5367,25 +4442,41 @@
"dev": true
},
"levn": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
- "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
+ "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.1.2",
- "type-check": "~0.3.2"
+ "prelude-ls": "^1.2.1",
+ "type-check": "~0.4.0"
}
},
+ "lines-and-columns": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz",
+ "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=",
+ "dev": true
+ },
"loader-utils": {
- "version": "0.2.17",
- "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz",
- "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=",
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz",
+ "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==",
"dev": true,
"requires": {
- "big.js": "^3.1.3",
- "emojis-list": "^2.0.0",
- "json5": "^0.5.0",
- "object-assign": "^4.0.1"
+ "big.js": "^5.2.2",
+ "emojis-list": "^3.0.0",
+ "json5": "^1.0.1"
+ },
+ "dependencies": {
+ "json5": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
+ "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+ "dev": true,
+ "requires": {
+ "minimist": "^1.2.0"
+ }
+ }
}
},
"locate-path": {
@@ -5398,9 +4489,14 @@
}
},
"lodash": {
- "version": "4.17.15",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
- "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==",
+ "version": "4.17.20",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz",
+ "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA=="
+ },
+ "lodash.memoize": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
+ "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=",
"dev": true
},
"lodash.sortby": {
@@ -5427,29 +4523,19 @@
"js-tokens": "^3.0.0 || ^4.0.0"
}
},
- "lru-cache": {
- "version": "4.1.5",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
- "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
- "dev": true,
- "requires": {
- "pseudomap": "^1.0.2",
- "yallist": "^2.1.2"
- }
- },
- "magic-string": {
- "version": "0.25.3",
- "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.3.tgz",
- "integrity": "sha512-6QK0OpF/phMz0Q2AxILkX2mFhi7m+WMwTRg0LQKq/WBB0cDP4rYH3Wp4/d3OTXlrPLVJT/RFqj8tFeAR4nk8AA==",
+ "lower-case": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.1.tgz",
+ "integrity": "sha512-LiWgfDLLb1dwbFQZsSglpRj+1ctGnayXz3Uv0/WO8n558JycT5fg6zkNcnW0G68Nn0aEldTFeEfmjCfmqry/rQ==",
"dev": true,
"requires": {
- "sourcemap-codec": "^1.4.4"
+ "tslib": "^1.10.0"
}
},
"make-dir": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.0.2.tgz",
- "integrity": "sha512-rYKABKutXa6vXTXhoV18cBE7PaewPXHe/Bdq4v+ZLMhxbWApkFFplT0LcbMW+6BbjnQXzZ/sAvSE/JdguApG5w==",
+ "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"
@@ -5463,6 +4549,12 @@
}
}
},
+ "make-error": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
+ "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==",
+ "dev": true
+ },
"makeerror": {
"version": "1.0.11",
"resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz",
@@ -5487,21 +4579,14 @@
"object-visit": "^1.0.0"
}
},
- "merge-source-map": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz",
- "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==",
+ "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": {
- "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
- }
+ "errno": "^0.1.3",
+ "readable-stream": "^2.0.1"
}
},
"merge-stream": {
@@ -5521,18 +4606,18 @@
}
},
"mime-db": {
- "version": "1.43.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz",
- "integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==",
+ "version": "1.44.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz",
+ "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==",
"dev": true
},
"mime-types": {
- "version": "2.1.26",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz",
- "integrity": "sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==",
+ "version": "2.1.27",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz",
+ "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==",
"dev": true,
"requires": {
- "mime-db": "1.43.0"
+ "mime-db": "1.44.0"
}
},
"mimic-fn": {
@@ -5587,9 +4672,9 @@
}
},
"ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
"dev": true
},
"nanomatch": {
@@ -5623,6 +4708,16 @@
"integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
"dev": true
},
+ "no-case": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.3.tgz",
+ "integrity": "sha512-ehY/mVQCf9BL0gKfsJBvFJen+1V//U+0HQMPrWct40ixE4jnv0bfvxDbWtAHL9EcaPEOJHVVYKoQn1TlZUB8Tw==",
+ "dev": true,
+ "requires": {
+ "lower-case": "^2.0.1",
+ "tslib": "^1.10.0"
+ }
+ },
"node-int64": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz",
@@ -5668,6 +4763,26 @@
}
}
},
+ "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.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "dev": true
+ }
+ }
+ },
"normalize-path": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
@@ -5695,12 +4810,6 @@
"integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
"dev": true
},
- "object-assign": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
- "dev": true
- },
"object-copy": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
@@ -5760,26 +4869,26 @@
}
},
"onetime": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz",
- "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==",
+ "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"
}
},
"optionator": {
- "version": "0.8.3",
- "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz",
- "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==",
+ "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.3.0",
- "prelude-ls": "~1.1.2",
- "type-check": "~0.3.2",
- "word-wrap": "~1.2.3"
+ "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"
}
},
"p-each-series": {
@@ -5818,22 +4927,73 @@
"integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
"dev": true
},
+ "param-case": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.3.tgz",
+ "integrity": "sha512-VWBVyimc1+QrzappRs7waeN2YmoZFCGXWASRYX1/rGHtXqEcrGEIDm+jqIwFa2fRXNgQEwrxaYuIrX0WcAguTA==",
+ "dev": true,
+ "requires": {
+ "dot-case": "^3.0.3",
+ "tslib": "^1.10.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-json": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.1.tgz",
+ "integrity": "sha512-ztoZ4/DYeXQq4E21v169sC8qWINGpcosGv9XhTDvg9/hWvx/zrFkc9BiWxR58OJLHGk28j5BL0SDLeV2WmFZlQ==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.0.0",
+ "error-ex": "^1.3.1",
+ "json-parse-better-errors": "^1.0.1",
+ "lines-and-columns": "^1.1.6"
+ }
+ },
"parse5": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.0.tgz",
"integrity": "sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ==",
"dev": true
},
+ "pascal-case": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.1.tgz",
+ "integrity": "sha512-XIeHKqIrsquVTQL2crjq3NfJUxmdLasn3TYOU0VBM+UX2a6ztAWBlJQBePLGY7VHW8+2dRadeIPK5+KImwTxQA==",
+ "dev": true,
+ "requires": {
+ "no-case": "^3.0.3",
+ "tslib": "^1.10.0"
+ }
+ },
"pascalcase": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
"integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=",
"dev": true
},
+ "path-case": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/path-case/-/path-case-3.0.3.tgz",
+ "integrity": "sha512-UMFU6UETFpCNWbIWNczshPrnK/7JAXBP2NYw80ojElbQ2+JYxdqWDBkvvqM93u4u6oLmuJ/tPOf2tM8KtXv4eg==",
+ "dev": true,
+ "requires": {
+ "dot-case": "^3.0.3",
+ "tslib": "^1.10.0"
+ }
+ },
"path-exists": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
- "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
+ "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
},
"path-is-absolute": {
@@ -5876,310 +5036,42 @@
}
},
"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"
- }
- },
- "pn": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz",
- "integrity": "sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==",
- "dev": true
- },
- "posix-character-classes": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
- "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=",
- "dev": true
- },
- "postcss": {
- "version": "7.0.17",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz",
- "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==",
- "dev": true,
- "requires": {
- "chalk": "^2.4.2",
- "source-map": "^0.6.1",
- "supports-color": "^6.1.0"
- },
- "dependencies": {
- "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"
- }
- },
- "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"
- },
- "dependencies": {
- "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"
- }
- }
- }
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "dev": true
- },
- "supports-color": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
- "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
- "dev": true,
- "requires": {
- "has-flag": "^3.0.0"
- }
- }
- }
- },
- "postcss-modules-local-by-default": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz",
- "integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=",
- "dev": true,
- "requires": {
- "css-selector-tokenizer": "^0.7.0",
- "postcss": "^6.0.1"
- },
- "dependencies": {
- "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"
- }
- },
- "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"
- }
- },
- "postcss": {
- "version": "6.0.23",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
- "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==",
- "dev": true,
- "requires": {
- "chalk": "^2.4.1",
- "source-map": "^0.6.1",
- "supports-color": "^5.4.0"
- }
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "dev": true
- },
- "supports-color": {
- "version": "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"
- }
- }
- }
- },
- "postcss-modules-scope": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz",
- "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=",
- "dev": true,
- "requires": {
- "css-selector-tokenizer": "^0.7.0",
- "postcss": "^6.0.1"
- },
- "dependencies": {
- "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"
- }
- },
- "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"
- }
- },
- "postcss": {
- "version": "6.0.23",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
- "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==",
- "dev": true,
- "requires": {
- "chalk": "^2.4.1",
- "source-map": "^0.6.1",
- "supports-color": "^5.4.0"
- }
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "dev": true
- },
- "supports-color": {
- "version": "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"
- }
- }
- }
- },
- "postcss-modules-sync": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/postcss-modules-sync/-/postcss-modules-sync-1.0.0.tgz",
- "integrity": "sha1-YZpxnPeN0WpINBNRQLMkz3czS+E=",
- "dev": true,
- "requires": {
- "generic-names": "^1.0.2",
- "icss-replace-symbols": "^1.0.2",
- "postcss": "^5.2.5",
- "postcss-modules-local-by-default": "^1.1.1",
- "postcss-modules-scope": "^1.0.2",
- "string-hash": "^1.1.0"
- },
- "dependencies": {
- "has-flag": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
- "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
- "dev": true
- },
- "postcss": {
- "version": "5.2.18",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
- "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
- "dev": true,
- "requires": {
- "chalk": "^1.1.3",
- "js-base64": "^2.1.9",
- "source-map": "^0.5.6",
- "supports-color": "^3.2.3"
- }
- },
- "supports-color": {
- "version": "3.2.3",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
- "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
- "dev": true,
- "requires": {
- "has-flag": "^1.0.0"
- }
- }
- }
- },
- "postcss-selector-parser": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz",
- "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==",
+ "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": {
- "cssesc": "^2.0.0",
- "indexes-of": "^1.0.1",
- "uniq": "^1.0.1"
+ "find-up": "^4.0.0"
}
},
- "prelude-ls": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
- "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=",
+ "pn": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz",
+ "integrity": "sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==",
+ "dev": true
+ },
+ "posix-character-classes": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
+ "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=",
"dev": true
},
- "prettier": {
- "version": "1.16.3",
- "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.16.3.tgz",
- "integrity": "sha512-kn/GU6SMRYPxUakNXhpP0EedT/KmaPzr0H5lIsDogrykbaxOpOfAFfk5XA7DZrJyMAv1wlMV3CPcZruGXVVUZw==",
+ "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
},
"pretty-format": {
- "version": "25.3.0",
- "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.3.0.tgz",
- "integrity": "sha512-wToHwF8bkQknIcFkBqNfKu4+UZqnrLn/Vr+wwKQwwvPzkBfDDKp/qIabFqdgtoi5PEnM8LFByVsOrHoa3SpTVA==",
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz",
+ "integrity": "sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==",
"dev": true,
"requires": {
- "@jest/types": "^25.3.0",
+ "@jest/types": "^25.5.0",
"ansi-regex": "^5.0.0",
"ansi-styles": "^4.0.0",
"react-is": "^16.12.0"
- },
- "dependencies": {
- "ansi-regex": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
- "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
- "dev": true
- },
- "ansi-styles": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
- "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
- "dev": true,
- "requires": {
- "@types/color-name": "^1.1.1",
- "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
- }
}
},
"private": {
@@ -6188,6 +5080,18 @@
"integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==",
"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
+ },
"prompts": {
"version": "2.3.2",
"resolved": "https://registry.npmjs.org/prompts/-/prompts-2.3.2.tgz",
@@ -6198,10 +5102,10 @@
"sisteransi": "^1.0.4"
}
},
- "pseudomap": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
- "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=",
+ "prr": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz",
+ "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=",
"dev": true
},
"psl": {
@@ -6232,11 +5136,14 @@
"integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
"dev": true
},
- "querystring": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz",
- "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=",
- "dev": true
+ "randombytes": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
+ "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "^5.1.0"
+ }
},
"react-is": {
"version": "16.13.1",
@@ -6244,33 +5151,64 @@
"integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
"dev": true
},
+ "read-pkg": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz",
+ "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==",
+ "dev": true,
+ "requires": {
+ "@types/normalize-package-data": "^2.4.0",
+ "normalize-package-data": "^2.5.0",
+ "parse-json": "^5.0.0",
+ "type-fest": "^0.6.0"
+ },
+ "dependencies": {
+ "type-fest": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz",
+ "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==",
+ "dev": true
+ }
+ }
+ },
+ "read-pkg-up": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz",
+ "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==",
+ "dev": true,
+ "requires": {
+ "find-up": "^4.1.0",
+ "read-pkg": "^5.2.0",
+ "type-fest": "^0.8.1"
+ }
+ },
+ "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"
+ }
+ },
"realpath-native": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/realpath-native/-/realpath-native-2.0.0.tgz",
"integrity": "sha512-v1SEYUOXXdbBZK8ZuNgO4TBjamPsiSgcFr0aP+tEKpQZK8vooEUqV6nm6Cv502mX4NF2EfsnVqtNAHG+/6Ur1Q==",
"dev": true
},
- "reflect-metadata": {
- "version": "0.1.13",
- "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz",
- "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==",
- "dev": true
- },
"regenerate": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz",
- "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==",
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.1.tgz",
+ "integrity": "sha512-j2+C8+NtXQgEKWk49MMP5P/u2GhnahTtVkRIHr5R5lVRlbKvmQ+oS+A5aLKWp2ma5VkT8sh6v+v4hbH0YHR66A==",
"dev": true
},
- "regenerate-unicode-properties": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz",
- "integrity": "sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA==",
- "dev": true,
- "requires": {
- "regenerate": "^1.4.0"
- }
- },
"regenerator-runtime": {
"version": "0.11.1",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
@@ -6298,6 +5236,12 @@
"safe-regex": "^1.1.0"
}
},
+ "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": "2.0.0",
"resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz",
@@ -6391,21 +5335,21 @@
}
},
"request-promise-core": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.3.tgz",
- "integrity": "sha512-QIs2+ArIGQVp5ZYbWD5ZLCY29D5CfWizP8eWnm8FoGD1TX61veauETVQbrV60662V0oFBkrDOuaBI8XgtuyYAQ==",
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz",
+ "integrity": "sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==",
"dev": true,
"requires": {
- "lodash": "^4.17.15"
+ "lodash": "^4.17.19"
}
},
"request-promise-native": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.8.tgz",
- "integrity": "sha512-dapwLGqkHtwL5AEbfenuzjTYg35Jd6KPytsC2/TLkVMz8rm+tNt72MGUWT1RP/aYawMpN6HqbNGBQaRcBtjQMQ==",
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.9.tgz",
+ "integrity": "sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g==",
"dev": true,
"requires": {
- "request-promise-core": "1.1.3",
+ "request-promise-core": "1.1.4",
"stealthy-require": "^1.1.1",
"tough-cookie": "^2.3.3"
},
@@ -6435,9 +5379,9 @@
"dev": true
},
"resolve": {
- "version": "1.12.0",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.12.0.tgz",
- "integrity": "sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w==",
+ "version": "1.17.0",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz",
+ "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==",
"dev": true,
"requires": {
"path-parse": "^1.0.6"
@@ -6471,123 +5415,69 @@
"dev": true
},
"rimraf": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
- "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+ "version": "2.6.3",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
+ "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
"dev": true,
"requires": {
"glob": "^7.1.3"
}
},
"rollup": {
- "version": "0.62.0",
- "resolved": "https://registry.npmjs.org/rollup/-/rollup-0.62.0.tgz",
- "integrity": "sha512-mZS0aIGfYzuJySJD78znu9/hCJsNfBzg4lDuZGMj0hFVcYHt2evNRHv8aqiu9/w6z6Qn8AQoVl4iyEjDmisGeA==",
- "dev": true,
- "requires": {
- "@types/estree": "0.0.39",
- "@types/node": "*"
- }
- },
- "rollup-plugin-buble": {
- "version": "0.19.8",
- "resolved": "https://registry.npmjs.org/rollup-plugin-buble/-/rollup-plugin-buble-0.19.8.tgz",
- "integrity": "sha512-8J4zPk2DQdk3rxeZvxgzhHh/rm5nJkjwgcsUYisCQg1QbT5yagW+hehYEW7ZNns/NVbDCTv4JQ7h4fC8qKGOKw==",
+ "version": "2.26.4",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.26.4.tgz",
+ "integrity": "sha512-6+qsGuP0MXGd7vlYmk72utm1MrgZj5GfXibGL+cRkKQ9+ZL/BnFThDl0D5bcl7AqlzMjAQXRAwZX1HVm22M/4Q==",
"dev": true,
"requires": {
- "buble": "^0.19.8",
- "rollup-pluginutils": "^2.3.3"
+ "fsevents": "~2.1.2"
}
},
"rollup-plugin-terser": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-1.0.1.tgz",
- "integrity": "sha512-VC6chT7QnrV6JzdgkPE0hP/atRBxaa3CPbVXfZJ8nJLjcidSdWftOst098RasYRUTKxJWAgdaJN1+uiZM6iffA==",
- "dev": true,
- "requires": {
- "@babel/code-frame": "^7.0.0-beta.47",
- "terser": "^3.7.5"
- }
- },
- "rollup-plugin-typescript2": {
- "version": "0.27.0",
- "resolved": "https://registry.npmjs.org/rollup-plugin-typescript2/-/rollup-plugin-typescript2-0.27.0.tgz",
- "integrity": "sha512-SRKG/Canve3cxBsqhY1apIBznqnX9X/WU3Lrq3XSwmTmFqccj3+//logLXFEmp+PYFNllSVng+f4zjqRTPKNkA==",
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.0.tgz",
+ "integrity": "sha512-p/N3lLiFusCjYTLfVkoaiRTOGr5AESEaljMPH12MhOtoMkmTBhIAfuadrcWy4am1U0vU4WTxO9fi0K09O4CboQ==",
"dev": true,
"requires": {
- "@rollup/pluginutils": "^3.0.8",
- "find-cache-dir": "^3.3.1",
- "fs-extra": "8.1.0",
- "resolve": "1.15.1",
- "tslib": "1.11.1"
+ "@babel/code-frame": "^7.10.4",
+ "jest-worker": "^26.2.1",
+ "serialize-javascript": "^4.0.0",
+ "terser": "^5.0.0"
},
"dependencies": {
- "resolve": {
- "version": "1.15.1",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz",
- "integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==",
+ "jest-worker": {
+ "version": "26.3.0",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.3.0.tgz",
+ "integrity": "sha512-Vmpn2F6IASefL+DVBhPzI2J9/GJUsqzomdeN+P+dK8/jKxbh8R3BtFnx3FIta7wYlPU62cpJMJQo4kuOowcMnw==",
"dev": true,
"requires": {
- "path-parse": "^1.0.6"
+ "@types/node": "*",
+ "merge-stream": "^2.0.0",
+ "supports-color": "^7.0.0"
}
- },
- "tslib": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz",
- "integrity": "sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==",
- "dev": true
}
}
},
- "rollup-plugin-vue": {
- "version": "4.7.2",
- "resolved": "https://registry.npmjs.org/rollup-plugin-vue/-/rollup-plugin-vue-4.7.2.tgz",
- "integrity": "sha512-RuAK+YTL81/iccOWoadqQz2TXqOogivjbvtCuU6EfVP9/E5XIjuMNVsVWHkSelZQblI1z2b5tshWL7XoiOfABQ==",
+ "rollup-plugin-typescript2": {
+ "version": "0.27.2",
+ "resolved": "https://registry.npmjs.org/rollup-plugin-typescript2/-/rollup-plugin-typescript2-0.27.2.tgz",
+ "integrity": "sha512-zarMH2F8oT/NO6p20gl/jkts+WxyzOlhOIUwUU/EDx5e6ewdDPS/flwLj5XFuijUCr64bZwqKuRVwCPdXXYefQ==",
"dev": true,
"requires": {
- "@vue/component-compiler": "^3.6",
- "@vue/component-compiler-utils": "^2.1.0",
- "debug": "^4.1.1",
- "hash-sum": "^1.0.2",
- "magic-string": "^0.25.2",
- "querystring": "^0.2.0",
- "rollup-pluginutils": "^2.0.1",
- "source-map": "0.7.3",
- "vue-runtime-helpers": "1.0.0"
+ "@rollup/pluginutils": "^3.1.0",
+ "find-cache-dir": "^3.3.1",
+ "fs-extra": "8.1.0",
+ "resolve": "1.17.0",
+ "tslib": "2.0.1"
},
"dependencies": {
- "debug": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
- "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
- "dev": true,
- "requires": {
- "ms": "^2.1.1"
- }
- },
- "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
- },
- "source-map": {
- "version": "0.7.3",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz",
- "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==",
+ "tslib": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.1.tgz",
+ "integrity": "sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ==",
"dev": true
}
}
},
- "rollup-pluginutils": {
- "version": "2.8.1",
- "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.1.tgz",
- "integrity": "sha512-J5oAoysWar6GuZo0s+3bZ6sVZAC0pfqKz68De7ZgDi5z63jOVZn1uJL/+z1jeKHNbGII8kAyHF5q8LnxSX5lQg==",
- "dev": true,
- "requires": {
- "estree-walker": "^0.6.1"
- }
- },
"rsvp": {
"version": "4.8.5",
"resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz",
@@ -6766,11 +5656,31 @@
}
},
"semver": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "version": "7.3.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz",
+ "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==",
"dev": true
},
+ "sentence-case": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.3.tgz",
+ "integrity": "sha512-ZPr4dgTcNkEfcGOMFQyDdJrTU9uQO1nb1cjf+nuzb6FxgMDgKddZOM29qEsB7jvsZSMruLRcL2KfM4ypKpa0LA==",
+ "dev": true,
+ "requires": {
+ "no-case": "^3.0.3",
+ "tslib": "^1.10.0",
+ "upper-case-first": "^2.0.1"
+ }
+ },
+ "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-blocking": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
@@ -6840,6 +5750,53 @@
"integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
"dev": true
},
+ "slice-ansi": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz",
+ "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.0",
+ "astral-regex": "^1.0.0",
+ "is-fullwidth-code-point": "^2.0.0"
+ },
+ "dependencies": {
+ "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"
+ }
+ },
+ "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
+ }
+ }
+ },
+ "snake-case": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.3.tgz",
+ "integrity": "sha512-WM1sIXEO+rsAHBKjGf/6R1HBBcgbncKS08d2Aqec/mrDSpU80SiOU41hO7ny6DToHSyrlwTYzQBIK1FPSx4Y3Q==",
+ "dev": true,
+ "requires": {
+ "dot-case": "^3.0.3",
+ "tslib": "^1.10.0"
+ }
+ },
"snapdragon": {
"version": "0.8.2",
"resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
@@ -6856,6 +5813,15 @@
"use": "^3.1.0"
},
"dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
"define-property": {
"version": "0.2.5",
"resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
@@ -6873,6 +5839,18 @@
"requires": {
"is-extendable": "^0.1.0"
}
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
}
}
},
@@ -6948,10 +5926,9 @@
}
},
"source-map": {
- "version": "0.5.7",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
- "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
- "dev": true
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
},
"source-map-resolve": {
"version": "0.5.3",
@@ -6967,21 +5944,13 @@
}
},
"source-map-support": {
- "version": "0.5.16",
- "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz",
- "integrity": "sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==",
+ "version": "0.5.19",
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz",
+ "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==",
"dev": true,
"requires": {
"buffer-from": "^1.0.0",
"source-map": "^0.6.0"
- },
- "dependencies": {
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "dev": true
- }
}
},
"source-map-url": {
@@ -6990,10 +5959,36 @@
"integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=",
"dev": true
},
- "sourcemap-codec": {
- "version": "1.4.6",
- "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.6.tgz",
- "integrity": "sha512-1ZooVLYFxC448piVLBbtOxFcXwnymH9oUF8nRd3CuYDVvkRBxRl6pB4Mtas5a4drtL+E8LDgFkQNcgIw6tc8Hg==",
+ "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.5",
+ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz",
+ "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==",
"dev": true
},
"split-string": {
@@ -7061,12 +6056,6 @@
"integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=",
"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-length": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/string-length/-/string-length-3.1.0.tgz",
@@ -7095,33 +6084,42 @@
}
},
"string-width": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
- "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
+ "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
"dev": true,
"requires": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.0"
+ "emoji-regex": "^7.0.1",
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^5.1.0"
},
"dependencies": {
"ansi-regex": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
- "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
+ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
"dev": true
},
"strip-ansi": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
- "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
"dev": true,
"requires": {
- "ansi-regex": "^5.0.0"
+ "ansi-regex": "^4.1.0"
}
}
}
},
+ "string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ },
"strip-ansi": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
@@ -7129,6 +6127,14 @@
"dev": true,
"requires": {
"ansi-regex": "^2.0.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+ "dev": true
+ }
}
},
"strip-bom": {
@@ -7149,12 +6155,21 @@
"integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
"dev": true
},
- "supports-color": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
- "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "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
},
+ "supports-color": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
+ "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ },
"supports-hyperlinks": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.1.0.tgz",
@@ -7163,23 +6178,6 @@
"requires": {
"has-flag": "^4.0.0",
"supports-color": "^7.0.0"
- },
- "dependencies": {
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true
- },
- "supports-color": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
- "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
- "dev": true,
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
}
},
"symbol-tree": {
@@ -7188,6 +6186,24 @@
"integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==",
"dev": true
},
+ "table": {
+ "version": "5.4.6",
+ "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz",
+ "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==",
+ "dev": true,
+ "requires": {
+ "ajv": "^6.10.2",
+ "lodash": "^4.17.14",
+ "slice-ansi": "^2.1.0",
+ "string-width": "^3.0.0"
+ }
+ },
+ "tapable": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz",
+ "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==",
+ "dev": true
+ },
"terminal-link": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz",
@@ -7199,32 +6215,14 @@
}
},
"terser": {
- "version": "3.17.0",
- "resolved": "https://registry.npmjs.org/terser/-/terser-3.17.0.tgz",
- "integrity": "sha512-/FQzzPJmCpjAH9Xvk2paiWrFq+5M6aVOf+2KRbwhByISDX/EujxsK+BAvrhb6H+2rtrLCHK9N01wO014vrIwVQ==",
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/terser/-/terser-5.2.0.tgz",
+ "integrity": "sha512-nZ9TWhBznZdlww3borgJyfQDrxzpgd0RlRNoxR63tMVry01lIH/zKQDTTiaWRMGowydfvSHMgyiGyn6A9PSkCQ==",
"dev": true,
"requires": {
- "commander": "^2.19.0",
+ "commander": "^2.20.0",
"source-map": "~0.6.1",
- "source-map-support": "~0.5.10"
- },
- "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-support": {
- "version": "0.5.13",
- "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz",
- "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==",
- "dev": true,
- "requires": {
- "buffer-from": "^1.0.0",
- "source-map": "^0.6.0"
- }
- }
+ "source-map-support": "~0.5.12"
}
},
"test-exclude": {
@@ -7238,6 +6236,12 @@
"minimatch": "^3.0.4"
}
},
+ "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
+ },
"throat": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz",
@@ -7251,10 +6255,9 @@
"dev": true
},
"to-fast-properties": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz",
- "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=",
- "dev": true
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
+ "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4="
},
"to-object-path": {
"version": "0.3.0",
@@ -7317,16 +6320,188 @@
"punycode": "^2.1.0"
}
},
- "tslib": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz",
- "integrity": "sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==",
+ "ts-jest": {
+ "version": "26.2.0",
+ "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-26.2.0.tgz",
+ "integrity": "sha512-9+y2qwzXdAImgLSYLXAb/Rhq9+K4rbt0417b8ai987V60g2uoNWBBmMkYgutI7D8Zhu+IbCSHbBtrHxB9d7xyA==",
+ "dev": true,
+ "requires": {
+ "@types/jest": "26.x",
+ "bs-logger": "0.x",
+ "buffer-from": "1.x",
+ "fast-json-stable-stringify": "2.x",
+ "jest-util": "26.x",
+ "json5": "2.x",
+ "lodash.memoize": "4.x",
+ "make-error": "1.x",
+ "mkdirp": "1.x",
+ "semver": "7.x",
+ "yargs-parser": "18.x"
+ },
+ "dependencies": {
+ "@jest/types": {
+ "version": "26.3.0",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.3.0.tgz",
+ "integrity": "sha512-BDPG23U0qDeAvU4f99haztXwdAg3hz4El95LkAM+tHAqqhiVzRpEGHHU8EDxT/AnxOrA65YjLBwDahdJ9pTLJQ==",
+ "dev": true,
+ "requires": {
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^3.0.0",
+ "@types/node": "*",
+ "@types/yargs": "^15.0.0",
+ "chalk": "^4.0.0"
+ }
+ },
+ "@types/istanbul-reports": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz",
+ "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==",
+ "dev": true,
+ "requires": {
+ "@types/istanbul-lib-report": "*"
+ }
+ },
+ "@types/jest": {
+ "version": "26.0.10",
+ "resolved": "https://registry.npmjs.org/@types/jest/-/jest-26.0.10.tgz",
+ "integrity": "sha512-i2m0oyh8w/Lum7wWK/YOZJakYF8Mx08UaKA1CtbmFeDquVhAEdA7znacsVSf2hJ1OQ/OfVMGN90pw/AtzF8s/Q==",
+ "dev": true,
+ "requires": {
+ "jest-diff": "^25.2.1",
+ "pretty-format": "^25.2.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"
+ }
+ },
+ "jest-util": {
+ "version": "26.3.0",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-26.3.0.tgz",
+ "integrity": "sha512-4zpn6bwV0+AMFN0IYhH/wnzIQzRaYVrz1A8sYnRnj4UXDXbOVtWmlaZkO9mipFqZ13okIfN87aDoJWB7VH6hcw==",
+ "dev": true,
+ "requires": {
+ "@jest/types": "^26.3.0",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.4",
+ "is-ci": "^2.0.0",
+ "micromatch": "^4.0.2"
+ }
+ },
+ "mkdirp": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
+ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
+ "dev": true
+ }
+ }
+ },
+ "ts-loader": {
+ "version": "7.0.5",
+ "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-7.0.5.tgz",
+ "integrity": "sha512-zXypEIT6k3oTc+OZNx/cqElrsbBtYqDknf48OZos0NQ3RTt045fBIU8RRSu+suObBzYB355aIPGOe/3kj9h7Ig==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.3.0",
+ "enhanced-resolve": "^4.0.0",
+ "loader-utils": "^1.0.2",
+ "micromatch": "^4.0.0",
+ "semver": "^6.0.0"
+ },
+ "dependencies": {
+ "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"
+ }
+ },
+ "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"
+ }
+ },
+ "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
+ },
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
+ "dev": true
+ },
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "dev": true
+ },
+ "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"
+ }
+ }
+ }
+ },
+ "ts-node": {
+ "version": "8.10.2",
+ "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.10.2.tgz",
+ "integrity": "sha512-ISJJGgkIpDdBhWVu3jufsWpK3Rzo7bdiIXJjQc0ynKxVOVcg2oIrf2H2cejminGrptVc6q6/uynAHNCuWGbpVA==",
+ "dev": true,
+ "requires": {
+ "arg": "^4.1.0",
+ "diff": "^4.0.1",
+ "make-error": "^1.1.1",
+ "source-map-support": "^0.5.17",
+ "yn": "3.1.1"
+ }
+ },
+ "ts-transformer-keys": {
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/ts-transformer-keys/-/ts-transformer-keys-0.4.2.tgz",
+ "integrity": "sha512-8WVoathKnPIeZbhKuqkBKdWLq1JuiZjT5EmaKobeMI5AHQZIVLI8vyU+1h7e1YiIEIvtBUbmZ12uj2cFbgj5qg==",
"dev": true
},
+ "tslib": {
+ "version": "1.13.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz",
+ "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q=="
+ },
"tslint": {
- "version": "6.1.1",
- "resolved": "https://registry.npmjs.org/tslint/-/tslint-6.1.1.tgz",
- "integrity": "sha512-kd6AQ/IgPRpLn6g5TozqzPdGNZ0q0jtXW4//hRcj10qLYBaa3mTUU2y2MCG+RXZm8Zx+KZi0eA+YCrMyNlF4UA==",
+ "version": "6.1.3",
+ "resolved": "https://registry.npmjs.org/tslint/-/tslint-6.1.3.tgz",
+ "integrity": "sha512-IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg==",
"dev": true,
"requires": {
"@babel/code-frame": "^7.0.0",
@@ -7340,7 +6515,7 @@
"mkdirp": "^0.5.3",
"resolve": "^1.3.2",
"semver": "^5.3.0",
- "tslib": "^1.10.0",
+ "tslib": "^1.13.0",
"tsutils": "^2.29.0"
},
"dependencies": {
@@ -7353,6 +6528,12 @@
"color-convert": "^1.9.0"
}
},
+ "builtin-modules": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
+ "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=",
+ "dev": true
+ },
"chalk": {
"version": "2.4.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
@@ -7364,6 +6545,33 @@
"supports-color": "^5.3.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
+ },
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
+ "dev": true
+ },
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "dev": true
+ },
"supports-color": {
"version": "5.5.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
@@ -7372,6 +6580,15 @@
"requires": {
"has-flag": "^3.0.0"
}
+ },
+ "tsutils": {
+ "version": "2.29.0",
+ "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz",
+ "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==",
+ "dev": true,
+ "requires": {
+ "tslib": "^1.8.1"
+ }
}
}
},
@@ -7386,20 +6603,33 @@
"tsutils": "^3.0.0"
},
"dependencies": {
+ "doctrine": {
+ "version": "0.7.2",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-0.7.2.tgz",
+ "integrity": "sha1-fLhgNZujvpDgQLJrcpzkv6ZUxSM=",
+ "dev": true,
+ "requires": {
+ "esutils": "^1.1.6",
+ "isarray": "0.0.1"
+ }
+ },
+ "esutils": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-1.1.6.tgz",
+ "integrity": "sha1-wBzKqa5LiXxtDD4hCuUvPHqEQ3U=",
+ "dev": true
+ },
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
+ "dev": true
+ },
"tslib": {
"version": "1.9.0",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.0.tgz",
"integrity": "sha512-f/qGG2tUkrISBlQZEjEqoZ3B2+npJjIf04H1wuAv9iA8i04Icp+61KRXxFdha22670NJopsZCIjhC3SnjPRKrQ==",
"dev": true
- },
- "tsutils": {
- "version": "3.17.1",
- "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.17.1.tgz",
- "integrity": "sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g==",
- "dev": true,
- "requires": {
- "tslib": "^1.8.1"
- }
}
}
},
@@ -7414,22 +6644,31 @@
},
"dependencies": {
"@types/node": {
- "version": "10.17.19",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.19.tgz",
- "integrity": "sha512-46/xThm3zvvc9t9/7M3AaLEqtOpqlYYYcCZbpYVAQHG20+oMZBkae/VMrn4BTi6AJ8cpack0mEXhGiKmDNbLrQ==",
+ "version": "10.17.28",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.28.tgz",
+ "integrity": "sha512-dzjES1Egb4c1a89C7lKwQh8pwjYmlOAG9dW1pBgxEk57tMrLnssOfEthz8kdkNaBd7lIqQx7APm5+mZ619IiCQ==",
"dev": true
}
}
},
"tsutils": {
- "version": "2.29.0",
- "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz",
- "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==",
+ "version": "3.17.1",
+ "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.17.1.tgz",
+ "integrity": "sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g==",
"dev": true,
"requires": {
"tslib": "^1.8.1"
}
},
+ "ttypescript": {
+ "version": "1.5.10",
+ "resolved": "https://registry.npmjs.org/ttypescript/-/ttypescript-1.5.10.tgz",
+ "integrity": "sha512-Hk7TRej1hM+p+Fo+Pyb/XK9pe9CAt3Sh5n5YRutxFS8hUgkh2u1Vd2K40kMcNP3WYhiVFBMqXwM/2E8O95Ep6g==",
+ "dev": true,
+ "requires": {
+ "resolve": "^1.9.0"
+ }
+ },
"tunnel-agent": {
"version": "0.6.0",
"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
@@ -7446,12 +6685,12 @@
"dev": true
},
"type-check": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
- "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
+ "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.1.2"
+ "prelude-ls": "^1.2.1"
}
},
"type-detect": {
@@ -7461,9 +6700,9 @@
"dev": true
},
"type-fest": {
- "version": "0.11.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz",
- "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==",
+ "version": "0.8.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
+ "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
"dev": true
},
"typedarray-to-buffer": {
@@ -7476,37 +6715,9 @@
}
},
"typescript": {
- "version": "3.8.3",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.8.3.tgz",
- "integrity": "sha512-MYlEfn5VrLNsgudQTVJeNaQFUAI7DkhnOjdpAp4T+ku1TfQClewlbSuTVHiA+8skNBgaf02TL/kLOvig4y3G8w==",
- "dev": true
- },
- "unicode-canonical-property-names-ecmascript": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz",
- "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==",
- "dev": true
- },
- "unicode-match-property-ecmascript": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz",
- "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==",
- "dev": true,
- "requires": {
- "unicode-canonical-property-names-ecmascript": "^1.0.4",
- "unicode-property-aliases-ecmascript": "^1.0.4"
- }
- },
- "unicode-match-property-value-ecmascript": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz",
- "integrity": "sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g==",
- "dev": true
- },
- "unicode-property-aliases-ecmascript": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz",
- "integrity": "sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw==",
+ "version": "3.9.7",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.7.tgz",
+ "integrity": "sha512-BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw==",
"dev": true
},
"union-value": {
@@ -7521,12 +6732,6 @@
"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
- },
"universalify": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
@@ -7573,6 +6778,24 @@
}
}
},
+ "upper-case": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-2.0.1.tgz",
+ "integrity": "sha512-laAsbea9SY5osxrv7S99vH9xAaJKrw5Qpdh4ENRLcaxipjKsiaBwiAsxfa8X5mObKNTQPsupSq0J/VIxsSJe3A==",
+ "dev": true,
+ "requires": {
+ "tslib": "^1.10.0"
+ }
+ },
+ "upper-case-first": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.1.tgz",
+ "integrity": "sha512-105J8XqQ+9RxW3l9gHZtgve5oaiR9TIwvmZAMAIZWRHe00T21cdvewKORTlOJf/zXW6VukuTshM+HXZNWz7N5w==",
+ "dev": true,
+ "requires": {
+ "tslib": "^1.10.0"
+ }
+ },
"uri-js": {
"version": "4.2.2",
"resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
@@ -7594,16 +6817,28 @@
"integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==",
"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
+ },
"uuid": {
"version": "3.4.0",
"resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
"integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
"dev": true
},
+ "v8-compile-cache": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz",
+ "integrity": "sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ==",
+ "dev": true
+ },
"v8-to-istanbul": {
- "version": "4.1.3",
- "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-4.1.3.tgz",
- "integrity": "sha512-sAjOC+Kki6aJVbUOXJbcR0MnbfjvBzwKZazEJymA2IX49uoOdEdk+4fBq5cXgYgiyKtAyrrJNtBZdOeDIF+Fng==",
+ "version": "4.1.4",
+ "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-4.1.4.tgz",
+ "integrity": "sha512-Rw6vJHj1mbdK8edjR7+zuJrpDtKIgNdAvTSAcpYfgMIw+u2dPDntD3dgN4XQFLU2/fvFQdzj+EeSGfd/jnY5fQ==",
"dev": true,
"requires": {
"@types/istanbul-lib-coverage": "^2.0.1",
@@ -7619,6 +6854,16 @@
}
}
},
+ "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"
+ }
+ },
"verror": {
"version": "1.10.0",
"resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
@@ -7630,33 +6875,35 @@
"extsprintf": "^1.2.0"
}
},
+ "vue": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/vue/-/vue-3.0.0.tgz",
+ "integrity": "sha512-ZMrAARZ32sGIaYKr7Fk2GZEBh/VhulSrGxcGBiAvbN4fhjl3tuJyNFbbbLFqGjndbLoBW66I2ECq8ICdvkKdJw==",
+ "requires": {
+ "@vue/compiler-dom": "3.0.0",
+ "@vue/runtime-dom": "3.0.0",
+ "@vue/shared": "3.0.0"
+ }
+ },
"vue-class-component": {
- "version": "6.3.2",
- "resolved": "https://registry.npmjs.org/vue-class-component/-/vue-class-component-6.3.2.tgz",
- "integrity": "sha512-cH208IoM+jgZyEf/g7mnFyofwPDJTM/QvBNhYMjqGB8fCsRyTf68rH2ISw/G20tJv+5mIThQ3upKwoL4jLTr1A==",
+ "version": "7.2.5",
+ "resolved": "https://registry.npmjs.org/vue-class-component/-/vue-class-component-7.2.5.tgz",
+ "integrity": "sha512-0CSftHY0bDTD+4FbYkuFf6+iKDjZ4h2in2YYJDRMk5daZIjrgT9LjFHvP7Rzqy9/s1pij3zDtTSLRUjsPWMwqg==",
"dev": true
},
"vue-property-decorator": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/vue-property-decorator/-/vue-property-decorator-6.1.0.tgz",
- "integrity": "sha512-NM4PYPOkOIO7SFtWiQqVrbp+ORzd7CJXcIz0X710PNW9pxGfbil0/x/ULFympzIUoHXBKN2dqoOQzh6oeMzpTQ==",
+ "version": "8.3.0",
+ "resolved": "https://registry.npmjs.org/vue-property-decorator/-/vue-property-decorator-8.3.0.tgz",
+ "integrity": "sha512-77YtTbZHd5CNiPzbqv51kEgL48yvD2dUDfF28vEyw3MbQ9bBAb/tDyFzskcqjNRbWyXk1vq4oM2CK/LfhxuIBg==",
"dev": true,
"requires": {
- "reflect-metadata": "^0.1.10",
- "vue-class-component": "^6.1.0"
+ "vue-class-component": "^7.1.0"
}
},
- "vue-runtime-helpers": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/vue-runtime-helpers/-/vue-runtime-helpers-1.0.0.tgz",
- "integrity": "sha512-DgwCNgIXkq1GJsWwtFOjA/K2nxpjyon/QqAut0EiwrMHBatAPbfdqksDdRoK15b5YrSJRa59rx3pc0L6V4udUA==",
- "dev": true
- },
- "vue-template-es2015-compiler": {
- "version": "1.9.1",
- "resolved": "https://registry.npmjs.org/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz",
- "integrity": "sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==",
- "dev": true
+ "vue-router": {
+ "version": "4.0.0-beta.10",
+ "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.0.0-beta.10.tgz",
+ "integrity": "sha512-y3YxV8rO9e4mgFqdyskytRMLzwbxR65ZaAW59xZL+T3M3kHX5p+/XB6j7K5cVm/EgZFOLRb+Zht3ShVaEonn/A=="
},
"w3c-hr-time": {
"version": "1.0.2",
@@ -7751,37 +6998,29 @@
"strip-ansi": "^6.0.0"
},
"dependencies": {
- "ansi-regex": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
- "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
+ "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
},
- "ansi-styles": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
- "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
- "dev": true,
- "requires": {
- "@types/color-name": "^1.1.1",
- "color-convert": "^2.0.1"
- }
+ "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
},
- "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==",
+ "string-width": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
+ "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
"dev": true,
"requires": {
- "color-name": "~1.1.4"
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.0"
}
},
- "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
- },
"strip-ansi": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
@@ -7799,6 +7038,15 @@
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
"dev": true
},
+ "write": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz",
+ "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==",
+ "dev": true,
+ "requires": {
+ "mkdirp": "^0.5.1"
+ }
+ },
"write-file-atomic": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz",
@@ -7812,9 +7060,9 @@
}
},
"ws": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/ws/-/ws-7.2.3.tgz",
- "integrity": "sha512-HTDl9G9hbkNDk98naoR/cHDws7+EyYMOdL1BmjsZXRUjf7d+MficC4B7HLUPlSiho0vg+CWKrGIt/VJBd1xunQ==",
+ "version": "7.3.1",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.3.1.tgz",
+ "integrity": "sha512-D3RuNkynyHmEJIpD2qrgVkc9DQ23OrN/moAwZX4L8DfvszsJxpjQuUq3LMx6HoYji9fbIOBY18XWBsAux1ZZUA==",
"dev": true
},
"xml": {
@@ -7841,16 +7089,10 @@
"integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==",
"dev": true
},
- "yallist": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
- "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=",
- "dev": true
- },
"yargs": {
- "version": "15.3.1",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.3.1.tgz",
- "integrity": "sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA==",
+ "version": "15.4.1",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz",
+ "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==",
"dev": true,
"requires": {
"cliui": "^6.0.0",
@@ -7863,18 +7105,58 @@
"string-width": "^4.2.0",
"which-module": "^2.0.0",
"y18n": "^4.0.0",
- "yargs-parser": "^18.1.1"
+ "yargs-parser": "^18.1.2"
+ },
+ "dependencies": {
+ "emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "dev": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "dev": true
+ },
+ "string-width": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
+ "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
+ "dev": true,
+ "requires": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
+ "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^5.0.0"
+ }
+ }
}
},
"yargs-parser": {
- "version": "18.1.2",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.2.tgz",
- "integrity": "sha512-hlIPNR3IzC1YuL1c2UwwDKpXlNFBqD1Fswwh1khz5+d8Cq/8yc/Mn0i+rQXduu8hcrFKvO7Eryk+09NecTQAAQ==",
+ "version": "18.1.3",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
+ "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
"dev": true,
"requires": {
"camelcase": "^5.0.0",
"decamelize": "^1.2.0"
}
+ },
+ "yn": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
+ "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==",
+ "dev": true
}
}
}
diff --git a/package.json b/package.json
index db5bfab..a4ac32c 100644
--- a/package.json
+++ b/package.json
@@ -1,23 +1,22 @@
{
"name": "@modus/ionic-vue",
- "version": "1.3.6",
- "description": "Ionic integration adapters for Vue",
+ "version": "3.0.0-beta.1",
+ "description": "Vue 3 integration adapters for Ionic 5",
"homepage": "https://moduscreate.com",
"author": "Michael Tintiuc ",
"user": "michaeltintiuc",
"license": "MIT",
"repository": "github:ModusCreateOrg/ionic-vue",
- "main": "dist/ionic-vue.common.js",
+ "main": "dist/ionic-vue.cjs.js",
"typings": "types/index.d.ts",
- "module": "dist/ionic-vue.esm.js",
+ "module": "dist/ionic-vue.js",
"unpkg": "dist/ionic-vue.js",
"jsdelivr": "dist/ionic-vue.js",
"files": [
- "src/",
"types/",
- "dist/*.js",
- "dist/*.ts"
+ "dist/"
],
+ "sideEffects": false,
"bugs": {
"url": "https://github.com/ModusCreateOrg/ionic-vue/issues"
},
@@ -44,44 +43,59 @@
"cordova",
"capacitor",
"app",
- "webapp"
+ "webapp",
+ "ionic5",
+ "vuejs3",
+ "vue3"
],
"scripts": {
- "dev": "rollup -c ./build/rollup.config.js",
+ "dev": "rollup -c ./build/rollup.config.js && npm run vetur",
"watch": "rollup -w -c ./build/rollup.config.js",
- "prod": "npm run clean && NODE_ENV=production rollup -c ./build/rollup.config.js --configProd",
- "lint": "tslint --project .",
- "lint.fix": "tslint --project . --fix",
+ "prod": "npm run lint && npm run clean && NODE_ENV=production rollup -c ./build/rollup.config.js --configProd && npm run vetur",
+ "lint": "eslint --ext .ts src/** --fix",
"test": "jest --coverage --verbose",
- "install.peer": "npm i --no-save vue vue-template-compiler vue-router @ionic/core",
- "clean": "node ./scripts/clean.js"
+ "clean": "ts-node --dir ./scripts clean.ts",
+ "vetur": "ts-node -C ttypescript --dir ./scripts vetur.ts"
},
"devDependencies": {
- "@vue/test-utils": "^1.0.0-beta.24",
- "babel-jest": "^25.3.0",
+ "@ionic/docs": "^5.3.1",
+ "@rollup/plugin-node-resolve": "^9.0.0",
+ "@types/jest": "^25.2.3",
+ "@types/node": "^14.0.27",
+ "@typescript-eslint/parser": "^3.9.0",
+ "@vue/test-utils": "^2.0.0-beta.2",
+ "babel-jest": "^25.5.1",
"babel-preset-env": "^1.7.0",
- "jest": "^25.3.0",
+ "change-case": "^4.1.1",
+ "eslint": "^7.6.0",
+ "jest": "^25.5.4",
"jest-sonar-reporter": "^2.0.0",
"jest-vue-preprocessor": "^1.4.0",
- "rollup": "^0.62.0",
- "rollup-plugin-buble": "^0.19.2",
- "rollup-plugin-terser": "^1.0.1",
- "rollup-plugin-typescript2": "^0.27.0",
- "rollup-plugin-vue": "^4.3.0",
- "tslib": "^1.11.1",
- "tslint": "^6.1.1",
+ "rollup": "^2.26.4",
+ "rollup-plugin-terser": "^7.0.0",
+ "rollup-plugin-typescript2": "^0.27.2",
+ "ts-jest": "^26.1.4",
+ "ts-loader": "^7.0.5",
+ "ts-node": "^8.10.2",
+ "ts-transformer-keys": "^0.4.2",
+ "tslib": "^1.13.0",
+ "tslint": "^6.1.3",
"tslint-ionic-rules": "^0.0.21",
- "typescript": "^3.8.3"
+ "ttypescript": "^1.5.10",
+ "typescript": "^3.9.7"
},
- "peerDependencies": {
- "vue": "^2.6.11",
- "vue-template-compiler": "^2.6.11",
- "vue-router": "^3.1.6",
- "@ionic/core": "^5.0.7"
+ "dependencies": {
+ "@ionic/core": "^0.4.0",
+ "vue": "^3.0.0",
+ "vue-router": "^4.0.0-beta.10"
},
"jestSonar": {
"reportPath": "reports",
"reportFile": "test-report.xml",
"indent": 4
+ },
+ "vetur": {
+ "tags": "dist/vetur-tags.json",
+ "attributes": "dist/vetur-attributes.json"
}
}
diff --git a/scripts/clean.js b/scripts/clean.js
deleted file mode 100644
index 54708e6..0000000
--- a/scripts/clean.js
+++ /dev/null
@@ -1,9 +0,0 @@
-const fs = require('fs-extra')
-const path = require('path')
-
-const cleanDirs = ['dist']
-
-cleanDirs.forEach(dir => {
- const cleanDir = path.join(__dirname, '../', dir)
- fs.removeSync(cleanDir)
-})
diff --git a/scripts/clean.ts b/scripts/clean.ts
new file mode 100644
index 0000000..a7871f9
--- /dev/null
+++ b/scripts/clean.ts
@@ -0,0 +1,7 @@
+import fs from 'fs';
+import path from 'path';
+
+['dist', 'types'].forEach(dir => {
+ fs.rmdirSync(path.join(__dirname, '../', dir), { recursive: true });
+ console.info(`Removed ${dir}/`);
+});
diff --git a/scripts/tsconfig.json b/scripts/tsconfig.json
new file mode 100644
index 0000000..e665597
--- /dev/null
+++ b/scripts/tsconfig.json
@@ -0,0 +1,12 @@
+{
+ "compilerOptions": {
+ "alwaysStrict": true,
+ "strict": true,
+ "esModuleInterop": true,
+ "plugins": [
+ {
+ "transform": "ts-transformer-keys/transformer"
+ }
+ ]
+ }
+}
diff --git a/scripts/vetur.ts b/scripts/vetur.ts
new file mode 100644
index 0000000..ef4cfe3
--- /dev/null
+++ b/scripts/vetur.ts
@@ -0,0 +1,111 @@
+import fs from 'fs';
+import path from 'path';
+import docs from '@ionic/docs';
+import { paramCase } from 'change-case';
+import { IonRouterView } from '../src/components/router-outlet';
+
+const ignoredProps = ['component', 'componentProps', 'delegate'];
+const ignoredTags = [
+ 'ion-nav',
+ 'ion-nav-link',
+ 'ion-router',
+ 'ion-route',
+ 'ion-route-redirect',
+];
+const navigableTags = ['href', 'default-href'];
+const tags: { [key: string]: any } = {
+ 'ion-page': {
+ description:
+ '`IonPage` is a specialized component that is meant to be the parent container for an Ionic Page, which typically consists of `IonHeader` and `IonContent` components.',
+ },
+ 'ion-router-view': {
+ description:
+ '`IonRouterView` is built on top of official `` that renders the matched component for the current location with added logic for providing a stacked navigation, animating views in and out and swipe-back gesture. Components rendered by `` can also contain their own `` to render nested routes and tabbed navigation.',
+ attributes: (IonRouterView.props as string[]).map(p => paramCase(p)),
+ },
+};
+const attrs: { [key: string]: any } = {
+ replace: {
+ type: 'boolean',
+ description:
+ 'Setting replace prop will call `router.replace()` instead of `router.push()` when clicked, so the navigation will replace the current history entry.',
+ },
+ 'ion-router-view/name': {
+ type: 'string | symbol',
+ description:
+ 'When a `` has a `name` prop, it will render the component with the corresponding name in the matched route record\'s components option.',
+ },
+ 'ion-router-view/route': {
+ description:
+ 'When a `` has a `route` prop, it will use that resolved Route Location instead of the current location.',
+ },
+};
+
+docs.components
+ .filter(c => !ignoredTags.includes(c.tag))
+ .forEach(c => {
+ let tagName = c.tag;
+ if (tagName === 'ion-router-outlet') {
+ tagName = 'ion-router-view';
+ } else {
+ const description =
+ tagName !== 'ion-router-link'
+ ? c.docs
+ : 'The router link component is used for navigating to a specified link. Similar to the browser\'s anchor tag, it can accept a href for the location, and a direction for the transition animation.';
+
+ tags[tagName] = {
+ description,
+ attributes: c.props
+ .filter(p => !ignoredProps.includes(p.name))
+ .map(p => p.attr || paramCase(p.name)),
+ };
+ }
+
+ c.props
+ .filter(p => !ignoredProps.includes(p.name))
+ .map(p => {
+ if (
+ navigableTags.includes(p.attr || '') &&
+ tagName !== 'ion-tab-button'
+ ) {
+ tags[tagName].attributes.push('replace');
+ }
+
+ const options: string[] = [];
+ p.values.forEach(v => {
+ if (v.value) {
+ options.push(v.value);
+ }
+ });
+
+ attrs[`${tagName}/${p.attr || paramCase(p.name)}`] = {
+ type: p.type,
+ description: p.docs.replace(
+ /router-outlet|ion-nav/g,
+ 'ion-router-view'
+ ),
+ ...(options.length ? { options } : {}),
+ };
+ });
+ });
+
+if (!fs.existsSync(path.resolve(__dirname, '../dist'))) {
+ fs.mkdirSync(path.resolve(__dirname, '../dist'));
+}
+
+writeOutput(tags, 'tags');
+writeOutput(attrs, 'attributes');
+
+function writeOutput(data: {}, type: string) {
+ fs.writeFile(
+ path.resolve(__dirname, `../dist/vetur-${type}.json`),
+ JSON.stringify(data, null, 2),
+ err => {
+ if (err) {
+ console.error(err);
+ } else {
+ console.info(`Generated vetur dist/vetur-${type}.json`);
+ }
+ }
+ );
+}
diff --git a/src/app-initialize.ts b/src/app-initialize.ts
deleted file mode 100644
index d6b7dbb..0000000
--- a/src/app-initialize.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-import { IonicConfig } from '@ionic/core';
-import { applyPolyfills, defineCustomElements } from '@ionic/core/loader';
-import { IonicWindow } from './interfaces';
-
-export async function appInitialize(config?: IonicConfig) {
- const win: IonicWindow = window as any;
- const Ionic = win?.Ionic || {};
-
- Ionic.config = config;
-
- await applyPolyfills();
- defineCustomElements(win);
-}
diff --git a/src/components/back-button/index.ts b/src/components/back-button/index.ts
new file mode 100644
index 0000000..f798792
--- /dev/null
+++ b/src/components/back-button/index.ts
@@ -0,0 +1,40 @@
+import { keys } from 'ts-transformer-keys';
+import { defineComponent, h, ref } from 'vue';
+import { useRouter } from 'vue-router';
+import { JSX } from '@ionic/core';
+import { getComponentClasses, getElementClasses, splitPropsAndEvents } from '../../utils';
+
+export const IonBackButton = defineComponent((props, { attrs }) => {
+ const router = useRouter();
+ const buttonRef = ref();
+ const classes = new Set(getComponentClasses(attrs.class));
+
+ return () => {
+ getComponentClasses(attrs.class).forEach(value => {
+ classes.add(value);
+ });
+ return h('ion-back-button', {
+ ...props,
+ ref: buttonRef,
+ class: getElementClasses(buttonRef, classes),
+ onClick(e: MouseEvent) {
+ attrs.onClick && (attrs.onClick as any)(e);
+
+ if (e.defaultPrevented || !router) {
+ return;
+ }
+
+ router.animationOverride = props.routerAnimation;
+
+ props.defaultHref
+ ? router.replace(props.defaultHref)
+ : router.history.go(-1);
+ }
+ });
+ };
+});
+
+const data = splitPropsAndEvents(keys());
+IonBackButton.displayName = 'IonBackButton';
+IonBackButton.props = data.props;
+IonBackButton.emits = ['onClick', ...data.events];
diff --git a/src/components/containers.ts b/src/components/containers.ts
new file mode 100644
index 0000000..951c4d1
--- /dev/null
+++ b/src/components/containers.ts
@@ -0,0 +1,63 @@
+import { keys } from 'ts-transformer-keys';
+import { JSX } from '@ionic/core';
+import { defineContainer, defineNavigableContainer } from '../utils';
+
+export const IonApp = /*@__PURE__*/defineContainer('ion-app', 'IonApp', keys());
+export const IonAvatar = /*@__PURE__*/defineContainer('ion-avatar', 'IonAvatar', keys());
+export const IonBackdrop = /*@__PURE__*/defineContainer('ion-backdrop', 'IonBackdrop', keys());
+export const IonBadge = /*@__PURE__*/defineContainer('ion-badge', 'IonBadge', keys());
+export const IonButton = /*@__PURE__*/defineNavigableContainer('ion-button', 'IonButton', keys());
+export const IonButtons = /*@__PURE__*/defineContainer('ion-buttons', 'IonButtons', keys());
+export const IonCard = /*@__PURE__*/defineNavigableContainer('ion-card', 'IonCard', keys());
+export const IonCardContent = /*@__PURE__*/defineContainer('ion-card-content', 'IonCardContent', keys());
+export const IonCardHeader = /*@__PURE__*/defineContainer('ion-card-header', 'IonCardHeader', keys());
+export const IonCardSubtitle = /*@__PURE__*/defineContainer('ion-card-subtitle', 'IonCardSubtitle', keys());
+export const IonCardTitle = /*@__PURE__*/defineContainer('ion-card-title', 'IonCardTitle', keys());
+export const IonChip = /*@__PURE__*/defineContainer('ion-chip', 'IonChip', keys());
+export const IonCol = /*@__PURE__*/defineContainer('ion-col', 'IonCol', keys());
+export const IonContent = /*@__PURE__*/defineContainer('ion-content', 'IonContent', keys());
+export const IonFab = /*@__PURE__*/defineContainer('ion-fab', 'IonFab', keys());
+export const IonFabButton = /*@__PURE__*/defineNavigableContainer('ion-fab-button', 'IonFabButton', keys());
+export const IonFabList = /*@__PURE__*/defineContainer('ion-fab-list', 'IonFabList', keys());
+export const IonFooter = /*@__PURE__*/defineContainer('ion-footer', 'IonFooter', keys());
+export const IonGrid = /*@__PURE__*/defineContainer('ion-grid', 'IonGrid', keys());
+export const IonHeader = /*@__PURE__*/defineContainer('ion-header', 'IonHeader', keys());
+export const IonImg = /*@__PURE__*/defineContainer('ion-img', 'IonImg', keys());
+export const IonInfiniteScroll = /*@__PURE__*/defineContainer('ion-infinite-scroll', 'IonInfiniteScroll', keys());
+export const IonInfiniteScrollContent = /*@__PURE__*/defineContainer('ion-infinite-scroll-content', 'IonInfiniteScrollContent', keys());
+export const IonItem = /*@__PURE__*/defineNavigableContainer('ion-item', 'IonItem', keys());
+export const IonItemDivider = /*@__PURE__*/defineContainer('ion-item-divider', 'IonItemDivider', keys());
+export const IonItemGroup = /*@__PURE__*/defineContainer('ion-item-group', 'IonItemGroup', keys());
+export const IonItemOption = /*@__PURE__*/defineNavigableContainer('ion-item-option', 'IonItemOption', keys());
+export const IonItemOptions = /*@__PURE__*/defineContainer('ion-item-options', 'IonItemOptions', keys());
+export const IonItemSliding = /*@__PURE__*/defineContainer('ion-item-sliding', 'IonItemSliding', keys());
+export const IonLabel = /*@__PURE__*/defineContainer('ion-label', 'IonLabel', keys());
+export const IonList = /*@__PURE__*/defineContainer('ion-list', 'IonList', keys());
+export const IonListHeader = /*@__PURE__*/defineContainer('ion-list-header', 'IonListHeader', keys());
+export const IonMenu = /*@__PURE__*/defineContainer('ion-menu', 'IonMenu', keys());
+export const IonMenuButton = /*@__PURE__*/defineContainer('ion-menu-button', 'IonMenuButton', keys());
+export const IonMenuToggle = /*@__PURE__*/defineContainer('ion-menu-toggle', 'IonMenuToggle', keys());
+export const IonNote = /*@__PURE__*/defineContainer('ion-note', 'IonNote', keys());
+export const IonPickerColumn = /*@__PURE__*/defineContainer('ion-picker-column', 'IonPickerColumn', keys());
+export const IonProgressBar = /*@__PURE__*/defineContainer('ion-progress-bar', 'IonProgressBar', keys());
+export const IonRefresher = /*@__PURE__*/defineContainer('ion-refresher', 'IonRefresher', keys());
+export const IonRefresherContent = /*@__PURE__*/defineContainer('ion-refresher-content', 'IonRefresherContent', keys());
+export const IonReorder = /*@__PURE__*/ defineContainer('ion-reorder', 'IonReorder', keys());
+export const IonReorderGroup = /*@__PURE__*/defineContainer('ion-reorder-group', 'IonReorderGroup', keys());
+export const IonRippleEffect = /*@__PURE__*/defineContainer('ion-ripple-effect', 'IonRippleEffect', keys());
+export const IonRouterLink = /*@__PURE__*/defineNavigableContainer('ion-router-link', 'IonRouterLink', keys());
+export const IonRow = /*@__PURE__*/defineContainer('ion-row', 'IonRow', keys());
+export const IonSegment = /*@__PURE__*/defineContainer('ion-segment', 'IonSegment', keys());
+export const IonSegmentButton = /*@__PURE__*/defineContainer('ion-segment-button', 'IonSegmentButton', keys());
+export const IonSelectOption = /*@__PURE__*/defineContainer('ion-select-option', 'IonSelectOption', keys());
+export const IonSelectPopover = /*@__PURE__*/defineContainer('ion-select-popover', 'IonSelectPopover', keys());
+export const IonSkeletonText = /*@__PURE__*/defineContainer('ion-skeleton-text', 'IonSkeletonText', keys());
+export const IonSlide = /*@__PURE__*/defineContainer('ion-slide', 'IonSlide', keys());
+export const IonSlides = /*@__PURE__*/defineContainer('ion-slides', 'IonSlides', keys());
+export const IonSpinner = /*@__PURE__*/defineContainer('ion-spinner', 'IonSpinner', keys());
+export const IonSplitPane = /*@__PURE__*/defineContainer('ion-split-pane', 'IonSplitPane', keys());
+export const IonText = /*@__PURE__*/defineContainer('ion-text', 'IonText', keys());
+export const IonThumbnail = /*@__PURE__*/defineContainer('ion-thumbnail', 'IonThumbnail', keys());
+export const IonTitle = /*@__PURE__*/defineContainer('ion-title', 'IonTitle', keys());
+export const IonToolbar = /*@__PURE__*/defineContainer('ion-toolbar', 'IonToolbar', keys());
+export const IonVirtualScroll = /*@__PURE__*/defineContainer('ion-virtual-scroll', 'IonVirtualScroll', keys());
diff --git a/src/components/icon/index.ts b/src/components/icon/index.ts
new file mode 100644
index 0000000..b52c589
--- /dev/null
+++ b/src/components/icon/index.ts
@@ -0,0 +1,27 @@
+import { defineComponent, h, ref } from 'vue';
+import { JSX, isPlatform } from '@ionic/core';
+import { keys } from 'ts-transformer-keys';
+import { getComponentClasses, getElementClasses, splitPropsAndEvents } from '../../utils';
+
+export const IonIcon = defineComponent((props, { attrs }) => {
+ const icon = (isPlatform(window, 'ios') ? props.ios ?? props.md : props.md ?? props.ios) ?? props.icon;
+ const iconRef = ref();
+ const classes = new Set(getComponentClasses(attrs.class));
+
+ return () => {
+ getComponentClasses(attrs.class).forEach(value => {
+ classes.add(value);
+ });
+ return h('ion-icon', {
+ ...props,
+ icon,
+ ref: iconRef,
+ class: getElementClasses(iconRef, classes),
+ });
+ };
+});
+
+const data = splitPropsAndEvents(keys());
+IonIcon.displayName = 'IonIcon';
+IonIcon.props = data.props;
+IonIcon.emits = data.events;
diff --git a/src/components/index.ts b/src/components/index.ts
index 1fb9cc0..7c4b36e 100644
--- a/src/components/index.ts
+++ b/src/components/index.ts
@@ -1,3 +1,8 @@
export * from './overlays';
export * from './inputs';
-export * from './navigation';
+export * from './containers';
+export * from './router-outlet';
+export * from './back-button';
+export * from './tabs';
+export * from './icon';
+export * from './page';
diff --git a/src/components/inputs.ts b/src/components/inputs.ts
index f2312d4..aa9dd8d 100644
--- a/src/components/inputs.ts
+++ b/src/components/inputs.ts
@@ -1,39 +1,31 @@
-import { createInputComponent } from '../utils';
+import { keys } from 'ts-transformer-keys';
+import { JSX } from '@ionic/core';
+import { defineInput } from '../utils';
-export const IonCheckboxVue = createInputComponent(
- 'IonCheckboxVue',
+export const IonCheckbox = /*@__PURE__*/defineInput(
'ion-checkbox',
- 'ionChange',
+ 'IonCheckbox',
+ keys(),
+ 'onIonChange',
'checked'
);
-export const IonDatetimeVue = createInputComponent(
- 'IonDatetimeVue',
- 'ion-datetime'
-);
-export const IonInputVue = createInputComponent(
- 'IonInputVue',
- 'ion-input',
- 'ionInput'
-);
-export const IonRadioVue = createInputComponent(
- 'IonRadioVue',
- 'ion-radio',
- 'ionSelect'
-);
-export const IonRangeVue = createInputComponent('IonRangeVue', 'ion-range');
-export const IonSearchbarVue = createInputComponent(
- 'IonSearchbarVue',
+export const IonDatetime = /*@__PURE__*/defineInput('ion-datetime', 'IonDatetime', keys());
+export const IonInput = /*@__PURE__*/defineInput('ion-input', 'IonInput', keys(), 'onIonInput');
+export const IonRadio = /*@__PURE__*/defineInput('ion-radio', 'IonRadio', keys(), 'onIonSelect');
+export const IonRadioGroup = /*@__PURE__*/defineInput('ion-radio-group', 'IonRadioGroup', keys(), 'onIonChange');
+export const IonRange = /*@__PURE__*/defineInput('ion-range', 'IonRange', keys());
+export const IonSearchbar = /*@__PURE__*/defineInput(
'ion-searchbar',
- 'ionInput'
-);
-export const IonSelectVue = createInputComponent('IonSelectVue', 'ion-select');
-export const IonTextareaVue = createInputComponent(
- 'IonTextareaVue',
- 'ion-textarea'
+ 'IonSearchbar',
+ keys(),
+ 'onIonInput'
);
-export const IonToggleVue = createInputComponent(
- 'IonToggleVue',
+export const IonSelect = /*@__PURE__*/defineInput('ion-select', 'IonSelect', keys());
+export const IonTextarea = /*@__PURE__*/defineInput('ion-textarea', 'IonTextarea', keys());
+export const IonToggle = /*@__PURE__*/defineInput(
'ion-toggle',
- 'ionChange',
+ 'IonToggle',
+ keys(),
+ 'onIonChange',
'checked'
);
diff --git a/src/components/ion-vue-router.ts b/src/components/ion-vue-router.ts
deleted file mode 100644
index e139f20..0000000
--- a/src/components/ion-vue-router.ts
+++ /dev/null
@@ -1,202 +0,0 @@
-import Vue, { CreateElement, RenderContext, VNode, VNodeData } from 'vue';
-import { NavDirection } from '@ionic/core';
-
-type TransitionDone = () => void;
-
-interface KeepAliveProps {
- include?: string | string[] | RegExp;
- exclude?: string | string[] | RegExp;
- max?: number;
-}
-
-interface Props {
- name?: string;
- animated?: boolean;
- keepAlive?: KeepAliveProps;
-}
-
-// Component entering the view
-let enteringEl: HTMLElement;
-
-export default {
- name: 'IonVueRouter',
- functional: true,
-
- props: {
- // Router view name
- name: { default: 'default', type: String },
- // Disable transitions
- animated: { default: true, type: Boolean },
- // keep-alive props
- keepAlive: { type: [String, Object as () => KeepAliveProps] }
- },
-
- render(h: CreateElement, { parent, props, data, children }: RenderContext) {
- if (!parent.$router) {
- throw new Error(
- 'IonTabs requires an instance of either VueRouter or IonicVueRouter'
- );
- }
-
- const ionRouterOutletData: VNodeData = {
- ...data,
- ref: 'ionRouterOutlet',
- on: { click: (event: Event) => catchIonicGoBack(parent, event) }
- };
- const routerViewData: VNodeData = { props: { name: props.name } };
- const transitionData: VNodeData = {
- props: { css: false, mode: 'in-out' },
- on: {
- leave: (el: HTMLElement, done: TransitionDone) => {
- leave(parent, props as Props, el, done);
- },
- beforeEnter,
- enter,
- afterEnter,
- beforeLeave,
- afterLeave,
- enterCancelled,
- leaveCancelled
- }
- };
- const routerViewNode: VNode = h('router-view', routerViewData, children);
- const keepAliveNode: VNode = h(
- 'keep-alive',
- { props: { ...props.keepAlive } },
- [routerViewNode]
- );
- const transitionNode: VNode = h('transition', transitionData, [
- props.keepAlive === undefined ? routerViewNode : keepAliveNode
- ]);
-
- return h('ion-router-outlet', ionRouterOutletData, [transitionNode]);
- }
-};
-
-function catchIonicGoBack(parent: Vue, event: Event): void {
- // In case of nested ion-vue-routers run only once
- event.stopImmediatePropagation();
-
- if (!event.target) return;
-
- // We only care for the event coming from Ionic's back button
- const backButton = (event.target as HTMLElement).closest(
- 'ion-back-button'
- ) as HTMLIonBackButtonElement;
- if (!backButton) return;
-
- const $router = parent.$router;
- let defaultHref: string;
-
- // Explicitly override router direction to always trigger a back transition
- $router.directionOverride = 'back';
-
- // If we can go back - do so
- if ($router.canGoBack()) {
- event.preventDefault();
- $router.back();
- return;
- }
-
- // If there's a default fallback - use it
- defaultHref = backButton.defaultHref as string;
- if (undefined !== defaultHref) {
- event.preventDefault();
- $router.push(defaultHref);
- }
-}
-
-// Transition when we leave the route
-function leave(
- parent: Vue,
- props: Props,
- el: HTMLElement,
- done: TransitionDone
-) {
- const promise = transition(parent, props, el);
-
- // Skip any transition if we don't get back a Promise
- if (!promise) {
- done();
- return;
- }
-
- // Perform navigation once the transition was finished
- parent.$router.transition = new Promise(resolve => {
- promise
- .then(() => {
- resolve();
- done();
- })
- .catch(console.error);
- });
-}
-
-// Trigger the ionic/core transitions
-function transition(parent: Vue, props: Props, leavingEl: HTMLElement) {
- const ionRouterOutlet = parent.$refs
- .ionRouterOutlet as HTMLIonRouterOutletElement;
-
- // The Ionic framework didn't load - skip animations
- if (typeof ionRouterOutlet.componentOnReady === 'undefined') {
- return;
- }
-
- // Skip animations if there's no component to navigate to
- // or the current and the "to-be-rendered" components are the same
- if (!enteringEl || enteringEl === leavingEl) {
- return;
- }
-
- // Add the proper Ionic classes, important for smooth transitions
- enteringEl.classList.add('ion-page', 'ion-page-invisible');
-
- // Reset the cached styling applied by ionic/core's:
- // .afterStyles({ 'display': 'none' })
- if (typeof props.keepAlive !== 'undefined') {
- enteringEl.style.display = '';
- }
-
- // Commit to the transition as soon as the Ionic Router Outlet is ready
- return ionRouterOutlet
- .componentOnReady()
- .then((el: HTMLIonRouterOutletElement) => {
- return el.commit(enteringEl, leavingEl, {
- deepWait: true,
- duration:
- !props.animated || parent.$router.direction === 'root'
- ? 0
- : undefined,
- direction: parent.$router.direction as NavDirection,
- showGoBack: parent.$router.canGoBack()
- });
- })
- .catch(console.error);
-}
-
-// Set the component to be rendered before we render the new route
-function beforeEnter(el: HTMLElement) {
- enteringEl = el;
-}
-
-// Enter the new route
-function enter(_el: HTMLElement, done: TransitionDone) {
- done();
-}
-
-// Vue transition stub functions
-function afterEnter(_el: HTMLElement) {
- /* */
-}
-function afterLeave(_el: HTMLElement) {
- /* */
-}
-function beforeLeave(_el: HTMLElement) {
- /* */
-}
-function enterCancelled(_el: HTMLElement) {
- /* */
-}
-function leaveCancelled(_el: HTMLElement) {
- /* */
-}
diff --git a/src/components/navigation/index.ts b/src/components/navigation/index.ts
deleted file mode 100644
index b2c620e..0000000
--- a/src/components/navigation/index.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-export * from './ion-page';
-export * from './ion-tabs';
diff --git a/src/components/navigation/ion-page.ts b/src/components/navigation/ion-page.ts
deleted file mode 100644
index 6230e7a..0000000
--- a/src/components/navigation/ion-page.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-import { CreateElement, RenderContext } from 'vue';
-
-export default {
- name: 'IonPage',
- functional: true,
- render(h: CreateElement, { children }: RenderContext) {
- return h('div', { class: { 'ion-page': true } }, children);
- }
-};
diff --git a/src/components/navigation/ion-tabs.ts b/src/components/navigation/ion-tabs.ts
deleted file mode 100644
index 2909ac0..0000000
--- a/src/components/navigation/ion-tabs.ts
+++ /dev/null
@@ -1,235 +0,0 @@
-import Vue, { CreateElement, RenderContext, VNode } from 'vue';
-import { Route } from 'vue-router';
-
-
-interface EventListeners {
- // tslint:disable-next-line:ban-types
- [key: string]: Function | Function[];
-}
-
-const tabBars = [] as VNode[];
-const cachedTabs = [] as VNode[];
-
-export default {
- name: 'IonTabs',
- functional: true,
- render(h: CreateElement, { parent, data, slots, listeners }: RenderContext) {
- const renderQueue = [] as VNode[];
- const postRenderQueue = [] as VNode[];
- const route = parent.$route;
- let selectedTab = '';
-
- if (!parent.$router) {
- throw new Error('IonTabs requires an instance of either VueRouter or IonicVueRouter');
- }
-
- // Loop through all of the children in the default slot
- for (let i = 0; i < slots().default.length; i++) {
- const vnode = slots().default[i];
-
- // Not an ion-tab, push to render and post-render processing queues
- if (!vnode.tag || vnode.tag.match(/ion-tab$/) === null) {
- renderQueue.push(vnode);
- postRenderQueue[i] = vnode;
- continue;
- }
-
- const tabName = matchRouteToTab(vnode, route);
- const tabIsCached = cachedTabs[i];
-
- // Landed on tab route
- // Cache the tab, push to render queue and continue iteration
- if (tabName) {
- if (!tabIsCached) {
- cachedTabs[i] = vnode;
- }
-
- selectedTab = tabName;
- vnode.data.attrs.active = true;
- renderQueue.push(vnode);
- continue;
- }
-
- // If tab was previously cached, push to render queue but don't activate
- // Otherwise push an empty node
- renderQueue.push(tabIsCached ? vnode : h());
- }
-
- // Post processing after initial render
- // Required for tabs within Vue components or router view
- Vue.nextTick(() => {
- for (let i = 0; i < postRenderQueue.length; i++) {
- const vnode = postRenderQueue[i];
-
- if (vnode && vnode.elm && vnode.elm.nodeName === 'ION-TAB') {
- const ionTab = vnode.elm as HTMLIonTabElement;
- const vnodeData = {
- data: {
- attrs: { tab: ionTab.getAttribute('tab'), routes: ionTab.getAttribute('route') },
- },
- };
- const tabName = matchRouteToTab(vnodeData as any, route);
-
- // Set tab active state
- ionTab.active = !!tabName;
-
- // Loop through all tab-bars and set active tab
- if (tabName) {
- for (const tabBar of tabBars) {
- (tabBar.elm as HTMLIonTabBarElement).selectedTab = tabName;
- }
- }
-
- cachedTabs[i] = vnode;
- }
- }
-
- // Free tab-bars references
- tabBars.length = 0;
- });
-
- // Render
- return h('div', { ...data, style: hostStyles }, [
- parseSlot(slots().top, selectedTab, listeners),
- h('div', { class: 'tabs-inner', style: tabsInner }, renderQueue),
- parseSlot(slots().bottom, selectedTab, listeners),
- ]);
- }
-};
-
-// Search for ion-tab-bar in VNode array
-function parseSlot(slot: VNode[], tab: string, listeners: EventListeners): VNode[] {
- const vnodes = [] as VNode[];
-
- if (!slot) {
- return vnodes;
- }
-
- for (const vnode of slot) {
- vnodes.push(vnode.tag && vnode.tag.match(/ion-tab-bar$/) ? parseTabBar(vnode, tab, listeners) : vnode);
- }
-
- return vnodes;
-}
-
-// Set selected tab attribute and click handlers
-function parseTabBar(vnode: VNode, tab: string, listeners: EventListeners): VNode {
- const { IonTabsWillChange, IonTabsDidChange } = listeners;
-
- if (!vnode.data) {
- vnode.data = {
- attrs: {
- 'selected-tab': tab,
- },
- };
- } else if (!vnode.data.attrs) {
- vnode.data.attrs = { 'selected-tab': tab };
- } else {
- vnode.data.attrs['selected-tab'] = tab;
- }
-
- // Loop through ion-tab-buttons and assign click handlers
- // If custom click handler was provided, do not override it
- if (vnode.children) {
- for (const child of vnode.children) {
- if (child.tag && child.tag === 'ion-tab-button') {
- const clickHandler = (e: Event) => {
- const path = (child.elm as HTMLIonTabButtonElement).tab;
- const route = hasDataAttr(child, 'to') ? child.data!.attrs!.to : { path };
- e.preventDefault();
-
- // Do not trigger any events if there's nowhere to go to
- if (!route) {
- return;
- }
-
- if (Array.isArray(IonTabsWillChange)) {
- IonTabsWillChange.map(item => item(route));
- } else if (IonTabsWillChange) {
- IonTabsWillChange(route);
- }
-
- vnode.context!.$router.push(route, () => {
- if (Array.isArray(IonTabsDidChange)) {
- IonTabsDidChange.map(item => item(route));
- } else if (IonTabsDidChange) {
- IonTabsDidChange(route);
- }
- });
- };
-
- if (!child.data || !child.data.on || !child.data.on.click) {
- Object.assign(child.data, { on: { click: clickHandler } });
- } else if (child.data.on.click) {
- // Always push our click handler to end of array
- if (Array.isArray(child.data.on.click)) {
- child.data.on.click.push(clickHandler);
- } else {
- // tslint:disable-next-line:ban-types
- child.data.on.click = [child.data.on.click as Function, clickHandler];
- }
- }
- }
- }
- }
-
- // Store a reference to the matched ion-tab-bar
- tabBars.push(vnode);
-
- return vnode;
-}
-
-// Check if a VNode has a specific attribute set
-function hasDataAttr(vnode: VNode, attr: string) {
- return vnode.data && vnode.data.attrs && vnode.data.attrs[attr];
-}
-
-// Match tab to route through :routes property
-// Otherwise match by URL
-function matchRouteToTab(vnode: VNode, route: Route): string {
- if (!vnode.data || !vnode.data.attrs || !vnode.data.attrs.tab) {
- throw new Error('The tab attribute is required for an ion-tab element');
- }
-
- const tabName = vnode.data.attrs.tab;
-
- // Handle route matching by :routes attribute
- if (vnode.data.attrs.routes) {
- const routes = Array.isArray(vnode.data.attrs.routes)
- ? vnode.data.attrs.routes
- : vnode.data.attrs.routes.replace(' ', '').split(',');
-
- // Parse an array of possible matches
- for (const r of routes) {
- if (route.name === r) {
- return tabName;
- }
- }
- } else {
- if (route.path.indexOf(tabName) > -1) {
- return tabName;
- }
- }
-
- return '';
-}
-
-// CSS for ion-tabs inner and outer elements
-const hostStyles = {
- display: 'flex',
- position: 'absolute',
- top: 0,
- left: 0,
- right: 0,
- bottom: 0,
- flexDirection: 'column',
- width: '100%',
- height: '100%',
- contain: 'layout size style',
-};
-
-const tabsInner = {
- position: 'relative',
- flex: 1,
- contain: 'layout size style',
-};
diff --git a/src/components/overlays.ts b/src/components/overlays.ts
index 6db77ea..fc7897d 100644
--- a/src/components/overlays.ts
+++ b/src/components/overlays.ts
@@ -1,20 +1,31 @@
-import { createOverlayComponent } from '../utils';
import {
+ ActionSheetOptions,
+ ModalOptions,
+ PopoverOptions,
actionSheetController,
modalController,
- popoverController
-} from '../controllers';
+ popoverController,
+} from '@ionic/core';
+import { keys } from 'ts-transformer-keys';
+import { OverlayType, defineOverlay } from '../utils';
-export const IonModalVue = createOverlayComponent(
- 'IonModal',
- modalController
+export const IonModal = /*@__PURE__*/defineOverlay(
+ OverlayType.Modal,
+ modalController,
+ keys>(),
);
-export const IonActionSheetVue = createOverlayComponent<
- HTMLIonActionSheetElement
->('IonActionSheet', actionSheetController);
+export const IonActionSheet = /*@__PURE__*/defineOverlay<
+ HTMLIonActionSheetElement,
+ ActionSheetOptions
+>(
+ OverlayType.ActionSheet,
+ actionSheetController,
+ keys(),
+);
-export const IonPopoverVue = createOverlayComponent(
- 'IonPopover',
- popoverController
+export const IonPopover = /*@__PURE__*/defineOverlay(
+ OverlayType.Popover,
+ popoverController,
+ keys>(),
);
diff --git a/src/components/page/index.ts b/src/components/page/index.ts
new file mode 100644
index 0000000..a7a47e7
--- /dev/null
+++ b/src/components/page/index.ts
@@ -0,0 +1,15 @@
+import { defineComponent, h, ref } from 'vue';
+import { getComponentClasses, getElementClasses } from '../../utils';
+
+export const IonPage = defineComponent((props, { attrs, slots }) => {
+ const pageRef = ref();
+ const classes = new Set(getComponentClasses(attrs.class));
+ return () => {
+ getComponentClasses(attrs.class).forEach(value => {
+ classes.add(value);
+ });
+ return h('ion-page', { ...props, ref: pageRef, class: getElementClasses(pageRef, classes, ['ion-page']) }, slots);
+ };
+});
+
+IonPage.displayName = 'IonPage';
diff --git a/src/components/router-outlet/index.ts b/src/components/router-outlet/index.ts
new file mode 100644
index 0000000..de4443e
--- /dev/null
+++ b/src/components/router-outlet/index.ts
@@ -0,0 +1,196 @@
+import {
+ BaseTransitionProps,
+ Transition,
+ TransitionProps,
+ VNode,
+ defineComponent,
+ h,
+ nextTick,
+ ref,
+ shallowRef
+} from 'vue';
+import {
+ RouteLocationNormalizedLoaded,
+ RouterView,
+ useRouter,
+} from 'vue-router';
+import { JSX } from '@ionic/core';
+import { keys } from 'ts-transformer-keys';
+import { splitPropsAndEvents } from '../../utils';
+
+// tslint:disable-next-line: no-import-side-effect
+import '../../router';
+
+export interface Props extends JSX.IonRouterOutlet {
+ name?: string;
+ route?: RouteLocationNormalizedLoaded;
+ swipeBack?: boolean;
+}
+
+export const IonRouterView = defineComponent((props, { slots }) => {
+ const router = useRouter();
+ const ionRouterOutlet = ref();
+ const enteringEl = ref();
+ const newView = shallowRef();
+
+ let persisted = false;
+ let progressAnimation = false;
+ let inTransition = false;
+
+ const transition = async (leavingEl: HTMLElement) => {
+ if (!enteringEl.value || enteringEl.value === leavingEl) {
+ return;
+ }
+
+ // ion-page class makes ion-split-pane invisible
+ if (enteringEl.value.nodeName !== 'ION-SPLIT-PANE') {
+ enteringEl.value.classList.add('ion-page', 'ion-page-invisible');
+ }
+
+ enteringEl.value.style.display = '';
+ const outlet = await ionRouterOutlet.value?.componentOnReady();
+
+ return outlet?.commit(enteringEl.value, leavingEl, {
+ deepWait: true,
+ direction: router.direction,
+ showGoBack: newView.value ? router.history.state.back !== '/' : router.showBackButton,
+ duration: persisted ? 0 : undefined,
+ animationBuilder: router.animationOverride,
+ progressAnimation,
+ });
+ };
+
+ const transitionHooks: BaseTransitionProps = {
+ async onEnter(el, done) {
+ inTransition = true;
+ enteringEl.value = el;
+
+ if (router.direction === 'back') {
+ await router.restoreScroll(
+ el,
+ progressAnimation
+ ? router.history.state.back as any
+ : router.currentRoute.value.fullPath
+ );
+ }
+
+ done();
+ },
+
+ async onLeave(el, done) {
+ if (!persisted) {
+ await router.saveScroll(
+ el,
+ progressAnimation
+ ? router.currentRoute.value.fullPath
+ : router.history.state.back as any
+ );
+ }
+
+ await transition(el);
+ persisted ? setTimeout(done, 100) : done();
+
+ inTransition = false;
+ persisted = false;
+ },
+ };
+
+ const routerView = h(RouterView, { name: props.name, route: props.route }, (...opts: any) => {
+ const { Component, route: matchedRoute } = opts[0];
+ const child = newView.value ?? Component;
+
+ if (newView.value?.type === Component?.type) {
+ newView.value = undefined;
+ }
+
+ if (child?.props) {
+ child.props.class = {
+ 'can-go-back': !!router.history.state.back,
+ };
+ }
+
+ if (persisted && child) {
+ nextTick(() => {
+ const leaveCb = (enteringEl.value as any)._leaveCb;
+ leaveCb && leaveCb();
+ });
+ }
+
+ const transitionProps = {
+ css: false,
+ mode: 'in-out',
+ persisted,
+ ...transitionHooks,
+ } as TransitionProps;
+
+ return slots.default
+ ? slots.default({ Component: child, route: matchedRoute, transitionProps })
+ : h(Transition, transitionProps, () => child);
+ });
+
+ return () => h(
+ 'ion-router-outlet',
+ {
+ ...props,
+ ref: ionRouterOutlet,
+
+ // workaround for Vue 3 camelCase prop issue
+ onVnodeMounted(vnode) {
+ vnode?.el &&
+ (vnode.el.swipeHandler = {
+ canStart() {
+ return (
+ !inTransition &&
+ !!router.history.state.back &&
+ props.swipeBack !== false &&
+ ionRouterOutlet.value?.mode === 'ios'
+ );
+ },
+ onStart() {
+ progressAnimation = true;
+ inTransition = true;
+ router.directionOverride = 'back';
+
+ const matchedRoutes = router.resolve(router.history.state.back as string);
+ if (matchedRoutes.matched.length) {
+ const matchedRoute = matchedRoutes.matched[0];
+ const routePropsOption = matchedRoute.props[props.name || 'default'];
+ const routeProps = routePropsOption
+ ? routePropsOption === true
+ ? matchedRoutes.params
+ : typeof routePropsOption === 'function'
+ ? routePropsOption(matchedRoutes)
+ : routePropsOption
+ : null;
+ newView.value = h(
+ matchedRoute.components[props.name || 'default'],
+ routeProps
+ );
+ }
+ },
+ onEnd(shouldComplete: boolean) {
+ inTransition = false;
+ progressAnimation = false;
+
+ if (shouldComplete) {
+ nextTick(() => {
+ persisted = false;
+ router.go(-1);
+ });
+ return;
+ }
+
+ persisted = true;
+ newView.value = undefined;
+ },
+ });
+ },
+ },
+ routerView
+ );
+});
+
+const data = splitPropsAndEvents(keys());
+IonRouterView.displayName = 'IonRouterView';
+IonRouterView.props = [ ...data.props, 'name', 'route' ];
+IonRouterView.emits = data.events;
diff --git a/src/components/tabs/index.ts b/src/components/tabs/index.ts
new file mode 100644
index 0000000..7f2dd80
--- /dev/null
+++ b/src/components/tabs/index.ts
@@ -0,0 +1,4 @@
+export { IonTabs } from './tabs';
+export { IonTabBar } from './tab-bar';
+export * from './tab';
+export * from './tab-button';
diff --git a/src/components/tabs/tab-bar.ts b/src/components/tabs/tab-bar.ts
new file mode 100644
index 0000000..9525aab
--- /dev/null
+++ b/src/components/tabs/tab-bar.ts
@@ -0,0 +1,25 @@
+import { defineComponent, h, ref } from 'vue';
+import { JSX } from '@ionic/core';
+import { keys } from 'ts-transformer-keys';
+import { tabRefs } from './tabs';
+import { splitPropsAndEvents } from '../../utils';
+
+export const tabBarRef = ref();
+
+export const setActiveTab = (value?: string) => {
+ Object.keys(tabRefs).forEach((tabName) => {
+ const tab = tabRefs[tabName]?.value;
+ tab && (tab.active = tabName === value);
+ });
+};
+
+export const IonTabBar = defineComponent((props, { slots }) => {
+ const tabs = Object.keys(tabRefs);
+ const selectedTab = tabBarRef.value?.selectedTab || props.selectedTab || (tabs.length && tabs[0]) || undefined;
+ return () => h('ion-tab-bar', { ...props, selectedTab, ref: tabBarRef }, slots);
+});
+
+const data = splitPropsAndEvents(keys());
+IonTabBar.displayName = 'IonTabBar';
+IonTabBar.props = data.props;
+IonTabBar.emits = data.events;
diff --git a/src/components/tabs/tab-button.ts b/src/components/tabs/tab-button.ts
new file mode 100644
index 0000000..2552f7f
--- /dev/null
+++ b/src/components/tabs/tab-button.ts
@@ -0,0 +1,48 @@
+import { defineComponent, h, inject } from 'vue';
+import { useRouter } from 'vue-router';
+import { JSX } from '@ionic/core';
+import { keys } from 'ts-transformer-keys';
+import { onIonTabsDidChange, onIonTabsWillChange, tabLocations } from './tabs';
+import { setActiveTab, tabBarRef } from './tab-bar';
+import { Navigable } from '../../interfaces';
+import { splitPropsAndEvents } from '../../utils';
+
+export const IonTabButton = defineComponent((props, { attrs, slots }) => {
+ const router = useRouter();
+ const tabsWillChange = inject(onIonTabsWillChange) ?? (() => void 0);
+ const tabsDidChange = inject(onIonTabsDidChange) ?? (() => void 0);
+
+ const onClick = async (e: MouseEvent) => {
+ attrs.onClick && (attrs.onClick as any)(e);
+
+ if (e.defaultPrevented) {
+ return;
+ }
+
+ tabsWillChange(props.tab);
+
+ const wasActiveTab = tabBarRef.value?.selectedTab === props.tab;
+ tabBarRef.value && (tabBarRef.value.selectedTab = props?.tab);
+
+ if (props.tab && props.href && router) {
+ const location = tabLocations[props.tab] || props.href;
+ const goToRoot = wasActiveTab && router.currentRoute.value.fullPath === location;
+ setActiveTab(tabBarRef.value?.selectedTab);
+ location && router.push(goToRoot ? props.href : location);
+ } else {
+ setActiveTab(tabBarRef.value?.selectedTab);
+ }
+
+ tabsDidChange(props.tab);
+
+ e.preventDefault();
+ };
+
+ return () => h('ion-tab-button', { ...props, onClick }, slots);
+});
+
+
+const data = splitPropsAndEvents(keys());
+IonTabButton.displayName = 'IonTabButton';
+IonTabButton.props = data.props;
+IonTabButton.emits = ['onClick', ...data.events];
diff --git a/src/components/tabs/tab.ts b/src/components/tabs/tab.ts
new file mode 100644
index 0000000..45cbbac
--- /dev/null
+++ b/src/components/tabs/tab.ts
@@ -0,0 +1,50 @@
+import { defineComponent, getCurrentInstance, h, onActivated, ref } from 'vue';
+import { useRoute } from 'vue-router';
+import { JSX } from '@ionic/core';
+import { keys } from 'ts-transformer-keys';
+import { tabBarRef } from './tab-bar';
+import { tabLocations, tabRefs } from './tabs';
+import { splitPropsAndEvents } from '../../utils';
+
+export const IonTab = defineComponent>((props, { slots }) => {
+ let tabNode = tabRefs[props.tab];
+ let active = tabBarRef.value?.selectedTab === props.tab;
+ const instance = getCurrentInstance()!;
+ const route = useRoute();
+
+ if (tabBarRef.value?.selectedTab === undefined) {
+ tabBarRef.value && (tabBarRef.value.selectedTab = props.tab);
+ active = true;
+ }
+
+ if (!tabNode) {
+ tabRefs[props.tab] = ref();
+ }
+ tabNode = tabRefs[props.tab];
+
+ // Only add Lifecycle.ACTIVATE hooks once
+ // @ts-ignore
+ if (!instance?.a || instance?.a.length === 0) {
+ onActivated(() => {
+ const tabRef = tabRefs[props.tab].value;
+ tabBarRef.value && (tabBarRef.value.selectedTab = props.tab);
+ tabRef && (tabRef.active = true);
+ }, instance);
+ }
+
+ const onVnodeUpdated = () => {
+ if (tabBarRef.value?.selectedTab === props.tab) {
+ route && (tabLocations[props.tab] = route.fullPath);
+ }
+ };
+ const onVnodeBeforeUnmount = () => {
+ tabBarRef.value && (tabBarRef.value.selectedTab = undefined);
+ };
+
+ return () => h('ion-tab', { ...props, active, onVnodeUpdated, onVnodeBeforeUnmount, ref: tabRefs[props.tab] }, slots);
+});
+
+const data = splitPropsAndEvents(keys());
+IonTab.displayName = 'IonTab';
+IonTab.props = data.props;
+IonTab.emits = data.events;
diff --git a/src/components/tabs/tabs.ts b/src/components/tabs/tabs.ts
new file mode 100644
index 0000000..a4bea48
--- /dev/null
+++ b/src/components/tabs/tabs.ts
@@ -0,0 +1,45 @@
+import { InjectionKey, Ref, defineComponent, h, provide, ref } from 'vue';
+import { keys } from 'ts-transformer-keys';
+import { JSX } from '@ionic/core';
+import { splitPropsAndEvents } from '../../utils';
+
+// CSS for ion-tabs inner and outer elements
+const hostStyles = {
+ display: 'flex',
+ position: 'absolute',
+ top: 0,
+ left: 0,
+ right: 0,
+ bottom: 0,
+ flexDirection: 'column',
+ width: '100%',
+ height: '100%',
+ contain: 'layout size style',
+};
+
+const innerStyles = {
+ position: 'relative',
+ flex: 1,
+ contain: 'layout size style',
+};
+
+export const tabsRef = ref();
+export const tabRefs: { [key: string]: Ref } = {};
+export const tabLocations: { [key: string]: string | undefined } = {};
+export const onIonTabsWillChange: InjectionKey<((tab?: string) => void)> = Symbol();
+export const onIonTabsDidChange: InjectionKey<((tab?: string) => void)> = Symbol();
+
+const data = splitPropsAndEvents(keys());
+export const IonTabs = defineComponent((props, { slots, attrs }) => {
+ provide(onIonTabsWillChange, attrs.onIonTabsWillChange);
+ provide(onIonTabsDidChange, attrs.onIonTabsDidChange);
+
+ return () => h('div', { ...props, style: hostStyles, ref: tabsRef }, [
+ slots.top && slots.top(),
+ h('div', { class: 'tabs-inner', style: innerStyles }, slots),
+ slots.bottom && slots.bottom(),
+ ]);
+});
+
+IonTabs.displayName = 'IonTabs';
+IonTabs.emits = data.events;
diff --git a/src/controllers/index.ts b/src/controllers/index.ts
deleted file mode 100644
index bed8d6f..0000000
--- a/src/controllers/index.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-export {
- actionSheetController,
- alertController,
- loadingController,
- menuController,
- toastController,
- pickerController,
-} from '@ionic/core';
-import { modalController as _modalController } from './modal-controller';
-import { popoverController as _popoverController } from './popover-controller';
-
-export const modalController = _modalController();
-export const popoverController = _popoverController();
diff --git a/src/controllers/modal-controller.ts b/src/controllers/modal-controller.ts
deleted file mode 100644
index 7e76fc8..0000000
--- a/src/controllers/modal-controller.ts
+++ /dev/null
@@ -1,22 +0,0 @@
-import {
- ModalOptions,
- OverlayController,
- modalController as _modalController
-} from '@ionic/core';
-import { VueDelegate } from './vue-delegate';
-
-export interface ModalController extends OverlayController {
- create(options: ModalOptions): Promise;
-}
-
-export const modalController = (): ModalController => {
- return {
- ..._modalController,
- create(options: ModalOptions) {
- return _modalController.create({
- ...options,
- delegate: new VueDelegate()
- });
- }
- };
-};
diff --git a/src/controllers/popover-controller.ts b/src/controllers/popover-controller.ts
deleted file mode 100644
index bbdfaab..0000000
--- a/src/controllers/popover-controller.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-import {
- PopoverOptions,
- popoverController as _popoverController
-} from '@ionic/core';
-import { VueDelegate } from './vue-delegate';
-
-export const popoverController = () => {
- return {
- ..._popoverController,
- create(options: PopoverOptions) {
- return _popoverController.create({
- ...options,
- delegate: new VueDelegate()
- });
- }
- };
-};
diff --git a/src/controllers/vue-delegate.ts b/src/controllers/vue-delegate.ts
deleted file mode 100644
index 62be1c5..0000000
--- a/src/controllers/vue-delegate.ts
+++ /dev/null
@@ -1,109 +0,0 @@
-import Vue, { VueConstructor } from 'vue';
-import {
- FrameworkDelegate,
- LIFECYCLE_DID_ENTER,
- LIFECYCLE_DID_LEAVE,
- LIFECYCLE_WILL_ENTER,
- LIFECYCLE_WILL_LEAVE,
- LIFECYCLE_WILL_UNLOAD
-} from '@ionic/core';
-import { EsModule, HTMLVueElement, WebpackFunction } from '../interfaces';
-
-// Handle creation of sync and async components
-async function createVueComponent(
- component: WebpackFunction | object | VueConstructor
-): Promise {
- if (
- typeof component === 'function' &&
- (component as WebpackFunction).cid === undefined
- ) {
- const cmp = await (component as WebpackFunction)();
- return Vue.extend(isESModule(cmp) ? cmp.default : cmp);
- }
- return Vue.extend(component);
-}
-
-export class VueDelegate implements FrameworkDelegate {
- // Attach the passed Vue component to DOM
- async attachViewToDom(
- parentElement: HTMLElement,
- component: HTMLElement | WebpackFunction | object | VueConstructor,
- opts?: object,
- classes?: string[]
- ): Promise {
- // Handle HTML elements
- if (isElement(component)) {
- // Add any classes to the element
- addClasses(component as HTMLElement, classes);
-
- // Append the element to DOM
- parentElement.appendChild(component as HTMLElement);
- bindLifecycleEvents(component, parentElement);
- return Promise.resolve(component as HTMLElement);
- }
-
- // Get the Vue constructor
- const constructor = await createVueComponent(component);
- const componentInstance = new constructor(opts);
- componentInstance.$mount();
-
- // Add any classes to the Vue component's root element
- addClasses(componentInstance.$el as HTMLElement, classes);
-
- // Append the Vue component to DOM
- parentElement.appendChild(componentInstance.$el);
- return componentInstance.$el as HTMLElement;
- }
-
- // Remove the earlier created Vue component from DOM
- removeViewFromDom(
- _parentElement: HTMLElement,
- childElement: HTMLVueElement
- ): Promise {
- // Destroy the Vue component instance
- if (childElement.__vue__) {
- childElement.__vue__.$destroy();
- }
-
- return Promise.resolve();
- }
-}
-
-const LIFECYCLES = [
- LIFECYCLE_WILL_ENTER,
- LIFECYCLE_DID_ENTER,
- LIFECYCLE_WILL_LEAVE,
- LIFECYCLE_DID_LEAVE,
- LIFECYCLE_WILL_UNLOAD
-];
-
-export function bindLifecycleEvents(instance: any, element: HTMLElement) {
- LIFECYCLES.forEach(eventName => {
- element.addEventListener(eventName, (ev: any) => {
- if (typeof instance[eventName] === 'function') {
- instance[eventName](ev.detail);
- }
- });
- });
-}
-
-// Check Symbol support
-const hasSymbol =
- typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';
-
-// Check if object is an ES module
-function isESModule(obj: EsModule) {
- return obj.__esModule || (hasSymbol && obj[Symbol.toStringTag] === 'Module');
-}
-
-// Check if value is an Element
-function isElement(el: any) {
- return typeof Element !== 'undefined' && el instanceof Element;
-}
-
-// Add an array of classes to an element
-function addClasses(element: HTMLElement, classes: string[] = []) {
- for (const cls of classes) {
- element.classList.add(cls);
- }
-}
diff --git a/src/index.ts b/src/index.ts
index 9092b39..c525614 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -1,16 +1,4 @@
import { addIcons } from 'ionicons';
-export {
- createAnimation,
- createGesture,
- AlertButton,
- AlertInput,
- Gesture,
- GestureConfig,
- GestureDetail,
- mdTransitionAnimation,
- iosTransitionAnimation,
- setupConfig
-} from '@ionic/core';
import {
arrowBackSharp,
caretBackSharp,
@@ -26,17 +14,10 @@ import {
searchOutline,
searchSharp
} from 'ionicons/icons';
-import { install } from './ionic';
-export default {
- install,
- version: '__VERSION__'
-};
-
-export { default as IonicVueRouter } from './router';
-
-export * from './controllers';
+export { IonicVue } from './ionic-vue';
export * from './components';
+export { createRouter } from './router';
// Icons that are used by internal components
addIcons({
diff --git a/src/interfaces.ts b/src/interfaces.ts
index cbd3d42..7e420b1 100644
--- a/src/interfaces.ts
+++ b/src/interfaces.ts
@@ -1,88 +1,31 @@
-import Vue from 'vue';
-import VueRouter from 'vue-router';
-import { HTMLStencilElement, IonicConfig, RouterDirection } from '@ionic/core';
-import { RouterOptions } from 'vue-router/types/router';
+import { AnimationBuilder, NavDirection } from '@ionic/core';
-declare module 'vue-router/types/router' {
- interface VueRouter {
- direction: RouterDirection;
- directionOverride: RouterDirection | null;
- transition: Promise;
- canGoBack(): boolean;
- }
+export interface HistoryState {
+ [x: number]: HistoryStateValue;
+ [x: string]: HistoryStateValue;
}
-export interface HTMLVueElement extends HTMLElement {
- __vue__: Vue;
+declare interface HistoryStateArray extends Array {
}
-export interface VueWindow extends Window {
- Vue: typeof Vue;
- VueRouter: typeof VueRouter;
- disableIonicTransitions: boolean;
-}
-
-export interface WebpackFunction extends Function {
- cid: number;
-}
-
-export interface EsModule extends Object {
- __esModule?: boolean;
- [Symbol.toStringTag]: string;
-}
-
-export interface IonicGlobal {
- config?: IonicConfig;
- asyncQueue?: boolean;
-}
-
-export interface IonicWindow extends Window {
- Ionic: IonicGlobal;
- __zone_symbol__requestAnimationFrame?: (ts: FrameRequestCallback) => number;
-}
-
-export interface FrameworkDelegate {
- attachViewToDom(parentElement: HTMLElement, component: HTMLElement | WebpackFunction | object | Vue, opts?: object, classes?: string[]): Promise;
- removeViewFromDom(parentElement: HTMLElement, childElement: HTMLVueElement): Promise;
-}
-
-export interface IonBackButton extends HTMLStencilElement {
- defaultHref?: string;
-}
-
-export interface IonRouterOutlet extends HTMLStencilElement {
- commit(enterinEl: HTMLElement, leavingEl: HTMLElement | undefined, opts?: object | undefined): Promise;
-}
-
-export interface ApiCache {
- [key: string]: any;
-}
-
-export interface RouterArgs extends RouterOptions {
- direction?: RouterDirection;
- viewCount?: number;
-}
-
-export interface ProxyControllerInterface {
- create(opts: object): Promise;
- dismiss(): Promise;
- getTop(): Promise;
-}
+declare type HistoryStateValue = string | number | boolean | null | undefined | HistoryState | HistoryStateArray;
-export interface ProxyDelegateOptions extends Object {
- [key: string]: any;
- delegate?: FrameworkDelegate;
+export interface Navigable {
+ href?: string | {
+ query?: Record;
+ hash?: string;
+ path?: string;
+ replace?: boolean;
+ force?: boolean;
+ state?: HistoryState;
+ name?: string | symbol;
+ params?: Record;
+ };
+ target?: string;
}
-export interface ProxyMenuControllerInterface {
- open(menuId?: string): Promise;
- close(menuId?: string): Promise;
- toggle(menuId?: string): Promise;
- enable(shouldEnable: boolean, menuId?: string): Promise;
- swipeEnable(shouldEnable: boolean, menuId?: string): Promise;
- isOpen(menuId?: string): Promise;
- isEnabled(menuId?: string): Promise;
- get(menuId?: string): Promise;
- getOpen(): Promise;
- getMenus(): Promise;
+export interface NavigableRouter extends Navigable {
+ replace?: boolean;
+ routerDirection?: NavDirection;
+ routerAnimation?: AnimationBuilder;
}
diff --git a/src/ionic-vue.ts b/src/ionic-vue.ts
new file mode 100644
index 0000000..5f895da
--- /dev/null
+++ b/src/ionic-vue.ts
@@ -0,0 +1,32 @@
+import { App, Plugin } from 'vue';
+import { IonicConfig, setupConfig } from '@ionic/core';
+import { applyPolyfills, defineCustomElements } from '@ionic/core/loader';
+
+const ael = (el: any, eventName: string, cb: any, opts: any) =>
+ el.addEventListener(eventName.toLowerCase(), cb, opts);
+const rel = (el: any, eventName: string, cb: any, opts: any) =>
+ el.removeEventListener(eventName.toLowerCase(), cb, opts);
+
+export const IonicVue: Plugin & { isReady: () => Promise } = {
+ async isReady() {
+ await applyPolyfills();
+ if (typeof window !== 'undefined') {
+ await defineCustomElements(window, {
+ exclude: ['ion-tabs'],
+ ael,
+ rel,
+ ce: (eventName: string, opts: any) =>
+ new CustomEvent(eventName.toLowerCase(), opts),
+ } as any);
+ }
+ },
+ install(app: App, config?: IonicConfig) {
+ if (process.env.NODE_ENV !== 'production') {
+ console.info(
+ `[ionic/vue] BREAKING CHANGE, call to isReady is required before mounting the app:\nconst app = createApp(App).use(IonicVue, { mode: 'ios' });\nIonicVue.isReady().then(() => app.mount("#app"));`
+ );
+ }
+ app.config.isCustomElement = tag => tag.startsWith('ion-');
+ config && setupConfig({ ...config, _ael: ael, _rel: rel });
+ },
+};
diff --git a/src/ionic.ts b/src/ionic.ts
deleted file mode 100644
index 8365d42..0000000
--- a/src/ionic.ts
+++ /dev/null
@@ -1,19 +0,0 @@
-import { appInitialize } from './app-initialize';
-import VueImport, { PluginFunction } from 'vue';
-import { IonicConfig } from '@ionic/core';
-
-let Vue: typeof VueImport;
-
-export const install: PluginFunction = (_Vue, config) => {
- if (Vue && _Vue === Vue) {
- if (process.env.NODE_ENV !== 'production') {
- console.error(
- '[Ionic] Plugin already installed. Vue.use(Ionic) should be called only once.'
- );
- }
- return;
- }
- Vue = _Vue;
- Vue.config.ignoredElements.push(/^ion-/);
- appInitialize(config);
-};
diff --git a/src/router.ts b/src/router.ts
index 588b831..587f105 100644
--- a/src/router.ts
+++ b/src/router.ts
@@ -1,121 +1,116 @@
-import VueRouter, { Route } from 'vue-router';
-import { PluginFunction } from 'vue';
-import { RouterArgs } from './interfaces';
-import IonVueRouter from './components/ion-vue-router';
-import { BackButtonEvent, RouterDirection } from '@ionic/core';
-
-// Extend the official VueRouter
-export default class Router extends VueRouter {
- direction: RouterDirection;
- directionOverride: RouterDirection | null;
- viewCount: number;
- prevRouteStack: Route[];
- history: any;
- static installed: boolean;
- static install: PluginFunction;
-
- constructor(args: RouterArgs = {} as RouterArgs) {
- super(args);
-
- // The direction user navigates in
- this.direction = args.direction || 'forward';
-
- // Override normal direction
- this.directionOverride = null;
-
- // Number of views navigated
- this.viewCount = args.viewCount || 0;
-
- // Stack of previous routes
- this.prevRouteStack = [];
-
- // Extend the existing history object
- this.extendHistory();
-
- // Wait for transition to finish before confirming navigation
- this.extendTransitionConfirmation();
-
- // Listen to Ionic's back button event
- document.addEventListener('ionBackButton', (e: Event) => {
- (e as BackButtonEvent).detail.register(0, () => this.back());
- });
- }
-
- extendTransitionConfirmation() {
- this.history._confirmTransition = this.history.confirmTransition;
- this.history.confirmTransition = async (...opts: any) => {
- if (undefined !== this.transition) {
- await this.transition;
- }
- this.history._confirmTransition(...opts);
- };
+import { ref } from 'vue';
+import {
+ Router,
+ RouterOptions,
+ createRouter as createVueRouter,
+} from 'vue-router';
+import { AnimationBuilder, BackButtonEvent, NavDirection } from '@ionic/core';
+
+declare module 'vue-router' {
+ interface Router {
+ readonly history: RouterHistory;
+ readonly direction: NavDirection;
+ readonly showBackButton: boolean;
+ animationOverride: AnimationBuilder | undefined;
+ directionOverride: NavDirection | undefined;
+ saveScroll: (el: HTMLElement, key: string) => Promise;
+ restoreScroll: (el: HTMLElement, key: string) => Promise;
}
+}
- extendHistory() {
- // Save a reference to the original method
- this.history._updateRoute = this.history.updateRoute;
-
- this.history.updateRoute = (nextRoute: Route) => {
- // Guesstimate the direction of the next route
- this.direction = this.guessDirection(nextRoute);
-
- // Override the direction
- if (this.directionOverride) {
- this.direction = this.directionOverride;
+export const createRouter = (opts: RouterOptions): Router => {
+ const direction = ref('forward');
+ const animationOverride = ref();
+ const directionOverride = ref();
+ const showBackButton = ref(false);
+ const scroll = new Map();
+
+ const router: Router = {
+ ...createVueRouter(opts),
+ history: opts.history,
+
+ async saveScroll(el, key) {
+ const ionContent = el.querySelector('ion-content');
+ const scrollElement = ionContent && (await ionContent.getScrollElement());
+
+ if (scrollElement && key) {
+ scroll.set(key, {
+ top: scrollElement?.scrollTop || 0,
+ left: scrollElement?.scrollLeft || 0,
+ });
}
-
- // Increment or decrement the view count
- this.viewCount += this.direction === 'back' ? -1 : 1;
-
- // Call the original method
- this.history._updateRoute(nextRoute);
-
- // Reset direction overrides
- this.directionOverride = null;
- };
- }
-
- canGoBack(): boolean {
- // We can display the back button if we're not on /
- // or there were more than 1 views rendered
- return this.viewCount > 1 && this.currentRoute.fullPath.length > 1;
- }
-
- guessDirection(nextRoute: Route): RouterDirection {
- if (this.prevRouteStack.length !== 0) {
- const prevRoute: Route = this.prevRouteStack[this.prevRouteStack.length - 1];
-
- // Last route is the same as the next one - go back
- // If we're going to / reset the stack otherwise pop a route
- if (prevRoute.fullPath === nextRoute.fullPath) {
- if (prevRoute.fullPath.length === 1) {
- this.prevRouteStack = [];
- } else {
- this.prevRouteStack.pop();
+ },
+
+ async restoreScroll(el, key) {
+ const ionContent = el.querySelector('ion-content');
+ const scrollElement =
+ (ionContent && (await ionContent.getScrollElement())) || undefined;
+ scrollElement?.scrollTo(
+ scroll.get(key) || {
+ top: 0,
+ left: 0,
}
- return 'back';
+ );
+ },
+ };
+
+ router.history.listen((_to, _from, info) => {
+ directionOverride.value = (info.direction as unknown) as NavDirection;
+ });
+
+ router.beforeEach((to, from, next) => {
+ showBackButton.value = to.fullPath !== '/' || !!router.history.state.back;
+
+ direction.value =
+ directionOverride.value ||
+ (to.fullPath.startsWith(from.fullPath) ? 'forward' : 'back');
+ directionOverride.value = undefined;
+
+ next();
+ });
+
+ router.afterEach(to => {
+ showBackButton.value = to.fullPath !== '/' || !!router.history.state.back;
+ animationOverride.value = undefined;
+ });
+
+ Object.defineProperties(router, {
+ direction: {
+ get() {
+ return directionOverride.value || direction.value;
+ },
+ },
+ showBackButton: {
+ get() {
+ return showBackButton.value;
+ }
+ },
+ directionOverride: {
+ get() {
+ return directionOverride.value;
+ },
+ set(value: NavDirection) {
+ directionOverride.value = value;
+ }
+ },
+ animationOverride: {
+ get() {
+ return animationOverride.value;
+ },
+ set(value: AnimationBuilder) {
+ animationOverride.value = value;
}
}
+ });
- // Forward movement, push next route to stack
- if (this.history.current.fullPath !== nextRoute.fullPath) {
- this.prevRouteStack.push(this.history.current);
- }
- return 'forward';
- }
-}
-
-Router.install = (Vue) => {
- // If already installed - skip
- if (Router.installed) {
- return;
+ if (document) {
+ document.addEventListener('ionBackButton', (e: Event) => {
+ (e as BackButtonEvent).detail.register(0, (next: () => void) => {
+ router.history.go(-1);
+ next();
+ });
+ });
}
- Router.installed = true;
-
- // Install the official VueRouter
- VueRouter.install(Vue);
-
- // Register the IonVueRouter component globally
- Vue.component('IonVueRouter', IonVueRouter);
+ return router;
};
diff --git a/src/sfc.d.ts b/src/sfc.d.ts
deleted file mode 100644
index 8f6f410..0000000
--- a/src/sfc.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-declare module '*.vue' {
- import Vue from 'vue';
- export default Vue;
-}
diff --git a/src/utils/common.ts b/src/utils/common.ts
new file mode 100644
index 0000000..a127350
--- /dev/null
+++ b/src/utils/common.ts
@@ -0,0 +1,18 @@
+import { Ref } from 'vue';
+
+export const getComponentClasses = (classes: unknown) => {
+ return (classes as string)?.split(' ') || [];
+};
+
+export const getElementClasses = (ref: Ref, componentClasses: Set, defaultClasses: string[] = []) => {
+ return [ ...Array.from(ref.value?.classList || []), ...defaultClasses ]
+ .filter((c: string, i, self) => !componentClasses.has(c) && self.indexOf(c) === i);
+};
+
+export const splitPropsAndEvents = (propsAndEvents: string[]) => {
+ const props: string[] = [];
+ const events: string[] = [];
+ const ignoredProps = ['component', 'componentProps', 'delegate'];
+ propsAndEvents.map(i => (i.startsWith('on') ? events : props).push(i));
+ return { props: props.filter(p => !ignoredProps.includes(p)), events };
+};
diff --git a/src/utils/createInputComponent.ts b/src/utils/createInputComponent.ts
deleted file mode 100644
index a1c8132..0000000
--- a/src/utils/createInputComponent.ts
+++ /dev/null
@@ -1,74 +0,0 @@
-import Vue, { CreateElement, RenderContext } from 'vue';
-
-interface EventHandler {
- [key: string]: (e: Event) => void;
-}
-
-type Callback = (value: Event | string) => void;
-
-// Events to register handlers for
-const events: string[] = [
- 'ionChange',
- 'ionInput',
- 'ionBlur',
- 'ionFocus',
- 'ionCancel',
- 'ionSelect'
-];
-
-export function createInputComponent(
- name: string,
- coreTag: string,
- modelEvent = 'ionChange',
- valueProperty = 'value'
-) {
- return Vue.extend({
- name,
- functional: true,
- model: {
- event: modelEvent,
- prop: valueProperty
- },
- render(h: CreateElement, { data, listeners, slots }: RenderContext) {
- return h(
- coreTag,
- {
- ...data,
- on: buildEventHandlers(listeners, modelEvent, valueProperty)
- },
- slots().default
- );
- }
- });
-}
-
-function buildEventHandlers(
- listeners: RenderContext['listeners'],
- modelEvent: string,
- valueProperty: string
-) {
- const handlers: EventHandler = {};
-
- // Loop through all the events
- events.map((eventName: string) => {
- if (!listeners[eventName]) {
- return;
- }
-
- // Normalize listeners coming from context as Function | Function[]
- const callbacks: Callback[] = Array.isArray(listeners[eventName])
- ? (listeners[eventName] as Callback[])
- : [listeners[eventName] as Callback];
-
- // Assign handlers
- handlers[eventName] = (e: Event) => {
- callbacks.map(f => {
- if (e) {
- f(modelEvent === eventName ? (e.target as any)[valueProperty] : e);
- }
- });
- };
- });
-
- return handlers;
-}
diff --git a/src/utils/createOverlayComponent.ts b/src/utils/createOverlayComponent.ts
deleted file mode 100644
index 7b9640d..0000000
--- a/src/utils/createOverlayComponent.ts
+++ /dev/null
@@ -1,100 +0,0 @@
-import Vue, { CreateElement, VueConstructor } from 'vue';
-
-export interface OverlayElement extends HTMLElement {
- present: () => Promise;
- dismiss: (data?: any, role?: string | undefined) => Promise;
-}
-
-export interface Data {
- overlay: T | null;
-}
-
-export interface Methods {
- present: () => Promise;
-}
-
-export interface Props {
- isOpen: boolean;
-}
-
-export function createOverlayComponent(
- name: string,
- controller: { create: (opts: any) => Promise }
-): VueConstructor & Methods & Props & Vue> {
- const coreTag = name.charAt(0).toLowerCase() + name.slice(1);
- const eventHandlers = Object.entries({
- [`${coreTag}WillPresent`]: 'onWillPresent',
- [`${coreTag}DidPresent`]: 'onDidPresent',
- [`${coreTag}WillDismiss`]: 'onWillDismiss',
- [`${coreTag}DidDismiss`]: 'onDidDismiss',
- });
-
- return Vue.extend, Methods, {}, Props>({
- name: `${name}Vue`,
- data() {
- return {
- overlay: null,
- };
- },
- props: {
- isOpen: {
- type: Boolean,
- required: true,
- },
- },
- watch: {
- async isOpen(newVal: boolean) {
- console.log(newVal);
- if (newVal) {
- if (this.overlay) {
- await this.overlay.present();
- } else {
- await this.present();
- }
- } else {
- await this.overlay?.dismiss();
- this.overlay = null;
- }
- }
- },
- async mounted() {
- console.log(this.isOpen);
- this.isOpen && await this.present();
- },
- async beforeDestroy() {
- console.log('bye');
- await this.overlay?.dismiss();
- },
- render(h: CreateElement) {
- for (const [eventName, handler] of eventHandlers) {
- console.log(eventName, handler);
- if (this.$listeners[handler]) {
- this.overlay?.addEventListener(eventName, (e: Event) => {
- const handlers = this.$listeners[handler];
- if (Array.isArray(handlers)) {
- handlers.map(f => f(e));
- return;
- }
- handlers(e);
- });
- }
- }
- return h('div', [h('div', { ref: 'overlay' }, this.overlay ? this.$slots.default : null)]);
- },
- methods: {
- async present() {
-
- // const children = this.$slots.default;
- this.overlay = await controller.create({
- ...this.$attrs,
- component: this.$refs.overlay,
- componentProps: { parent: this },
- });
-
- console.log(this.overlay);
-
- await this.overlay.present();
- }
- }
- });
-}
diff --git a/src/utils/defineContainer.ts b/src/utils/defineContainer.ts
new file mode 100644
index 0000000..de72504
--- /dev/null
+++ b/src/utils/defineContainer.ts
@@ -0,0 +1,65 @@
+import { defineComponent, h, ref } from 'vue';
+import { useLink, useRouter } from 'vue-router';
+import { NavigableRouter } from '../interfaces';
+import { getComponentClasses, getElementClasses, splitPropsAndEvents } from './common';
+
+export const defineContainer = (name: string, displayName: string, componentProps: string[]) => {
+ const Container = defineComponent((props, { attrs, slots }) => {
+ const containerRef = ref();
+ const classes = new Set(getComponentClasses(attrs.class));
+ return () => {
+ getComponentClasses(attrs.class).forEach(value => {
+ classes.add(value);
+ });
+ return h(name, { ...props, ref: containerRef, class: getElementClasses(containerRef, classes) }, slots);
+ };
+ });
+
+ Container.displayName = displayName;
+ Container.props = componentProps;
+
+ return Container;
+};
+
+export const defineNavigableContainer = (name: string, displayName: string, componentPropsAndEvents: string[]) => {
+ const Container = defineComponent((props, { attrs, slots }) => {
+ const classes = new Set(getComponentClasses(attrs.class));
+ const containerRef = ref();
+ const router = useRouter();
+ let { href } = props;
+ let onClick: (e: MouseEvent) => void;
+
+ if (router && href !== undefined) {
+ const link = useLink({ to: href, replace: props.replace });
+
+ href = link.href.value;
+ onClick = (e: MouseEvent) => {
+ attrs.onClick && (attrs.onClick as any)(e);
+
+ if (e.defaultPrevented || (props.target && /\b_blank\b/i.test(props.target as string))) {
+ return;
+ }
+
+ router.directionOverride = props.routerDirection;
+ router.animationOverride = props.routerAnimation;
+
+ link.navigate(e);
+ e.preventDefault();
+ };
+ }
+
+ return () => {
+ getComponentClasses(attrs.class).forEach(value => {
+ classes.add(value);
+ });
+ return h(name, { ...props, href, onClick, ref: containerRef, class: getElementClasses(containerRef, classes) }, slots);
+ };
+ });
+
+ const data = splitPropsAndEvents(componentPropsAndEvents);
+ Container.displayName = displayName;
+ Container.props = [...data.props, 'replace'];
+ Container.emits = [...data.events, 'onClick'];
+
+ return Container;
+};
diff --git a/src/utils/defineInput.ts b/src/utils/defineInput.ts
new file mode 100644
index 0000000..617598a
--- /dev/null
+++ b/src/utils/defineInput.ts
@@ -0,0 +1,50 @@
+import { defineComponent, h, ref } from 'vue';
+import { getComponentClasses, getElementClasses, splitPropsAndEvents } from './common';
+
+export interface InputProps extends Object {
+ modelValue: string | boolean;
+}
+
+export enum InputEvents {
+ onUpdate = 'update:modelValue'
+}
+
+export function defineInput(
+ name: string,
+ displayName: string,
+ componentPropsAndEvents: string[],
+ updateEvent = 'onIonChange',
+ modelProp = 'value'
+) {
+ const Input = defineComponent((
+ props,
+ { attrs, slots, emit }
+ ) => {
+ const inputRef = ref();
+ const classes = new Set(getComponentClasses(attrs.class));
+
+ return () => {
+ getComponentClasses(attrs.class).forEach(value => {
+ classes.add(value);
+ });
+ return h(
+ name,
+ {
+ ...props,
+ ...attrs,
+ class: getElementClasses(inputRef, classes),
+ [updateEvent]: (e: Event) => emit(InputEvents.onUpdate, (e?.target as any)[modelProp]),
+ [modelProp]: props.hasOwnProperty('modelValue') ? props.modelValue : (props as any)[modelProp],
+ },
+ slots
+ );
+ };
+ });
+
+ const data = splitPropsAndEvents(componentPropsAndEvents);
+ Input.displayName = displayName;
+ Input.props = [modelProp, 'modelValue', ...data.props];
+ Input.emits = [InputEvents.onUpdate, ...data.events];
+
+ return Input;
+}
diff --git a/src/utils/defineOverlay.ts b/src/utils/defineOverlay.ts
new file mode 100644
index 0000000..db30e62
--- /dev/null
+++ b/src/utils/defineOverlay.ts
@@ -0,0 +1,122 @@
+import { defineComponent, h, ref } from 'vue';
+
+export interface OverlayElement extends HTMLElement {
+ present: () => Promise;
+ dismiss: (...args: any) => Promise;
+}
+
+export interface OverlayProps {
+ isOpen?: boolean;
+ modelValue?: boolean;
+}
+
+export interface OverlayController {
+ create: (...args: any) => Promise;
+}
+
+export type OverlayEventListeners = [
+ string,
+ Exclude
+][];
+
+export enum OverlayEvents {
+ onWillPresent = 'onWillPresent',
+ onDidPresent = 'onDidPresent',
+ onWillDismiss = 'onWillDismiss',
+ onDidDismiss = 'onDidDismiss',
+ onUpdate = 'update:modelValue'
+}
+
+export enum OverlayType {
+ Modal = 'IonModal',
+ ActionSheet = 'IonActionSheet',
+ Popover = 'IonPopover'
+}
+
+export function defineOverlay(
+ name: OverlayType,
+ controller: OverlayController,
+ componentProps: string[]
+) {
+ type Props = OverlayProps & Omit;
+
+ const overlay = ref();
+ const content = ref();
+ const coreTag = name.toLowerCase();
+ const eventListeners: OverlayEventListeners = Object.entries({
+ [`${coreTag}willpresent`]: OverlayEvents.onWillPresent,
+ [`${coreTag}didpresent`]: OverlayEvents.onDidPresent,
+ [`${coreTag}willdismiss`]: OverlayEvents.onWillDismiss,
+ [`${coreTag}diddismiss`]: OverlayEvents.onDidDismiss
+ });
+
+ const Overlay = defineComponent((props, { attrs, slots, emit }) => {
+ return () => h(
+ 'div',
+ {
+ style: { display: 'none' },
+ async onVnodeUpdated() {
+ const isOpen = props.isOpen ?? props.modelValue;
+ if (isOpen) {
+ await (overlay.value?.present() || present(props, attrs, emit));
+ } else {
+ await overlay.value?.dismiss();
+ overlay.value = undefined;
+ }
+ },
+ async onVnodeMounted() {
+ const isOpen = props.isOpen ?? props.modelValue;
+ isOpen && (await present(props, attrs, emit));
+ },
+ async onVnodeBeforeUnmount() {
+ await overlay.value?.dismiss();
+ overlay.value = undefined;
+ content.value = undefined;
+ }
+ },
+ [h('div', { ref: content }, slots)]
+ );
+ });
+
+ Overlay.displayName = name;
+ Overlay.inheritAttrs = false;
+ Overlay.props = ['isOpen', 'modelValue', ...componentProps];
+ Overlay.emits = [
+ OverlayEvents.onUpdate,
+ OverlayEvents.onWillPresent,
+ OverlayEvents.onDidPresent,
+ OverlayEvents.onWillDismiss,
+ OverlayEvents.onDidDismiss
+ ];
+
+ async function present(
+ props: Readonly,
+ listeners: Partial void>>,
+ emit: (event: OverlayEvents, ...args: any[]) => void
+ ) {
+ overlay.value = await controller.create({
+ ...props,
+ component: content.value
+ });
+
+ if (!overlay.value) {
+ return;
+ }
+
+ overlay.value.addEventListener(eventListeners[1][0], () => emit(OverlayEvents.onUpdate, true));
+ overlay.value.addEventListener(eventListeners[3][0], () => emit(OverlayEvents.onUpdate, false));
+
+ for (const [eventName, listener] of eventListeners) {
+ const handlers = listeners[listener];
+ if (handlers) {
+ overlay.value.addEventListener(eventName, (e: Event) => {
+ Array.isArray(handlers) ? handlers.map(f => f(e)) : handlers(e);
+ });
+ }
+ }
+
+ await overlay.value.present();
+ }
+
+ return Overlay;
+}
diff --git a/src/utils/index.ts b/src/utils/index.ts
index af840fd..852e2e0 100644
--- a/src/utils/index.ts
+++ b/src/utils/index.ts
@@ -1,2 +1,4 @@
-export * from "./createOverlayComponent";
-export * from "./createInputComponent";
+export * from './defineOverlay';
+export * from './defineInput';
+export * from './defineContainer';
+export * from './common';
diff --git a/test/api.spec.js b/test/api.spec.js
deleted file mode 100644
index 3658cad..0000000
--- a/test/api.spec.js
+++ /dev/null
@@ -1,184 +0,0 @@
-import Vue from 'vue'
-import API from '../src/api.js'
-
-const api = new API()
-
-beforeEach(() => {
- HTMLElement.prototype.componentOnReady = function() {
- const el = this
- el.create = function(props = {}) {
- return Object.assign(el, props)
- }
- el.dismiss = function() {
- return el
- }
- el.getTop = el.dismiss
- el.open = el.create
- el.close = el.dismiss
- el.toggle = el.dismiss
- el.enable = el.dismiss
- el.swipeEnable = el.dismiss
- el.isOpen = el.dismiss
- el.isEnabled = el.dismiss
- el.get = el.dismiss
- el.getOpen = el.dismiss
- el.getMenus = el.dismiss
-
- return Promise.resolve(el)
- }
-})
-
-afterEach(() => {
- HTMLElement.prototype.componentOnReady = undefined
-})
-
-describe('API', () => {
- it('Installs correctly', () => {
- Vue.use(API)
-
- const app = new Vue()
-
- expect(typeof app.$ionic).toBe('object')
- expect(API.install(Vue)).toBeFalsy()
- })
-
- it('Creates action sheet controller', () => {
- expect.assertions(3)
-
- api.actionSheetController
- .dismiss()
- .then(c => {
- return expect(c).toBeTruthy()
- })
- .catch(err => err)
-
- api.actionSheetController
- .getTop()
- .then(c => {
- return expect(c).toBeTruthy()
- })
- .catch(err => err)
-
- return api.actionSheetController.create().then(c => {
- return expect(c).toBeTruthy()
- })
- })
-
- it('Creates alert controllers', () => {
- expect.assertions(3)
-
- // Creates initial element
- api.alertController
- .create({ foo: 'bar' })
- .then(c => {
- return expect(c.foo).toBe('bar')
- })
- .catch(err => err)
-
- // Returns previous element with extra props
- return api.alertController.create({ bar: 'foo' }).then(c => {
- expect(c.foo).toBe('bar')
- return expect(c.bar).toBe('foo')
- })
- })
-
- it('Creates loading controllers', done => {
- return api.loadingController.create({ bar: 'foo' }).then(c => {
- expect(c.bar).toBe('foo')
- return done()
- })
- })
-
- it('Creates modal controllers', done => {
- return api.modalController.create({ bar: 'foo' }).then(c => {
- expect(c.bar).toBe('foo')
- return done()
- })
- })
-
- it('Creates popover controllers', done => {
- return api.popoverController.create({ bar: 'foo' }).then(c => {
- expect(c.bar).toBe('foo')
- return done()
- })
- })
-
- it('Creates toast controllers', done => {
- return api.toastController.create({ bar: 'foo' }).then(c => {
- expect(c.bar).toBe('foo')
- return done()
- })
- })
-
- it('Creates menu controllers', done => {
- expect.assertions(10)
-
- api.menuController
- .close()
- .then(c => {
- return expect(c).toBeTruthy()
- })
- .catch(err => err)
-
- api.menuController
- .toggle()
- .then(c => {
- return expect(c).toBeTruthy()
- })
- .catch(err => err)
-
- api.menuController
- .enable()
- .then(c => {
- return expect(c).toBeTruthy()
- })
- .catch(err => err)
-
- api.menuController
- .swipeEnable()
- .then(c => {
- return expect(c).toBeTruthy()
- })
- .catch(err => err)
-
- api.menuController
- .isOpen()
- .then(c => {
- return expect(c).toBeTruthy()
- })
- .catch(err => err)
-
- api.menuController
- .isEnabled()
- .then(c => {
- return expect(c).toBeTruthy()
- })
- .catch(err => err)
-
- api.menuController
- .get()
- .then(c => {
- return expect(c).toBeTruthy()
- })
- .catch(err => err)
-
- api.menuController
- .getOpen()
- .then(c => {
- return expect(c).toBeTruthy()
- })
- .catch(err => err)
-
- api.menuController
- .getMenus()
- .then(c => {
- return expect(c).toBeTruthy()
- })
- .catch(err => err)
-
- return api.menuController.open({ bar: 'foo' }).then(c => {
- expect(c.bar).toBe('foo')
- return done()
- })
- })
-})
diff --git a/test/defineContainer.spec.ts b/test/defineContainer.spec.ts
new file mode 100644
index 0000000..af28654
--- /dev/null
+++ b/test/defineContainer.spec.ts
@@ -0,0 +1,20 @@
+import { defineContainer } from '../src/utils/defineContainer';
+import { ShapeFlags } from '@vue/shared';
+import { createVNode } from 'vue';
+
+describe('test defineContainer function', () => {
+ const testContainer = defineContainer('test');
+ it('should be a FunctionalComponent', () => {
+ expect(typeof test).toBe('function');
+ expect(createVNode(testContainer).shapeFlag).toBe(ShapeFlags.FUNCTIONAL_COMPONENT);
+ });
+ it('should have a display name equal to string passed in', () => {
+ expect(testContainer.displayName).toEqual('test');
+ });
+ it('should call slots default', () => {
+ const prop = { props: 'testProp' };
+ const ctx = { slots: { default: jest.fn() } }; // defining props/slots for test
+ testContainer(prop, ctx as any);
+ expect(ctx.slots.default).toHaveBeenCalled();
+ });
+});
\ No newline at end of file
diff --git a/test/defineInput.spec.ts b/test/defineInput.spec.ts
new file mode 100644
index 0000000..9ededbb
--- /dev/null
+++ b/test/defineInput.spec.ts
@@ -0,0 +1,30 @@
+import { defineInput } from '../src/utils/defineInput';
+import { createVNode } from 'vue';
+import { ShapeFlags } from '@vue/shared';
+import { shallowMount } from '@vue/test-utils';
+import sinon from 'sinon';
+
+describe('test defineInput function', () => {
+ const testInput = defineInput('test', 'test2');
+ it('should return a functional component with display name equal to name passed in', () => {
+ expect(typeof testInput).toBe('function');
+ expect(createVNode(testInput).shapeFlag).toBe(ShapeFlags.FUNCTIONAL_COMPONENT);
+ expect(testInput.displayName).toBe('test');
+ });
+ it('should check if h function is running correctly', () => {
+ const props = { props: 'updateEvent' };
+ const ctx = { slots: { default: jest.fn() } }; // defining props/slots for test
+ testInput(props as any, ctx as any);
+ expect(ctx.slots.default).toHaveBeenCalled();
+ });
+ it('should trigger input', async () => {
+ const spy = sinon.stub();
+ const wrapper = shallowMount(testInput, {
+ props: {
+ updateEvent: { spy }
+ }
+ });
+ await(wrapper.trigger('click'));
+ expect(spy.called).toBe(true);
+ });
+});
\ No newline at end of file
diff --git a/test/framework-delegate.spec.js b/test/framework-delegate.spec.js
deleted file mode 100644
index 9c3a59e..0000000
--- a/test/framework-delegate.spec.js
+++ /dev/null
@@ -1,73 +0,0 @@
-import Vue from 'vue'
-import Delegate from '../src/framework-delegate.js'
-
-const delegate = new Delegate(Vue)
-
-const app = document.createElement('div')
-app.id = 'app'
-document.body.appendChild(app)
-
-describe('Framework delegation', () => {
- it('Attaches components to DOM', () => {
- expect.assertions(2)
-
- const component = {
- template: 'foo
',
- }
-
- const data = {
- data() {
- return { foo: 'bar' }
- },
- }
-
- return delegate.attachViewToDom(app, component, data, ['foo']).then(el => {
- expect(el.classList.contains('foo')).toBeTruthy()
- expect(el.__vue__.foo).toBe('bar')
- return
- })
- })
-
- it('Attaches lazy loaded components to DOM', () => {
- expect.assertions(2)
-
- const component = function() {
- return Promise.resolve({
- render(h) {
- return h('p')
- },
- })
- }
-
- const data = {
- data() {
- return { foo: 'bar' }
- },
- }
-
- return delegate.attachViewToDom(app, component, data, ['foo']).then(el => {
- expect(el.classList.contains('foo')).toBeTruthy()
- expect(el.__vue__.foo).toBe('bar')
- return
- })
- })
-
- it('Attaches HTML elements to DOM', () => {
- expect.assertions(1)
- const element = document.createElement('p')
-
- return delegate.attachViewToDom(app, element, null, ['foo']).then(el => {
- return expect(el.classList.contains('foo')).toBeTruthy()
- })
- })
-
- it('Removes from DOM', () => {
- expect.assertions(2)
- const div = document.querySelector('p')
- expect(typeof div.__vue__).toBe('object')
-
- return delegate.removeViewFromDom(app, div).then(() => {
- return expect(div.__vue__).toBe(null)
- })
- })
-})
diff --git a/test/ion-vue-router-transitionless.spec.js b/test/ion-vue-router-transitionless.spec.js
deleted file mode 100644
index 2493b1a..0000000
--- a/test/ion-vue-router-transitionless.spec.js
+++ /dev/null
@@ -1,43 +0,0 @@
-import Vue from 'vue'
-import Router from '../src/router.js'
-import IonVueRouterTransitionless from '../src/components/ion-vue-router-transitionless.vue'
-
-Vue.use(Router)
-
-describe('IonVueRouter', () => {
- it('Catches back button click event', () => {
- const constructor = Vue.extend(IonVueRouterTransitionless)
- const component = new constructor({ router: new Router({ mode: 'abstract' }) })
-
- expect(component.catchIonicGoBack({})).toBeFalsy()
-
- component.$router.push('/')
- component.$router.push('/foo')
- expect(component.$route.fullPath).toBe('/foo')
-
- // Go back
- component.catchIonicGoBack(mockBackEvent('/'))
- expect(component.$route.fullPath).toBe('/')
-
- // Should not go back
- component.catchIonicGoBack(mockBackEvent())
- expect(component.$route.fullPath).toBe('/')
-
- // Go back to default route
- component.catchIonicGoBack(mockBackEvent('/bar'))
- expect(component.$route.fullPath).toBe('/bar')
- })
-})
-
-function mockBackEvent(route) {
- return {
- target: {
- closest() {
- return {
- defaultHref: route,
- }
- },
- },
- preventDefault() {},
- }
-}
diff --git a/test/ion-vue-router.spec.js b/test/ion-vue-router.spec.js
deleted file mode 100644
index f029fec..0000000
--- a/test/ion-vue-router.spec.js
+++ /dev/null
@@ -1,170 +0,0 @@
-import Vue from 'vue'
-import Router from '../src/router.js'
-import IonVueRouter from '../src/components/ion-vue-router.vue'
-
-describe('IonVueRouter', () => {
- Vue.use(Router)
- Vue.config.ignoredElements.push(/^ion-/)
-
- const app = new Vue({
- components: { Toolbar: Toolbar() },
- render(h) {
- return h('ion-vue-router')
- },
- router: new Router({
- mode: 'abstract',
- routes: [{ path: '/', component: Home() }, { path: '/page', component: Page() }],
- }),
- }).$mount()
-
- it('Renders the home route correctly', done => {
- app.$router.push('/')
- setTimeout(() => {
- expect(app.$el.textContent.trim()).toBe('Home Go to page')
- done()
- }, 1)
- })
-
- it('Renders the page route correctly', done => {
- app.$router.push('/page')
- setTimeout(() => {
- expect(app.$el.textContent.trim()).toBe('Page Go home')
- done()
- }, 1)
- })
-
- it('Renders back route correctly', done => {
- app.$router.go(-1)
- setTimeout(() => {
- expect(app.$el.textContent.trim()).toBe('Home Go to page')
- done()
- }, 1)
- })
-
- it('Sets the default data correctly', () => {
- expect(typeof IonVueRouter.data).toBe('function')
- expect(IonVueRouter.data()).toMatchObject({
- leavingEl: null,
- enteringEl: null,
- })
- })
-
- it('Sets the default props correctly', () => {
- const constructor = Vue.extend(IonVueRouter)
- const component = new constructor({ router: new Router() })
- expect(component.bindCss).toBeFalsy()
- expect(component.animated).toBeTruthy()
- expect(component.name).toBe('default')
- })
-
- it('Transitions correctly', () => {
- expect.assertions(3)
-
- const constructor = Vue.extend(IonVueRouter)
- const component = new constructor({ router: new Router() })
-
- component.$refs.ionRouterOutlet = mockIonRouterOutlet()
- expect(component.transition()).toBeFalsy()
-
- component.enteringEl = document.createElement('div')
- component.leave(document.createElement('h1'), res => {
- expect(res).toBeTruthy()
- })
-
- return component
- .transition(document.createElement('div'), document.createElement('h1'))
- .then(res => {
- return expect(res).toBeTruthy()
- })
- })
-
- it('Gets duration correctly', () => {
- const constructor = Vue.extend(IonVueRouter)
- const component = new constructor({ router: new Router() })
-
- expect(component.getDuration()).toBe(undefined)
-
- component.animated = false
- expect(component.getDuration()).toBe(0)
- })
-
- it('Gets direction correctly', () => {
- const constructor = Vue.extend(IonVueRouter)
- const component = new constructor({ router: new Router() })
-
- expect(component.getDirection()).toBe('forward')
-
- component.$router.direction = -1
- expect(component.getDirection()).toBe('back')
- })
-
- it('Runs stub methods correctly', () => {
- const constructor = Vue.extend(IonVueRouter)
- const component = new constructor({ router: new Router() })
-
- component.enterCancelled()
- component.leaveCancelled()
- })
-})
-
-function Toolbar() {
- return Vue.component('Toolbar', {
- name: 'Toolbar',
- props: {
- backURL: { type: String, default: '' },
- title: { type: String, default: '' },
- },
- template: `
-
-
-
-
-
- {{ title }}
-
- `,
- })
-}
-
-function Home() {
- return Vue.component('Home', {
- template: `
-
-
-
- Go to page
-
- `,
- })
-}
-
-function Page() {
- return Vue.component('Page', {
- methods: {
- goHome() {
- this.$router.back()
- },
- },
- template: `
-
-
-
- Go home
-
- `,
- })
-}
-
-function mockIonRouterOutlet() {
- return {
- componentOnReady() {
- return new Promise(resolve => {
- return resolve({
- commit() {
- return true
- },
- })
- })
- },
- }
-}
diff --git a/test/ionic-vue.spec.ts b/test/ionic-vue.spec.ts
new file mode 100644
index 0000000..ad55189
--- /dev/null
+++ b/test/ionic-vue.spec.ts
@@ -0,0 +1,13 @@
+import Ionic from '@ionic/core/loader';
+import { IonicVue } from '../src/ionic-vue';
+describe('test that install function in ionic-vue.ts works', () => {
+ const app = jest.fn();
+ it('should test that applyPolyfills & defineCustomElements is called', async () => {
+ expect(typeof IonicVue.install).toBe('function'); // tests if function exists
+ const polyfillSpy = jest.spyOn(Ionic, 'applyPolyfills');
+ const customElementsSpy = jest.spyOn(Ionic, 'defineCustomElements');
+ await IonicVue.install!(app as any);
+ expect(customElementsSpy).toHaveBeenCalled();
+ expect(polyfillSpy).toHaveBeenCalled();
+ });
+});
diff --git a/test/router.node.spec.js b/test/router.node.spec.js
deleted file mode 100644
index e79a744..0000000
--- a/test/router.node.spec.js
+++ /dev/null
@@ -1,9 +0,0 @@
-import Vue from 'vue'
-
-describe('Router node', () => {
- it('Sets globals correctly', () => {
- window.Vue = undefined
- global.Vue = Vue
- require('../src/router.js')
- })
-})
diff --git a/test/router.spec.js b/test/router.spec.js
deleted file mode 100644
index 2693e79..0000000
--- a/test/router.spec.js
+++ /dev/null
@@ -1,45 +0,0 @@
-import Vue from 'vue'
-import Router from '../src/router.js'
-
-describe('Router', () => {
- it('Installs correctly', () => {
- Vue.use(Router)
-
- const app = new Vue({
- router: new Router(),
- })
-
- expect(typeof app.$router).toBe('object')
- expect(typeof app.$options.components.IonVueRouter).toBe('function')
- expect(Router.install()).toBeFalsy()
- })
-
- it('Navigates correctly', () => {
- const r = new Router({ mode: 'abstract' })
-
- r.push('/')
- expect(r.viewCount).toBe(1)
- expect(r.direction).toBe(1)
- expect(r.canGoBack()).toBeFalsy()
-
- r.push('/foo')
- expect(r.viewCount).toBe(2)
- expect(r.direction).toBe(1)
- expect(r.canGoBack()).toBeTruthy()
-
- r.push('/bar')
- expect(r.viewCount).toBe(3)
- expect(r.direction).toBe(1)
- expect(r.canGoBack()).toBeTruthy()
-
- r.go(-1)
- expect(r.viewCount).toBe(2)
- expect(r.direction).toBe(-1)
- expect(r.canGoBack()).toBeTruthy()
-
- r.go(-1)
- expect(r.viewCount).toBe(1)
- expect(r.direction).toBe(-1)
- expect(r.canGoBack()).toBeFalsy()
- })
-})
diff --git a/tsconfig.json b/tsconfig.json
index 2765dda..2b1f0d2 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -7,14 +7,12 @@
"declaration": true,
"declarationMap": true,
"declarationDir": "types",
+ "esModuleInterop": true,
"experimentalDecorators": true,
"forceConsistentCasingInFileNames": true,
"jsx": "react",
"jsxFactory": "h",
- "lib": [
- "dom",
- "es2017"
- ],
+ "lib": ["dom", "es2017"],
"module": "es2015",
"moduleResolution": "node",
"noImplicitAny": true,
@@ -25,13 +23,10 @@
"pretty": true,
"removeComments": false,
"rootDir": "src",
+ "sourceMap": true,
"strictPropertyInitialization": false,
"target": "es5"
},
- "include": [
- "src/**/*.ts"
- ],
- "exclude": [
- "node_modules"
- ]
+ "include": ["src/**/*.ts"],
+ "exclude": ["node_modules"]
}
diff --git a/tslint.json b/tslint.json
index 0532515..9e82d89 100644
--- a/tslint.json
+++ b/tslint.json
@@ -1,7 +1,9 @@
{
- "extends": "tslint-ionic-rules",
- "rules": {
- "no-non-null-assertion": false,
- "no-import-side-effect": [true, {"ignore-module": "(svg|\\.css)$"}]
- }
+ "extends": "tslint-ionic-rules/",
+ "rules": {
+ "no-non-null-assertion": false,
+ "no-import-side-effect": [true, {"ignore-module": "(svg|\\.css)$"}],
+ "semicolon": [true, "always"]
+ }
}
+
\ No newline at end of file
diff --git a/types/app-initialize.d.ts b/types/app-initialize.d.ts
deleted file mode 100644
index e13c240..0000000
--- a/types/app-initialize.d.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-import { IonicConfig } from '@ionic/core';
-export declare function appInitialize(config?: IonicConfig): Promise;
-//# sourceMappingURL=app-initialize.d.ts.map
\ No newline at end of file
diff --git a/types/components/createOverlayComponent.d.ts b/types/components/createOverlayComponent.d.ts
deleted file mode 100644
index b91faa0..0000000
--- a/types/components/createOverlayComponent.d.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import { VueConstructor } from 'vue';
-import { OverlayController } from '@ionic/core';
-interface OverlayElement extends HTMLElement {
- present: () => Promise;
- dismiss: (data?: any, role?: string | undefined) => Promise;
-}
-interface Controller extends OverlayController {
- create: (opts: any) => Promise;
-}
-export declare function createOverlayComponent(name: string, controller: Controller): VueConstructor;
-export {};
-//# sourceMappingURL=createOverlayComponent.d.ts.map
\ No newline at end of file
diff --git a/types/components/index.d.ts b/types/components/index.d.ts
deleted file mode 100644
index 80f59ad..0000000
--- a/types/components/index.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-export * from './overlays';
-export * from './inputs';
-export * from './navigation';
-//# sourceMappingURL=index.d.ts.map
\ No newline at end of file
diff --git a/types/components/inputs.d.ts b/types/components/inputs.d.ts
deleted file mode 100644
index 79358a3..0000000
--- a/types/components/inputs.d.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-export declare const IonCheckboxVue: import("vue/types/vue").ExtendedVue>;
-export declare const IonDatetimeVue: import("vue/types/vue").ExtendedVue>;
-export declare const IonInputVue: import("vue/types/vue").ExtendedVue