diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml
new file mode 100644
index 000000000..7b215c0fc
--- /dev/null
+++ b/.github/FUNDING.yml
@@ -0,0 +1,3 @@
+github: [yyx990803, kiaking, ktsn]
+open_collective: vuejs
+patreon: evanyou
diff --git a/CHANGELOG.md b/CHANGELOG.md
index ec01b52aa..1ea2e51ef 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,26 @@
+## [3.6.2](https://github.com/vuejs/vuex/compare/v3.6.1...v3.6.2) (2021-01-26)
+
+### Bug Fixes
+
+* **build:** fix wrong path name for the export module ([679313b](https://github.com/vuejs/vuex/commit/679313bf5e4de066f340a06ef9bfe08d1536fadd))
+
+## [3.6.1](https://github.com/vuejs/vuex/compare/v3.6.0...v3.6.1) (2021-01-26)
+
+### Bug Fixes
+
+* fix tree shaking notworking in webpack bundle ([#1906](https://github.com/vuejs/vuex/issues/1906)) ([1dc2d1f](https://github.com/vuejs/vuex/commit/1dc2d1f21de42138053ea3281dde05487642a76d))
+
+# [3.6.0](https://github.com/vuejs/vuex/compare/v3.5.1...v3.6.0) (2020-11-25)
+
+### Bug Fixes
+
+* stop throwing an error on `hasModule` when parent does not exists ([#1850](https://github.com/vuejs/vuex/issues/1850)) ([#1851](https://github.com/vuejs/vuex/issues/1851)) ([12aabe4](https://github.com/vuejs/vuex/commit/12aabe4cc470916d40691097dcb95badb8212f5c))
+
+### Features
+
+* **types:** adding logger type for logger plugin ([#1853](https://github.com/vuejs/vuex/issues/1853)) ([cb3198d](https://github.com/vuejs/vuex/commit/cb3198d5998bdb11ef05dfa5ef98d5c5fa873089))
+* **build:** enable named esm module import on node.js >= 14 ([#1872](https://github.com/vuejs/vuex/issues/1872)) ([acddab2](https://github.com/vuejs/vuex/commit/acddab20769d1bb6125f2da78ac47561c682fc98))
+
## [3.5.1](https://github.com/vuejs/vuex/compare/v3.5.0...v3.5.1) (2020-06-29)
diff --git a/README.md b/README.md
index b8f23c95e..a5a0ce523 100644
--- a/README.md
+++ b/README.md
@@ -1,13 +1,21 @@
-# Vuex [](https://circleci.com/gh/vuejs/vuex)
+# Vuex
-> Centralized State Management for Vue.js.
+[](https://npmjs.com/package/vuex)
+[](https://circleci.com/gh/vuejs/vuex)
-
-
-
+---
-- [What is Vuex?](https://vuex.vuejs.org/)
-- [Full Documentation](http://vuex.vuejs.org/)
+:fire: **HEADS UP!** You're currently looking at Vuex 3 branch. If you're looking for Vuex 4, [please check out `main` branch](https://github.com/vuejs/vuex/tree/main).
+
+---
+
+Vuex is a state management pattern + library for Vue.js applications. It serves as a centralized store for all the components in an application, with rules ensuring that the state can only be mutated in a predictable fashion. It also integrates with Vue's official [devtools extension](https://github.com/vuejs/vue-devtools) to provide advanced features such as zero-config time-travel debugging and state snapshot export / import.
+
+Learn more about Vuex at "[What is Vuex?](https://vuex.vuejs.org/)", or get started by looking into [full documentation](http://vuex.vuejs.org/).
+
+## Documentation
+
+To check out docs, visit [vuex.vuejs.org](https://vuex.vuejs.org/).
## Examples
@@ -19,11 +27,27 @@
Running the examples:
-``` bash
+```bash
$ npm install
$ npm run dev # serve examples at localhost:8080
```
+## Questions
+
+For questions and support please use the [Discord chat server](https://chat.vuejs.org) or [the official forum](http://forum.vuejs.org). The issue list of this repo is **exclusively** for bug reports and feature requests.
+
+## Issues
+
+Please make sure to read the [Issue Reporting Checklist](https://github.com/vuejs/vuex/blob/dev/.github/contributing.md#issue-reporting-guidelines) before opening an issue. Issues not conforming to the guidelines may be closed immediately.
+
+## Changelog
+
+Detailed changes for each release are documented in the [release notes](https://github.com/vuejs/vuex/releases).
+
+## Stay In Touch
+
+For latest releases and announcements, follow on Twitter: [@vuejs](https://twitter.com/vuejs).
+
## Contribution
Please make sure to read the [Contributing Guide](https://github.com/vuejs/vuex/blob/dev/.github/contributing.md) before making a pull request.
@@ -31,3 +55,5 @@ Please make sure to read the [Contributing Guide](https://github.com/vuejs/vuex/
## License
[MIT](http://opensource.org/licenses/MIT)
+
+Copyright (c) 2015-present Evan You
diff --git a/dist/logger.d.ts b/dist/logger.d.ts
deleted file mode 100644
index 8ee43089c..000000000
--- a/dist/logger.d.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-// Types for the logger plugin. This file must be put alongside the bundled
-// JavaScript file of the logger.
-
-import { Payload, Plugin } from "../types/index";
-
-export interface LoggerOption {
- collapsed?: boolean;
- filter?: (mutation: P, stateBefore: S, stateAfter: S) => boolean;
- transformer?: (state: S) => any;
- mutationTransformer?:
(mutation: P) => any;
- actionFilter?:
(action: P, state: S) => boolean;
- actionTransformer?:
(action: P) => any;
- logMutations?: boolean;
- logActions?: boolean;
-}
-
-export default function createLogger(option?: LoggerOption): Plugin;
diff --git a/dist/logger.js b/dist/logger.js
index 827af8d89..0ccaf4193 100644
--- a/dist/logger.js
+++ b/dist/logger.js
@@ -1,12 +1,12 @@
/*!
- * vuex v3.5.1
- * (c) 2020 Evan You
+ * vuex v3.6.2
+ * (c) 2021 Evan You
* @license MIT
*/
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
typeof define === 'function' && define.amd ? define(factory) :
- (global = global || self, global.Vuex = factory());
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Vuex = factory());
}(this, (function () { 'use strict';
/**
diff --git a/dist/vuex.cjs.js b/dist/vuex.cjs.js
deleted file mode 100644
index d8309f229..000000000
--- a/dist/vuex.cjs.js
+++ /dev/null
@@ -1,1043 +0,0 @@
-/*!
- * vuex v4.0.0-beta.2
- * (c) 2020 Evan You
- * @license MIT
- */
-'use strict';
-
-var vue = require('vue');
-
-var storeKey = 'store';
-
-function useStore (key) {
- if ( key === void 0 ) key = null;
-
- return vue.inject(key !== null ? key : storeKey)
-}
-
-var target = typeof window !== 'undefined'
- ? window
- : typeof global !== 'undefined'
- ? global
- : {};
-var devtoolHook = target.__VUE_DEVTOOLS_GLOBAL_HOOK__;
-
-function devtoolPlugin (store) {
- if (!devtoolHook) { return }
-
- store._devtoolHook = devtoolHook;
-
- devtoolHook.emit('vuex:init', store);
-
- devtoolHook.on('vuex:travel-to-state', function (targetState) {
- store.replaceState(targetState);
- });
-
- store.subscribe(function (mutation, state) {
- devtoolHook.emit('vuex:mutation', mutation, state);
- }, { prepend: true });
-
- store.subscribeAction(function (action, state) {
- devtoolHook.emit('vuex:action', action, state);
- }, { prepend: true });
-}
-
-/**
- * Get the first item that pass the test
- * by second argument function
- *
- * @param {Array} list
- * @param {Function} f
- * @return {*}
- */
-
-/**
- * forEach for object
- */
-function forEachValue (obj, fn) {
- Object.keys(obj).forEach(function (key) { return fn(obj[key], key); });
-}
-
-function isObject (obj) {
- return obj !== null && typeof obj === 'object'
-}
-
-function isPromise (val) {
- return val && typeof val.then === 'function'
-}
-
-function assert (condition, msg) {
- if (!condition) { throw new Error(("[vuex] " + msg)) }
-}
-
-function partial (fn, arg) {
- return function () {
- return fn(arg)
- }
-}
-
-// Base data struct for store's module, package with some attribute and method
-var Module = function Module (rawModule, runtime) {
- this.runtime = runtime;
- // Store some children item
- this._children = Object.create(null);
- // Store the origin module object which passed by programmer
- this._rawModule = rawModule;
- var rawState = rawModule.state;
-
- // Store the origin module's state
- this.state = (typeof rawState === 'function' ? rawState() : rawState) || {};
-};
-
-var prototypeAccessors = { namespaced: { configurable: true } };
-
-prototypeAccessors.namespaced.get = function () {
- return !!this._rawModule.namespaced
-};
-
-Module.prototype.addChild = function addChild (key, module) {
- this._children[key] = module;
-};
-
-Module.prototype.removeChild = function removeChild (key) {
- delete this._children[key];
-};
-
-Module.prototype.getChild = function getChild (key) {
- return this._children[key]
-};
-
-Module.prototype.hasChild = function hasChild (key) {
- return key in this._children
-};
-
-Module.prototype.update = function update (rawModule) {
- this._rawModule.namespaced = rawModule.namespaced;
- if (rawModule.actions) {
- this._rawModule.actions = rawModule.actions;
- }
- if (rawModule.mutations) {
- this._rawModule.mutations = rawModule.mutations;
- }
- if (rawModule.getters) {
- this._rawModule.getters = rawModule.getters;
- }
-};
-
-Module.prototype.forEachChild = function forEachChild (fn) {
- forEachValue(this._children, fn);
-};
-
-Module.prototype.forEachGetter = function forEachGetter (fn) {
- if (this._rawModule.getters) {
- forEachValue(this._rawModule.getters, fn);
- }
-};
-
-Module.prototype.forEachAction = function forEachAction (fn) {
- if (this._rawModule.actions) {
- forEachValue(this._rawModule.actions, fn);
- }
-};
-
-Module.prototype.forEachMutation = function forEachMutation (fn) {
- if (this._rawModule.mutations) {
- forEachValue(this._rawModule.mutations, fn);
- }
-};
-
-Object.defineProperties( Module.prototype, prototypeAccessors );
-
-var ModuleCollection = function ModuleCollection (rawRootModule) {
- // register root module (Vuex.Store options)
- this.register([], rawRootModule, false);
-};
-
-ModuleCollection.prototype.get = function get (path) {
- return path.reduce(function (module, key) {
- return module.getChild(key)
- }, this.root)
-};
-
-ModuleCollection.prototype.getNamespace = function getNamespace (path) {
- var module = this.root;
- return path.reduce(function (namespace, key) {
- module = module.getChild(key);
- return namespace + (module.namespaced ? key + '/' : '')
- }, '')
-};
-
-ModuleCollection.prototype.update = function update$1 (rawRootModule) {
- update([], this.root, rawRootModule);
-};
-
-ModuleCollection.prototype.register = function register (path, rawModule, runtime) {
- var this$1 = this;
- if ( runtime === void 0 ) runtime = true;
-
- if ((process.env.NODE_ENV !== 'production')) {
- assertRawModule(path, rawModule);
- }
-
- var newModule = new Module(rawModule, runtime);
- if (path.length === 0) {
- this.root = newModule;
- } else {
- var parent = this.get(path.slice(0, -1));
- parent.addChild(path[path.length - 1], newModule);
- }
-
- // register nested modules
- if (rawModule.modules) {
- forEachValue(rawModule.modules, function (rawChildModule, key) {
- this$1.register(path.concat(key), rawChildModule, runtime);
- });
- }
-};
-
-ModuleCollection.prototype.unregister = function unregister (path) {
- var parent = this.get(path.slice(0, -1));
- var key = path[path.length - 1];
- if (!parent.getChild(key).runtime) { return }
-
- parent.removeChild(key);
-};
-
-ModuleCollection.prototype.isRegistered = function isRegistered (path) {
- var parent = this.get(path.slice(0, -1));
- var key = path[path.length - 1];
-
- return parent.hasChild(key)
-};
-
-function update (path, targetModule, newModule) {
- if ((process.env.NODE_ENV !== 'production')) {
- assertRawModule(path, newModule);
- }
-
- // update target module
- targetModule.update(newModule);
-
- // update nested modules
- if (newModule.modules) {
- for (var key in newModule.modules) {
- if (!targetModule.getChild(key)) {
- if ((process.env.NODE_ENV !== 'production')) {
- console.warn(
- "[vuex] trying to add a new module '" + key + "' on hot reloading, " +
- 'manual reload is needed'
- );
- }
- return
- }
- update(
- path.concat(key),
- targetModule.getChild(key),
- newModule.modules[key]
- );
- }
- }
-}
-
-var functionAssert = {
- assert: function (value) { return typeof value === 'function'; },
- expected: 'function'
-};
-
-var objectAssert = {
- assert: function (value) { return typeof value === 'function' ||
- (typeof value === 'object' && typeof value.handler === 'function'); },
- expected: 'function or object with "handler" function'
-};
-
-var assertTypes = {
- getters: functionAssert,
- mutations: functionAssert,
- actions: objectAssert
-};
-
-function assertRawModule (path, rawModule) {
- Object.keys(assertTypes).forEach(function (key) {
- if (!rawModule[key]) { return }
-
- var assertOptions = assertTypes[key];
-
- forEachValue(rawModule[key], function (value, type) {
- assert(
- assertOptions.assert(value),
- makeAssertionMessage(path, key, type, value, assertOptions.expected)
- );
- });
- });
-}
-
-function makeAssertionMessage (path, key, type, value, expected) {
- var buf = key + " should be " + expected + " but \"" + key + "." + type + "\"";
- if (path.length > 0) {
- buf += " in module \"" + (path.join('.')) + "\"";
- }
- buf += " is " + (JSON.stringify(value)) + ".";
- return buf
-}
-
-function createStore (options) {
- return new Store(options)
-}
-
-var Store = function Store (options) {
- var this$1 = this;
- if ( options === void 0 ) options = {};
-
- if (process.env.NODE_ENV !== 'production') {
- assert(typeof Promise !== 'undefined', "vuex requires a Promise polyfill in this browser.");
- assert(this instanceof Store, "store must be called with the new operator.");
- }
-
- var plugins = options.plugins; if ( plugins === void 0 ) plugins = [];
- var strict = options.strict; if ( strict === void 0 ) strict = false;
-
- // store internal state
- this._committing = false;
- this._actions = Object.create(null);
- this._actionSubscribers = [];
- this._mutations = Object.create(null);
- this._wrappedGetters = Object.create(null);
- this._modules = new ModuleCollection(options);
- this._modulesNamespaceMap = Object.create(null);
- this._subscribers = [];
- this._makeLocalGettersCache = Object.create(null);
-
- // bind commit and dispatch to self
- var store = this;
- var ref = this;
- var dispatch = ref.dispatch;
- var commit = ref.commit;
- this.dispatch = function boundDispatch (type, payload) {
- return dispatch.call(store, type, payload)
- };
- this.commit = function boundCommit (type, payload, options) {
- return commit.call(store, type, payload, options)
- };
-
- // strict mode
- this.strict = strict;
-
- var state = this._modules.root.state;
-
- // init root module.
- // this also recursively registers all sub-modules
- // and collects all module getters inside this._wrappedGetters
- installModule(this, state, [], this._modules.root);
-
- // initialize the store state, which is responsible for the reactivity
- // (also registers _wrappedGetters as computed properties)
- resetStoreState(this, state);
-
- // apply plugins
- plugins.forEach(function (plugin) { return plugin(this$1); });
-
- var useDevtools = options.devtools !== undefined ? options.devtools : /* Vue.config.devtools */ true;
- if (useDevtools) {
- devtoolPlugin(this);
- }
-};
-
-var prototypeAccessors$1 = { state: { configurable: true } };
-
-Store.prototype.install = function install (app, injectKey) {
- app.provide(injectKey || storeKey, this);
- app.config.globalProperties.$store = this;
-};
-
-prototypeAccessors$1.state.get = function () {
- return this._state.data
-};
-
-prototypeAccessors$1.state.set = function (v) {
- if ((process.env.NODE_ENV !== 'production')) {
- assert(false, "use store.replaceState() to explicit replace store state.");
- }
-};
-
-Store.prototype.commit = function commit (_type, _payload, _options) {
- var this$1 = this;
-
- // check object-style commit
- var ref = unifyObjectStyle(_type, _payload, _options);
- var type = ref.type;
- var payload = ref.payload;
- var options = ref.options;
-
- var mutation = { type: type, payload: payload };
- var entry = this._mutations[type];
- if (!entry) {
- if ((process.env.NODE_ENV !== 'production')) {
- console.error(("[vuex] unknown mutation type: " + type));
- }
- return
- }
- this._withCommit(function () {
- entry.forEach(function commitIterator (handler) {
- handler(payload);
- });
- });
-
- this._subscribers
- .slice() // shallow copy to prevent iterator invalidation if subscriber synchronously calls unsubscribe
- .forEach(function (sub) { return sub(mutation, this$1.state); });
-
- if (
- (process.env.NODE_ENV !== 'production') &&
- options && options.silent
- ) {
- console.warn(
- "[vuex] mutation type: " + type + ". Silent option has been removed. " +
- 'Use the filter functionality in the vue-devtools'
- );
- }
-};
-
-Store.prototype.dispatch = function dispatch (_type, _payload) {
- var this$1 = this;
-
- // check object-style dispatch
- var ref = unifyObjectStyle(_type, _payload);
- var type = ref.type;
- var payload = ref.payload;
-
- var action = { type: type, payload: payload };
- var entry = this._actions[type];
- if (!entry) {
- if ((process.env.NODE_ENV !== 'production')) {
- console.error(("[vuex] unknown action type: " + type));
- }
- return
- }
-
- try {
- this._actionSubscribers
- .slice() // shallow copy to prevent iterator invalidation if subscriber synchronously calls unsubscribe
- .filter(function (sub) { return sub.before; })
- .forEach(function (sub) { return sub.before(action, this$1.state); });
- } catch (e) {
- if ((process.env.NODE_ENV !== 'production')) {
- console.warn("[vuex] error in before action subscribers: ");
- console.error(e);
- }
- }
-
- var result = entry.length > 1
- ? Promise.all(entry.map(function (handler) { return handler(payload); }))
- : entry[0](payload);
-
- return new Promise(function (resolve, reject) {
- result.then(function (res) {
- try {
- this$1._actionSubscribers
- .filter(function (sub) { return sub.after; })
- .forEach(function (sub) { return sub.after(action, this$1.state); });
- } catch (e) {
- if ((process.env.NODE_ENV !== 'production')) {
- console.warn("[vuex] error in after action subscribers: ");
- console.error(e);
- }
- }
- resolve(res);
- }, function (error) {
- try {
- this$1._actionSubscribers
- .filter(function (sub) { return sub.error; })
- .forEach(function (sub) { return sub.error(action, this$1.state, error); });
- } catch (e) {
- if ((process.env.NODE_ENV !== 'production')) {
- console.warn("[vuex] error in error action subscribers: ");
- console.error(e);
- }
- }
- reject(error);
- });
- })
-};
-
-Store.prototype.subscribe = function subscribe (fn, options) {
- return genericSubscribe(fn, this._subscribers, options)
-};
-
-Store.prototype.subscribeAction = function subscribeAction (fn, options) {
- var subs = typeof fn === 'function' ? { before: fn } : fn;
- return genericSubscribe(subs, this._actionSubscribers, options)
-};
-
-Store.prototype.watch = function watch$1 (getter, cb, options) {
- var this$1 = this;
-
- if ((process.env.NODE_ENV !== 'production')) {
- assert(typeof getter === 'function', "store.watch only accepts a function.");
- }
- return vue.watch(function () { return getter(this$1.state, this$1.getters); }, cb, Object.assign({}, options))
-};
-
-Store.prototype.replaceState = function replaceState (state) {
- var this$1 = this;
-
- this._withCommit(function () {
- this$1._state.data = state;
- });
-};
-
-Store.prototype.registerModule = function registerModule (path, rawModule, options) {
- if ( options === void 0 ) options = {};
-
- if (typeof path === 'string') { path = [path]; }
-
- if ((process.env.NODE_ENV !== 'production')) {
- assert(Array.isArray(path), "module path must be a string or an Array.");
- assert(path.length > 0, 'cannot register the root module by using registerModule.');
- }
-
- this._modules.register(path, rawModule);
- installModule(this, this.state, path, this._modules.get(path), options.preserveState);
- // reset store to update getters...
- resetStoreState(this, this.state);
-};
-
-Store.prototype.unregisterModule = function unregisterModule (path) {
- var this$1 = this;
-
- if (typeof path === 'string') { path = [path]; }
-
- if ((process.env.NODE_ENV !== 'production')) {
- assert(Array.isArray(path), "module path must be a string or an Array.");
- }
-
- this._modules.unregister(path);
- this._withCommit(function () {
- var parentState = getNestedState(this$1.state, path.slice(0, -1));
- delete parentState[path[path.length - 1]];
- });
- resetStore(this);
-};
-
-Store.prototype.hasModule = function hasModule (path) {
- if (typeof path === 'string') { path = [path]; }
-
- if ((process.env.NODE_ENV !== 'production')) {
- assert(Array.isArray(path), "module path must be a string or an Array.");
- }
-
- return this._modules.isRegistered(path)
-};
-
-Store.prototype.hotUpdate = function hotUpdate (newOptions) {
- this._modules.update(newOptions);
- resetStore(this, true);
-};
-
-Store.prototype._withCommit = function _withCommit (fn) {
- var committing = this._committing;
- this._committing = true;
- fn();
- this._committing = committing;
-};
-
-Object.defineProperties( Store.prototype, prototypeAccessors$1 );
-
-function genericSubscribe (fn, subs, options) {
- if (subs.indexOf(fn) < 0) {
- options && options.prepend
- ? subs.unshift(fn)
- : subs.push(fn);
- }
- return function () {
- var i = subs.indexOf(fn);
- if (i > -1) {
- subs.splice(i, 1);
- }
- }
-}
-
-function resetStore (store, hot) {
- store._actions = Object.create(null);
- store._mutations = Object.create(null);
- store._wrappedGetters = Object.create(null);
- store._modulesNamespaceMap = Object.create(null);
- var state = store.state;
- // init all modules
- installModule(store, state, [], store._modules.root, true);
- // reset state
- resetStoreState(store, state, hot);
-}
-
-function resetStoreState (store, state, hot) {
- var oldState = store._state;
-
- // bind store public getters
- store.getters = {};
- // reset local getters cache
- store._makeLocalGettersCache = Object.create(null);
- var wrappedGetters = store._wrappedGetters;
- var computedObj = {};
- forEachValue(wrappedGetters, function (fn, key) {
- // use computed to leverage its lazy-caching mechanism
- // direct inline function use will lead to closure preserving oldVm.
- // using partial to return function with only arguments preserved in closure environment.
- computedObj[key] = partial(fn, store);
- Object.defineProperty(store.getters, key, {
- get: function () { return vue.computed(function () { return computedObj[key](); }).value; },
- enumerable: true // for local getters
- });
- });
-
- store._state = vue.reactive({
- data: state
- });
-
- // enable strict mode for new state
- if (store.strict) {
- enableStrictMode(store);
- }
-
- if (oldState) {
- if (hot) {
- // dispatch changes in all subscribed watchers
- // to force getter re-evaluation for hot reloading.
- store._withCommit(function () {
- oldState.data = null;
- });
- }
- }
-}
-
-function installModule (store, rootState, path, module, hot) {
- var isRoot = !path.length;
- var namespace = store._modules.getNamespace(path);
-
- // register in namespace map
- if (module.namespaced) {
- if (store._modulesNamespaceMap[namespace] && (process.env.NODE_ENV !== 'production')) {
- console.error(("[vuex] duplicate namespace " + namespace + " for the namespaced module " + (path.join('/'))));
- }
- store._modulesNamespaceMap[namespace] = module;
- }
-
- // set state
- if (!isRoot && !hot) {
- var parentState = getNestedState(rootState, path.slice(0, -1));
- var moduleName = path[path.length - 1];
- store._withCommit(function () {
- if ((process.env.NODE_ENV !== 'production')) {
- if (moduleName in parentState) {
- console.warn(
- ("[vuex] state field \"" + moduleName + "\" was overridden by a module with the same name at \"" + (path.join('.')) + "\"")
- );
- }
- }
- parentState[moduleName] = module.state;
- });
- }
-
- var local = module.context = makeLocalContext(store, namespace, path);
-
- module.forEachMutation(function (mutation, key) {
- var namespacedType = namespace + key;
- registerMutation(store, namespacedType, mutation, local);
- });
-
- module.forEachAction(function (action, key) {
- var type = action.root ? key : namespace + key;
- var handler = action.handler || action;
- registerAction(store, type, handler, local);
- });
-
- module.forEachGetter(function (getter, key) {
- var namespacedType = namespace + key;
- registerGetter(store, namespacedType, getter, local);
- });
-
- module.forEachChild(function (child, key) {
- installModule(store, rootState, path.concat(key), child, hot);
- });
-}
-
-/**
- * make localized dispatch, commit, getters and state
- * if there is no namespace, just use root ones
- */
-function makeLocalContext (store, namespace, path) {
- var noNamespace = namespace === '';
-
- var local = {
- dispatch: noNamespace ? store.dispatch : function (_type, _payload, _options) {
- var args = unifyObjectStyle(_type, _payload, _options);
- var payload = args.payload;
- var options = args.options;
- var type = args.type;
-
- if (!options || !options.root) {
- type = namespace + type;
- if ((process.env.NODE_ENV !== 'production') && !store._actions[type]) {
- console.error(("[vuex] unknown local action type: " + (args.type) + ", global type: " + type));
- return
- }
- }
-
- return store.dispatch(type, payload)
- },
-
- commit: noNamespace ? store.commit : function (_type, _payload, _options) {
- var args = unifyObjectStyle(_type, _payload, _options);
- var payload = args.payload;
- var options = args.options;
- var type = args.type;
-
- if (!options || !options.root) {
- type = namespace + type;
- if ((process.env.NODE_ENV !== 'production') && !store._mutations[type]) {
- console.error(("[vuex] unknown local mutation type: " + (args.type) + ", global type: " + type));
- return
- }
- }
-
- store.commit(type, payload, options);
- }
- };
-
- // getters and state object must be gotten lazily
- // because they will be changed by state update
- Object.defineProperties(local, {
- getters: {
- get: noNamespace
- ? function () { return store.getters; }
- : function () { return makeLocalGetters(store, namespace); }
- },
- state: {
- get: function () { return getNestedState(store.state, path); }
- }
- });
-
- return local
-}
-
-function makeLocalGetters (store, namespace) {
- if (!store._makeLocalGettersCache[namespace]) {
- var gettersProxy = {};
- var splitPos = namespace.length;
- Object.keys(store.getters).forEach(function (type) {
- // skip if the target getter is not match this namespace
- if (type.slice(0, splitPos) !== namespace) { return }
-
- // extract local getter type
- var localType = type.slice(splitPos);
-
- // Add a port to the getters proxy.
- // Define as getter property because
- // we do not want to evaluate the getters in this time.
- Object.defineProperty(gettersProxy, localType, {
- get: function () { return store.getters[type]; },
- enumerable: true
- });
- });
- store._makeLocalGettersCache[namespace] = gettersProxy;
- }
-
- return store._makeLocalGettersCache[namespace]
-}
-
-function registerMutation (store, type, handler, local) {
- var entry = store._mutations[type] || (store._mutations[type] = []);
- entry.push(function wrappedMutationHandler (payload) {
- handler.call(store, local.state, payload);
- });
-}
-
-function registerAction (store, type, handler, local) {
- var entry = store._actions[type] || (store._actions[type] = []);
- entry.push(function wrappedActionHandler (payload) {
- var res = handler.call(store, {
- dispatch: local.dispatch,
- commit: local.commit,
- getters: local.getters,
- state: local.state,
- rootGetters: store.getters,
- rootState: store.state
- }, payload);
- if (!isPromise(res)) {
- res = Promise.resolve(res);
- }
- if (store._devtoolHook) {
- return res.catch(function (err) {
- store._devtoolHook.emit('vuex:error', err);
- throw err
- })
- } else {
- return res
- }
- });
-}
-
-function registerGetter (store, type, rawGetter, local) {
- if (store._wrappedGetters[type]) {
- if ((process.env.NODE_ENV !== 'production')) {
- console.error(("[vuex] duplicate getter key: " + type));
- }
- return
- }
- store._wrappedGetters[type] = function wrappedGetter (store) {
- return rawGetter(
- local.state, // local state
- local.getters, // local getters
- store.state, // root state
- store.getters // root getters
- )
- };
-}
-
-function enableStrictMode (store) {
- vue.watch(function () { return store._state.data; }, function () {
- if ((process.env.NODE_ENV !== 'production')) {
- assert(store._committing, "do not mutate vuex store state outside mutation handlers.");
- }
- }, { deep: true, flush: 'sync' });
-}
-
-function getNestedState (state, path) {
- return path.reduce(function (state, key) { return state[key]; }, state)
-}
-
-function unifyObjectStyle (type, payload, options) {
- if (isObject(type) && type.type) {
- options = payload;
- payload = type;
- type = type.type;
- }
-
- if ((process.env.NODE_ENV !== 'production')) {
- assert(typeof type === 'string', ("expects string as the type, but found " + (typeof type) + "."));
- }
-
- return { type: type, payload: payload, options: options }
-}
-
-/**
- * Reduce the code which written in Vue.js for getting the state.
- * @param {String} [namespace] - Module's namespace
- * @param {Object|Array} states # Object's item can be a function which accept state and getters for param, you can do something for state and getters in it.
- * @param {Object}
- */
-var mapState = normalizeNamespace(function (namespace, states) {
- var res = {};
- if ((process.env.NODE_ENV !== 'production') && !isValidMap(states)) {
- console.error('[vuex] mapState: mapper parameter must be either an Array or an Object');
- }
- normalizeMap(states).forEach(function (ref) {
- var key = ref.key;
- var val = ref.val;
-
- res[key] = function mappedState () {
- var state = this.$store.state;
- var getters = this.$store.getters;
- if (namespace) {
- var module = getModuleByNamespace(this.$store, 'mapState', namespace);
- if (!module) {
- return
- }
- state = module.context.state;
- getters = module.context.getters;
- }
- return typeof val === 'function'
- ? val.call(this, state, getters)
- : state[val]
- };
- // mark vuex getter for devtools
- res[key].vuex = true;
- });
- return res
-});
-
-/**
- * Reduce the code which written in Vue.js for committing the mutation
- * @param {String} [namespace] - Module's namespace
- * @param {Object|Array} mutations # Object's item can be a function which accept `commit` function as the first param, it can accept anthor params. You can commit mutation and do any other things in this function. specially, You need to pass anthor params from the mapped function.
- * @return {Object}
- */
-var mapMutations = normalizeNamespace(function (namespace, mutations) {
- var res = {};
- if ((process.env.NODE_ENV !== 'production') && !isValidMap(mutations)) {
- console.error('[vuex] mapMutations: mapper parameter must be either an Array or an Object');
- }
- normalizeMap(mutations).forEach(function (ref) {
- var key = ref.key;
- var val = ref.val;
-
- res[key] = function mappedMutation () {
- var args = [], len = arguments.length;
- while ( len-- ) args[ len ] = arguments[ len ];
-
- // Get the commit method from store
- var commit = this.$store.commit;
- if (namespace) {
- var module = getModuleByNamespace(this.$store, 'mapMutations', namespace);
- if (!module) {
- return
- }
- commit = module.context.commit;
- }
- return typeof val === 'function'
- ? val.apply(this, [commit].concat(args))
- : commit.apply(this.$store, [val].concat(args))
- };
- });
- return res
-});
-
-/**
- * Reduce the code which written in Vue.js for getting the getters
- * @param {String} [namespace] - Module's namespace
- * @param {Object|Array} getters
- * @return {Object}
- */
-var mapGetters = normalizeNamespace(function (namespace, getters) {
- var res = {};
- if ((process.env.NODE_ENV !== 'production') && !isValidMap(getters)) {
- console.error('[vuex] mapGetters: mapper parameter must be either an Array or an Object');
- }
- normalizeMap(getters).forEach(function (ref) {
- var key = ref.key;
- var val = ref.val;
-
- // The namespace has been mutated by normalizeNamespace
- val = namespace + val;
- res[key] = function mappedGetter () {
- if (namespace && !getModuleByNamespace(this.$store, 'mapGetters', namespace)) {
- return
- }
- if ((process.env.NODE_ENV !== 'production') && !(val in this.$store.getters)) {
- console.error(("[vuex] unknown getter: " + val));
- return
- }
- return this.$store.getters[val]
- };
- // mark vuex getter for devtools
- res[key].vuex = true;
- });
- return res
-});
-
-/**
- * Reduce the code which written in Vue.js for dispatch the action
- * @param {String} [namespace] - Module's namespace
- * @param {Object|Array} actions # Object's item can be a function which accept `dispatch` function as the first param, it can accept anthor params. You can dispatch action and do any other things in this function. specially, You need to pass anthor params from the mapped function.
- * @return {Object}
- */
-var mapActions = normalizeNamespace(function (namespace, actions) {
- var res = {};
- if ((process.env.NODE_ENV !== 'production') && !isValidMap(actions)) {
- console.error('[vuex] mapActions: mapper parameter must be either an Array or an Object');
- }
- normalizeMap(actions).forEach(function (ref) {
- var key = ref.key;
- var val = ref.val;
-
- res[key] = function mappedAction () {
- var args = [], len = arguments.length;
- while ( len-- ) args[ len ] = arguments[ len ];
-
- // get dispatch function from store
- var dispatch = this.$store.dispatch;
- if (namespace) {
- var module = getModuleByNamespace(this.$store, 'mapActions', namespace);
- if (!module) {
- return
- }
- dispatch = module.context.dispatch;
- }
- return typeof val === 'function'
- ? val.apply(this, [dispatch].concat(args))
- : dispatch.apply(this.$store, [val].concat(args))
- };
- });
- return res
-});
-
-/**
- * Rebinding namespace param for mapXXX function in special scoped, and return them by simple object
- * @param {String} namespace
- * @return {Object}
- */
-var createNamespacedHelpers = function (namespace) { return ({
- mapState: mapState.bind(null, namespace),
- mapGetters: mapGetters.bind(null, namespace),
- mapMutations: mapMutations.bind(null, namespace),
- mapActions: mapActions.bind(null, namespace)
-}); };
-
-/**
- * Normalize the map
- * normalizeMap([1, 2, 3]) => [ { key: 1, val: 1 }, { key: 2, val: 2 }, { key: 3, val: 3 } ]
- * normalizeMap({a: 1, b: 2, c: 3}) => [ { key: 'a', val: 1 }, { key: 'b', val: 2 }, { key: 'c', val: 3 } ]
- * @param {Array|Object} map
- * @return {Object}
- */
-function normalizeMap (map) {
- if (!isValidMap(map)) {
- return []
- }
- return Array.isArray(map)
- ? map.map(function (key) { return ({ key: key, val: key }); })
- : Object.keys(map).map(function (key) { return ({ key: key, val: map[key] }); })
-}
-
-/**
- * Validate whether given map is valid or not
- * @param {*} map
- * @return {Boolean}
- */
-function isValidMap (map) {
- return Array.isArray(map) || isObject(map)
-}
-
-/**
- * Return a function expect two param contains namespace and map. it will normalize the namespace and then the param's function will handle the new namespace and the map.
- * @param {Function} fn
- * @return {Function}
- */
-function normalizeNamespace (fn) {
- return function (namespace, map) {
- if (typeof namespace !== 'string') {
- map = namespace;
- namespace = '';
- } else if (namespace.charAt(namespace.length - 1) !== '/') {
- namespace += '/';
- }
- return fn(namespace, map)
- }
-}
-
-/**
- * Search a special module from store by namespace. if module not exist, print error message.
- * @param {Object} store
- * @param {String} helper
- * @param {String} namespace
- * @return {Object}
- */
-function getModuleByNamespace (store, helper, namespace) {
- var module = store._modulesNamespaceMap[namespace];
- if ((process.env.NODE_ENV !== 'production') && !module) {
- console.error(("[vuex] module namespace not found in " + helper + "(): " + namespace));
- }
- return module
-}
-
-var index_cjs = {
- version: '4.0.0-beta.2',
- createStore: createStore,
- Store: Store,
- useStore: useStore,
- mapState: mapState,
- mapMutations: mapMutations,
- mapGetters: mapGetters,
- mapActions: mapActions,
- createNamespacedHelpers: createNamespacedHelpers
-};
-
-module.exports = index_cjs;
diff --git a/dist/vuex.common.js b/dist/vuex.common.js
index 6d7873024..8d1c52192 100644
--- a/dist/vuex.common.js
+++ b/dist/vuex.common.js
@@ -1,6 +1,6 @@
/*!
- * vuex v3.5.1
- * (c) 2020 Evan You
+ * vuex v3.6.2
+ * (c) 2021 Evan You
* @license MIT
*/
'use strict';
@@ -288,7 +288,11 @@ ModuleCollection.prototype.isRegistered = function isRegistered (path) {
var parent = this.get(path.slice(0, -1));
var key = path[path.length - 1];
- return parent.hasChild(key)
+ if (parent) {
+ return parent.hasChild(key)
+ }
+
+ return false
};
function update (path, targetModule, newModule) {
@@ -963,7 +967,7 @@ var mapState = normalizeNamespace(function (namespace, states) {
/**
* Reduce the code which written in Vue.js for committing the mutation
* @param {String} [namespace] - Module's namespace
- * @param {Object|Array} mutations # Object's item can be a function which accept `commit` function as the first param, it can accept anthor params. You can commit mutation and do any other things in this function. specially, You need to pass anthor params from the mapped function.
+ * @param {Object|Array} mutations # Object's item can be a function which accept `commit` function as the first param, it can accept another params. You can commit mutation and do any other things in this function. specially, You need to pass anthor params from the mapped function.
* @return {Object}
*/
var mapMutations = normalizeNamespace(function (namespace, mutations) {
@@ -1228,7 +1232,7 @@ function pad (num, maxLength) {
var index_cjs = {
Store: Store,
install: install,
- version: '3.5.1',
+ version: '3.6.2',
mapState: mapState,
mapMutations: mapMutations,
mapGetters: mapGetters,
diff --git a/dist/vuex.esm-browser.js b/dist/vuex.esm-browser.js
deleted file mode 100644
index f2aa2fcc0..000000000
--- a/dist/vuex.esm-browser.js
+++ /dev/null
@@ -1,1042 +0,0 @@
-/*!
- * vuex v4.0.0-beta.2
- * (c) 2020 Evan You
- * @license MIT
- */
-import { inject, watch, reactive, computed } from 'vue';
-
-var storeKey = 'store';
-
-function useStore (key) {
- if ( key === void 0 ) key = null;
-
- return inject(key !== null ? key : storeKey)
-}
-
-var target = typeof window !== 'undefined'
- ? window
- : typeof global !== 'undefined'
- ? global
- : {};
-var devtoolHook = target.__VUE_DEVTOOLS_GLOBAL_HOOK__;
-
-function devtoolPlugin (store) {
- if (!devtoolHook) { return }
-
- store._devtoolHook = devtoolHook;
-
- devtoolHook.emit('vuex:init', store);
-
- devtoolHook.on('vuex:travel-to-state', function (targetState) {
- store.replaceState(targetState);
- });
-
- store.subscribe(function (mutation, state) {
- devtoolHook.emit('vuex:mutation', mutation, state);
- }, { prepend: true });
-
- store.subscribeAction(function (action, state) {
- devtoolHook.emit('vuex:action', action, state);
- }, { prepend: true });
-}
-
-/**
- * Get the first item that pass the test
- * by second argument function
- *
- * @param {Array} list
- * @param {Function} f
- * @return {*}
- */
-
-/**
- * forEach for object
- */
-function forEachValue (obj, fn) {
- Object.keys(obj).forEach(function (key) { return fn(obj[key], key); });
-}
-
-function isObject (obj) {
- return obj !== null && typeof obj === 'object'
-}
-
-function isPromise (val) {
- return val && typeof val.then === 'function'
-}
-
-function assert (condition, msg) {
- if (!condition) { throw new Error(("[vuex] " + msg)) }
-}
-
-function partial (fn, arg) {
- return function () {
- return fn(arg)
- }
-}
-
-// Base data struct for store's module, package with some attribute and method
-var Module = function Module (rawModule, runtime) {
- this.runtime = runtime;
- // Store some children item
- this._children = Object.create(null);
- // Store the origin module object which passed by programmer
- this._rawModule = rawModule;
- var rawState = rawModule.state;
-
- // Store the origin module's state
- this.state = (typeof rawState === 'function' ? rawState() : rawState) || {};
-};
-
-var prototypeAccessors = { namespaced: { configurable: true } };
-
-prototypeAccessors.namespaced.get = function () {
- return !!this._rawModule.namespaced
-};
-
-Module.prototype.addChild = function addChild (key, module) {
- this._children[key] = module;
-};
-
-Module.prototype.removeChild = function removeChild (key) {
- delete this._children[key];
-};
-
-Module.prototype.getChild = function getChild (key) {
- return this._children[key]
-};
-
-Module.prototype.hasChild = function hasChild (key) {
- return key in this._children
-};
-
-Module.prototype.update = function update (rawModule) {
- this._rawModule.namespaced = rawModule.namespaced;
- if (rawModule.actions) {
- this._rawModule.actions = rawModule.actions;
- }
- if (rawModule.mutations) {
- this._rawModule.mutations = rawModule.mutations;
- }
- if (rawModule.getters) {
- this._rawModule.getters = rawModule.getters;
- }
-};
-
-Module.prototype.forEachChild = function forEachChild (fn) {
- forEachValue(this._children, fn);
-};
-
-Module.prototype.forEachGetter = function forEachGetter (fn) {
- if (this._rawModule.getters) {
- forEachValue(this._rawModule.getters, fn);
- }
-};
-
-Module.prototype.forEachAction = function forEachAction (fn) {
- if (this._rawModule.actions) {
- forEachValue(this._rawModule.actions, fn);
- }
-};
-
-Module.prototype.forEachMutation = function forEachMutation (fn) {
- if (this._rawModule.mutations) {
- forEachValue(this._rawModule.mutations, fn);
- }
-};
-
-Object.defineProperties( Module.prototype, prototypeAccessors );
-
-var ModuleCollection = function ModuleCollection (rawRootModule) {
- // register root module (Vuex.Store options)
- this.register([], rawRootModule, false);
-};
-
-ModuleCollection.prototype.get = function get (path) {
- return path.reduce(function (module, key) {
- return module.getChild(key)
- }, this.root)
-};
-
-ModuleCollection.prototype.getNamespace = function getNamespace (path) {
- var module = this.root;
- return path.reduce(function (namespace, key) {
- module = module.getChild(key);
- return namespace + (module.namespaced ? key + '/' : '')
- }, '')
-};
-
-ModuleCollection.prototype.update = function update$1 (rawRootModule) {
- update([], this.root, rawRootModule);
-};
-
-ModuleCollection.prototype.register = function register (path, rawModule, runtime) {
- var this$1 = this;
- if ( runtime === void 0 ) runtime = true;
-
- {
- assertRawModule(path, rawModule);
- }
-
- var newModule = new Module(rawModule, runtime);
- if (path.length === 0) {
- this.root = newModule;
- } else {
- var parent = this.get(path.slice(0, -1));
- parent.addChild(path[path.length - 1], newModule);
- }
-
- // register nested modules
- if (rawModule.modules) {
- forEachValue(rawModule.modules, function (rawChildModule, key) {
- this$1.register(path.concat(key), rawChildModule, runtime);
- });
- }
-};
-
-ModuleCollection.prototype.unregister = function unregister (path) {
- var parent = this.get(path.slice(0, -1));
- var key = path[path.length - 1];
- if (!parent.getChild(key).runtime) { return }
-
- parent.removeChild(key);
-};
-
-ModuleCollection.prototype.isRegistered = function isRegistered (path) {
- var parent = this.get(path.slice(0, -1));
- var key = path[path.length - 1];
-
- return parent.hasChild(key)
-};
-
-function update (path, targetModule, newModule) {
- {
- assertRawModule(path, newModule);
- }
-
- // update target module
- targetModule.update(newModule);
-
- // update nested modules
- if (newModule.modules) {
- for (var key in newModule.modules) {
- if (!targetModule.getChild(key)) {
- {
- console.warn(
- "[vuex] trying to add a new module '" + key + "' on hot reloading, " +
- 'manual reload is needed'
- );
- }
- return
- }
- update(
- path.concat(key),
- targetModule.getChild(key),
- newModule.modules[key]
- );
- }
- }
-}
-
-var functionAssert = {
- assert: function (value) { return typeof value === 'function'; },
- expected: 'function'
-};
-
-var objectAssert = {
- assert: function (value) { return typeof value === 'function' ||
- (typeof value === 'object' && typeof value.handler === 'function'); },
- expected: 'function or object with "handler" function'
-};
-
-var assertTypes = {
- getters: functionAssert,
- mutations: functionAssert,
- actions: objectAssert
-};
-
-function assertRawModule (path, rawModule) {
- Object.keys(assertTypes).forEach(function (key) {
- if (!rawModule[key]) { return }
-
- var assertOptions = assertTypes[key];
-
- forEachValue(rawModule[key], function (value, type) {
- assert(
- assertOptions.assert(value),
- makeAssertionMessage(path, key, type, value, assertOptions.expected)
- );
- });
- });
-}
-
-function makeAssertionMessage (path, key, type, value, expected) {
- var buf = key + " should be " + expected + " but \"" + key + "." + type + "\"";
- if (path.length > 0) {
- buf += " in module \"" + (path.join('.')) + "\"";
- }
- buf += " is " + (JSON.stringify(value)) + ".";
- return buf
-}
-
-function createStore (options) {
- return new Store(options)
-}
-
-var Store = function Store (options) {
- var this$1 = this;
- if ( options === void 0 ) options = {};
-
- if (process.env.NODE_ENV !== 'production') {
- assert(typeof Promise !== 'undefined', "vuex requires a Promise polyfill in this browser.");
- assert(this instanceof Store, "store must be called with the new operator.");
- }
-
- var plugins = options.plugins; if ( plugins === void 0 ) plugins = [];
- var strict = options.strict; if ( strict === void 0 ) strict = false;
-
- // store internal state
- this._committing = false;
- this._actions = Object.create(null);
- this._actionSubscribers = [];
- this._mutations = Object.create(null);
- this._wrappedGetters = Object.create(null);
- this._modules = new ModuleCollection(options);
- this._modulesNamespaceMap = Object.create(null);
- this._subscribers = [];
- this._makeLocalGettersCache = Object.create(null);
-
- // bind commit and dispatch to self
- var store = this;
- var ref = this;
- var dispatch = ref.dispatch;
- var commit = ref.commit;
- this.dispatch = function boundDispatch (type, payload) {
- return dispatch.call(store, type, payload)
- };
- this.commit = function boundCommit (type, payload, options) {
- return commit.call(store, type, payload, options)
- };
-
- // strict mode
- this.strict = strict;
-
- var state = this._modules.root.state;
-
- // init root module.
- // this also recursively registers all sub-modules
- // and collects all module getters inside this._wrappedGetters
- installModule(this, state, [], this._modules.root);
-
- // initialize the store state, which is responsible for the reactivity
- // (also registers _wrappedGetters as computed properties)
- resetStoreState(this, state);
-
- // apply plugins
- plugins.forEach(function (plugin) { return plugin(this$1); });
-
- var useDevtools = options.devtools !== undefined ? options.devtools : /* Vue.config.devtools */ true;
- if (useDevtools) {
- devtoolPlugin(this);
- }
-};
-
-var prototypeAccessors$1 = { state: { configurable: true } };
-
-Store.prototype.install = function install (app, injectKey) {
- app.provide(injectKey || storeKey, this);
- app.config.globalProperties.$store = this;
-};
-
-prototypeAccessors$1.state.get = function () {
- return this._state.data
-};
-
-prototypeAccessors$1.state.set = function (v) {
- {
- assert(false, "use store.replaceState() to explicit replace store state.");
- }
-};
-
-Store.prototype.commit = function commit (_type, _payload, _options) {
- var this$1 = this;
-
- // check object-style commit
- var ref = unifyObjectStyle(_type, _payload, _options);
- var type = ref.type;
- var payload = ref.payload;
- var options = ref.options;
-
- var mutation = { type: type, payload: payload };
- var entry = this._mutations[type];
- if (!entry) {
- {
- console.error(("[vuex] unknown mutation type: " + type));
- }
- return
- }
- this._withCommit(function () {
- entry.forEach(function commitIterator (handler) {
- handler(payload);
- });
- });
-
- this._subscribers
- .slice() // shallow copy to prevent iterator invalidation if subscriber synchronously calls unsubscribe
- .forEach(function (sub) { return sub(mutation, this$1.state); });
-
- if (
-
- options && options.silent
- ) {
- console.warn(
- "[vuex] mutation type: " + type + ". Silent option has been removed. " +
- 'Use the filter functionality in the vue-devtools'
- );
- }
-};
-
-Store.prototype.dispatch = function dispatch (_type, _payload) {
- var this$1 = this;
-
- // check object-style dispatch
- var ref = unifyObjectStyle(_type, _payload);
- var type = ref.type;
- var payload = ref.payload;
-
- var action = { type: type, payload: payload };
- var entry = this._actions[type];
- if (!entry) {
- {
- console.error(("[vuex] unknown action type: " + type));
- }
- return
- }
-
- try {
- this._actionSubscribers
- .slice() // shallow copy to prevent iterator invalidation if subscriber synchronously calls unsubscribe
- .filter(function (sub) { return sub.before; })
- .forEach(function (sub) { return sub.before(action, this$1.state); });
- } catch (e) {
- {
- console.warn("[vuex] error in before action subscribers: ");
- console.error(e);
- }
- }
-
- var result = entry.length > 1
- ? Promise.all(entry.map(function (handler) { return handler(payload); }))
- : entry[0](payload);
-
- return new Promise(function (resolve, reject) {
- result.then(function (res) {
- try {
- this$1._actionSubscribers
- .filter(function (sub) { return sub.after; })
- .forEach(function (sub) { return sub.after(action, this$1.state); });
- } catch (e) {
- {
- console.warn("[vuex] error in after action subscribers: ");
- console.error(e);
- }
- }
- resolve(res);
- }, function (error) {
- try {
- this$1._actionSubscribers
- .filter(function (sub) { return sub.error; })
- .forEach(function (sub) { return sub.error(action, this$1.state, error); });
- } catch (e) {
- {
- console.warn("[vuex] error in error action subscribers: ");
- console.error(e);
- }
- }
- reject(error);
- });
- })
-};
-
-Store.prototype.subscribe = function subscribe (fn, options) {
- return genericSubscribe(fn, this._subscribers, options)
-};
-
-Store.prototype.subscribeAction = function subscribeAction (fn, options) {
- var subs = typeof fn === 'function' ? { before: fn } : fn;
- return genericSubscribe(subs, this._actionSubscribers, options)
-};
-
-Store.prototype.watch = function watch$1 (getter, cb, options) {
- var this$1 = this;
-
- {
- assert(typeof getter === 'function', "store.watch only accepts a function.");
- }
- return watch(function () { return getter(this$1.state, this$1.getters); }, cb, Object.assign({}, options))
-};
-
-Store.prototype.replaceState = function replaceState (state) {
- var this$1 = this;
-
- this._withCommit(function () {
- this$1._state.data = state;
- });
-};
-
-Store.prototype.registerModule = function registerModule (path, rawModule, options) {
- if ( options === void 0 ) options = {};
-
- if (typeof path === 'string') { path = [path]; }
-
- {
- assert(Array.isArray(path), "module path must be a string or an Array.");
- assert(path.length > 0, 'cannot register the root module by using registerModule.');
- }
-
- this._modules.register(path, rawModule);
- installModule(this, this.state, path, this._modules.get(path), options.preserveState);
- // reset store to update getters...
- resetStoreState(this, this.state);
-};
-
-Store.prototype.unregisterModule = function unregisterModule (path) {
- var this$1 = this;
-
- if (typeof path === 'string') { path = [path]; }
-
- {
- assert(Array.isArray(path), "module path must be a string or an Array.");
- }
-
- this._modules.unregister(path);
- this._withCommit(function () {
- var parentState = getNestedState(this$1.state, path.slice(0, -1));
- delete parentState[path[path.length - 1]];
- });
- resetStore(this);
-};
-
-Store.prototype.hasModule = function hasModule (path) {
- if (typeof path === 'string') { path = [path]; }
-
- {
- assert(Array.isArray(path), "module path must be a string or an Array.");
- }
-
- return this._modules.isRegistered(path)
-};
-
-Store.prototype.hotUpdate = function hotUpdate (newOptions) {
- this._modules.update(newOptions);
- resetStore(this, true);
-};
-
-Store.prototype._withCommit = function _withCommit (fn) {
- var committing = this._committing;
- this._committing = true;
- fn();
- this._committing = committing;
-};
-
-Object.defineProperties( Store.prototype, prototypeAccessors$1 );
-
-function genericSubscribe (fn, subs, options) {
- if (subs.indexOf(fn) < 0) {
- options && options.prepend
- ? subs.unshift(fn)
- : subs.push(fn);
- }
- return function () {
- var i = subs.indexOf(fn);
- if (i > -1) {
- subs.splice(i, 1);
- }
- }
-}
-
-function resetStore (store, hot) {
- store._actions = Object.create(null);
- store._mutations = Object.create(null);
- store._wrappedGetters = Object.create(null);
- store._modulesNamespaceMap = Object.create(null);
- var state = store.state;
- // init all modules
- installModule(store, state, [], store._modules.root, true);
- // reset state
- resetStoreState(store, state, hot);
-}
-
-function resetStoreState (store, state, hot) {
- var oldState = store._state;
-
- // bind store public getters
- store.getters = {};
- // reset local getters cache
- store._makeLocalGettersCache = Object.create(null);
- var wrappedGetters = store._wrappedGetters;
- var computedObj = {};
- forEachValue(wrappedGetters, function (fn, key) {
- // use computed to leverage its lazy-caching mechanism
- // direct inline function use will lead to closure preserving oldVm.
- // using partial to return function with only arguments preserved in closure environment.
- computedObj[key] = partial(fn, store);
- Object.defineProperty(store.getters, key, {
- get: function () { return computed(function () { return computedObj[key](); }).value; },
- enumerable: true // for local getters
- });
- });
-
- store._state = reactive({
- data: state
- });
-
- // enable strict mode for new state
- if (store.strict) {
- enableStrictMode(store);
- }
-
- if (oldState) {
- if (hot) {
- // dispatch changes in all subscribed watchers
- // to force getter re-evaluation for hot reloading.
- store._withCommit(function () {
- oldState.data = null;
- });
- }
- }
-}
-
-function installModule (store, rootState, path, module, hot) {
- var isRoot = !path.length;
- var namespace = store._modules.getNamespace(path);
-
- // register in namespace map
- if (module.namespaced) {
- if (store._modulesNamespaceMap[namespace] && true) {
- console.error(("[vuex] duplicate namespace " + namespace + " for the namespaced module " + (path.join('/'))));
- }
- store._modulesNamespaceMap[namespace] = module;
- }
-
- // set state
- if (!isRoot && !hot) {
- var parentState = getNestedState(rootState, path.slice(0, -1));
- var moduleName = path[path.length - 1];
- store._withCommit(function () {
- {
- if (moduleName in parentState) {
- console.warn(
- ("[vuex] state field \"" + moduleName + "\" was overridden by a module with the same name at \"" + (path.join('.')) + "\"")
- );
- }
- }
- parentState[moduleName] = module.state;
- });
- }
-
- var local = module.context = makeLocalContext(store, namespace, path);
-
- module.forEachMutation(function (mutation, key) {
- var namespacedType = namespace + key;
- registerMutation(store, namespacedType, mutation, local);
- });
-
- module.forEachAction(function (action, key) {
- var type = action.root ? key : namespace + key;
- var handler = action.handler || action;
- registerAction(store, type, handler, local);
- });
-
- module.forEachGetter(function (getter, key) {
- var namespacedType = namespace + key;
- registerGetter(store, namespacedType, getter, local);
- });
-
- module.forEachChild(function (child, key) {
- installModule(store, rootState, path.concat(key), child, hot);
- });
-}
-
-/**
- * make localized dispatch, commit, getters and state
- * if there is no namespace, just use root ones
- */
-function makeLocalContext (store, namespace, path) {
- var noNamespace = namespace === '';
-
- var local = {
- dispatch: noNamespace ? store.dispatch : function (_type, _payload, _options) {
- var args = unifyObjectStyle(_type, _payload, _options);
- var payload = args.payload;
- var options = args.options;
- var type = args.type;
-
- if (!options || !options.root) {
- type = namespace + type;
- if ( !store._actions[type]) {
- console.error(("[vuex] unknown local action type: " + (args.type) + ", global type: " + type));
- return
- }
- }
-
- return store.dispatch(type, payload)
- },
-
- commit: noNamespace ? store.commit : function (_type, _payload, _options) {
- var args = unifyObjectStyle(_type, _payload, _options);
- var payload = args.payload;
- var options = args.options;
- var type = args.type;
-
- if (!options || !options.root) {
- type = namespace + type;
- if ( !store._mutations[type]) {
- console.error(("[vuex] unknown local mutation type: " + (args.type) + ", global type: " + type));
- return
- }
- }
-
- store.commit(type, payload, options);
- }
- };
-
- // getters and state object must be gotten lazily
- // because they will be changed by state update
- Object.defineProperties(local, {
- getters: {
- get: noNamespace
- ? function () { return store.getters; }
- : function () { return makeLocalGetters(store, namespace); }
- },
- state: {
- get: function () { return getNestedState(store.state, path); }
- }
- });
-
- return local
-}
-
-function makeLocalGetters (store, namespace) {
- if (!store._makeLocalGettersCache[namespace]) {
- var gettersProxy = {};
- var splitPos = namespace.length;
- Object.keys(store.getters).forEach(function (type) {
- // skip if the target getter is not match this namespace
- if (type.slice(0, splitPos) !== namespace) { return }
-
- // extract local getter type
- var localType = type.slice(splitPos);
-
- // Add a port to the getters proxy.
- // Define as getter property because
- // we do not want to evaluate the getters in this time.
- Object.defineProperty(gettersProxy, localType, {
- get: function () { return store.getters[type]; },
- enumerable: true
- });
- });
- store._makeLocalGettersCache[namespace] = gettersProxy;
- }
-
- return store._makeLocalGettersCache[namespace]
-}
-
-function registerMutation (store, type, handler, local) {
- var entry = store._mutations[type] || (store._mutations[type] = []);
- entry.push(function wrappedMutationHandler (payload) {
- handler.call(store, local.state, payload);
- });
-}
-
-function registerAction (store, type, handler, local) {
- var entry = store._actions[type] || (store._actions[type] = []);
- entry.push(function wrappedActionHandler (payload) {
- var res = handler.call(store, {
- dispatch: local.dispatch,
- commit: local.commit,
- getters: local.getters,
- state: local.state,
- rootGetters: store.getters,
- rootState: store.state
- }, payload);
- if (!isPromise(res)) {
- res = Promise.resolve(res);
- }
- if (store._devtoolHook) {
- return res.catch(function (err) {
- store._devtoolHook.emit('vuex:error', err);
- throw err
- })
- } else {
- return res
- }
- });
-}
-
-function registerGetter (store, type, rawGetter, local) {
- if (store._wrappedGetters[type]) {
- {
- console.error(("[vuex] duplicate getter key: " + type));
- }
- return
- }
- store._wrappedGetters[type] = function wrappedGetter (store) {
- return rawGetter(
- local.state, // local state
- local.getters, // local getters
- store.state, // root state
- store.getters // root getters
- )
- };
-}
-
-function enableStrictMode (store) {
- watch(function () { return store._state.data; }, function () {
- {
- assert(store._committing, "do not mutate vuex store state outside mutation handlers.");
- }
- }, { deep: true, flush: 'sync' });
-}
-
-function getNestedState (state, path) {
- return path.reduce(function (state, key) { return state[key]; }, state)
-}
-
-function unifyObjectStyle (type, payload, options) {
- if (isObject(type) && type.type) {
- options = payload;
- payload = type;
- type = type.type;
- }
-
- {
- assert(typeof type === 'string', ("expects string as the type, but found " + (typeof type) + "."));
- }
-
- return { type: type, payload: payload, options: options }
-}
-
-/**
- * Reduce the code which written in Vue.js for getting the state.
- * @param {String} [namespace] - Module's namespace
- * @param {Object|Array} states # Object's item can be a function which accept state and getters for param, you can do something for state and getters in it.
- * @param {Object}
- */
-var mapState = normalizeNamespace(function (namespace, states) {
- var res = {};
- if ( !isValidMap(states)) {
- console.error('[vuex] mapState: mapper parameter must be either an Array or an Object');
- }
- normalizeMap(states).forEach(function (ref) {
- var key = ref.key;
- var val = ref.val;
-
- res[key] = function mappedState () {
- var state = this.$store.state;
- var getters = this.$store.getters;
- if (namespace) {
- var module = getModuleByNamespace(this.$store, 'mapState', namespace);
- if (!module) {
- return
- }
- state = module.context.state;
- getters = module.context.getters;
- }
- return typeof val === 'function'
- ? val.call(this, state, getters)
- : state[val]
- };
- // mark vuex getter for devtools
- res[key].vuex = true;
- });
- return res
-});
-
-/**
- * Reduce the code which written in Vue.js for committing the mutation
- * @param {String} [namespace] - Module's namespace
- * @param {Object|Array} mutations # Object's item can be a function which accept `commit` function as the first param, it can accept anthor params. You can commit mutation and do any other things in this function. specially, You need to pass anthor params from the mapped function.
- * @return {Object}
- */
-var mapMutations = normalizeNamespace(function (namespace, mutations) {
- var res = {};
- if ( !isValidMap(mutations)) {
- console.error('[vuex] mapMutations: mapper parameter must be either an Array or an Object');
- }
- normalizeMap(mutations).forEach(function (ref) {
- var key = ref.key;
- var val = ref.val;
-
- res[key] = function mappedMutation () {
- var args = [], len = arguments.length;
- while ( len-- ) args[ len ] = arguments[ len ];
-
- // Get the commit method from store
- var commit = this.$store.commit;
- if (namespace) {
- var module = getModuleByNamespace(this.$store, 'mapMutations', namespace);
- if (!module) {
- return
- }
- commit = module.context.commit;
- }
- return typeof val === 'function'
- ? val.apply(this, [commit].concat(args))
- : commit.apply(this.$store, [val].concat(args))
- };
- });
- return res
-});
-
-/**
- * Reduce the code which written in Vue.js for getting the getters
- * @param {String} [namespace] - Module's namespace
- * @param {Object|Array} getters
- * @return {Object}
- */
-var mapGetters = normalizeNamespace(function (namespace, getters) {
- var res = {};
- if ( !isValidMap(getters)) {
- console.error('[vuex] mapGetters: mapper parameter must be either an Array or an Object');
- }
- normalizeMap(getters).forEach(function (ref) {
- var key = ref.key;
- var val = ref.val;
-
- // The namespace has been mutated by normalizeNamespace
- val = namespace + val;
- res[key] = function mappedGetter () {
- if (namespace && !getModuleByNamespace(this.$store, 'mapGetters', namespace)) {
- return
- }
- if ( !(val in this.$store.getters)) {
- console.error(("[vuex] unknown getter: " + val));
- return
- }
- return this.$store.getters[val]
- };
- // mark vuex getter for devtools
- res[key].vuex = true;
- });
- return res
-});
-
-/**
- * Reduce the code which written in Vue.js for dispatch the action
- * @param {String} [namespace] - Module's namespace
- * @param {Object|Array} actions # Object's item can be a function which accept `dispatch` function as the first param, it can accept anthor params. You can dispatch action and do any other things in this function. specially, You need to pass anthor params from the mapped function.
- * @return {Object}
- */
-var mapActions = normalizeNamespace(function (namespace, actions) {
- var res = {};
- if ( !isValidMap(actions)) {
- console.error('[vuex] mapActions: mapper parameter must be either an Array or an Object');
- }
- normalizeMap(actions).forEach(function (ref) {
- var key = ref.key;
- var val = ref.val;
-
- res[key] = function mappedAction () {
- var args = [], len = arguments.length;
- while ( len-- ) args[ len ] = arguments[ len ];
-
- // get dispatch function from store
- var dispatch = this.$store.dispatch;
- if (namespace) {
- var module = getModuleByNamespace(this.$store, 'mapActions', namespace);
- if (!module) {
- return
- }
- dispatch = module.context.dispatch;
- }
- return typeof val === 'function'
- ? val.apply(this, [dispatch].concat(args))
- : dispatch.apply(this.$store, [val].concat(args))
- };
- });
- return res
-});
-
-/**
- * Rebinding namespace param for mapXXX function in special scoped, and return them by simple object
- * @param {String} namespace
- * @return {Object}
- */
-var createNamespacedHelpers = function (namespace) { return ({
- mapState: mapState.bind(null, namespace),
- mapGetters: mapGetters.bind(null, namespace),
- mapMutations: mapMutations.bind(null, namespace),
- mapActions: mapActions.bind(null, namespace)
-}); };
-
-/**
- * Normalize the map
- * normalizeMap([1, 2, 3]) => [ { key: 1, val: 1 }, { key: 2, val: 2 }, { key: 3, val: 3 } ]
- * normalizeMap({a: 1, b: 2, c: 3}) => [ { key: 'a', val: 1 }, { key: 'b', val: 2 }, { key: 'c', val: 3 } ]
- * @param {Array|Object} map
- * @return {Object}
- */
-function normalizeMap (map) {
- if (!isValidMap(map)) {
- return []
- }
- return Array.isArray(map)
- ? map.map(function (key) { return ({ key: key, val: key }); })
- : Object.keys(map).map(function (key) { return ({ key: key, val: map[key] }); })
-}
-
-/**
- * Validate whether given map is valid or not
- * @param {*} map
- * @return {Boolean}
- */
-function isValidMap (map) {
- return Array.isArray(map) || isObject(map)
-}
-
-/**
- * Return a function expect two param contains namespace and map. it will normalize the namespace and then the param's function will handle the new namespace and the map.
- * @param {Function} fn
- * @return {Function}
- */
-function normalizeNamespace (fn) {
- return function (namespace, map) {
- if (typeof namespace !== 'string') {
- map = namespace;
- namespace = '';
- } else if (namespace.charAt(namespace.length - 1) !== '/') {
- namespace += '/';
- }
- return fn(namespace, map)
- }
-}
-
-/**
- * Search a special module from store by namespace. if module not exist, print error message.
- * @param {Object} store
- * @param {String} helper
- * @param {String} namespace
- * @return {Object}
- */
-function getModuleByNamespace (store, helper, namespace) {
- var module = store._modulesNamespaceMap[namespace];
- if ( !module) {
- console.error(("[vuex] module namespace not found in " + helper + "(): " + namespace));
- }
- return module
-}
-
-var index = {
- version: '4.0.0-beta.2',
- createStore: createStore,
- Store: Store,
- useStore: useStore,
- mapState: mapState,
- mapMutations: mapMutations,
- mapGetters: mapGetters,
- mapActions: mapActions,
- createNamespacedHelpers: createNamespacedHelpers
-};
-
-export default index;
-export { Store, createNamespacedHelpers, createStore, mapActions, mapGetters, mapMutations, mapState, useStore };
diff --git a/dist/vuex.esm-browser.prod.js b/dist/vuex.esm-browser.prod.js
deleted file mode 100644
index c31475182..000000000
--- a/dist/vuex.esm-browser.prod.js
+++ /dev/null
@@ -1,895 +0,0 @@
-/*!
- * vuex v4.0.0-beta.2
- * (c) 2020 Evan You
- * @license MIT
- */
-import { inject, watch, reactive, computed } from 'vue';
-
-var storeKey = 'store';
-
-function useStore (key) {
- if ( key === void 0 ) key = null;
-
- return inject(key !== null ? key : storeKey)
-}
-
-var target = typeof window !== 'undefined'
- ? window
- : typeof global !== 'undefined'
- ? global
- : {};
-var devtoolHook = target.__VUE_DEVTOOLS_GLOBAL_HOOK__;
-
-function devtoolPlugin (store) {
- if (!devtoolHook) { return }
-
- store._devtoolHook = devtoolHook;
-
- devtoolHook.emit('vuex:init', store);
-
- devtoolHook.on('vuex:travel-to-state', function (targetState) {
- store.replaceState(targetState);
- });
-
- store.subscribe(function (mutation, state) {
- devtoolHook.emit('vuex:mutation', mutation, state);
- }, { prepend: true });
-
- store.subscribeAction(function (action, state) {
- devtoolHook.emit('vuex:action', action, state);
- }, { prepend: true });
-}
-
-/**
- * Get the first item that pass the test
- * by second argument function
- *
- * @param {Array} list
- * @param {Function} f
- * @return {*}
- */
-
-/**
- * forEach for object
- */
-function forEachValue (obj, fn) {
- Object.keys(obj).forEach(function (key) { return fn(obj[key], key); });
-}
-
-function isObject (obj) {
- return obj !== null && typeof obj === 'object'
-}
-
-function isPromise (val) {
- return val && typeof val.then === 'function'
-}
-
-function assert (condition, msg) {
- if (!condition) { throw new Error(("[vuex] " + msg)) }
-}
-
-function partial (fn, arg) {
- return function () {
- return fn(arg)
- }
-}
-
-// Base data struct for store's module, package with some attribute and method
-var Module = function Module (rawModule, runtime) {
- this.runtime = runtime;
- // Store some children item
- this._children = Object.create(null);
- // Store the origin module object which passed by programmer
- this._rawModule = rawModule;
- var rawState = rawModule.state;
-
- // Store the origin module's state
- this.state = (typeof rawState === 'function' ? rawState() : rawState) || {};
-};
-
-var prototypeAccessors = { namespaced: { configurable: true } };
-
-prototypeAccessors.namespaced.get = function () {
- return !!this._rawModule.namespaced
-};
-
-Module.prototype.addChild = function addChild (key, module) {
- this._children[key] = module;
-};
-
-Module.prototype.removeChild = function removeChild (key) {
- delete this._children[key];
-};
-
-Module.prototype.getChild = function getChild (key) {
- return this._children[key]
-};
-
-Module.prototype.hasChild = function hasChild (key) {
- return key in this._children
-};
-
-Module.prototype.update = function update (rawModule) {
- this._rawModule.namespaced = rawModule.namespaced;
- if (rawModule.actions) {
- this._rawModule.actions = rawModule.actions;
- }
- if (rawModule.mutations) {
- this._rawModule.mutations = rawModule.mutations;
- }
- if (rawModule.getters) {
- this._rawModule.getters = rawModule.getters;
- }
-};
-
-Module.prototype.forEachChild = function forEachChild (fn) {
- forEachValue(this._children, fn);
-};
-
-Module.prototype.forEachGetter = function forEachGetter (fn) {
- if (this._rawModule.getters) {
- forEachValue(this._rawModule.getters, fn);
- }
-};
-
-Module.prototype.forEachAction = function forEachAction (fn) {
- if (this._rawModule.actions) {
- forEachValue(this._rawModule.actions, fn);
- }
-};
-
-Module.prototype.forEachMutation = function forEachMutation (fn) {
- if (this._rawModule.mutations) {
- forEachValue(this._rawModule.mutations, fn);
- }
-};
-
-Object.defineProperties( Module.prototype, prototypeAccessors );
-
-var ModuleCollection = function ModuleCollection (rawRootModule) {
- // register root module (Vuex.Store options)
- this.register([], rawRootModule, false);
-};
-
-ModuleCollection.prototype.get = function get (path) {
- return path.reduce(function (module, key) {
- return module.getChild(key)
- }, this.root)
-};
-
-ModuleCollection.prototype.getNamespace = function getNamespace (path) {
- var module = this.root;
- return path.reduce(function (namespace, key) {
- module = module.getChild(key);
- return namespace + (module.namespaced ? key + '/' : '')
- }, '')
-};
-
-ModuleCollection.prototype.update = function update$1 (rawRootModule) {
- update([], this.root, rawRootModule);
-};
-
-ModuleCollection.prototype.register = function register (path, rawModule, runtime) {
- var this$1 = this;
- if ( runtime === void 0 ) runtime = true;
-
- var newModule = new Module(rawModule, runtime);
- if (path.length === 0) {
- this.root = newModule;
- } else {
- var parent = this.get(path.slice(0, -1));
- parent.addChild(path[path.length - 1], newModule);
- }
-
- // register nested modules
- if (rawModule.modules) {
- forEachValue(rawModule.modules, function (rawChildModule, key) {
- this$1.register(path.concat(key), rawChildModule, runtime);
- });
- }
-};
-
-ModuleCollection.prototype.unregister = function unregister (path) {
- var parent = this.get(path.slice(0, -1));
- var key = path[path.length - 1];
- if (!parent.getChild(key).runtime) { return }
-
- parent.removeChild(key);
-};
-
-ModuleCollection.prototype.isRegistered = function isRegistered (path) {
- var parent = this.get(path.slice(0, -1));
- var key = path[path.length - 1];
-
- return parent.hasChild(key)
-};
-
-function update (path, targetModule, newModule) {
-
- // update target module
- targetModule.update(newModule);
-
- // update nested modules
- if (newModule.modules) {
- for (var key in newModule.modules) {
- if (!targetModule.getChild(key)) {
- return
- }
- update(
- path.concat(key),
- targetModule.getChild(key),
- newModule.modules[key]
- );
- }
- }
-}
-
-function createStore (options) {
- return new Store(options)
-}
-
-var Store = function Store (options) {
- var this$1 = this;
- if ( options === void 0 ) options = {};
-
- if (process.env.NODE_ENV !== 'production') {
- assert(typeof Promise !== 'undefined', "vuex requires a Promise polyfill in this browser.");
- assert(this instanceof Store, "store must be called with the new operator.");
- }
-
- var plugins = options.plugins; if ( plugins === void 0 ) plugins = [];
- var strict = options.strict; if ( strict === void 0 ) strict = false;
-
- // store internal state
- this._committing = false;
- this._actions = Object.create(null);
- this._actionSubscribers = [];
- this._mutations = Object.create(null);
- this._wrappedGetters = Object.create(null);
- this._modules = new ModuleCollection(options);
- this._modulesNamespaceMap = Object.create(null);
- this._subscribers = [];
- this._makeLocalGettersCache = Object.create(null);
-
- // bind commit and dispatch to self
- var store = this;
- var ref = this;
- var dispatch = ref.dispatch;
- var commit = ref.commit;
- this.dispatch = function boundDispatch (type, payload) {
- return dispatch.call(store, type, payload)
- };
- this.commit = function boundCommit (type, payload, options) {
- return commit.call(store, type, payload, options)
- };
-
- // strict mode
- this.strict = strict;
-
- var state = this._modules.root.state;
-
- // init root module.
- // this also recursively registers all sub-modules
- // and collects all module getters inside this._wrappedGetters
- installModule(this, state, [], this._modules.root);
-
- // initialize the store state, which is responsible for the reactivity
- // (also registers _wrappedGetters as computed properties)
- resetStoreState(this, state);
-
- // apply plugins
- plugins.forEach(function (plugin) { return plugin(this$1); });
-
- var useDevtools = options.devtools !== undefined ? options.devtools : /* Vue.config.devtools */ true;
- if (useDevtools) {
- devtoolPlugin(this);
- }
-};
-
-var prototypeAccessors$1 = { state: { configurable: true } };
-
-Store.prototype.install = function install (app, injectKey) {
- app.provide(injectKey || storeKey, this);
- app.config.globalProperties.$store = this;
-};
-
-prototypeAccessors$1.state.get = function () {
- return this._state.data
-};
-
-prototypeAccessors$1.state.set = function (v) {
-};
-
-Store.prototype.commit = function commit (_type, _payload, _options) {
- var this$1 = this;
-
- // check object-style commit
- var ref = unifyObjectStyle(_type, _payload, _options);
- var type = ref.type;
- var payload = ref.payload;
-
- var mutation = { type: type, payload: payload };
- var entry = this._mutations[type];
- if (!entry) {
- return
- }
- this._withCommit(function () {
- entry.forEach(function commitIterator (handler) {
- handler(payload);
- });
- });
-
- this._subscribers
- .slice() // shallow copy to prevent iterator invalidation if subscriber synchronously calls unsubscribe
- .forEach(function (sub) { return sub(mutation, this$1.state); });
-};
-
-Store.prototype.dispatch = function dispatch (_type, _payload) {
- var this$1 = this;
-
- // check object-style dispatch
- var ref = unifyObjectStyle(_type, _payload);
- var type = ref.type;
- var payload = ref.payload;
-
- var action = { type: type, payload: payload };
- var entry = this._actions[type];
- if (!entry) {
- return
- }
-
- try {
- this._actionSubscribers
- .slice() // shallow copy to prevent iterator invalidation if subscriber synchronously calls unsubscribe
- .filter(function (sub) { return sub.before; })
- .forEach(function (sub) { return sub.before(action, this$1.state); });
- } catch (e) {
- }
-
- var result = entry.length > 1
- ? Promise.all(entry.map(function (handler) { return handler(payload); }))
- : entry[0](payload);
-
- return new Promise(function (resolve, reject) {
- result.then(function (res) {
- try {
- this$1._actionSubscribers
- .filter(function (sub) { return sub.after; })
- .forEach(function (sub) { return sub.after(action, this$1.state); });
- } catch (e) {
- }
- resolve(res);
- }, function (error) {
- try {
- this$1._actionSubscribers
- .filter(function (sub) { return sub.error; })
- .forEach(function (sub) { return sub.error(action, this$1.state, error); });
- } catch (e) {
- }
- reject(error);
- });
- })
-};
-
-Store.prototype.subscribe = function subscribe (fn, options) {
- return genericSubscribe(fn, this._subscribers, options)
-};
-
-Store.prototype.subscribeAction = function subscribeAction (fn, options) {
- var subs = typeof fn === 'function' ? { before: fn } : fn;
- return genericSubscribe(subs, this._actionSubscribers, options)
-};
-
-Store.prototype.watch = function watch$1 (getter, cb, options) {
- var this$1 = this;
- return watch(function () { return getter(this$1.state, this$1.getters); }, cb, Object.assign({}, options))
-};
-
-Store.prototype.replaceState = function replaceState (state) {
- var this$1 = this;
-
- this._withCommit(function () {
- this$1._state.data = state;
- });
-};
-
-Store.prototype.registerModule = function registerModule (path, rawModule, options) {
- if ( options === void 0 ) options = {};
-
- if (typeof path === 'string') { path = [path]; }
-
- this._modules.register(path, rawModule);
- installModule(this, this.state, path, this._modules.get(path), options.preserveState);
- // reset store to update getters...
- resetStoreState(this, this.state);
-};
-
-Store.prototype.unregisterModule = function unregisterModule (path) {
- var this$1 = this;
-
- if (typeof path === 'string') { path = [path]; }
-
- this._modules.unregister(path);
- this._withCommit(function () {
- var parentState = getNestedState(this$1.state, path.slice(0, -1));
- delete parentState[path[path.length - 1]];
- });
- resetStore(this);
-};
-
-Store.prototype.hasModule = function hasModule (path) {
- if (typeof path === 'string') { path = [path]; }
-
- return this._modules.isRegistered(path)
-};
-
-Store.prototype.hotUpdate = function hotUpdate (newOptions) {
- this._modules.update(newOptions);
- resetStore(this, true);
-};
-
-Store.prototype._withCommit = function _withCommit (fn) {
- var committing = this._committing;
- this._committing = true;
- fn();
- this._committing = committing;
-};
-
-Object.defineProperties( Store.prototype, prototypeAccessors$1 );
-
-function genericSubscribe (fn, subs, options) {
- if (subs.indexOf(fn) < 0) {
- options && options.prepend
- ? subs.unshift(fn)
- : subs.push(fn);
- }
- return function () {
- var i = subs.indexOf(fn);
- if (i > -1) {
- subs.splice(i, 1);
- }
- }
-}
-
-function resetStore (store, hot) {
- store._actions = Object.create(null);
- store._mutations = Object.create(null);
- store._wrappedGetters = Object.create(null);
- store._modulesNamespaceMap = Object.create(null);
- var state = store.state;
- // init all modules
- installModule(store, state, [], store._modules.root, true);
- // reset state
- resetStoreState(store, state, hot);
-}
-
-function resetStoreState (store, state, hot) {
- var oldState = store._state;
-
- // bind store public getters
- store.getters = {};
- // reset local getters cache
- store._makeLocalGettersCache = Object.create(null);
- var wrappedGetters = store._wrappedGetters;
- var computedObj = {};
- forEachValue(wrappedGetters, function (fn, key) {
- // use computed to leverage its lazy-caching mechanism
- // direct inline function use will lead to closure preserving oldVm.
- // using partial to return function with only arguments preserved in closure environment.
- computedObj[key] = partial(fn, store);
- Object.defineProperty(store.getters, key, {
- get: function () { return computed(function () { return computedObj[key](); }).value; },
- enumerable: true // for local getters
- });
- });
-
- store._state = reactive({
- data: state
- });
-
- // enable strict mode for new state
- if (store.strict) {
- enableStrictMode(store);
- }
-
- if (oldState) {
- if (hot) {
- // dispatch changes in all subscribed watchers
- // to force getter re-evaluation for hot reloading.
- store._withCommit(function () {
- oldState.data = null;
- });
- }
- }
-}
-
-function installModule (store, rootState, path, module, hot) {
- var isRoot = !path.length;
- var namespace = store._modules.getNamespace(path);
-
- // register in namespace map
- if (module.namespaced) {
- if (store._modulesNamespaceMap[namespace] && false) {
- console.error(("[vuex] duplicate namespace " + namespace + " for the namespaced module " + (path.join('/'))));
- }
- store._modulesNamespaceMap[namespace] = module;
- }
-
- // set state
- if (!isRoot && !hot) {
- var parentState = getNestedState(rootState, path.slice(0, -1));
- var moduleName = path[path.length - 1];
- store._withCommit(function () {
- parentState[moduleName] = module.state;
- });
- }
-
- var local = module.context = makeLocalContext(store, namespace, path);
-
- module.forEachMutation(function (mutation, key) {
- var namespacedType = namespace + key;
- registerMutation(store, namespacedType, mutation, local);
- });
-
- module.forEachAction(function (action, key) {
- var type = action.root ? key : namespace + key;
- var handler = action.handler || action;
- registerAction(store, type, handler, local);
- });
-
- module.forEachGetter(function (getter, key) {
- var namespacedType = namespace + key;
- registerGetter(store, namespacedType, getter, local);
- });
-
- module.forEachChild(function (child, key) {
- installModule(store, rootState, path.concat(key), child, hot);
- });
-}
-
-/**
- * make localized dispatch, commit, getters and state
- * if there is no namespace, just use root ones
- */
-function makeLocalContext (store, namespace, path) {
- var noNamespace = namespace === '';
-
- var local = {
- dispatch: noNamespace ? store.dispatch : function (_type, _payload, _options) {
- var args = unifyObjectStyle(_type, _payload, _options);
- var payload = args.payload;
- var options = args.options;
- var type = args.type;
-
- if (!options || !options.root) {
- type = namespace + type;
- }
-
- return store.dispatch(type, payload)
- },
-
- commit: noNamespace ? store.commit : function (_type, _payload, _options) {
- var args = unifyObjectStyle(_type, _payload, _options);
- var payload = args.payload;
- var options = args.options;
- var type = args.type;
-
- if (!options || !options.root) {
- type = namespace + type;
- }
-
- store.commit(type, payload, options);
- }
- };
-
- // getters and state object must be gotten lazily
- // because they will be changed by state update
- Object.defineProperties(local, {
- getters: {
- get: noNamespace
- ? function () { return store.getters; }
- : function () { return makeLocalGetters(store, namespace); }
- },
- state: {
- get: function () { return getNestedState(store.state, path); }
- }
- });
-
- return local
-}
-
-function makeLocalGetters (store, namespace) {
- if (!store._makeLocalGettersCache[namespace]) {
- var gettersProxy = {};
- var splitPos = namespace.length;
- Object.keys(store.getters).forEach(function (type) {
- // skip if the target getter is not match this namespace
- if (type.slice(0, splitPos) !== namespace) { return }
-
- // extract local getter type
- var localType = type.slice(splitPos);
-
- // Add a port to the getters proxy.
- // Define as getter property because
- // we do not want to evaluate the getters in this time.
- Object.defineProperty(gettersProxy, localType, {
- get: function () { return store.getters[type]; },
- enumerable: true
- });
- });
- store._makeLocalGettersCache[namespace] = gettersProxy;
- }
-
- return store._makeLocalGettersCache[namespace]
-}
-
-function registerMutation (store, type, handler, local) {
- var entry = store._mutations[type] || (store._mutations[type] = []);
- entry.push(function wrappedMutationHandler (payload) {
- handler.call(store, local.state, payload);
- });
-}
-
-function registerAction (store, type, handler, local) {
- var entry = store._actions[type] || (store._actions[type] = []);
- entry.push(function wrappedActionHandler (payload) {
- var res = handler.call(store, {
- dispatch: local.dispatch,
- commit: local.commit,
- getters: local.getters,
- state: local.state,
- rootGetters: store.getters,
- rootState: store.state
- }, payload);
- if (!isPromise(res)) {
- res = Promise.resolve(res);
- }
- if (store._devtoolHook) {
- return res.catch(function (err) {
- store._devtoolHook.emit('vuex:error', err);
- throw err
- })
- } else {
- return res
- }
- });
-}
-
-function registerGetter (store, type, rawGetter, local) {
- if (store._wrappedGetters[type]) {
- return
- }
- store._wrappedGetters[type] = function wrappedGetter (store) {
- return rawGetter(
- local.state, // local state
- local.getters, // local getters
- store.state, // root state
- store.getters // root getters
- )
- };
-}
-
-function enableStrictMode (store) {
- watch(function () { return store._state.data; }, function () {
- }, { deep: true, flush: 'sync' });
-}
-
-function getNestedState (state, path) {
- return path.reduce(function (state, key) { return state[key]; }, state)
-}
-
-function unifyObjectStyle (type, payload, options) {
- if (isObject(type) && type.type) {
- options = payload;
- payload = type;
- type = type.type;
- }
-
- return { type: type, payload: payload, options: options }
-}
-
-/**
- * Reduce the code which written in Vue.js for getting the state.
- * @param {String} [namespace] - Module's namespace
- * @param {Object|Array} states # Object's item can be a function which accept state and getters for param, you can do something for state and getters in it.
- * @param {Object}
- */
-var mapState = normalizeNamespace(function (namespace, states) {
- var res = {};
- normalizeMap(states).forEach(function (ref) {
- var key = ref.key;
- var val = ref.val;
-
- res[key] = function mappedState () {
- var state = this.$store.state;
- var getters = this.$store.getters;
- if (namespace) {
- var module = getModuleByNamespace(this.$store, 'mapState', namespace);
- if (!module) {
- return
- }
- state = module.context.state;
- getters = module.context.getters;
- }
- return typeof val === 'function'
- ? val.call(this, state, getters)
- : state[val]
- };
- // mark vuex getter for devtools
- res[key].vuex = true;
- });
- return res
-});
-
-/**
- * Reduce the code which written in Vue.js for committing the mutation
- * @param {String} [namespace] - Module's namespace
- * @param {Object|Array} mutations # Object's item can be a function which accept `commit` function as the first param, it can accept anthor params. You can commit mutation and do any other things in this function. specially, You need to pass anthor params from the mapped function.
- * @return {Object}
- */
-var mapMutations = normalizeNamespace(function (namespace, mutations) {
- var res = {};
- normalizeMap(mutations).forEach(function (ref) {
- var key = ref.key;
- var val = ref.val;
-
- res[key] = function mappedMutation () {
- var args = [], len = arguments.length;
- while ( len-- ) args[ len ] = arguments[ len ];
-
- // Get the commit method from store
- var commit = this.$store.commit;
- if (namespace) {
- var module = getModuleByNamespace(this.$store, 'mapMutations', namespace);
- if (!module) {
- return
- }
- commit = module.context.commit;
- }
- return typeof val === 'function'
- ? val.apply(this, [commit].concat(args))
- : commit.apply(this.$store, [val].concat(args))
- };
- });
- return res
-});
-
-/**
- * Reduce the code which written in Vue.js for getting the getters
- * @param {String} [namespace] - Module's namespace
- * @param {Object|Array} getters
- * @return {Object}
- */
-var mapGetters = normalizeNamespace(function (namespace, getters) {
- var res = {};
- normalizeMap(getters).forEach(function (ref) {
- var key = ref.key;
- var val = ref.val;
-
- // The namespace has been mutated by normalizeNamespace
- val = namespace + val;
- res[key] = function mappedGetter () {
- if (namespace && !getModuleByNamespace(this.$store, 'mapGetters', namespace)) {
- return
- }
- return this.$store.getters[val]
- };
- // mark vuex getter for devtools
- res[key].vuex = true;
- });
- return res
-});
-
-/**
- * Reduce the code which written in Vue.js for dispatch the action
- * @param {String} [namespace] - Module's namespace
- * @param {Object|Array} actions # Object's item can be a function which accept `dispatch` function as the first param, it can accept anthor params. You can dispatch action and do any other things in this function. specially, You need to pass anthor params from the mapped function.
- * @return {Object}
- */
-var mapActions = normalizeNamespace(function (namespace, actions) {
- var res = {};
- normalizeMap(actions).forEach(function (ref) {
- var key = ref.key;
- var val = ref.val;
-
- res[key] = function mappedAction () {
- var args = [], len = arguments.length;
- while ( len-- ) args[ len ] = arguments[ len ];
-
- // get dispatch function from store
- var dispatch = this.$store.dispatch;
- if (namespace) {
- var module = getModuleByNamespace(this.$store, 'mapActions', namespace);
- if (!module) {
- return
- }
- dispatch = module.context.dispatch;
- }
- return typeof val === 'function'
- ? val.apply(this, [dispatch].concat(args))
- : dispatch.apply(this.$store, [val].concat(args))
- };
- });
- return res
-});
-
-/**
- * Rebinding namespace param for mapXXX function in special scoped, and return them by simple object
- * @param {String} namespace
- * @return {Object}
- */
-var createNamespacedHelpers = function (namespace) { return ({
- mapState: mapState.bind(null, namespace),
- mapGetters: mapGetters.bind(null, namespace),
- mapMutations: mapMutations.bind(null, namespace),
- mapActions: mapActions.bind(null, namespace)
-}); };
-
-/**
- * Normalize the map
- * normalizeMap([1, 2, 3]) => [ { key: 1, val: 1 }, { key: 2, val: 2 }, { key: 3, val: 3 } ]
- * normalizeMap({a: 1, b: 2, c: 3}) => [ { key: 'a', val: 1 }, { key: 'b', val: 2 }, { key: 'c', val: 3 } ]
- * @param {Array|Object} map
- * @return {Object}
- */
-function normalizeMap (map) {
- if (!isValidMap(map)) {
- return []
- }
- return Array.isArray(map)
- ? map.map(function (key) { return ({ key: key, val: key }); })
- : Object.keys(map).map(function (key) { return ({ key: key, val: map[key] }); })
-}
-
-/**
- * Validate whether given map is valid or not
- * @param {*} map
- * @return {Boolean}
- */
-function isValidMap (map) {
- return Array.isArray(map) || isObject(map)
-}
-
-/**
- * Return a function expect two param contains namespace and map. it will normalize the namespace and then the param's function will handle the new namespace and the map.
- * @param {Function} fn
- * @return {Function}
- */
-function normalizeNamespace (fn) {
- return function (namespace, map) {
- if (typeof namespace !== 'string') {
- map = namespace;
- namespace = '';
- } else if (namespace.charAt(namespace.length - 1) !== '/') {
- namespace += '/';
- }
- return fn(namespace, map)
- }
-}
-
-/**
- * Search a special module from store by namespace. if module not exist, print error message.
- * @param {Object} store
- * @param {String} helper
- * @param {String} namespace
- * @return {Object}
- */
-function getModuleByNamespace (store, helper, namespace) {
- var module = store._modulesNamespaceMap[namespace];
- return module
-}
-
-var index = {
- version: '4.0.0-beta.2',
- createStore: createStore,
- Store: Store,
- useStore: useStore,
- mapState: mapState,
- mapMutations: mapMutations,
- mapGetters: mapGetters,
- mapActions: mapActions,
- createNamespacedHelpers: createNamespacedHelpers
-};
-
-export default index;
-export { Store, createNamespacedHelpers, createStore, mapActions, mapGetters, mapMutations, mapState, useStore };
diff --git a/dist/vuex.esm-bundler.js b/dist/vuex.esm-bundler.js
deleted file mode 100644
index 9a60ed2ee..000000000
--- a/dist/vuex.esm-bundler.js
+++ /dev/null
@@ -1,1042 +0,0 @@
-/*!
- * vuex v4.0.0-beta.2
- * (c) 2020 Evan You
- * @license MIT
- */
-import { inject, watch, reactive, computed } from 'vue';
-
-var storeKey = 'store';
-
-function useStore (key) {
- if ( key === void 0 ) key = null;
-
- return inject(key !== null ? key : storeKey)
-}
-
-var target = typeof window !== 'undefined'
- ? window
- : typeof global !== 'undefined'
- ? global
- : {};
-var devtoolHook = target.__VUE_DEVTOOLS_GLOBAL_HOOK__;
-
-function devtoolPlugin (store) {
- if (!devtoolHook) { return }
-
- store._devtoolHook = devtoolHook;
-
- devtoolHook.emit('vuex:init', store);
-
- devtoolHook.on('vuex:travel-to-state', function (targetState) {
- store.replaceState(targetState);
- });
-
- store.subscribe(function (mutation, state) {
- devtoolHook.emit('vuex:mutation', mutation, state);
- }, { prepend: true });
-
- store.subscribeAction(function (action, state) {
- devtoolHook.emit('vuex:action', action, state);
- }, { prepend: true });
-}
-
-/**
- * Get the first item that pass the test
- * by second argument function
- *
- * @param {Array} list
- * @param {Function} f
- * @return {*}
- */
-
-/**
- * forEach for object
- */
-function forEachValue (obj, fn) {
- Object.keys(obj).forEach(function (key) { return fn(obj[key], key); });
-}
-
-function isObject (obj) {
- return obj !== null && typeof obj === 'object'
-}
-
-function isPromise (val) {
- return val && typeof val.then === 'function'
-}
-
-function assert (condition, msg) {
- if (!condition) { throw new Error(("[vuex] " + msg)) }
-}
-
-function partial (fn, arg) {
- return function () {
- return fn(arg)
- }
-}
-
-// Base data struct for store's module, package with some attribute and method
-var Module = function Module (rawModule, runtime) {
- this.runtime = runtime;
- // Store some children item
- this._children = Object.create(null);
- // Store the origin module object which passed by programmer
- this._rawModule = rawModule;
- var rawState = rawModule.state;
-
- // Store the origin module's state
- this.state = (typeof rawState === 'function' ? rawState() : rawState) || {};
-};
-
-var prototypeAccessors = { namespaced: { configurable: true } };
-
-prototypeAccessors.namespaced.get = function () {
- return !!this._rawModule.namespaced
-};
-
-Module.prototype.addChild = function addChild (key, module) {
- this._children[key] = module;
-};
-
-Module.prototype.removeChild = function removeChild (key) {
- delete this._children[key];
-};
-
-Module.prototype.getChild = function getChild (key) {
- return this._children[key]
-};
-
-Module.prototype.hasChild = function hasChild (key) {
- return key in this._children
-};
-
-Module.prototype.update = function update (rawModule) {
- this._rawModule.namespaced = rawModule.namespaced;
- if (rawModule.actions) {
- this._rawModule.actions = rawModule.actions;
- }
- if (rawModule.mutations) {
- this._rawModule.mutations = rawModule.mutations;
- }
- if (rawModule.getters) {
- this._rawModule.getters = rawModule.getters;
- }
-};
-
-Module.prototype.forEachChild = function forEachChild (fn) {
- forEachValue(this._children, fn);
-};
-
-Module.prototype.forEachGetter = function forEachGetter (fn) {
- if (this._rawModule.getters) {
- forEachValue(this._rawModule.getters, fn);
- }
-};
-
-Module.prototype.forEachAction = function forEachAction (fn) {
- if (this._rawModule.actions) {
- forEachValue(this._rawModule.actions, fn);
- }
-};
-
-Module.prototype.forEachMutation = function forEachMutation (fn) {
- if (this._rawModule.mutations) {
- forEachValue(this._rawModule.mutations, fn);
- }
-};
-
-Object.defineProperties( Module.prototype, prototypeAccessors );
-
-var ModuleCollection = function ModuleCollection (rawRootModule) {
- // register root module (Vuex.Store options)
- this.register([], rawRootModule, false);
-};
-
-ModuleCollection.prototype.get = function get (path) {
- return path.reduce(function (module, key) {
- return module.getChild(key)
- }, this.root)
-};
-
-ModuleCollection.prototype.getNamespace = function getNamespace (path) {
- var module = this.root;
- return path.reduce(function (namespace, key) {
- module = module.getChild(key);
- return namespace + (module.namespaced ? key + '/' : '')
- }, '')
-};
-
-ModuleCollection.prototype.update = function update$1 (rawRootModule) {
- update([], this.root, rawRootModule);
-};
-
-ModuleCollection.prototype.register = function register (path, rawModule, runtime) {
- var this$1 = this;
- if ( runtime === void 0 ) runtime = true;
-
- if ((process.env.NODE_ENV !== 'production')) {
- assertRawModule(path, rawModule);
- }
-
- var newModule = new Module(rawModule, runtime);
- if (path.length === 0) {
- this.root = newModule;
- } else {
- var parent = this.get(path.slice(0, -1));
- parent.addChild(path[path.length - 1], newModule);
- }
-
- // register nested modules
- if (rawModule.modules) {
- forEachValue(rawModule.modules, function (rawChildModule, key) {
- this$1.register(path.concat(key), rawChildModule, runtime);
- });
- }
-};
-
-ModuleCollection.prototype.unregister = function unregister (path) {
- var parent = this.get(path.slice(0, -1));
- var key = path[path.length - 1];
- if (!parent.getChild(key).runtime) { return }
-
- parent.removeChild(key);
-};
-
-ModuleCollection.prototype.isRegistered = function isRegistered (path) {
- var parent = this.get(path.slice(0, -1));
- var key = path[path.length - 1];
-
- return parent.hasChild(key)
-};
-
-function update (path, targetModule, newModule) {
- if ((process.env.NODE_ENV !== 'production')) {
- assertRawModule(path, newModule);
- }
-
- // update target module
- targetModule.update(newModule);
-
- // update nested modules
- if (newModule.modules) {
- for (var key in newModule.modules) {
- if (!targetModule.getChild(key)) {
- if ((process.env.NODE_ENV !== 'production')) {
- console.warn(
- "[vuex] trying to add a new module '" + key + "' on hot reloading, " +
- 'manual reload is needed'
- );
- }
- return
- }
- update(
- path.concat(key),
- targetModule.getChild(key),
- newModule.modules[key]
- );
- }
- }
-}
-
-var functionAssert = {
- assert: function (value) { return typeof value === 'function'; },
- expected: 'function'
-};
-
-var objectAssert = {
- assert: function (value) { return typeof value === 'function' ||
- (typeof value === 'object' && typeof value.handler === 'function'); },
- expected: 'function or object with "handler" function'
-};
-
-var assertTypes = {
- getters: functionAssert,
- mutations: functionAssert,
- actions: objectAssert
-};
-
-function assertRawModule (path, rawModule) {
- Object.keys(assertTypes).forEach(function (key) {
- if (!rawModule[key]) { return }
-
- var assertOptions = assertTypes[key];
-
- forEachValue(rawModule[key], function (value, type) {
- assert(
- assertOptions.assert(value),
- makeAssertionMessage(path, key, type, value, assertOptions.expected)
- );
- });
- });
-}
-
-function makeAssertionMessage (path, key, type, value, expected) {
- var buf = key + " should be " + expected + " but \"" + key + "." + type + "\"";
- if (path.length > 0) {
- buf += " in module \"" + (path.join('.')) + "\"";
- }
- buf += " is " + (JSON.stringify(value)) + ".";
- return buf
-}
-
-function createStore (options) {
- return new Store(options)
-}
-
-var Store = function Store (options) {
- var this$1 = this;
- if ( options === void 0 ) options = {};
-
- if (process.env.NODE_ENV !== 'production') {
- assert(typeof Promise !== 'undefined', "vuex requires a Promise polyfill in this browser.");
- assert(this instanceof Store, "store must be called with the new operator.");
- }
-
- var plugins = options.plugins; if ( plugins === void 0 ) plugins = [];
- var strict = options.strict; if ( strict === void 0 ) strict = false;
-
- // store internal state
- this._committing = false;
- this._actions = Object.create(null);
- this._actionSubscribers = [];
- this._mutations = Object.create(null);
- this._wrappedGetters = Object.create(null);
- this._modules = new ModuleCollection(options);
- this._modulesNamespaceMap = Object.create(null);
- this._subscribers = [];
- this._makeLocalGettersCache = Object.create(null);
-
- // bind commit and dispatch to self
- var store = this;
- var ref = this;
- var dispatch = ref.dispatch;
- var commit = ref.commit;
- this.dispatch = function boundDispatch (type, payload) {
- return dispatch.call(store, type, payload)
- };
- this.commit = function boundCommit (type, payload, options) {
- return commit.call(store, type, payload, options)
- };
-
- // strict mode
- this.strict = strict;
-
- var state = this._modules.root.state;
-
- // init root module.
- // this also recursively registers all sub-modules
- // and collects all module getters inside this._wrappedGetters
- installModule(this, state, [], this._modules.root);
-
- // initialize the store state, which is responsible for the reactivity
- // (also registers _wrappedGetters as computed properties)
- resetStoreState(this, state);
-
- // apply plugins
- plugins.forEach(function (plugin) { return plugin(this$1); });
-
- var useDevtools = options.devtools !== undefined ? options.devtools : /* Vue.config.devtools */ true;
- if (useDevtools) {
- devtoolPlugin(this);
- }
-};
-
-var prototypeAccessors$1 = { state: { configurable: true } };
-
-Store.prototype.install = function install (app, injectKey) {
- app.provide(injectKey || storeKey, this);
- app.config.globalProperties.$store = this;
-};
-
-prototypeAccessors$1.state.get = function () {
- return this._state.data
-};
-
-prototypeAccessors$1.state.set = function (v) {
- if ((process.env.NODE_ENV !== 'production')) {
- assert(false, "use store.replaceState() to explicit replace store state.");
- }
-};
-
-Store.prototype.commit = function commit (_type, _payload, _options) {
- var this$1 = this;
-
- // check object-style commit
- var ref = unifyObjectStyle(_type, _payload, _options);
- var type = ref.type;
- var payload = ref.payload;
- var options = ref.options;
-
- var mutation = { type: type, payload: payload };
- var entry = this._mutations[type];
- if (!entry) {
- if ((process.env.NODE_ENV !== 'production')) {
- console.error(("[vuex] unknown mutation type: " + type));
- }
- return
- }
- this._withCommit(function () {
- entry.forEach(function commitIterator (handler) {
- handler(payload);
- });
- });
-
- this._subscribers
- .slice() // shallow copy to prevent iterator invalidation if subscriber synchronously calls unsubscribe
- .forEach(function (sub) { return sub(mutation, this$1.state); });
-
- if (
- (process.env.NODE_ENV !== 'production') &&
- options && options.silent
- ) {
- console.warn(
- "[vuex] mutation type: " + type + ". Silent option has been removed. " +
- 'Use the filter functionality in the vue-devtools'
- );
- }
-};
-
-Store.prototype.dispatch = function dispatch (_type, _payload) {
- var this$1 = this;
-
- // check object-style dispatch
- var ref = unifyObjectStyle(_type, _payload);
- var type = ref.type;
- var payload = ref.payload;
-
- var action = { type: type, payload: payload };
- var entry = this._actions[type];
- if (!entry) {
- if ((process.env.NODE_ENV !== 'production')) {
- console.error(("[vuex] unknown action type: " + type));
- }
- return
- }
-
- try {
- this._actionSubscribers
- .slice() // shallow copy to prevent iterator invalidation if subscriber synchronously calls unsubscribe
- .filter(function (sub) { return sub.before; })
- .forEach(function (sub) { return sub.before(action, this$1.state); });
- } catch (e) {
- if ((process.env.NODE_ENV !== 'production')) {
- console.warn("[vuex] error in before action subscribers: ");
- console.error(e);
- }
- }
-
- var result = entry.length > 1
- ? Promise.all(entry.map(function (handler) { return handler(payload); }))
- : entry[0](payload);
-
- return new Promise(function (resolve, reject) {
- result.then(function (res) {
- try {
- this$1._actionSubscribers
- .filter(function (sub) { return sub.after; })
- .forEach(function (sub) { return sub.after(action, this$1.state); });
- } catch (e) {
- if ((process.env.NODE_ENV !== 'production')) {
- console.warn("[vuex] error in after action subscribers: ");
- console.error(e);
- }
- }
- resolve(res);
- }, function (error) {
- try {
- this$1._actionSubscribers
- .filter(function (sub) { return sub.error; })
- .forEach(function (sub) { return sub.error(action, this$1.state, error); });
- } catch (e) {
- if ((process.env.NODE_ENV !== 'production')) {
- console.warn("[vuex] error in error action subscribers: ");
- console.error(e);
- }
- }
- reject(error);
- });
- })
-};
-
-Store.prototype.subscribe = function subscribe (fn, options) {
- return genericSubscribe(fn, this._subscribers, options)
-};
-
-Store.prototype.subscribeAction = function subscribeAction (fn, options) {
- var subs = typeof fn === 'function' ? { before: fn } : fn;
- return genericSubscribe(subs, this._actionSubscribers, options)
-};
-
-Store.prototype.watch = function watch$1 (getter, cb, options) {
- var this$1 = this;
-
- if ((process.env.NODE_ENV !== 'production')) {
- assert(typeof getter === 'function', "store.watch only accepts a function.");
- }
- return watch(function () { return getter(this$1.state, this$1.getters); }, cb, Object.assign({}, options))
-};
-
-Store.prototype.replaceState = function replaceState (state) {
- var this$1 = this;
-
- this._withCommit(function () {
- this$1._state.data = state;
- });
-};
-
-Store.prototype.registerModule = function registerModule (path, rawModule, options) {
- if ( options === void 0 ) options = {};
-
- if (typeof path === 'string') { path = [path]; }
-
- if ((process.env.NODE_ENV !== 'production')) {
- assert(Array.isArray(path), "module path must be a string or an Array.");
- assert(path.length > 0, 'cannot register the root module by using registerModule.');
- }
-
- this._modules.register(path, rawModule);
- installModule(this, this.state, path, this._modules.get(path), options.preserveState);
- // reset store to update getters...
- resetStoreState(this, this.state);
-};
-
-Store.prototype.unregisterModule = function unregisterModule (path) {
- var this$1 = this;
-
- if (typeof path === 'string') { path = [path]; }
-
- if ((process.env.NODE_ENV !== 'production')) {
- assert(Array.isArray(path), "module path must be a string or an Array.");
- }
-
- this._modules.unregister(path);
- this._withCommit(function () {
- var parentState = getNestedState(this$1.state, path.slice(0, -1));
- delete parentState[path[path.length - 1]];
- });
- resetStore(this);
-};
-
-Store.prototype.hasModule = function hasModule (path) {
- if (typeof path === 'string') { path = [path]; }
-
- if ((process.env.NODE_ENV !== 'production')) {
- assert(Array.isArray(path), "module path must be a string or an Array.");
- }
-
- return this._modules.isRegistered(path)
-};
-
-Store.prototype.hotUpdate = function hotUpdate (newOptions) {
- this._modules.update(newOptions);
- resetStore(this, true);
-};
-
-Store.prototype._withCommit = function _withCommit (fn) {
- var committing = this._committing;
- this._committing = true;
- fn();
- this._committing = committing;
-};
-
-Object.defineProperties( Store.prototype, prototypeAccessors$1 );
-
-function genericSubscribe (fn, subs, options) {
- if (subs.indexOf(fn) < 0) {
- options && options.prepend
- ? subs.unshift(fn)
- : subs.push(fn);
- }
- return function () {
- var i = subs.indexOf(fn);
- if (i > -1) {
- subs.splice(i, 1);
- }
- }
-}
-
-function resetStore (store, hot) {
- store._actions = Object.create(null);
- store._mutations = Object.create(null);
- store._wrappedGetters = Object.create(null);
- store._modulesNamespaceMap = Object.create(null);
- var state = store.state;
- // init all modules
- installModule(store, state, [], store._modules.root, true);
- // reset state
- resetStoreState(store, state, hot);
-}
-
-function resetStoreState (store, state, hot) {
- var oldState = store._state;
-
- // bind store public getters
- store.getters = {};
- // reset local getters cache
- store._makeLocalGettersCache = Object.create(null);
- var wrappedGetters = store._wrappedGetters;
- var computedObj = {};
- forEachValue(wrappedGetters, function (fn, key) {
- // use computed to leverage its lazy-caching mechanism
- // direct inline function use will lead to closure preserving oldVm.
- // using partial to return function with only arguments preserved in closure environment.
- computedObj[key] = partial(fn, store);
- Object.defineProperty(store.getters, key, {
- get: function () { return computed(function () { return computedObj[key](); }).value; },
- enumerable: true // for local getters
- });
- });
-
- store._state = reactive({
- data: state
- });
-
- // enable strict mode for new state
- if (store.strict) {
- enableStrictMode(store);
- }
-
- if (oldState) {
- if (hot) {
- // dispatch changes in all subscribed watchers
- // to force getter re-evaluation for hot reloading.
- store._withCommit(function () {
- oldState.data = null;
- });
- }
- }
-}
-
-function installModule (store, rootState, path, module, hot) {
- var isRoot = !path.length;
- var namespace = store._modules.getNamespace(path);
-
- // register in namespace map
- if (module.namespaced) {
- if (store._modulesNamespaceMap[namespace] && (process.env.NODE_ENV !== 'production')) {
- console.error(("[vuex] duplicate namespace " + namespace + " for the namespaced module " + (path.join('/'))));
- }
- store._modulesNamespaceMap[namespace] = module;
- }
-
- // set state
- if (!isRoot && !hot) {
- var parentState = getNestedState(rootState, path.slice(0, -1));
- var moduleName = path[path.length - 1];
- store._withCommit(function () {
- if ((process.env.NODE_ENV !== 'production')) {
- if (moduleName in parentState) {
- console.warn(
- ("[vuex] state field \"" + moduleName + "\" was overridden by a module with the same name at \"" + (path.join('.')) + "\"")
- );
- }
- }
- parentState[moduleName] = module.state;
- });
- }
-
- var local = module.context = makeLocalContext(store, namespace, path);
-
- module.forEachMutation(function (mutation, key) {
- var namespacedType = namespace + key;
- registerMutation(store, namespacedType, mutation, local);
- });
-
- module.forEachAction(function (action, key) {
- var type = action.root ? key : namespace + key;
- var handler = action.handler || action;
- registerAction(store, type, handler, local);
- });
-
- module.forEachGetter(function (getter, key) {
- var namespacedType = namespace + key;
- registerGetter(store, namespacedType, getter, local);
- });
-
- module.forEachChild(function (child, key) {
- installModule(store, rootState, path.concat(key), child, hot);
- });
-}
-
-/**
- * make localized dispatch, commit, getters and state
- * if there is no namespace, just use root ones
- */
-function makeLocalContext (store, namespace, path) {
- var noNamespace = namespace === '';
-
- var local = {
- dispatch: noNamespace ? store.dispatch : function (_type, _payload, _options) {
- var args = unifyObjectStyle(_type, _payload, _options);
- var payload = args.payload;
- var options = args.options;
- var type = args.type;
-
- if (!options || !options.root) {
- type = namespace + type;
- if ((process.env.NODE_ENV !== 'production') && !store._actions[type]) {
- console.error(("[vuex] unknown local action type: " + (args.type) + ", global type: " + type));
- return
- }
- }
-
- return store.dispatch(type, payload)
- },
-
- commit: noNamespace ? store.commit : function (_type, _payload, _options) {
- var args = unifyObjectStyle(_type, _payload, _options);
- var payload = args.payload;
- var options = args.options;
- var type = args.type;
-
- if (!options || !options.root) {
- type = namespace + type;
- if ((process.env.NODE_ENV !== 'production') && !store._mutations[type]) {
- console.error(("[vuex] unknown local mutation type: " + (args.type) + ", global type: " + type));
- return
- }
- }
-
- store.commit(type, payload, options);
- }
- };
-
- // getters and state object must be gotten lazily
- // because they will be changed by state update
- Object.defineProperties(local, {
- getters: {
- get: noNamespace
- ? function () { return store.getters; }
- : function () { return makeLocalGetters(store, namespace); }
- },
- state: {
- get: function () { return getNestedState(store.state, path); }
- }
- });
-
- return local
-}
-
-function makeLocalGetters (store, namespace) {
- if (!store._makeLocalGettersCache[namespace]) {
- var gettersProxy = {};
- var splitPos = namespace.length;
- Object.keys(store.getters).forEach(function (type) {
- // skip if the target getter is not match this namespace
- if (type.slice(0, splitPos) !== namespace) { return }
-
- // extract local getter type
- var localType = type.slice(splitPos);
-
- // Add a port to the getters proxy.
- // Define as getter property because
- // we do not want to evaluate the getters in this time.
- Object.defineProperty(gettersProxy, localType, {
- get: function () { return store.getters[type]; },
- enumerable: true
- });
- });
- store._makeLocalGettersCache[namespace] = gettersProxy;
- }
-
- return store._makeLocalGettersCache[namespace]
-}
-
-function registerMutation (store, type, handler, local) {
- var entry = store._mutations[type] || (store._mutations[type] = []);
- entry.push(function wrappedMutationHandler (payload) {
- handler.call(store, local.state, payload);
- });
-}
-
-function registerAction (store, type, handler, local) {
- var entry = store._actions[type] || (store._actions[type] = []);
- entry.push(function wrappedActionHandler (payload) {
- var res = handler.call(store, {
- dispatch: local.dispatch,
- commit: local.commit,
- getters: local.getters,
- state: local.state,
- rootGetters: store.getters,
- rootState: store.state
- }, payload);
- if (!isPromise(res)) {
- res = Promise.resolve(res);
- }
- if (store._devtoolHook) {
- return res.catch(function (err) {
- store._devtoolHook.emit('vuex:error', err);
- throw err
- })
- } else {
- return res
- }
- });
-}
-
-function registerGetter (store, type, rawGetter, local) {
- if (store._wrappedGetters[type]) {
- if ((process.env.NODE_ENV !== 'production')) {
- console.error(("[vuex] duplicate getter key: " + type));
- }
- return
- }
- store._wrappedGetters[type] = function wrappedGetter (store) {
- return rawGetter(
- local.state, // local state
- local.getters, // local getters
- store.state, // root state
- store.getters // root getters
- )
- };
-}
-
-function enableStrictMode (store) {
- watch(function () { return store._state.data; }, function () {
- if ((process.env.NODE_ENV !== 'production')) {
- assert(store._committing, "do not mutate vuex store state outside mutation handlers.");
- }
- }, { deep: true, flush: 'sync' });
-}
-
-function getNestedState (state, path) {
- return path.reduce(function (state, key) { return state[key]; }, state)
-}
-
-function unifyObjectStyle (type, payload, options) {
- if (isObject(type) && type.type) {
- options = payload;
- payload = type;
- type = type.type;
- }
-
- if ((process.env.NODE_ENV !== 'production')) {
- assert(typeof type === 'string', ("expects string as the type, but found " + (typeof type) + "."));
- }
-
- return { type: type, payload: payload, options: options }
-}
-
-/**
- * Reduce the code which written in Vue.js for getting the state.
- * @param {String} [namespace] - Module's namespace
- * @param {Object|Array} states # Object's item can be a function which accept state and getters for param, you can do something for state and getters in it.
- * @param {Object}
- */
-var mapState = normalizeNamespace(function (namespace, states) {
- var res = {};
- if ((process.env.NODE_ENV !== 'production') && !isValidMap(states)) {
- console.error('[vuex] mapState: mapper parameter must be either an Array or an Object');
- }
- normalizeMap(states).forEach(function (ref) {
- var key = ref.key;
- var val = ref.val;
-
- res[key] = function mappedState () {
- var state = this.$store.state;
- var getters = this.$store.getters;
- if (namespace) {
- var module = getModuleByNamespace(this.$store, 'mapState', namespace);
- if (!module) {
- return
- }
- state = module.context.state;
- getters = module.context.getters;
- }
- return typeof val === 'function'
- ? val.call(this, state, getters)
- : state[val]
- };
- // mark vuex getter for devtools
- res[key].vuex = true;
- });
- return res
-});
-
-/**
- * Reduce the code which written in Vue.js for committing the mutation
- * @param {String} [namespace] - Module's namespace
- * @param {Object|Array} mutations # Object's item can be a function which accept `commit` function as the first param, it can accept anthor params. You can commit mutation and do any other things in this function. specially, You need to pass anthor params from the mapped function.
- * @return {Object}
- */
-var mapMutations = normalizeNamespace(function (namespace, mutations) {
- var res = {};
- if ((process.env.NODE_ENV !== 'production') && !isValidMap(mutations)) {
- console.error('[vuex] mapMutations: mapper parameter must be either an Array or an Object');
- }
- normalizeMap(mutations).forEach(function (ref) {
- var key = ref.key;
- var val = ref.val;
-
- res[key] = function mappedMutation () {
- var args = [], len = arguments.length;
- while ( len-- ) args[ len ] = arguments[ len ];
-
- // Get the commit method from store
- var commit = this.$store.commit;
- if (namespace) {
- var module = getModuleByNamespace(this.$store, 'mapMutations', namespace);
- if (!module) {
- return
- }
- commit = module.context.commit;
- }
- return typeof val === 'function'
- ? val.apply(this, [commit].concat(args))
- : commit.apply(this.$store, [val].concat(args))
- };
- });
- return res
-});
-
-/**
- * Reduce the code which written in Vue.js for getting the getters
- * @param {String} [namespace] - Module's namespace
- * @param {Object|Array} getters
- * @return {Object}
- */
-var mapGetters = normalizeNamespace(function (namespace, getters) {
- var res = {};
- if ((process.env.NODE_ENV !== 'production') && !isValidMap(getters)) {
- console.error('[vuex] mapGetters: mapper parameter must be either an Array or an Object');
- }
- normalizeMap(getters).forEach(function (ref) {
- var key = ref.key;
- var val = ref.val;
-
- // The namespace has been mutated by normalizeNamespace
- val = namespace + val;
- res[key] = function mappedGetter () {
- if (namespace && !getModuleByNamespace(this.$store, 'mapGetters', namespace)) {
- return
- }
- if ((process.env.NODE_ENV !== 'production') && !(val in this.$store.getters)) {
- console.error(("[vuex] unknown getter: " + val));
- return
- }
- return this.$store.getters[val]
- };
- // mark vuex getter for devtools
- res[key].vuex = true;
- });
- return res
-});
-
-/**
- * Reduce the code which written in Vue.js for dispatch the action
- * @param {String} [namespace] - Module's namespace
- * @param {Object|Array} actions # Object's item can be a function which accept `dispatch` function as the first param, it can accept anthor params. You can dispatch action and do any other things in this function. specially, You need to pass anthor params from the mapped function.
- * @return {Object}
- */
-var mapActions = normalizeNamespace(function (namespace, actions) {
- var res = {};
- if ((process.env.NODE_ENV !== 'production') && !isValidMap(actions)) {
- console.error('[vuex] mapActions: mapper parameter must be either an Array or an Object');
- }
- normalizeMap(actions).forEach(function (ref) {
- var key = ref.key;
- var val = ref.val;
-
- res[key] = function mappedAction () {
- var args = [], len = arguments.length;
- while ( len-- ) args[ len ] = arguments[ len ];
-
- // get dispatch function from store
- var dispatch = this.$store.dispatch;
- if (namespace) {
- var module = getModuleByNamespace(this.$store, 'mapActions', namespace);
- if (!module) {
- return
- }
- dispatch = module.context.dispatch;
- }
- return typeof val === 'function'
- ? val.apply(this, [dispatch].concat(args))
- : dispatch.apply(this.$store, [val].concat(args))
- };
- });
- return res
-});
-
-/**
- * Rebinding namespace param for mapXXX function in special scoped, and return them by simple object
- * @param {String} namespace
- * @return {Object}
- */
-var createNamespacedHelpers = function (namespace) { return ({
- mapState: mapState.bind(null, namespace),
- mapGetters: mapGetters.bind(null, namespace),
- mapMutations: mapMutations.bind(null, namespace),
- mapActions: mapActions.bind(null, namespace)
-}); };
-
-/**
- * Normalize the map
- * normalizeMap([1, 2, 3]) => [ { key: 1, val: 1 }, { key: 2, val: 2 }, { key: 3, val: 3 } ]
- * normalizeMap({a: 1, b: 2, c: 3}) => [ { key: 'a', val: 1 }, { key: 'b', val: 2 }, { key: 'c', val: 3 } ]
- * @param {Array|Object} map
- * @return {Object}
- */
-function normalizeMap (map) {
- if (!isValidMap(map)) {
- return []
- }
- return Array.isArray(map)
- ? map.map(function (key) { return ({ key: key, val: key }); })
- : Object.keys(map).map(function (key) { return ({ key: key, val: map[key] }); })
-}
-
-/**
- * Validate whether given map is valid or not
- * @param {*} map
- * @return {Boolean}
- */
-function isValidMap (map) {
- return Array.isArray(map) || isObject(map)
-}
-
-/**
- * Return a function expect two param contains namespace and map. it will normalize the namespace and then the param's function will handle the new namespace and the map.
- * @param {Function} fn
- * @return {Function}
- */
-function normalizeNamespace (fn) {
- return function (namespace, map) {
- if (typeof namespace !== 'string') {
- map = namespace;
- namespace = '';
- } else if (namespace.charAt(namespace.length - 1) !== '/') {
- namespace += '/';
- }
- return fn(namespace, map)
- }
-}
-
-/**
- * Search a special module from store by namespace. if module not exist, print error message.
- * @param {Object} store
- * @param {String} helper
- * @param {String} namespace
- * @return {Object}
- */
-function getModuleByNamespace (store, helper, namespace) {
- var module = store._modulesNamespaceMap[namespace];
- if ((process.env.NODE_ENV !== 'production') && !module) {
- console.error(("[vuex] module namespace not found in " + helper + "(): " + namespace));
- }
- return module
-}
-
-var index = {
- version: '4.0.0-beta.2',
- createStore: createStore,
- Store: Store,
- useStore: useStore,
- mapState: mapState,
- mapMutations: mapMutations,
- mapGetters: mapGetters,
- mapActions: mapActions,
- createNamespacedHelpers: createNamespacedHelpers
-};
-
-export default index;
-export { Store, createNamespacedHelpers, createStore, mapActions, mapGetters, mapMutations, mapState, useStore };
diff --git a/dist/vuex.esm.browser.js b/dist/vuex.esm.browser.js
index 6628e2d19..927d4c504 100644
--- a/dist/vuex.esm.browser.js
+++ b/dist/vuex.esm.browser.js
@@ -1,6 +1,6 @@
/*!
- * vuex v3.5.1
- * (c) 2020 Evan You
+ * vuex v3.6.2
+ * (c) 2021 Evan You
* @license MIT
*/
function applyMixin (Vue) {
@@ -278,7 +278,11 @@ class ModuleCollection {
const parent = this.get(path.slice(0, -1));
const key = path[path.length - 1];
- return parent.hasChild(key)
+ if (parent) {
+ return parent.hasChild(key)
+ }
+
+ return false
}
}
@@ -934,7 +938,7 @@ const mapState = normalizeNamespace((namespace, states) => {
/**
* Reduce the code which written in Vue.js for committing the mutation
* @param {String} [namespace] - Module's namespace
- * @param {Object|Array} mutations # Object's item can be a function which accept `commit` function as the first param, it can accept anthor params. You can commit mutation and do any other things in this function. specially, You need to pass anthor params from the mapped function.
+ * @param {Object|Array} mutations # Object's item can be a function which accept `commit` function as the first param, it can accept another params. You can commit mutation and do any other things in this function. specially, You need to pass anthor params from the mapped function.
* @return {Object}
*/
const mapMutations = normalizeNamespace((namespace, mutations) => {
@@ -1183,7 +1187,7 @@ function pad (num, maxLength) {
var index = {
Store,
install,
- version: '3.5.1',
+ version: '3.6.2',
mapState,
mapMutations,
mapGetters,
diff --git a/dist/vuex.esm.browser.min.js b/dist/vuex.esm.browser.min.js
index b0a5b4354..277efe5bf 100644
--- a/dist/vuex.esm.browser.min.js
+++ b/dist/vuex.esm.browser.min.js
@@ -1,6 +1,6 @@
/*!
- * vuex v3.5.1
- * (c) 2020 Evan You
+ * vuex v3.6.2
+ * (c) 2021 Evan You
* @license MIT
*/
-const t=("undefined"!=typeof window?window:"undefined"!=typeof global?global:{}).__VUE_DEVTOOLS_GLOBAL_HOOK__;function e(t,s=[]){if(null===t||"object"!=typeof t)return t;const o=(i=e=>e.original===t,s.filter(i)[0]);var i;if(o)return o.copy;const n=Array.isArray(t)?[]:{};return s.push({original:t,copy:n}),Object.keys(t).forEach(o=>{n[o]=e(t[o],s)}),n}function s(t,e){Object.keys(t).forEach(s=>e(t[s],s))}function o(t){return null!==t&&"object"==typeof t}class i{constructor(t,e){this.runtime=e,this._children=Object.create(null),this._rawModule=t;const s=t.state;this.state=("function"==typeof s?s():s)||{}}get namespaced(){return!!this._rawModule.namespaced}addChild(t,e){this._children[t]=e}removeChild(t){delete this._children[t]}getChild(t){return this._children[t]}hasChild(t){return t in this._children}update(t){this._rawModule.namespaced=t.namespaced,t.actions&&(this._rawModule.actions=t.actions),t.mutations&&(this._rawModule.mutations=t.mutations),t.getters&&(this._rawModule.getters=t.getters)}forEachChild(t){s(this._children,t)}forEachGetter(t){this._rawModule.getters&&s(this._rawModule.getters,t)}forEachAction(t){this._rawModule.actions&&s(this._rawModule.actions,t)}forEachMutation(t){this._rawModule.mutations&&s(this._rawModule.mutations,t)}}class n{constructor(t){this.register([],t,!1)}get(t){return t.reduce((t,e)=>t.getChild(e),this.root)}getNamespace(t){let e=this.root;return t.reduce((t,s)=>(e=e.getChild(s),t+(e.namespaced?s+"/":"")),"")}update(t){!function t(e,s,o){if(s.update(o),o.modules)for(const i in o.modules){if(!s.getChild(i))return;t(e.concat(i),s.getChild(i),o.modules[i])}}([],this.root,t)}register(t,e,o=!0){const n=new i(e,o);if(0===t.length)this.root=n;else{this.get(t.slice(0,-1)).addChild(t[t.length-1],n)}e.modules&&s(e.modules,(e,s)=>{this.register(t.concat(s),e,o)})}unregister(t){const e=this.get(t.slice(0,-1)),s=t[t.length-1],o=e.getChild(s);o&&o.runtime&&e.removeChild(s)}isRegistered(t){const e=this.get(t.slice(0,-1)),s=t[t.length-1];return e.hasChild(s)}}let r;class c{constructor(e={}){!r&&"undefined"!=typeof window&&window.Vue&&f(window.Vue);const{plugins:s=[],strict:o=!1}=e;this._committing=!1,this._actions=Object.create(null),this._actionSubscribers=[],this._mutations=Object.create(null),this._wrappedGetters=Object.create(null),this._modules=new n(e),this._modulesNamespaceMap=Object.create(null),this._subscribers=[],this._watcherVM=new r,this._makeLocalGettersCache=Object.create(null);const i=this,{dispatch:c,commit:a}=this;this.dispatch=function(t,e){return c.call(i,t,e)},this.commit=function(t,e,s){return a.call(i,t,e,s)},this.strict=o;const u=this._modules.root.state;h(this,u,[],this._modules.root),l(this,u),s.forEach(t=>t(this)),(void 0!==e.devtools?e.devtools:r.config.devtools)&&function(e){t&&(e._devtoolHook=t,t.emit("vuex:init",e),t.on("vuex:travel-to-state",t=>{e.replaceState(t)}),e.subscribe((e,s)=>{t.emit("vuex:mutation",e,s)},{prepend:!0}),e.subscribeAction((e,s)=>{t.emit("vuex:action",e,s)},{prepend:!0}))}(this)}get state(){return this._vm._data.$$state}set state(t){}commit(t,e,s){const{type:o,payload:i,options:n}=p(t,e,s),r={type:o,payload:i},c=this._mutations[o];c&&(this._withCommit(()=>{c.forEach((function(t){t(i)}))}),this._subscribers.slice().forEach(t=>t(r,this.state)))}dispatch(t,e){const{type:s,payload:o}=p(t,e),i={type:s,payload:o},n=this._actions[s];if(!n)return;try{this._actionSubscribers.slice().filter(t=>t.before).forEach(t=>t.before(i,this.state))}catch(t){}const r=n.length>1?Promise.all(n.map(t=>t(o))):n[0](o);return new Promise((t,e)=>{r.then(e=>{try{this._actionSubscribers.filter(t=>t.after).forEach(t=>t.after(i,this.state))}catch(t){}t(e)},t=>{try{this._actionSubscribers.filter(t=>t.error).forEach(e=>e.error(i,this.state,t))}catch(t){}e(t)})})}subscribe(t,e){return a(t,this._subscribers,e)}subscribeAction(t,e){return a("function"==typeof t?{before:t}:t,this._actionSubscribers,e)}watch(t,e,s){return this._watcherVM.$watch(()=>t(this.state,this.getters),e,s)}replaceState(t){this._withCommit(()=>{this._vm._data.$$state=t})}registerModule(t,e,s={}){"string"==typeof t&&(t=[t]),this._modules.register(t,e),h(this,this.state,t,this._modules.get(t),s.preserveState),l(this,this.state)}unregisterModule(t){"string"==typeof t&&(t=[t]),this._modules.unregister(t),this._withCommit(()=>{const e=d(this.state,t.slice(0,-1));r.delete(e,t[t.length-1])}),u(this)}hasModule(t){return"string"==typeof t&&(t=[t]),this._modules.isRegistered(t)}hotUpdate(t){this._modules.update(t),u(this,!0)}_withCommit(t){const e=this._committing;this._committing=!0,t(),this._committing=e}}function a(t,e,s){return e.indexOf(t)<0&&(s&&s.prepend?e.unshift(t):e.push(t)),()=>{const s=e.indexOf(t);s>-1&&e.splice(s,1)}}function u(t,e){t._actions=Object.create(null),t._mutations=Object.create(null),t._wrappedGetters=Object.create(null),t._modulesNamespaceMap=Object.create(null);const s=t.state;h(t,s,[],t._modules.root,!0),l(t,s,e)}function l(t,e,o){const i=t._vm;t.getters={},t._makeLocalGettersCache=Object.create(null);const n=t._wrappedGetters,c={};s(n,(e,s)=>{c[s]=function(t,e){return function(){return t(e)}}(e,t),Object.defineProperty(t.getters,s,{get:()=>t._vm[s],enumerable:!0})});const a=r.config.silent;r.config.silent=!0,t._vm=new r({data:{$$state:e},computed:c}),r.config.silent=a,t.strict&&function(t){t._vm.$watch((function(){return this._data.$$state}),()=>{},{deep:!0,sync:!0})}(t),i&&(o&&t._withCommit(()=>{i._data.$$state=null}),r.nextTick(()=>i.$destroy()))}function h(t,e,s,o,i){const n=!s.length,c=t._modules.getNamespace(s);if(o.namespaced&&(t._modulesNamespaceMap[c],t._modulesNamespaceMap[c]=o),!n&&!i){const i=d(e,s.slice(0,-1)),n=s[s.length-1];t._withCommit(()=>{r.set(i,n,o.state)})}const a=o.context=function(t,e,s){const o=""===e,i={dispatch:o?t.dispatch:(s,o,i)=>{const n=p(s,o,i),{payload:r,options:c}=n;let{type:a}=n;return c&&c.root||(a=e+a),t.dispatch(a,r)},commit:o?t.commit:(s,o,i)=>{const n=p(s,o,i),{payload:r,options:c}=n;let{type:a}=n;c&&c.root||(a=e+a),t.commit(a,r,c)}};return Object.defineProperties(i,{getters:{get:o?()=>t.getters:()=>function(t,e){if(!t._makeLocalGettersCache[e]){const s={},o=e.length;Object.keys(t.getters).forEach(i=>{if(i.slice(0,o)!==e)return;const n=i.slice(o);Object.defineProperty(s,n,{get:()=>t.getters[i],enumerable:!0})}),t._makeLocalGettersCache[e]=s}return t._makeLocalGettersCache[e]}(t,e)},state:{get:()=>d(t.state,s)}}),i}(t,c,s);o.forEachMutation((e,s)=>{!function(t,e,s,o){(t._mutations[e]||(t._mutations[e]=[])).push((function(e){s.call(t,o.state,e)}))}(t,c+s,e,a)}),o.forEachAction((e,s)=>{const o=e.root?s:c+s,i=e.handler||e;!function(t,e,s,o){(t._actions[e]||(t._actions[e]=[])).push((function(e){let i=s.call(t,{dispatch:o.dispatch,commit:o.commit,getters:o.getters,state:o.state,rootGetters:t.getters,rootState:t.state},e);var n;return(n=i)&&"function"==typeof n.then||(i=Promise.resolve(i)),t._devtoolHook?i.catch(e=>{throw t._devtoolHook.emit("vuex:error",e),e}):i}))}(t,o,i,a)}),o.forEachGetter((e,s)=>{!function(t,e,s,o){if(t._wrappedGetters[e])return;t._wrappedGetters[e]=function(t){return s(o.state,o.getters,t.state,t.getters)}}(t,c+s,e,a)}),o.forEachChild((o,n)=>{h(t,e,s.concat(n),o,i)})}function d(t,e){return e.reduce((t,e)=>t[e],t)}function p(t,e,s){return o(t)&&t.type&&(s=e,e=t,t=t.type),{type:t,payload:e,options:s}}function f(t){r&&t===r||(r=t,function(t){if(Number(t.version.split(".")[0])>=2)t.mixin({beforeCreate:e});else{const s=t.prototype._init;t.prototype._init=function(t={}){t.init=t.init?[e].concat(t.init):e,s.call(this,t)}}function e(){const t=this.$options;t.store?this.$store="function"==typeof t.store?t.store():t.store:t.parent&&t.parent.$store&&(this.$store=t.parent.$store)}}(r))}const m=v((t,e)=>{const s={};return w(e).forEach(({key:e,val:o})=>{s[e]=function(){let e=this.$store.state,s=this.$store.getters;if(t){const o=$(this.$store,"mapState",t);if(!o)return;e=o.context.state,s=o.context.getters}return"function"==typeof o?o.call(this,e,s):e[o]},s[e].vuex=!0}),s}),g=v((t,e)=>{const s={};return w(e).forEach(({key:e,val:o})=>{s[e]=function(...e){let s=this.$store.commit;if(t){const e=$(this.$store,"mapMutations",t);if(!e)return;s=e.context.commit}return"function"==typeof o?o.apply(this,[s].concat(e)):s.apply(this.$store,[o].concat(e))}}),s}),_=v((t,e)=>{const s={};return w(e).forEach(({key:e,val:o})=>{o=t+o,s[e]=function(){if(!t||$(this.$store,"mapGetters",t))return this.$store.getters[o]},s[e].vuex=!0}),s}),y=v((t,e)=>{const s={};return w(e).forEach(({key:e,val:o})=>{s[e]=function(...e){let s=this.$store.dispatch;if(t){const e=$(this.$store,"mapActions",t);if(!e)return;s=e.context.dispatch}return"function"==typeof o?o.apply(this,[s].concat(e)):s.apply(this.$store,[o].concat(e))}}),s}),b=t=>({mapState:m.bind(null,t),mapGetters:_.bind(null,t),mapMutations:g.bind(null,t),mapActions:y.bind(null,t)});function w(t){return function(t){return Array.isArray(t)||o(t)}(t)?Array.isArray(t)?t.map(t=>({key:t,val:t})):Object.keys(t).map(e=>({key:e,val:t[e]})):[]}function v(t){return(e,s)=>("string"!=typeof e?(s=e,e=""):"/"!==e.charAt(e.length-1)&&(e+="/"),t(e,s))}function $(t,e,s){return t._modulesNamespaceMap[s]}function M({collapsed:t=!0,filter:s=((t,e,s)=>!0),transformer:o=(t=>t),mutationTransformer:i=(t=>t),actionFilter:n=((t,e)=>!0),actionTransformer:r=(t=>t),logMutations:c=!0,logActions:a=!0,logger:u=console}={}){return l=>{let h=e(l.state);void 0!==u&&(c&&l.subscribe((n,r)=>{const c=e(r);if(s(n,h,c)){const e=O(),s=i(n),r=`mutation ${n.type}${e}`;C(u,r,t),u.log("%c prev state","color: #9E9E9E; font-weight: bold",o(h)),u.log("%c mutation","color: #03A9F4; font-weight: bold",s),u.log("%c next state","color: #4CAF50; font-weight: bold",o(c)),E(u)}h=c}),a&&l.subscribeAction((e,s)=>{if(n(e,s)){const s=O(),o=r(e),i=`action ${e.type}${s}`;C(u,i,t),u.log("%c action","color: #03A9F4; font-weight: bold",o),E(u)}}))}}function C(t,e,s){const o=s?t.groupCollapsed:t.group;try{o.call(t,e)}catch(s){t.log(e)}}function E(t){try{t.groupEnd()}catch(e){t.log("—— log end ——")}}function O(){const t=new Date;return` @ ${j(t.getHours(),2)}:${j(t.getMinutes(),2)}:${j(t.getSeconds(),2)}.${j(t.getMilliseconds(),3)}`}function j(t,e){return s="0",o=e-t.toString().length,new Array(o+1).join(s)+t;var s,o}var A={Store:c,install:f,version:"3.5.1",mapState:m,mapMutations:g,mapGetters:_,mapActions:y,createNamespacedHelpers:b,createLogger:M};export default A;export{c as Store,M as createLogger,b as createNamespacedHelpers,f as install,y as mapActions,_ as mapGetters,g as mapMutations,m as mapState};
+const t=("undefined"!=typeof window?window:"undefined"!=typeof global?global:{}).__VUE_DEVTOOLS_GLOBAL_HOOK__;function e(t,s=[]){if(null===t||"object"!=typeof t)return t;const o=(i=e=>e.original===t,s.filter(i)[0]);var i;if(o)return o.copy;const n=Array.isArray(t)?[]:{};return s.push({original:t,copy:n}),Object.keys(t).forEach(o=>{n[o]=e(t[o],s)}),n}function s(t,e){Object.keys(t).forEach(s=>e(t[s],s))}function o(t){return null!==t&&"object"==typeof t}class i{constructor(t,e){this.runtime=e,this._children=Object.create(null),this._rawModule=t;const s=t.state;this.state=("function"==typeof s?s():s)||{}}get namespaced(){return!!this._rawModule.namespaced}addChild(t,e){this._children[t]=e}removeChild(t){delete this._children[t]}getChild(t){return this._children[t]}hasChild(t){return t in this._children}update(t){this._rawModule.namespaced=t.namespaced,t.actions&&(this._rawModule.actions=t.actions),t.mutations&&(this._rawModule.mutations=t.mutations),t.getters&&(this._rawModule.getters=t.getters)}forEachChild(t){s(this._children,t)}forEachGetter(t){this._rawModule.getters&&s(this._rawModule.getters,t)}forEachAction(t){this._rawModule.actions&&s(this._rawModule.actions,t)}forEachMutation(t){this._rawModule.mutations&&s(this._rawModule.mutations,t)}}class n{constructor(t){this.register([],t,!1)}get(t){return t.reduce((t,e)=>t.getChild(e),this.root)}getNamespace(t){let e=this.root;return t.reduce((t,s)=>(e=e.getChild(s),t+(e.namespaced?s+"/":"")),"")}update(t){!function t(e,s,o){if(s.update(o),o.modules)for(const i in o.modules){if(!s.getChild(i))return;t(e.concat(i),s.getChild(i),o.modules[i])}}([],this.root,t)}register(t,e,o=!0){const n=new i(e,o);if(0===t.length)this.root=n;else{this.get(t.slice(0,-1)).addChild(t[t.length-1],n)}e.modules&&s(e.modules,(e,s)=>{this.register(t.concat(s),e,o)})}unregister(t){const e=this.get(t.slice(0,-1)),s=t[t.length-1],o=e.getChild(s);o&&o.runtime&&e.removeChild(s)}isRegistered(t){const e=this.get(t.slice(0,-1)),s=t[t.length-1];return!!e&&e.hasChild(s)}}let r;class c{constructor(e={}){!r&&"undefined"!=typeof window&&window.Vue&&f(window.Vue);const{plugins:s=[],strict:o=!1}=e;this._committing=!1,this._actions=Object.create(null),this._actionSubscribers=[],this._mutations=Object.create(null),this._wrappedGetters=Object.create(null),this._modules=new n(e),this._modulesNamespaceMap=Object.create(null),this._subscribers=[],this._watcherVM=new r,this._makeLocalGettersCache=Object.create(null);const i=this,{dispatch:c,commit:a}=this;this.dispatch=function(t,e){return c.call(i,t,e)},this.commit=function(t,e,s){return a.call(i,t,e,s)},this.strict=o;const u=this._modules.root.state;h(this,u,[],this._modules.root),l(this,u),s.forEach(t=>t(this));(void 0!==e.devtools?e.devtools:r.config.devtools)&&function(e){t&&(e._devtoolHook=t,t.emit("vuex:init",e),t.on("vuex:travel-to-state",t=>{e.replaceState(t)}),e.subscribe((e,s)=>{t.emit("vuex:mutation",e,s)},{prepend:!0}),e.subscribeAction((e,s)=>{t.emit("vuex:action",e,s)},{prepend:!0}))}(this)}get state(){return this._vm._data.$$state}set state(t){}commit(t,e,s){const{type:o,payload:i,options:n}=p(t,e,s),r={type:o,payload:i},c=this._mutations[o];c&&(this._withCommit(()=>{c.forEach((function(t){t(i)}))}),this._subscribers.slice().forEach(t=>t(r,this.state)))}dispatch(t,e){const{type:s,payload:o}=p(t,e),i={type:s,payload:o},n=this._actions[s];if(!n)return;try{this._actionSubscribers.slice().filter(t=>t.before).forEach(t=>t.before(i,this.state))}catch(t){}const r=n.length>1?Promise.all(n.map(t=>t(o))):n[0](o);return new Promise((t,e)=>{r.then(e=>{try{this._actionSubscribers.filter(t=>t.after).forEach(t=>t.after(i,this.state))}catch(t){}t(e)},t=>{try{this._actionSubscribers.filter(t=>t.error).forEach(e=>e.error(i,this.state,t))}catch(t){}e(t)})})}subscribe(t,e){return a(t,this._subscribers,e)}subscribeAction(t,e){return a("function"==typeof t?{before:t}:t,this._actionSubscribers,e)}watch(t,e,s){return this._watcherVM.$watch(()=>t(this.state,this.getters),e,s)}replaceState(t){this._withCommit(()=>{this._vm._data.$$state=t})}registerModule(t,e,s={}){"string"==typeof t&&(t=[t]),this._modules.register(t,e),h(this,this.state,t,this._modules.get(t),s.preserveState),l(this,this.state)}unregisterModule(t){"string"==typeof t&&(t=[t]),this._modules.unregister(t),this._withCommit(()=>{const e=d(this.state,t.slice(0,-1));r.delete(e,t[t.length-1])}),u(this)}hasModule(t){return"string"==typeof t&&(t=[t]),this._modules.isRegistered(t)}hotUpdate(t){this._modules.update(t),u(this,!0)}_withCommit(t){const e=this._committing;this._committing=!0,t(),this._committing=e}}function a(t,e,s){return e.indexOf(t)<0&&(s&&s.prepend?e.unshift(t):e.push(t)),()=>{const s=e.indexOf(t);s>-1&&e.splice(s,1)}}function u(t,e){t._actions=Object.create(null),t._mutations=Object.create(null),t._wrappedGetters=Object.create(null),t._modulesNamespaceMap=Object.create(null);const s=t.state;h(t,s,[],t._modules.root,!0),l(t,s,e)}function l(t,e,o){const i=t._vm;t.getters={},t._makeLocalGettersCache=Object.create(null);const n=t._wrappedGetters,c={};s(n,(e,s)=>{c[s]=function(t,e){return function(){return t(e)}}(e,t),Object.defineProperty(t.getters,s,{get:()=>t._vm[s],enumerable:!0})});const a=r.config.silent;r.config.silent=!0,t._vm=new r({data:{$$state:e},computed:c}),r.config.silent=a,t.strict&&function(t){t._vm.$watch((function(){return this._data.$$state}),()=>{},{deep:!0,sync:!0})}(t),i&&(o&&t._withCommit(()=>{i._data.$$state=null}),r.nextTick(()=>i.$destroy()))}function h(t,e,s,o,i){const n=!s.length,c=t._modules.getNamespace(s);if(o.namespaced&&(t._modulesNamespaceMap[c],t._modulesNamespaceMap[c]=o),!n&&!i){const i=d(e,s.slice(0,-1)),n=s[s.length-1];t._withCommit(()=>{r.set(i,n,o.state)})}const a=o.context=function(t,e,s){const o=""===e,i={dispatch:o?t.dispatch:(s,o,i)=>{const n=p(s,o,i),{payload:r,options:c}=n;let{type:a}=n;return c&&c.root||(a=e+a),t.dispatch(a,r)},commit:o?t.commit:(s,o,i)=>{const n=p(s,o,i),{payload:r,options:c}=n;let{type:a}=n;c&&c.root||(a=e+a),t.commit(a,r,c)}};return Object.defineProperties(i,{getters:{get:o?()=>t.getters:()=>function(t,e){if(!t._makeLocalGettersCache[e]){const s={},o=e.length;Object.keys(t.getters).forEach(i=>{if(i.slice(0,o)!==e)return;const n=i.slice(o);Object.defineProperty(s,n,{get:()=>t.getters[i],enumerable:!0})}),t._makeLocalGettersCache[e]=s}return t._makeLocalGettersCache[e]}(t,e)},state:{get:()=>d(t.state,s)}}),i}(t,c,s);o.forEachMutation((e,s)=>{!function(t,e,s,o){(t._mutations[e]||(t._mutations[e]=[])).push((function(e){s.call(t,o.state,e)}))}(t,c+s,e,a)}),o.forEachAction((e,s)=>{const o=e.root?s:c+s,i=e.handler||e;!function(t,e,s,o){(t._actions[e]||(t._actions[e]=[])).push((function(e){let i=s.call(t,{dispatch:o.dispatch,commit:o.commit,getters:o.getters,state:o.state,rootGetters:t.getters,rootState:t.state},e);var n;return(n=i)&&"function"==typeof n.then||(i=Promise.resolve(i)),t._devtoolHook?i.catch(e=>{throw t._devtoolHook.emit("vuex:error",e),e}):i}))}(t,o,i,a)}),o.forEachGetter((e,s)=>{!function(t,e,s,o){if(t._wrappedGetters[e])return;t._wrappedGetters[e]=function(t){return s(o.state,o.getters,t.state,t.getters)}}(t,c+s,e,a)}),o.forEachChild((o,n)=>{h(t,e,s.concat(n),o,i)})}function d(t,e){return e.reduce((t,e)=>t[e],t)}function p(t,e,s){return o(t)&&t.type&&(s=e,e=t,t=t.type),{type:t,payload:e,options:s}}function f(t){r&&t===r||(r=t,function(t){if(Number(t.version.split(".")[0])>=2)t.mixin({beforeCreate:e});else{const s=t.prototype._init;t.prototype._init=function(t={}){t.init=t.init?[e].concat(t.init):e,s.call(this,t)}}function e(){const t=this.$options;t.store?this.$store="function"==typeof t.store?t.store():t.store:t.parent&&t.parent.$store&&(this.$store=t.parent.$store)}}(r))}const m=v((t,e)=>{const s={};return w(e).forEach(({key:e,val:o})=>{s[e]=function(){let e=this.$store.state,s=this.$store.getters;if(t){const o=$(this.$store,"mapState",t);if(!o)return;e=o.context.state,s=o.context.getters}return"function"==typeof o?o.call(this,e,s):e[o]},s[e].vuex=!0}),s}),g=v((t,e)=>{const s={};return w(e).forEach(({key:e,val:o})=>{s[e]=function(...e){let s=this.$store.commit;if(t){const e=$(this.$store,"mapMutations",t);if(!e)return;s=e.context.commit}return"function"==typeof o?o.apply(this,[s].concat(e)):s.apply(this.$store,[o].concat(e))}}),s}),_=v((t,e)=>{const s={};return w(e).forEach(({key:e,val:o})=>{o=t+o,s[e]=function(){if(!t||$(this.$store,"mapGetters",t))return this.$store.getters[o]},s[e].vuex=!0}),s}),y=v((t,e)=>{const s={};return w(e).forEach(({key:e,val:o})=>{s[e]=function(...e){let s=this.$store.dispatch;if(t){const e=$(this.$store,"mapActions",t);if(!e)return;s=e.context.dispatch}return"function"==typeof o?o.apply(this,[s].concat(e)):s.apply(this.$store,[o].concat(e))}}),s}),b=t=>({mapState:m.bind(null,t),mapGetters:_.bind(null,t),mapMutations:g.bind(null,t),mapActions:y.bind(null,t)});function w(t){return function(t){return Array.isArray(t)||o(t)}(t)?Array.isArray(t)?t.map(t=>({key:t,val:t})):Object.keys(t).map(e=>({key:e,val:t[e]})):[]}function v(t){return(e,s)=>("string"!=typeof e?(s=e,e=""):"/"!==e.charAt(e.length-1)&&(e+="/"),t(e,s))}function $(t,e,s){return t._modulesNamespaceMap[s]}function M({collapsed:t=!0,filter:s=((t,e,s)=>!0),transformer:o=(t=>t),mutationTransformer:i=(t=>t),actionFilter:n=((t,e)=>!0),actionTransformer:r=(t=>t),logMutations:c=!0,logActions:a=!0,logger:u=console}={}){return l=>{let h=e(l.state);void 0!==u&&(c&&l.subscribe((n,r)=>{const c=e(r);if(s(n,h,c)){const e=O(),s=i(n),r=`mutation ${n.type}${e}`;C(u,r,t),u.log("%c prev state","color: #9E9E9E; font-weight: bold",o(h)),u.log("%c mutation","color: #03A9F4; font-weight: bold",s),u.log("%c next state","color: #4CAF50; font-weight: bold",o(c)),E(u)}h=c}),a&&l.subscribeAction((e,s)=>{if(n(e,s)){const s=O(),o=r(e),i=`action ${e.type}${s}`;C(u,i,t),u.log("%c action","color: #03A9F4; font-weight: bold",o),E(u)}}))}}function C(t,e,s){const o=s?t.groupCollapsed:t.group;try{o.call(t,e)}catch(s){t.log(e)}}function E(t){try{t.groupEnd()}catch(e){t.log("—— log end ——")}}function O(){const t=new Date;return` @ ${j(t.getHours(),2)}:${j(t.getMinutes(),2)}:${j(t.getSeconds(),2)}.${j(t.getMilliseconds(),3)}`}function j(t,e){return s="0",o=e-t.toString().length,new Array(o+1).join(s)+t;var s,o}var A={Store:c,install:f,version:"3.6.2",mapState:m,mapMutations:g,mapGetters:_,mapActions:y,createNamespacedHelpers:b,createLogger:M};export default A;export{c as Store,M as createLogger,b as createNamespacedHelpers,f as install,y as mapActions,_ as mapGetters,g as mapMutations,m as mapState};
diff --git a/dist/vuex.esm.js b/dist/vuex.esm.js
index 0a59ceb24..9466ff0ab 100644
--- a/dist/vuex.esm.js
+++ b/dist/vuex.esm.js
@@ -1,6 +1,6 @@
/*!
- * vuex v3.5.1
- * (c) 2020 Evan You
+ * vuex v3.6.2
+ * (c) 2021 Evan You
* @license MIT
*/
function applyMixin (Vue) {
@@ -286,7 +286,11 @@ ModuleCollection.prototype.isRegistered = function isRegistered (path) {
var parent = this.get(path.slice(0, -1));
var key = path[path.length - 1];
- return parent.hasChild(key)
+ if (parent) {
+ return parent.hasChild(key)
+ }
+
+ return false
};
function update (path, targetModule, newModule) {
@@ -961,7 +965,7 @@ var mapState = normalizeNamespace(function (namespace, states) {
/**
* Reduce the code which written in Vue.js for committing the mutation
* @param {String} [namespace] - Module's namespace
- * @param {Object|Array} mutations # Object's item can be a function which accept `commit` function as the first param, it can accept anthor params. You can commit mutation and do any other things in this function. specially, You need to pass anthor params from the mapped function.
+ * @param {Object|Array} mutations # Object's item can be a function which accept `commit` function as the first param, it can accept another params. You can commit mutation and do any other things in this function. specially, You need to pass anthor params from the mapped function.
* @return {Object}
*/
var mapMutations = normalizeNamespace(function (namespace, mutations) {
@@ -1226,7 +1230,7 @@ function pad (num, maxLength) {
var index = {
Store: Store,
install: install,
- version: '3.5.1',
+ version: '3.6.2',
mapState: mapState,
mapMutations: mapMutations,
mapGetters: mapGetters,
diff --git a/dist/vuex.global.js b/dist/vuex.global.js
deleted file mode 100644
index f43a3d7b4..000000000
--- a/dist/vuex.global.js
+++ /dev/null
@@ -1,1044 +0,0 @@
-/*!
- * vuex v4.0.0-beta.2
- * (c) 2020 Evan You
- * @license MIT
- */
-var Vuex = (function (vue) {
- 'use strict';
-
- var storeKey = 'store';
-
- function useStore (key) {
- if ( key === void 0 ) key = null;
-
- return vue.inject(key !== null ? key : storeKey)
- }
-
- var target = typeof window !== 'undefined'
- ? window
- : typeof global !== 'undefined'
- ? global
- : {};
- var devtoolHook = target.__VUE_DEVTOOLS_GLOBAL_HOOK__;
-
- function devtoolPlugin (store) {
- if (!devtoolHook) { return }
-
- store._devtoolHook = devtoolHook;
-
- devtoolHook.emit('vuex:init', store);
-
- devtoolHook.on('vuex:travel-to-state', function (targetState) {
- store.replaceState(targetState);
- });
-
- store.subscribe(function (mutation, state) {
- devtoolHook.emit('vuex:mutation', mutation, state);
- }, { prepend: true });
-
- store.subscribeAction(function (action, state) {
- devtoolHook.emit('vuex:action', action, state);
- }, { prepend: true });
- }
-
- /**
- * Get the first item that pass the test
- * by second argument function
- *
- * @param {Array} list
- * @param {Function} f
- * @return {*}
- */
-
- /**
- * forEach for object
- */
- function forEachValue (obj, fn) {
- Object.keys(obj).forEach(function (key) { return fn(obj[key], key); });
- }
-
- function isObject (obj) {
- return obj !== null && typeof obj === 'object'
- }
-
- function isPromise (val) {
- return val && typeof val.then === 'function'
- }
-
- function assert (condition, msg) {
- if (!condition) { throw new Error(("[vuex] " + msg)) }
- }
-
- function partial (fn, arg) {
- return function () {
- return fn(arg)
- }
- }
-
- // Base data struct for store's module, package with some attribute and method
- var Module = function Module (rawModule, runtime) {
- this.runtime = runtime;
- // Store some children item
- this._children = Object.create(null);
- // Store the origin module object which passed by programmer
- this._rawModule = rawModule;
- var rawState = rawModule.state;
-
- // Store the origin module's state
- this.state = (typeof rawState === 'function' ? rawState() : rawState) || {};
- };
-
- var prototypeAccessors = { namespaced: { configurable: true } };
-
- prototypeAccessors.namespaced.get = function () {
- return !!this._rawModule.namespaced
- };
-
- Module.prototype.addChild = function addChild (key, module) {
- this._children[key] = module;
- };
-
- Module.prototype.removeChild = function removeChild (key) {
- delete this._children[key];
- };
-
- Module.prototype.getChild = function getChild (key) {
- return this._children[key]
- };
-
- Module.prototype.hasChild = function hasChild (key) {
- return key in this._children
- };
-
- Module.prototype.update = function update (rawModule) {
- this._rawModule.namespaced = rawModule.namespaced;
- if (rawModule.actions) {
- this._rawModule.actions = rawModule.actions;
- }
- if (rawModule.mutations) {
- this._rawModule.mutations = rawModule.mutations;
- }
- if (rawModule.getters) {
- this._rawModule.getters = rawModule.getters;
- }
- };
-
- Module.prototype.forEachChild = function forEachChild (fn) {
- forEachValue(this._children, fn);
- };
-
- Module.prototype.forEachGetter = function forEachGetter (fn) {
- if (this._rawModule.getters) {
- forEachValue(this._rawModule.getters, fn);
- }
- };
-
- Module.prototype.forEachAction = function forEachAction (fn) {
- if (this._rawModule.actions) {
- forEachValue(this._rawModule.actions, fn);
- }
- };
-
- Module.prototype.forEachMutation = function forEachMutation (fn) {
- if (this._rawModule.mutations) {
- forEachValue(this._rawModule.mutations, fn);
- }
- };
-
- Object.defineProperties( Module.prototype, prototypeAccessors );
-
- var ModuleCollection = function ModuleCollection (rawRootModule) {
- // register root module (Vuex.Store options)
- this.register([], rawRootModule, false);
- };
-
- ModuleCollection.prototype.get = function get (path) {
- return path.reduce(function (module, key) {
- return module.getChild(key)
- }, this.root)
- };
-
- ModuleCollection.prototype.getNamespace = function getNamespace (path) {
- var module = this.root;
- return path.reduce(function (namespace, key) {
- module = module.getChild(key);
- return namespace + (module.namespaced ? key + '/' : '')
- }, '')
- };
-
- ModuleCollection.prototype.update = function update$1 (rawRootModule) {
- update([], this.root, rawRootModule);
- };
-
- ModuleCollection.prototype.register = function register (path, rawModule, runtime) {
- var this$1 = this;
- if ( runtime === void 0 ) runtime = true;
-
- {
- assertRawModule(path, rawModule);
- }
-
- var newModule = new Module(rawModule, runtime);
- if (path.length === 0) {
- this.root = newModule;
- } else {
- var parent = this.get(path.slice(0, -1));
- parent.addChild(path[path.length - 1], newModule);
- }
-
- // register nested modules
- if (rawModule.modules) {
- forEachValue(rawModule.modules, function (rawChildModule, key) {
- this$1.register(path.concat(key), rawChildModule, runtime);
- });
- }
- };
-
- ModuleCollection.prototype.unregister = function unregister (path) {
- var parent = this.get(path.slice(0, -1));
- var key = path[path.length - 1];
- if (!parent.getChild(key).runtime) { return }
-
- parent.removeChild(key);
- };
-
- ModuleCollection.prototype.isRegistered = function isRegistered (path) {
- var parent = this.get(path.slice(0, -1));
- var key = path[path.length - 1];
-
- return parent.hasChild(key)
- };
-
- function update (path, targetModule, newModule) {
- {
- assertRawModule(path, newModule);
- }
-
- // update target module
- targetModule.update(newModule);
-
- // update nested modules
- if (newModule.modules) {
- for (var key in newModule.modules) {
- if (!targetModule.getChild(key)) {
- {
- console.warn(
- "[vuex] trying to add a new module '" + key + "' on hot reloading, " +
- 'manual reload is needed'
- );
- }
- return
- }
- update(
- path.concat(key),
- targetModule.getChild(key),
- newModule.modules[key]
- );
- }
- }
- }
-
- var functionAssert = {
- assert: function (value) { return typeof value === 'function'; },
- expected: 'function'
- };
-
- var objectAssert = {
- assert: function (value) { return typeof value === 'function' ||
- (typeof value === 'object' && typeof value.handler === 'function'); },
- expected: 'function or object with "handler" function'
- };
-
- var assertTypes = {
- getters: functionAssert,
- mutations: functionAssert,
- actions: objectAssert
- };
-
- function assertRawModule (path, rawModule) {
- Object.keys(assertTypes).forEach(function (key) {
- if (!rawModule[key]) { return }
-
- var assertOptions = assertTypes[key];
-
- forEachValue(rawModule[key], function (value, type) {
- assert(
- assertOptions.assert(value),
- makeAssertionMessage(path, key, type, value, assertOptions.expected)
- );
- });
- });
- }
-
- function makeAssertionMessage (path, key, type, value, expected) {
- var buf = key + " should be " + expected + " but \"" + key + "." + type + "\"";
- if (path.length > 0) {
- buf += " in module \"" + (path.join('.')) + "\"";
- }
- buf += " is " + (JSON.stringify(value)) + ".";
- return buf
- }
-
- function createStore (options) {
- return new Store(options)
- }
-
- var Store = function Store (options) {
- var this$1 = this;
- if ( options === void 0 ) options = {};
-
- if (process.env.NODE_ENV !== 'production') {
- assert(typeof Promise !== 'undefined', "vuex requires a Promise polyfill in this browser.");
- assert(this instanceof Store, "store must be called with the new operator.");
- }
-
- var plugins = options.plugins; if ( plugins === void 0 ) plugins = [];
- var strict = options.strict; if ( strict === void 0 ) strict = false;
-
- // store internal state
- this._committing = false;
- this._actions = Object.create(null);
- this._actionSubscribers = [];
- this._mutations = Object.create(null);
- this._wrappedGetters = Object.create(null);
- this._modules = new ModuleCollection(options);
- this._modulesNamespaceMap = Object.create(null);
- this._subscribers = [];
- this._makeLocalGettersCache = Object.create(null);
-
- // bind commit and dispatch to self
- var store = this;
- var ref = this;
- var dispatch = ref.dispatch;
- var commit = ref.commit;
- this.dispatch = function boundDispatch (type, payload) {
- return dispatch.call(store, type, payload)
- };
- this.commit = function boundCommit (type, payload, options) {
- return commit.call(store, type, payload, options)
- };
-
- // strict mode
- this.strict = strict;
-
- var state = this._modules.root.state;
-
- // init root module.
- // this also recursively registers all sub-modules
- // and collects all module getters inside this._wrappedGetters
- installModule(this, state, [], this._modules.root);
-
- // initialize the store state, which is responsible for the reactivity
- // (also registers _wrappedGetters as computed properties)
- resetStoreState(this, state);
-
- // apply plugins
- plugins.forEach(function (plugin) { return plugin(this$1); });
-
- var useDevtools = options.devtools !== undefined ? options.devtools : /* Vue.config.devtools */ true;
- if (useDevtools) {
- devtoolPlugin(this);
- }
- };
-
- var prototypeAccessors$1 = { state: { configurable: true } };
-
- Store.prototype.install = function install (app, injectKey) {
- app.provide(injectKey || storeKey, this);
- app.config.globalProperties.$store = this;
- };
-
- prototypeAccessors$1.state.get = function () {
- return this._state.data
- };
-
- prototypeAccessors$1.state.set = function (v) {
- {
- assert(false, "use store.replaceState() to explicit replace store state.");
- }
- };
-
- Store.prototype.commit = function commit (_type, _payload, _options) {
- var this$1 = this;
-
- // check object-style commit
- var ref = unifyObjectStyle(_type, _payload, _options);
- var type = ref.type;
- var payload = ref.payload;
- var options = ref.options;
-
- var mutation = { type: type, payload: payload };
- var entry = this._mutations[type];
- if (!entry) {
- {
- console.error(("[vuex] unknown mutation type: " + type));
- }
- return
- }
- this._withCommit(function () {
- entry.forEach(function commitIterator (handler) {
- handler(payload);
- });
- });
-
- this._subscribers
- .slice() // shallow copy to prevent iterator invalidation if subscriber synchronously calls unsubscribe
- .forEach(function (sub) { return sub(mutation, this$1.state); });
-
- if (
-
- options && options.silent
- ) {
- console.warn(
- "[vuex] mutation type: " + type + ". Silent option has been removed. " +
- 'Use the filter functionality in the vue-devtools'
- );
- }
- };
-
- Store.prototype.dispatch = function dispatch (_type, _payload) {
- var this$1 = this;
-
- // check object-style dispatch
- var ref = unifyObjectStyle(_type, _payload);
- var type = ref.type;
- var payload = ref.payload;
-
- var action = { type: type, payload: payload };
- var entry = this._actions[type];
- if (!entry) {
- {
- console.error(("[vuex] unknown action type: " + type));
- }
- return
- }
-
- try {
- this._actionSubscribers
- .slice() // shallow copy to prevent iterator invalidation if subscriber synchronously calls unsubscribe
- .filter(function (sub) { return sub.before; })
- .forEach(function (sub) { return sub.before(action, this$1.state); });
- } catch (e) {
- {
- console.warn("[vuex] error in before action subscribers: ");
- console.error(e);
- }
- }
-
- var result = entry.length > 1
- ? Promise.all(entry.map(function (handler) { return handler(payload); }))
- : entry[0](payload);
-
- return new Promise(function (resolve, reject) {
- result.then(function (res) {
- try {
- this$1._actionSubscribers
- .filter(function (sub) { return sub.after; })
- .forEach(function (sub) { return sub.after(action, this$1.state); });
- } catch (e) {
- {
- console.warn("[vuex] error in after action subscribers: ");
- console.error(e);
- }
- }
- resolve(res);
- }, function (error) {
- try {
- this$1._actionSubscribers
- .filter(function (sub) { return sub.error; })
- .forEach(function (sub) { return sub.error(action, this$1.state, error); });
- } catch (e) {
- {
- console.warn("[vuex] error in error action subscribers: ");
- console.error(e);
- }
- }
- reject(error);
- });
- })
- };
-
- Store.prototype.subscribe = function subscribe (fn, options) {
- return genericSubscribe(fn, this._subscribers, options)
- };
-
- Store.prototype.subscribeAction = function subscribeAction (fn, options) {
- var subs = typeof fn === 'function' ? { before: fn } : fn;
- return genericSubscribe(subs, this._actionSubscribers, options)
- };
-
- Store.prototype.watch = function watch$1 (getter, cb, options) {
- var this$1 = this;
-
- {
- assert(typeof getter === 'function', "store.watch only accepts a function.");
- }
- return vue.watch(function () { return getter(this$1.state, this$1.getters); }, cb, Object.assign({}, options))
- };
-
- Store.prototype.replaceState = function replaceState (state) {
- var this$1 = this;
-
- this._withCommit(function () {
- this$1._state.data = state;
- });
- };
-
- Store.prototype.registerModule = function registerModule (path, rawModule, options) {
- if ( options === void 0 ) options = {};
-
- if (typeof path === 'string') { path = [path]; }
-
- {
- assert(Array.isArray(path), "module path must be a string or an Array.");
- assert(path.length > 0, 'cannot register the root module by using registerModule.');
- }
-
- this._modules.register(path, rawModule);
- installModule(this, this.state, path, this._modules.get(path), options.preserveState);
- // reset store to update getters...
- resetStoreState(this, this.state);
- };
-
- Store.prototype.unregisterModule = function unregisterModule (path) {
- var this$1 = this;
-
- if (typeof path === 'string') { path = [path]; }
-
- {
- assert(Array.isArray(path), "module path must be a string or an Array.");
- }
-
- this._modules.unregister(path);
- this._withCommit(function () {
- var parentState = getNestedState(this$1.state, path.slice(0, -1));
- delete parentState[path[path.length - 1]];
- });
- resetStore(this);
- };
-
- Store.prototype.hasModule = function hasModule (path) {
- if (typeof path === 'string') { path = [path]; }
-
- {
- assert(Array.isArray(path), "module path must be a string or an Array.");
- }
-
- return this._modules.isRegistered(path)
- };
-
- Store.prototype.hotUpdate = function hotUpdate (newOptions) {
- this._modules.update(newOptions);
- resetStore(this, true);
- };
-
- Store.prototype._withCommit = function _withCommit (fn) {
- var committing = this._committing;
- this._committing = true;
- fn();
- this._committing = committing;
- };
-
- Object.defineProperties( Store.prototype, prototypeAccessors$1 );
-
- function genericSubscribe (fn, subs, options) {
- if (subs.indexOf(fn) < 0) {
- options && options.prepend
- ? subs.unshift(fn)
- : subs.push(fn);
- }
- return function () {
- var i = subs.indexOf(fn);
- if (i > -1) {
- subs.splice(i, 1);
- }
- }
- }
-
- function resetStore (store, hot) {
- store._actions = Object.create(null);
- store._mutations = Object.create(null);
- store._wrappedGetters = Object.create(null);
- store._modulesNamespaceMap = Object.create(null);
- var state = store.state;
- // init all modules
- installModule(store, state, [], store._modules.root, true);
- // reset state
- resetStoreState(store, state, hot);
- }
-
- function resetStoreState (store, state, hot) {
- var oldState = store._state;
-
- // bind store public getters
- store.getters = {};
- // reset local getters cache
- store._makeLocalGettersCache = Object.create(null);
- var wrappedGetters = store._wrappedGetters;
- var computedObj = {};
- forEachValue(wrappedGetters, function (fn, key) {
- // use computed to leverage its lazy-caching mechanism
- // direct inline function use will lead to closure preserving oldVm.
- // using partial to return function with only arguments preserved in closure environment.
- computedObj[key] = partial(fn, store);
- Object.defineProperty(store.getters, key, {
- get: function () { return vue.computed(function () { return computedObj[key](); }).value; },
- enumerable: true // for local getters
- });
- });
-
- store._state = vue.reactive({
- data: state
- });
-
- // enable strict mode for new state
- if (store.strict) {
- enableStrictMode(store);
- }
-
- if (oldState) {
- if (hot) {
- // dispatch changes in all subscribed watchers
- // to force getter re-evaluation for hot reloading.
- store._withCommit(function () {
- oldState.data = null;
- });
- }
- }
- }
-
- function installModule (store, rootState, path, module, hot) {
- var isRoot = !path.length;
- var namespace = store._modules.getNamespace(path);
-
- // register in namespace map
- if (module.namespaced) {
- if (store._modulesNamespaceMap[namespace] && true) {
- console.error(("[vuex] duplicate namespace " + namespace + " for the namespaced module " + (path.join('/'))));
- }
- store._modulesNamespaceMap[namespace] = module;
- }
-
- // set state
- if (!isRoot && !hot) {
- var parentState = getNestedState(rootState, path.slice(0, -1));
- var moduleName = path[path.length - 1];
- store._withCommit(function () {
- {
- if (moduleName in parentState) {
- console.warn(
- ("[vuex] state field \"" + moduleName + "\" was overridden by a module with the same name at \"" + (path.join('.')) + "\"")
- );
- }
- }
- parentState[moduleName] = module.state;
- });
- }
-
- var local = module.context = makeLocalContext(store, namespace, path);
-
- module.forEachMutation(function (mutation, key) {
- var namespacedType = namespace + key;
- registerMutation(store, namespacedType, mutation, local);
- });
-
- module.forEachAction(function (action, key) {
- var type = action.root ? key : namespace + key;
- var handler = action.handler || action;
- registerAction(store, type, handler, local);
- });
-
- module.forEachGetter(function (getter, key) {
- var namespacedType = namespace + key;
- registerGetter(store, namespacedType, getter, local);
- });
-
- module.forEachChild(function (child, key) {
- installModule(store, rootState, path.concat(key), child, hot);
- });
- }
-
- /**
- * make localized dispatch, commit, getters and state
- * if there is no namespace, just use root ones
- */
- function makeLocalContext (store, namespace, path) {
- var noNamespace = namespace === '';
-
- var local = {
- dispatch: noNamespace ? store.dispatch : function (_type, _payload, _options) {
- var args = unifyObjectStyle(_type, _payload, _options);
- var payload = args.payload;
- var options = args.options;
- var type = args.type;
-
- if (!options || !options.root) {
- type = namespace + type;
- if ( !store._actions[type]) {
- console.error(("[vuex] unknown local action type: " + (args.type) + ", global type: " + type));
- return
- }
- }
-
- return store.dispatch(type, payload)
- },
-
- commit: noNamespace ? store.commit : function (_type, _payload, _options) {
- var args = unifyObjectStyle(_type, _payload, _options);
- var payload = args.payload;
- var options = args.options;
- var type = args.type;
-
- if (!options || !options.root) {
- type = namespace + type;
- if ( !store._mutations[type]) {
- console.error(("[vuex] unknown local mutation type: " + (args.type) + ", global type: " + type));
- return
- }
- }
-
- store.commit(type, payload, options);
- }
- };
-
- // getters and state object must be gotten lazily
- // because they will be changed by state update
- Object.defineProperties(local, {
- getters: {
- get: noNamespace
- ? function () { return store.getters; }
- : function () { return makeLocalGetters(store, namespace); }
- },
- state: {
- get: function () { return getNestedState(store.state, path); }
- }
- });
-
- return local
- }
-
- function makeLocalGetters (store, namespace) {
- if (!store._makeLocalGettersCache[namespace]) {
- var gettersProxy = {};
- var splitPos = namespace.length;
- Object.keys(store.getters).forEach(function (type) {
- // skip if the target getter is not match this namespace
- if (type.slice(0, splitPos) !== namespace) { return }
-
- // extract local getter type
- var localType = type.slice(splitPos);
-
- // Add a port to the getters proxy.
- // Define as getter property because
- // we do not want to evaluate the getters in this time.
- Object.defineProperty(gettersProxy, localType, {
- get: function () { return store.getters[type]; },
- enumerable: true
- });
- });
- store._makeLocalGettersCache[namespace] = gettersProxy;
- }
-
- return store._makeLocalGettersCache[namespace]
- }
-
- function registerMutation (store, type, handler, local) {
- var entry = store._mutations[type] || (store._mutations[type] = []);
- entry.push(function wrappedMutationHandler (payload) {
- handler.call(store, local.state, payload);
- });
- }
-
- function registerAction (store, type, handler, local) {
- var entry = store._actions[type] || (store._actions[type] = []);
- entry.push(function wrappedActionHandler (payload) {
- var res = handler.call(store, {
- dispatch: local.dispatch,
- commit: local.commit,
- getters: local.getters,
- state: local.state,
- rootGetters: store.getters,
- rootState: store.state
- }, payload);
- if (!isPromise(res)) {
- res = Promise.resolve(res);
- }
- if (store._devtoolHook) {
- return res.catch(function (err) {
- store._devtoolHook.emit('vuex:error', err);
- throw err
- })
- } else {
- return res
- }
- });
- }
-
- function registerGetter (store, type, rawGetter, local) {
- if (store._wrappedGetters[type]) {
- {
- console.error(("[vuex] duplicate getter key: " + type));
- }
- return
- }
- store._wrappedGetters[type] = function wrappedGetter (store) {
- return rawGetter(
- local.state, // local state
- local.getters, // local getters
- store.state, // root state
- store.getters // root getters
- )
- };
- }
-
- function enableStrictMode (store) {
- vue.watch(function () { return store._state.data; }, function () {
- {
- assert(store._committing, "do not mutate vuex store state outside mutation handlers.");
- }
- }, { deep: true, flush: 'sync' });
- }
-
- function getNestedState (state, path) {
- return path.reduce(function (state, key) { return state[key]; }, state)
- }
-
- function unifyObjectStyle (type, payload, options) {
- if (isObject(type) && type.type) {
- options = payload;
- payload = type;
- type = type.type;
- }
-
- {
- assert(typeof type === 'string', ("expects string as the type, but found " + (typeof type) + "."));
- }
-
- return { type: type, payload: payload, options: options }
- }
-
- /**
- * Reduce the code which written in Vue.js for getting the state.
- * @param {String} [namespace] - Module's namespace
- * @param {Object|Array} states # Object's item can be a function which accept state and getters for param, you can do something for state and getters in it.
- * @param {Object}
- */
- var mapState = normalizeNamespace(function (namespace, states) {
- var res = {};
- if ( !isValidMap(states)) {
- console.error('[vuex] mapState: mapper parameter must be either an Array or an Object');
- }
- normalizeMap(states).forEach(function (ref) {
- var key = ref.key;
- var val = ref.val;
-
- res[key] = function mappedState () {
- var state = this.$store.state;
- var getters = this.$store.getters;
- if (namespace) {
- var module = getModuleByNamespace(this.$store, 'mapState', namespace);
- if (!module) {
- return
- }
- state = module.context.state;
- getters = module.context.getters;
- }
- return typeof val === 'function'
- ? val.call(this, state, getters)
- : state[val]
- };
- // mark vuex getter for devtools
- res[key].vuex = true;
- });
- return res
- });
-
- /**
- * Reduce the code which written in Vue.js for committing the mutation
- * @param {String} [namespace] - Module's namespace
- * @param {Object|Array} mutations # Object's item can be a function which accept `commit` function as the first param, it can accept anthor params. You can commit mutation and do any other things in this function. specially, You need to pass anthor params from the mapped function.
- * @return {Object}
- */
- var mapMutations = normalizeNamespace(function (namespace, mutations) {
- var res = {};
- if ( !isValidMap(mutations)) {
- console.error('[vuex] mapMutations: mapper parameter must be either an Array or an Object');
- }
- normalizeMap(mutations).forEach(function (ref) {
- var key = ref.key;
- var val = ref.val;
-
- res[key] = function mappedMutation () {
- var args = [], len = arguments.length;
- while ( len-- ) args[ len ] = arguments[ len ];
-
- // Get the commit method from store
- var commit = this.$store.commit;
- if (namespace) {
- var module = getModuleByNamespace(this.$store, 'mapMutations', namespace);
- if (!module) {
- return
- }
- commit = module.context.commit;
- }
- return typeof val === 'function'
- ? val.apply(this, [commit].concat(args))
- : commit.apply(this.$store, [val].concat(args))
- };
- });
- return res
- });
-
- /**
- * Reduce the code which written in Vue.js for getting the getters
- * @param {String} [namespace] - Module's namespace
- * @param {Object|Array} getters
- * @return {Object}
- */
- var mapGetters = normalizeNamespace(function (namespace, getters) {
- var res = {};
- if ( !isValidMap(getters)) {
- console.error('[vuex] mapGetters: mapper parameter must be either an Array or an Object');
- }
- normalizeMap(getters).forEach(function (ref) {
- var key = ref.key;
- var val = ref.val;
-
- // The namespace has been mutated by normalizeNamespace
- val = namespace + val;
- res[key] = function mappedGetter () {
- if (namespace && !getModuleByNamespace(this.$store, 'mapGetters', namespace)) {
- return
- }
- if ( !(val in this.$store.getters)) {
- console.error(("[vuex] unknown getter: " + val));
- return
- }
- return this.$store.getters[val]
- };
- // mark vuex getter for devtools
- res[key].vuex = true;
- });
- return res
- });
-
- /**
- * Reduce the code which written in Vue.js for dispatch the action
- * @param {String} [namespace] - Module's namespace
- * @param {Object|Array} actions # Object's item can be a function which accept `dispatch` function as the first param, it can accept anthor params. You can dispatch action and do any other things in this function. specially, You need to pass anthor params from the mapped function.
- * @return {Object}
- */
- var mapActions = normalizeNamespace(function (namespace, actions) {
- var res = {};
- if ( !isValidMap(actions)) {
- console.error('[vuex] mapActions: mapper parameter must be either an Array or an Object');
- }
- normalizeMap(actions).forEach(function (ref) {
- var key = ref.key;
- var val = ref.val;
-
- res[key] = function mappedAction () {
- var args = [], len = arguments.length;
- while ( len-- ) args[ len ] = arguments[ len ];
-
- // get dispatch function from store
- var dispatch = this.$store.dispatch;
- if (namespace) {
- var module = getModuleByNamespace(this.$store, 'mapActions', namespace);
- if (!module) {
- return
- }
- dispatch = module.context.dispatch;
- }
- return typeof val === 'function'
- ? val.apply(this, [dispatch].concat(args))
- : dispatch.apply(this.$store, [val].concat(args))
- };
- });
- return res
- });
-
- /**
- * Rebinding namespace param for mapXXX function in special scoped, and return them by simple object
- * @param {String} namespace
- * @return {Object}
- */
- var createNamespacedHelpers = function (namespace) { return ({
- mapState: mapState.bind(null, namespace),
- mapGetters: mapGetters.bind(null, namespace),
- mapMutations: mapMutations.bind(null, namespace),
- mapActions: mapActions.bind(null, namespace)
- }); };
-
- /**
- * Normalize the map
- * normalizeMap([1, 2, 3]) => [ { key: 1, val: 1 }, { key: 2, val: 2 }, { key: 3, val: 3 } ]
- * normalizeMap({a: 1, b: 2, c: 3}) => [ { key: 'a', val: 1 }, { key: 'b', val: 2 }, { key: 'c', val: 3 } ]
- * @param {Array|Object} map
- * @return {Object}
- */
- function normalizeMap (map) {
- if (!isValidMap(map)) {
- return []
- }
- return Array.isArray(map)
- ? map.map(function (key) { return ({ key: key, val: key }); })
- : Object.keys(map).map(function (key) { return ({ key: key, val: map[key] }); })
- }
-
- /**
- * Validate whether given map is valid or not
- * @param {*} map
- * @return {Boolean}
- */
- function isValidMap (map) {
- return Array.isArray(map) || isObject(map)
- }
-
- /**
- * Return a function expect two param contains namespace and map. it will normalize the namespace and then the param's function will handle the new namespace and the map.
- * @param {Function} fn
- * @return {Function}
- */
- function normalizeNamespace (fn) {
- return function (namespace, map) {
- if (typeof namespace !== 'string') {
- map = namespace;
- namespace = '';
- } else if (namespace.charAt(namespace.length - 1) !== '/') {
- namespace += '/';
- }
- return fn(namespace, map)
- }
- }
-
- /**
- * Search a special module from store by namespace. if module not exist, print error message.
- * @param {Object} store
- * @param {String} helper
- * @param {String} namespace
- * @return {Object}
- */
- function getModuleByNamespace (store, helper, namespace) {
- var module = store._modulesNamespaceMap[namespace];
- if ( !module) {
- console.error(("[vuex] module namespace not found in " + helper + "(): " + namespace));
- }
- return module
- }
-
- var index_cjs = {
- version: '4.0.0-beta.2',
- createStore: createStore,
- Store: Store,
- useStore: useStore,
- mapState: mapState,
- mapMutations: mapMutations,
- mapGetters: mapGetters,
- mapActions: mapActions,
- createNamespacedHelpers: createNamespacedHelpers
- };
-
- return index_cjs;
-
-}(Vue));
diff --git a/dist/vuex.global.prod.js b/dist/vuex.global.prod.js
deleted file mode 100644
index 0a7fd9315..000000000
--- a/dist/vuex.global.prod.js
+++ /dev/null
@@ -1,6 +0,0 @@
-/*!
- * vuex v4.0.0-beta.2
- * (c) 2020 Evan You
- * @license MIT
- */
-var Vuex=function(t){"use strict";var e=("undefined"!=typeof window?window:"undefined"!=typeof global?global:{}).__VUE_DEVTOOLS_GLOBAL_HOOK__;function n(t,e){Object.keys(t).forEach((function(n){return e(t[n],n)}))}function r(t){return null!==t&&"object"==typeof t}function o(t,e){if(!t)throw new Error("[vuex] "+e)}var i=function(t,e){this.runtime=e,this._children=Object.create(null),this._rawModule=t;var n=t.state;this.state=("function"==typeof n?n():n)||{}},s={namespaced:{configurable:!0}};s.namespaced.get=function(){return!!this._rawModule.namespaced},i.prototype.addChild=function(t,e){this._children[t]=e},i.prototype.removeChild=function(t){delete this._children[t]},i.prototype.getChild=function(t){return this._children[t]},i.prototype.hasChild=function(t){return t in this._children},i.prototype.update=function(t){this._rawModule.namespaced=t.namespaced,t.actions&&(this._rawModule.actions=t.actions),t.mutations&&(this._rawModule.mutations=t.mutations),t.getters&&(this._rawModule.getters=t.getters)},i.prototype.forEachChild=function(t){n(this._children,t)},i.prototype.forEachGetter=function(t){this._rawModule.getters&&n(this._rawModule.getters,t)},i.prototype.forEachAction=function(t){this._rawModule.actions&&n(this._rawModule.actions,t)},i.prototype.forEachMutation=function(t){this._rawModule.mutations&&n(this._rawModule.mutations,t)},Object.defineProperties(i.prototype,s);var a=function(t){this.register([],t,!1)};a.prototype.get=function(t){return t.reduce((function(t,e){return t.getChild(e)}),this.root)},a.prototype.getNamespace=function(t){var e=this.root;return t.reduce((function(t,n){return t+((e=e.getChild(n)).namespaced?n+"/":"")}),"")},a.prototype.update=function(t){!function t(e,n,r){if(n.update(r),r.modules)for(var o in r.modules){if(!n.getChild(o))return;t(e.concat(o),n.getChild(o),r.modules[o])}}([],this.root,t)},a.prototype.register=function(t,e,r){var o=this;void 0===r&&(r=!0);var s=new i(e,r);0===t.length?this.root=s:this.get(t.slice(0,-1)).addChild(t[t.length-1],s);e.modules&&n(e.modules,(function(e,n){o.register(t.concat(n),e,r)}))},a.prototype.unregister=function(t){var e=this.get(t.slice(0,-1)),n=t[t.length-1];e.getChild(n).runtime&&e.removeChild(n)},a.prototype.isRegistered=function(t){var e=this.get(t.slice(0,-1)),n=t[t.length-1];return e.hasChild(n)};var c=function t(n){var r=this;void 0===n&&(n={}),"production"!==process.env.NODE_ENV&&(o("undefined"!=typeof Promise,"vuex requires a Promise polyfill in this browser."),o(this instanceof t,"store must be called with the new operator."));var i=n.plugins;void 0===i&&(i=[]);var s=n.strict;void 0===s&&(s=!1),this._committing=!1,this._actions=Object.create(null),this._actionSubscribers=[],this._mutations=Object.create(null),this._wrappedGetters=Object.create(null),this._modules=new a(n),this._modulesNamespaceMap=Object.create(null),this._subscribers=[],this._makeLocalGettersCache=Object.create(null);var c=this,u=this.dispatch,f=this.commit;this.dispatch=function(t,e){return u.call(c,t,e)},this.commit=function(t,e,n){return f.call(c,t,e,n)},this.strict=s;var h=this._modules.root.state;l(this,h,[],this._modules.root),p(this,h),i.forEach((function(t){return t(r)})),(void 0===n.devtools||n.devtools)&&function(t){e&&(t._devtoolHook=e,e.emit("vuex:init",t),e.on("vuex:travel-to-state",(function(e){t.replaceState(e)})),t.subscribe((function(t,n){e.emit("vuex:mutation",t,n)}),{prepend:!0}),t.subscribeAction((function(t,n){e.emit("vuex:action",t,n)}),{prepend:!0}))}(this)},u={state:{configurable:!0}};function f(t,e,n){return e.indexOf(t)<0&&(n&&n.prepend?e.unshift(t):e.push(t)),function(){var n=e.indexOf(t);n>-1&&e.splice(n,1)}}function h(t,e){t._actions=Object.create(null),t._mutations=Object.create(null),t._wrappedGetters=Object.create(null),t._modulesNamespaceMap=Object.create(null);var n=t.state;l(t,n,[],t._modules.root,!0),p(t,n,e)}function p(e,r,o){var i=e._state;e.getters={},e._makeLocalGettersCache=Object.create(null);var s=e._wrappedGetters,a={};n(s,(function(n,r){a[r]=function(t,e){return function(){return t(e)}}(n,e),Object.defineProperty(e.getters,r,{get:function(){return t.computed((function(){return a[r]()})).value},enumerable:!0})})),e._state=t.reactive({data:r}),e.strict&&function(e){t.watch((function(){return e._state.data}),(function(){}),{deep:!0,flush:"sync"})}(e),i&&o&&e._withCommit((function(){i.data=null}))}function l(t,e,n,r,o){var i=!n.length,s=t._modules.getNamespace(n);if(r.namespaced&&(t._modulesNamespaceMap[s],t._modulesNamespaceMap[s]=r),!i&&!o){var a=d(e,n.slice(0,-1)),c=n[n.length-1];t._withCommit((function(){a[c]=r.state}))}var u=r.context=function(t,e,n){var r=""===e,o={dispatch:r?t.dispatch:function(n,r,o){var i=m(n,r,o),s=i.payload,a=i.options,c=i.type;return a&&a.root||(c=e+c),t.dispatch(c,s)},commit:r?t.commit:function(n,r,o){var i=m(n,r,o),s=i.payload,a=i.options,c=i.type;a&&a.root||(c=e+c),t.commit(c,s,a)}};return Object.defineProperties(o,{getters:{get:r?function(){return t.getters}:function(){return function(t,e){if(!t._makeLocalGettersCache[e]){var n={},r=e.length;Object.keys(t.getters).forEach((function(o){if(o.slice(0,r)===e){var i=o.slice(r);Object.defineProperty(n,i,{get:function(){return t.getters[o]},enumerable:!0})}})),t._makeLocalGettersCache[e]=n}return t._makeLocalGettersCache[e]}(t,e)}},state:{get:function(){return d(t.state,n)}}}),o}(t,s,n);r.forEachMutation((function(e,n){!function(t,e,n,r){(t._mutations[e]||(t._mutations[e]=[])).push((function(e){n.call(t,r.state,e)}))}(t,s+n,e,u)})),r.forEachAction((function(e,n){var r=e.root?n:s+n,o=e.handler||e;!function(t,e,n,r){(t._actions[e]||(t._actions[e]=[])).push((function(e){var o,i=n.call(t,{dispatch:r.dispatch,commit:r.commit,getters:r.getters,state:r.state,rootGetters:t.getters,rootState:t.state},e);return(o=i)&&"function"==typeof o.then||(i=Promise.resolve(i)),t._devtoolHook?i.catch((function(e){throw t._devtoolHook.emit("vuex:error",e),e})):i}))}(t,r,o,u)})),r.forEachGetter((function(e,n){!function(t,e,n,r){if(t._wrappedGetters[e])return;t._wrappedGetters[e]=function(t){return n(r.state,r.getters,t.state,t.getters)}}(t,s+n,e,u)})),r.forEachChild((function(r,i){l(t,e,n.concat(i),r,o)}))}function d(t,e){return e.reduce((function(t,e){return t[e]}),t)}function m(t,e,n){return r(t)&&t.type&&(n=e,e=t,t=t.type),{type:t,payload:e,options:n}}c.prototype.install=function(t,e){t.provide(e||"store",this),t.config.globalProperties.$store=this},u.state.get=function(){return this._state.data},u.state.set=function(t){},c.prototype.commit=function(t,e,n){var r=this,o=m(t,e,n),i=o.type,s=o.payload,a={type:i,payload:s},c=this._mutations[i];c&&(this._withCommit((function(){c.forEach((function(t){t(s)}))})),this._subscribers.slice().forEach((function(t){return t(a,r.state)})))},c.prototype.dispatch=function(t,e){var n=this,r=m(t,e),o=r.type,i=r.payload,s={type:o,payload:i},a=this._actions[o];if(a){try{this._actionSubscribers.slice().filter((function(t){return t.before})).forEach((function(t){return t.before(s,n.state)}))}catch(t){}var c=a.length>1?Promise.all(a.map((function(t){return t(i)}))):a[0](i);return new Promise((function(t,e){c.then((function(e){try{n._actionSubscribers.filter((function(t){return t.after})).forEach((function(t){return t.after(s,n.state)}))}catch(t){}t(e)}),(function(t){try{n._actionSubscribers.filter((function(t){return t.error})).forEach((function(e){return e.error(s,n.state,t)}))}catch(t){}e(t)}))}))}},c.prototype.subscribe=function(t,e){return f(t,this._subscribers,e)},c.prototype.subscribeAction=function(t,e){return f("function"==typeof t?{before:t}:t,this._actionSubscribers,e)},c.prototype.watch=function(e,n,r){var o=this;return t.watch((function(){return e(o.state,o.getters)}),n,Object.assign({},r))},c.prototype.replaceState=function(t){var e=this;this._withCommit((function(){e._state.data=t}))},c.prototype.registerModule=function(t,e,n){void 0===n&&(n={}),"string"==typeof t&&(t=[t]),this._modules.register(t,e),l(this,this.state,t,this._modules.get(t),n.preserveState),p(this,this.state)},c.prototype.unregisterModule=function(t){var e=this;"string"==typeof t&&(t=[t]),this._modules.unregister(t),this._withCommit((function(){delete d(e.state,t.slice(0,-1))[t[t.length-1]]})),h(this)},c.prototype.hasModule=function(t){return"string"==typeof t&&(t=[t]),this._modules.isRegistered(t)},c.prototype.hotUpdate=function(t){this._modules.update(t),h(this,!0)},c.prototype._withCommit=function(t){var e=this._committing;this._committing=!0,t(),this._committing=e},Object.defineProperties(c.prototype,u);var v=w((function(t,e){var n={};return b(e).forEach((function(e){var r=e.key,o=e.val;n[r]=function(){var e=this.$store.state,n=this.$store.getters;if(t){var r=O(this.$store,"mapState",t);if(!r)return;e=r.context.state,n=r.context.getters}return"function"==typeof o?o.call(this,e,n):e[o]},n[r].vuex=!0})),n})),_=w((function(t,e){var n={};return b(e).forEach((function(e){var r=e.key,o=e.val;n[r]=function(){for(var e=[],n=arguments.length;n--;)e[n]=arguments[n];var r=this.$store.commit;if(t){var i=O(this.$store,"mapMutations",t);if(!i)return;r=i.context.commit}return"function"==typeof o?o.apply(this,[r].concat(e)):r.apply(this.$store,[o].concat(e))}})),n})),y=w((function(t,e){var n={};return b(e).forEach((function(e){var r=e.key,o=e.val;o=t+o,n[r]=function(){if(!t||O(this.$store,"mapGetters",t))return this.$store.getters[o]},n[r].vuex=!0})),n})),g=w((function(t,e){var n={};return b(e).forEach((function(e){var r=e.key,o=e.val;n[r]=function(){for(var e=[],n=arguments.length;n--;)e[n]=arguments[n];var r=this.$store.dispatch;if(t){var i=O(this.$store,"mapActions",t);if(!i)return;r=i.context.dispatch}return"function"==typeof o?o.apply(this,[r].concat(e)):r.apply(this.$store,[o].concat(e))}})),n}));function b(t){return function(t){return Array.isArray(t)||r(t)}(t)?Array.isArray(t)?t.map((function(t){return{key:t,val:t}})):Object.keys(t).map((function(e){return{key:e,val:t[e]}})):[]}function w(t){return function(e,n){return"string"!=typeof e?(n=e,e=""):"/"!==e.charAt(e.length-1)&&(e+="/"),t(e,n)}}function O(t,e,n){return t._modulesNamespaceMap[n]}return{version:"4.0.0-beta.2",createStore:function(t){return new c(t)},Store:c,useStore:function(e){return void 0===e&&(e=null),t.inject(null!==e?e:"store")},mapState:v,mapMutations:_,mapGetters:y,mapActions:g,createNamespacedHelpers:function(t){return{mapState:v.bind(null,t),mapGetters:y.bind(null,t),mapMutations:_.bind(null,t),mapActions:g.bind(null,t)}}}}(Vue);
diff --git a/dist/vuex.js b/dist/vuex.js
index 98f199439..291300427 100644
--- a/dist/vuex.js
+++ b/dist/vuex.js
@@ -1,12 +1,12 @@
/*!
- * vuex v3.5.1
- * (c) 2020 Evan You
+ * vuex v3.6.2
+ * (c) 2021 Evan You
* @license MIT
*/
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
typeof define === 'function' && define.amd ? define(factory) :
- (global = global || self, global.Vuex = factory());
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Vuex = factory());
}(this, (function () { 'use strict';
function applyMixin (Vue) {
@@ -292,7 +292,11 @@
var parent = this.get(path.slice(0, -1));
var key = path[path.length - 1];
- return parent.hasChild(key)
+ if (parent) {
+ return parent.hasChild(key)
+ }
+
+ return false
};
function update (path, targetModule, newModule) {
@@ -967,7 +971,7 @@
/**
* Reduce the code which written in Vue.js for committing the mutation
* @param {String} [namespace] - Module's namespace
- * @param {Object|Array} mutations # Object's item can be a function which accept `commit` function as the first param, it can accept anthor params. You can commit mutation and do any other things in this function. specially, You need to pass anthor params from the mapped function.
+ * @param {Object|Array} mutations # Object's item can be a function which accept `commit` function as the first param, it can accept another params. You can commit mutation and do any other things in this function. specially, You need to pass anthor params from the mapped function.
* @return {Object}
*/
var mapMutations = normalizeNamespace(function (namespace, mutations) {
@@ -1232,7 +1236,7 @@
var index_cjs = {
Store: Store,
install: install,
- version: '3.5.1',
+ version: '3.6.2',
mapState: mapState,
mapMutations: mapMutations,
mapGetters: mapGetters,
diff --git a/dist/vuex.min.js b/dist/vuex.min.js
index 57c88636c..3871c68cd 100644
--- a/dist/vuex.min.js
+++ b/dist/vuex.min.js
@@ -1,6 +1,6 @@
/*!
- * vuex v3.5.1
- * (c) 2020 Evan You
+ * vuex v3.6.2
+ * (c) 2021 Evan You
* @license MIT
*/
-!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t=t||self).Vuex=e()}(this,(function(){"use strict";var t=("undefined"!=typeof window?window:"undefined"!=typeof global?global:{}).__VUE_DEVTOOLS_GLOBAL_HOOK__;function e(t,n){if(void 0===n&&(n=[]),null===t||"object"!=typeof t)return t;var o,r=(o=function(e){return e.original===t},n.filter(o)[0]);if(r)return r.copy;var i=Array.isArray(t)?[]:{};return n.push({original:t,copy:i}),Object.keys(t).forEach((function(o){i[o]=e(t[o],n)})),i}function n(t,e){Object.keys(t).forEach((function(n){return e(t[n],n)}))}function o(t){return null!==t&&"object"==typeof t}var r=function(t,e){this.runtime=e,this._children=Object.create(null),this._rawModule=t;var n=t.state;this.state=("function"==typeof n?n():n)||{}},i={namespaced:{configurable:!0}};i.namespaced.get=function(){return!!this._rawModule.namespaced},r.prototype.addChild=function(t,e){this._children[t]=e},r.prototype.removeChild=function(t){delete this._children[t]},r.prototype.getChild=function(t){return this._children[t]},r.prototype.hasChild=function(t){return t in this._children},r.prototype.update=function(t){this._rawModule.namespaced=t.namespaced,t.actions&&(this._rawModule.actions=t.actions),t.mutations&&(this._rawModule.mutations=t.mutations),t.getters&&(this._rawModule.getters=t.getters)},r.prototype.forEachChild=function(t){n(this._children,t)},r.prototype.forEachGetter=function(t){this._rawModule.getters&&n(this._rawModule.getters,t)},r.prototype.forEachAction=function(t){this._rawModule.actions&&n(this._rawModule.actions,t)},r.prototype.forEachMutation=function(t){this._rawModule.mutations&&n(this._rawModule.mutations,t)},Object.defineProperties(r.prototype,i);var c,a=function(t){this.register([],t,!1)};a.prototype.get=function(t){return t.reduce((function(t,e){return t.getChild(e)}),this.root)},a.prototype.getNamespace=function(t){var e=this.root;return t.reduce((function(t,n){return t+((e=e.getChild(n)).namespaced?n+"/":"")}),"")},a.prototype.update=function(t){!function t(e,n,o){if(n.update(o),o.modules)for(var r in o.modules){if(!n.getChild(r))return;t(e.concat(r),n.getChild(r),o.modules[r])}}([],this.root,t)},a.prototype.register=function(t,e,o){var i=this;void 0===o&&(o=!0);var c=new r(e,o);0===t.length?this.root=c:this.get(t.slice(0,-1)).addChild(t[t.length-1],c);e.modules&&n(e.modules,(function(e,n){i.register(t.concat(n),e,o)}))},a.prototype.unregister=function(t){var e=this.get(t.slice(0,-1)),n=t[t.length-1],o=e.getChild(n);o&&o.runtime&&e.removeChild(n)},a.prototype.isRegistered=function(t){var e=this.get(t.slice(0,-1)),n=t[t.length-1];return e.hasChild(n)};var s=function(e){var n=this;void 0===e&&(e={}),!c&&"undefined"!=typeof window&&window.Vue&&v(window.Vue);var o=e.plugins;void 0===o&&(o=[]);var r=e.strict;void 0===r&&(r=!1),this._committing=!1,this._actions=Object.create(null),this._actionSubscribers=[],this._mutations=Object.create(null),this._wrappedGetters=Object.create(null),this._modules=new a(e),this._modulesNamespaceMap=Object.create(null),this._subscribers=[],this._watcherVM=new c,this._makeLocalGettersCache=Object.create(null);var i=this,s=this.dispatch,u=this.commit;this.dispatch=function(t,e){return s.call(i,t,e)},this.commit=function(t,e,n){return u.call(i,t,e,n)},this.strict=r;var f=this._modules.root.state;h(this,f,[],this._modules.root),p(this,f),o.forEach((function(t){return t(n)})),(void 0!==e.devtools?e.devtools:c.config.devtools)&&function(e){t&&(e._devtoolHook=t,t.emit("vuex:init",e),t.on("vuex:travel-to-state",(function(t){e.replaceState(t)})),e.subscribe((function(e,n){t.emit("vuex:mutation",e,n)}),{prepend:!0}),e.subscribeAction((function(e,n){t.emit("vuex:action",e,n)}),{prepend:!0}))}(this)},u={state:{configurable:!0}};function f(t,e,n){return e.indexOf(t)<0&&(n&&n.prepend?e.unshift(t):e.push(t)),function(){var n=e.indexOf(t);n>-1&&e.splice(n,1)}}function l(t,e){t._actions=Object.create(null),t._mutations=Object.create(null),t._wrappedGetters=Object.create(null),t._modulesNamespaceMap=Object.create(null);var n=t.state;h(t,n,[],t._modules.root,!0),p(t,n,e)}function p(t,e,o){var r=t._vm;t.getters={},t._makeLocalGettersCache=Object.create(null);var i=t._wrappedGetters,a={};n(i,(function(e,n){a[n]=function(t,e){return function(){return t(e)}}(e,t),Object.defineProperty(t.getters,n,{get:function(){return t._vm[n]},enumerable:!0})}));var s=c.config.silent;c.config.silent=!0,t._vm=new c({data:{$$state:e},computed:a}),c.config.silent=s,t.strict&&function(t){t._vm.$watch((function(){return this._data.$$state}),(function(){}),{deep:!0,sync:!0})}(t),r&&(o&&t._withCommit((function(){r._data.$$state=null})),c.nextTick((function(){return r.$destroy()})))}function h(t,e,n,o,r){var i=!n.length,a=t._modules.getNamespace(n);if(o.namespaced&&(t._modulesNamespaceMap[a],t._modulesNamespaceMap[a]=o),!i&&!r){var s=d(e,n.slice(0,-1)),u=n[n.length-1];t._withCommit((function(){c.set(s,u,o.state)}))}var f=o.context=function(t,e,n){var o=""===e,r={dispatch:o?t.dispatch:function(n,o,r){var i=m(n,o,r),c=i.payload,a=i.options,s=i.type;return a&&a.root||(s=e+s),t.dispatch(s,c)},commit:o?t.commit:function(n,o,r){var i=m(n,o,r),c=i.payload,a=i.options,s=i.type;a&&a.root||(s=e+s),t.commit(s,c,a)}};return Object.defineProperties(r,{getters:{get:o?function(){return t.getters}:function(){return function(t,e){if(!t._makeLocalGettersCache[e]){var n={},o=e.length;Object.keys(t.getters).forEach((function(r){if(r.slice(0,o)===e){var i=r.slice(o);Object.defineProperty(n,i,{get:function(){return t.getters[r]},enumerable:!0})}})),t._makeLocalGettersCache[e]=n}return t._makeLocalGettersCache[e]}(t,e)}},state:{get:function(){return d(t.state,n)}}}),r}(t,a,n);o.forEachMutation((function(e,n){!function(t,e,n,o){(t._mutations[e]||(t._mutations[e]=[])).push((function(e){n.call(t,o.state,e)}))}(t,a+n,e,f)})),o.forEachAction((function(e,n){var o=e.root?n:a+n,r=e.handler||e;!function(t,e,n,o){(t._actions[e]||(t._actions[e]=[])).push((function(e){var r,i=n.call(t,{dispatch:o.dispatch,commit:o.commit,getters:o.getters,state:o.state,rootGetters:t.getters,rootState:t.state},e);return(r=i)&&"function"==typeof r.then||(i=Promise.resolve(i)),t._devtoolHook?i.catch((function(e){throw t._devtoolHook.emit("vuex:error",e),e})):i}))}(t,o,r,f)})),o.forEachGetter((function(e,n){!function(t,e,n,o){if(t._wrappedGetters[e])return;t._wrappedGetters[e]=function(t){return n(o.state,o.getters,t.state,t.getters)}}(t,a+n,e,f)})),o.forEachChild((function(o,i){h(t,e,n.concat(i),o,r)}))}function d(t,e){return e.reduce((function(t,e){return t[e]}),t)}function m(t,e,n){return o(t)&&t.type&&(n=e,e=t,t=t.type),{type:t,payload:e,options:n}}function v(t){c&&t===c||function(t){if(Number(t.version.split(".")[0])>=2)t.mixin({beforeCreate:n});else{var e=t.prototype._init;t.prototype._init=function(t){void 0===t&&(t={}),t.init=t.init?[n].concat(t.init):n,e.call(this,t)}}function n(){var t=this.$options;t.store?this.$store="function"==typeof t.store?t.store():t.store:t.parent&&t.parent.$store&&(this.$store=t.parent.$store)}}(c=t)}u.state.get=function(){return this._vm._data.$$state},u.state.set=function(t){},s.prototype.commit=function(t,e,n){var o=this,r=m(t,e,n),i=r.type,c=r.payload,a={type:i,payload:c},s=this._mutations[i];s&&(this._withCommit((function(){s.forEach((function(t){t(c)}))})),this._subscribers.slice().forEach((function(t){return t(a,o.state)})))},s.prototype.dispatch=function(t,e){var n=this,o=m(t,e),r=o.type,i=o.payload,c={type:r,payload:i},a=this._actions[r];if(a){try{this._actionSubscribers.slice().filter((function(t){return t.before})).forEach((function(t){return t.before(c,n.state)}))}catch(t){}var s=a.length>1?Promise.all(a.map((function(t){return t(i)}))):a[0](i);return new Promise((function(t,e){s.then((function(e){try{n._actionSubscribers.filter((function(t){return t.after})).forEach((function(t){return t.after(c,n.state)}))}catch(t){}t(e)}),(function(t){try{n._actionSubscribers.filter((function(t){return t.error})).forEach((function(e){return e.error(c,n.state,t)}))}catch(t){}e(t)}))}))}},s.prototype.subscribe=function(t,e){return f(t,this._subscribers,e)},s.prototype.subscribeAction=function(t,e){return f("function"==typeof t?{before:t}:t,this._actionSubscribers,e)},s.prototype.watch=function(t,e,n){var o=this;return this._watcherVM.$watch((function(){return t(o.state,o.getters)}),e,n)},s.prototype.replaceState=function(t){var e=this;this._withCommit((function(){e._vm._data.$$state=t}))},s.prototype.registerModule=function(t,e,n){void 0===n&&(n={}),"string"==typeof t&&(t=[t]),this._modules.register(t,e),h(this,this.state,t,this._modules.get(t),n.preserveState),p(this,this.state)},s.prototype.unregisterModule=function(t){var e=this;"string"==typeof t&&(t=[t]),this._modules.unregister(t),this._withCommit((function(){var n=d(e.state,t.slice(0,-1));c.delete(n,t[t.length-1])})),l(this)},s.prototype.hasModule=function(t){return"string"==typeof t&&(t=[t]),this._modules.isRegistered(t)},s.prototype.hotUpdate=function(t){this._modules.update(t),l(this,!0)},s.prototype._withCommit=function(t){var e=this._committing;this._committing=!0,t(),this._committing=e},Object.defineProperties(s.prototype,u);var g=M((function(t,e){var n={};return w(e).forEach((function(e){var o=e.key,r=e.val;n[o]=function(){var e=this.$store.state,n=this.$store.getters;if(t){var o=$(this.$store,"mapState",t);if(!o)return;e=o.context.state,n=o.context.getters}return"function"==typeof r?r.call(this,e,n):e[r]},n[o].vuex=!0})),n})),y=M((function(t,e){var n={};return w(e).forEach((function(e){var o=e.key,r=e.val;n[o]=function(){for(var e=[],n=arguments.length;n--;)e[n]=arguments[n];var o=this.$store.commit;if(t){var i=$(this.$store,"mapMutations",t);if(!i)return;o=i.context.commit}return"function"==typeof r?r.apply(this,[o].concat(e)):o.apply(this.$store,[r].concat(e))}})),n})),_=M((function(t,e){var n={};return w(e).forEach((function(e){var o=e.key,r=e.val;r=t+r,n[o]=function(){if(!t||$(this.$store,"mapGetters",t))return this.$store.getters[r]},n[o].vuex=!0})),n})),b=M((function(t,e){var n={};return w(e).forEach((function(e){var o=e.key,r=e.val;n[o]=function(){for(var e=[],n=arguments.length;n--;)e[n]=arguments[n];var o=this.$store.dispatch;if(t){var i=$(this.$store,"mapActions",t);if(!i)return;o=i.context.dispatch}return"function"==typeof r?r.apply(this,[o].concat(e)):o.apply(this.$store,[r].concat(e))}})),n}));function w(t){return function(t){return Array.isArray(t)||o(t)}(t)?Array.isArray(t)?t.map((function(t){return{key:t,val:t}})):Object.keys(t).map((function(e){return{key:e,val:t[e]}})):[]}function M(t){return function(e,n){return"string"!=typeof e?(n=e,e=""):"/"!==e.charAt(e.length-1)&&(e+="/"),t(e,n)}}function $(t,e,n){return t._modulesNamespaceMap[n]}function C(t,e,n){var o=n?t.groupCollapsed:t.group;try{o.call(t,e)}catch(n){t.log(e)}}function E(t){try{t.groupEnd()}catch(e){t.log("—— log end ——")}}function O(){var t=new Date;return" @ "+j(t.getHours(),2)+":"+j(t.getMinutes(),2)+":"+j(t.getSeconds(),2)+"."+j(t.getMilliseconds(),3)}function j(t,e){return n="0",o=e-t.toString().length,new Array(o+1).join(n)+t;var n,o}return{Store:s,install:v,version:"3.5.1",mapState:g,mapMutations:y,mapGetters:_,mapActions:b,createNamespacedHelpers:function(t){return{mapState:g.bind(null,t),mapGetters:_.bind(null,t),mapMutations:y.bind(null,t),mapActions:b.bind(null,t)}},createLogger:function(t){void 0===t&&(t={});var n=t.collapsed;void 0===n&&(n=!0);var o=t.filter;void 0===o&&(o=function(t,e,n){return!0});var r=t.transformer;void 0===r&&(r=function(t){return t});var i=t.mutationTransformer;void 0===i&&(i=function(t){return t});var c=t.actionFilter;void 0===c&&(c=function(t,e){return!0});var a=t.actionTransformer;void 0===a&&(a=function(t){return t});var s=t.logMutations;void 0===s&&(s=!0);var u=t.logActions;void 0===u&&(u=!0);var f=t.logger;return void 0===f&&(f=console),function(t){var l=e(t.state);void 0!==f&&(s&&t.subscribe((function(t,c){var a=e(c);if(o(t,l,a)){var s=O(),u=i(t),p="mutation "+t.type+s;C(f,p,n),f.log("%c prev state","color: #9E9E9E; font-weight: bold",r(l)),f.log("%c mutation","color: #03A9F4; font-weight: bold",u),f.log("%c next state","color: #4CAF50; font-weight: bold",r(a)),E(f)}l=a})),u&&t.subscribeAction((function(t,e){if(c(t,e)){var o=O(),r=a(t),i="action "+t.type+o;C(f,i,n),f.log("%c action","color: #03A9F4; font-weight: bold",r),E(f)}})))}}}}));
+!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).Vuex=e()}(this,(function(){"use strict";var t=("undefined"!=typeof window?window:"undefined"!=typeof global?global:{}).__VUE_DEVTOOLS_GLOBAL_HOOK__;function e(t,n){if(void 0===n&&(n=[]),null===t||"object"!=typeof t)return t;var o,r=(o=function(e){return e.original===t},n.filter(o)[0]);if(r)return r.copy;var i=Array.isArray(t)?[]:{};return n.push({original:t,copy:i}),Object.keys(t).forEach((function(o){i[o]=e(t[o],n)})),i}function n(t,e){Object.keys(t).forEach((function(n){return e(t[n],n)}))}function o(t){return null!==t&&"object"==typeof t}var r=function(t,e){this.runtime=e,this._children=Object.create(null),this._rawModule=t;var n=t.state;this.state=("function"==typeof n?n():n)||{}},i={namespaced:{configurable:!0}};i.namespaced.get=function(){return!!this._rawModule.namespaced},r.prototype.addChild=function(t,e){this._children[t]=e},r.prototype.removeChild=function(t){delete this._children[t]},r.prototype.getChild=function(t){return this._children[t]},r.prototype.hasChild=function(t){return t in this._children},r.prototype.update=function(t){this._rawModule.namespaced=t.namespaced,t.actions&&(this._rawModule.actions=t.actions),t.mutations&&(this._rawModule.mutations=t.mutations),t.getters&&(this._rawModule.getters=t.getters)},r.prototype.forEachChild=function(t){n(this._children,t)},r.prototype.forEachGetter=function(t){this._rawModule.getters&&n(this._rawModule.getters,t)},r.prototype.forEachAction=function(t){this._rawModule.actions&&n(this._rawModule.actions,t)},r.prototype.forEachMutation=function(t){this._rawModule.mutations&&n(this._rawModule.mutations,t)},Object.defineProperties(r.prototype,i);var c,a=function(t){this.register([],t,!1)};a.prototype.get=function(t){return t.reduce((function(t,e){return t.getChild(e)}),this.root)},a.prototype.getNamespace=function(t){var e=this.root;return t.reduce((function(t,n){return t+((e=e.getChild(n)).namespaced?n+"/":"")}),"")},a.prototype.update=function(t){!function t(e,n,o){if(n.update(o),o.modules)for(var r in o.modules){if(!n.getChild(r))return;t(e.concat(r),n.getChild(r),o.modules[r])}}([],this.root,t)},a.prototype.register=function(t,e,o){var i=this;void 0===o&&(o=!0);var c=new r(e,o);0===t.length?this.root=c:this.get(t.slice(0,-1)).addChild(t[t.length-1],c);e.modules&&n(e.modules,(function(e,n){i.register(t.concat(n),e,o)}))},a.prototype.unregister=function(t){var e=this.get(t.slice(0,-1)),n=t[t.length-1],o=e.getChild(n);o&&o.runtime&&e.removeChild(n)},a.prototype.isRegistered=function(t){var e=this.get(t.slice(0,-1)),n=t[t.length-1];return!!e&&e.hasChild(n)};var s=function(e){var n=this;void 0===e&&(e={}),!c&&"undefined"!=typeof window&&window.Vue&&v(window.Vue);var o=e.plugins;void 0===o&&(o=[]);var r=e.strict;void 0===r&&(r=!1),this._committing=!1,this._actions=Object.create(null),this._actionSubscribers=[],this._mutations=Object.create(null),this._wrappedGetters=Object.create(null),this._modules=new a(e),this._modulesNamespaceMap=Object.create(null),this._subscribers=[],this._watcherVM=new c,this._makeLocalGettersCache=Object.create(null);var i=this,s=this.dispatch,u=this.commit;this.dispatch=function(t,e){return s.call(i,t,e)},this.commit=function(t,e,n){return u.call(i,t,e,n)},this.strict=r;var f=this._modules.root.state;p(this,f,[],this._modules.root),h(this,f),o.forEach((function(t){return t(n)})),(void 0!==e.devtools?e.devtools:c.config.devtools)&&function(e){t&&(e._devtoolHook=t,t.emit("vuex:init",e),t.on("vuex:travel-to-state",(function(t){e.replaceState(t)})),e.subscribe((function(e,n){t.emit("vuex:mutation",e,n)}),{prepend:!0}),e.subscribeAction((function(e,n){t.emit("vuex:action",e,n)}),{prepend:!0}))}(this)},u={state:{configurable:!0}};function f(t,e,n){return e.indexOf(t)<0&&(n&&n.prepend?e.unshift(t):e.push(t)),function(){var n=e.indexOf(t);n>-1&&e.splice(n,1)}}function l(t,e){t._actions=Object.create(null),t._mutations=Object.create(null),t._wrappedGetters=Object.create(null),t._modulesNamespaceMap=Object.create(null);var n=t.state;p(t,n,[],t._modules.root,!0),h(t,n,e)}function h(t,e,o){var r=t._vm;t.getters={},t._makeLocalGettersCache=Object.create(null);var i=t._wrappedGetters,a={};n(i,(function(e,n){a[n]=function(t,e){return function(){return t(e)}}(e,t),Object.defineProperty(t.getters,n,{get:function(){return t._vm[n]},enumerable:!0})}));var s=c.config.silent;c.config.silent=!0,t._vm=new c({data:{$$state:e},computed:a}),c.config.silent=s,t.strict&&function(t){t._vm.$watch((function(){return this._data.$$state}),(function(){}),{deep:!0,sync:!0})}(t),r&&(o&&t._withCommit((function(){r._data.$$state=null})),c.nextTick((function(){return r.$destroy()})))}function p(t,e,n,o,r){var i=!n.length,a=t._modules.getNamespace(n);if(o.namespaced&&(t._modulesNamespaceMap[a],t._modulesNamespaceMap[a]=o),!i&&!r){var s=d(e,n.slice(0,-1)),u=n[n.length-1];t._withCommit((function(){c.set(s,u,o.state)}))}var f=o.context=function(t,e,n){var o=""===e,r={dispatch:o?t.dispatch:function(n,o,r){var i=m(n,o,r),c=i.payload,a=i.options,s=i.type;return a&&a.root||(s=e+s),t.dispatch(s,c)},commit:o?t.commit:function(n,o,r){var i=m(n,o,r),c=i.payload,a=i.options,s=i.type;a&&a.root||(s=e+s),t.commit(s,c,a)}};return Object.defineProperties(r,{getters:{get:o?function(){return t.getters}:function(){return function(t,e){if(!t._makeLocalGettersCache[e]){var n={},o=e.length;Object.keys(t.getters).forEach((function(r){if(r.slice(0,o)===e){var i=r.slice(o);Object.defineProperty(n,i,{get:function(){return t.getters[r]},enumerable:!0})}})),t._makeLocalGettersCache[e]=n}return t._makeLocalGettersCache[e]}(t,e)}},state:{get:function(){return d(t.state,n)}}}),r}(t,a,n);o.forEachMutation((function(e,n){!function(t,e,n,o){(t._mutations[e]||(t._mutations[e]=[])).push((function(e){n.call(t,o.state,e)}))}(t,a+n,e,f)})),o.forEachAction((function(e,n){var o=e.root?n:a+n,r=e.handler||e;!function(t,e,n,o){(t._actions[e]||(t._actions[e]=[])).push((function(e){var r,i=n.call(t,{dispatch:o.dispatch,commit:o.commit,getters:o.getters,state:o.state,rootGetters:t.getters,rootState:t.state},e);return(r=i)&&"function"==typeof r.then||(i=Promise.resolve(i)),t._devtoolHook?i.catch((function(e){throw t._devtoolHook.emit("vuex:error",e),e})):i}))}(t,o,r,f)})),o.forEachGetter((function(e,n){!function(t,e,n,o){if(t._wrappedGetters[e])return;t._wrappedGetters[e]=function(t){return n(o.state,o.getters,t.state,t.getters)}}(t,a+n,e,f)})),o.forEachChild((function(o,i){p(t,e,n.concat(i),o,r)}))}function d(t,e){return e.reduce((function(t,e){return t[e]}),t)}function m(t,e,n){return o(t)&&t.type&&(n=e,e=t,t=t.type),{type:t,payload:e,options:n}}function v(t){c&&t===c||function(t){if(Number(t.version.split(".")[0])>=2)t.mixin({beforeCreate:n});else{var e=t.prototype._init;t.prototype._init=function(t){void 0===t&&(t={}),t.init=t.init?[n].concat(t.init):n,e.call(this,t)}}function n(){var t=this.$options;t.store?this.$store="function"==typeof t.store?t.store():t.store:t.parent&&t.parent.$store&&(this.$store=t.parent.$store)}}(c=t)}u.state.get=function(){return this._vm._data.$$state},u.state.set=function(t){},s.prototype.commit=function(t,e,n){var o=this,r=m(t,e,n),i=r.type,c=r.payload,a={type:i,payload:c},s=this._mutations[i];s&&(this._withCommit((function(){s.forEach((function(t){t(c)}))})),this._subscribers.slice().forEach((function(t){return t(a,o.state)})))},s.prototype.dispatch=function(t,e){var n=this,o=m(t,e),r=o.type,i=o.payload,c={type:r,payload:i},a=this._actions[r];if(a){try{this._actionSubscribers.slice().filter((function(t){return t.before})).forEach((function(t){return t.before(c,n.state)}))}catch(t){}var s=a.length>1?Promise.all(a.map((function(t){return t(i)}))):a[0](i);return new Promise((function(t,e){s.then((function(e){try{n._actionSubscribers.filter((function(t){return t.after})).forEach((function(t){return t.after(c,n.state)}))}catch(t){}t(e)}),(function(t){try{n._actionSubscribers.filter((function(t){return t.error})).forEach((function(e){return e.error(c,n.state,t)}))}catch(t){}e(t)}))}))}},s.prototype.subscribe=function(t,e){return f(t,this._subscribers,e)},s.prototype.subscribeAction=function(t,e){return f("function"==typeof t?{before:t}:t,this._actionSubscribers,e)},s.prototype.watch=function(t,e,n){var o=this;return this._watcherVM.$watch((function(){return t(o.state,o.getters)}),e,n)},s.prototype.replaceState=function(t){var e=this;this._withCommit((function(){e._vm._data.$$state=t}))},s.prototype.registerModule=function(t,e,n){void 0===n&&(n={}),"string"==typeof t&&(t=[t]),this._modules.register(t,e),p(this,this.state,t,this._modules.get(t),n.preserveState),h(this,this.state)},s.prototype.unregisterModule=function(t){var e=this;"string"==typeof t&&(t=[t]),this._modules.unregister(t),this._withCommit((function(){var n=d(e.state,t.slice(0,-1));c.delete(n,t[t.length-1])})),l(this)},s.prototype.hasModule=function(t){return"string"==typeof t&&(t=[t]),this._modules.isRegistered(t)},s.prototype.hotUpdate=function(t){this._modules.update(t),l(this,!0)},s.prototype._withCommit=function(t){var e=this._committing;this._committing=!0,t(),this._committing=e},Object.defineProperties(s.prototype,u);var g=M((function(t,e){var n={};return w(e).forEach((function(e){var o=e.key,r=e.val;n[o]=function(){var e=this.$store.state,n=this.$store.getters;if(t){var o=$(this.$store,"mapState",t);if(!o)return;e=o.context.state,n=o.context.getters}return"function"==typeof r?r.call(this,e,n):e[r]},n[o].vuex=!0})),n})),y=M((function(t,e){var n={};return w(e).forEach((function(e){var o=e.key,r=e.val;n[o]=function(){for(var e=[],n=arguments.length;n--;)e[n]=arguments[n];var o=this.$store.commit;if(t){var i=$(this.$store,"mapMutations",t);if(!i)return;o=i.context.commit}return"function"==typeof r?r.apply(this,[o].concat(e)):o.apply(this.$store,[r].concat(e))}})),n})),_=M((function(t,e){var n={};return w(e).forEach((function(e){var o=e.key,r=e.val;r=t+r,n[o]=function(){if(!t||$(this.$store,"mapGetters",t))return this.$store.getters[r]},n[o].vuex=!0})),n})),b=M((function(t,e){var n={};return w(e).forEach((function(e){var o=e.key,r=e.val;n[o]=function(){for(var e=[],n=arguments.length;n--;)e[n]=arguments[n];var o=this.$store.dispatch;if(t){var i=$(this.$store,"mapActions",t);if(!i)return;o=i.context.dispatch}return"function"==typeof r?r.apply(this,[o].concat(e)):o.apply(this.$store,[r].concat(e))}})),n}));function w(t){return function(t){return Array.isArray(t)||o(t)}(t)?Array.isArray(t)?t.map((function(t){return{key:t,val:t}})):Object.keys(t).map((function(e){return{key:e,val:t[e]}})):[]}function M(t){return function(e,n){return"string"!=typeof e?(n=e,e=""):"/"!==e.charAt(e.length-1)&&(e+="/"),t(e,n)}}function $(t,e,n){return t._modulesNamespaceMap[n]}function C(t,e,n){var o=n?t.groupCollapsed:t.group;try{o.call(t,e)}catch(n){t.log(e)}}function E(t){try{t.groupEnd()}catch(e){t.log("—— log end ——")}}function O(){var t=new Date;return" @ "+j(t.getHours(),2)+":"+j(t.getMinutes(),2)+":"+j(t.getSeconds(),2)+"."+j(t.getMilliseconds(),3)}function j(t,e){return n="0",o=e-t.toString().length,new Array(o+1).join(n)+t;var n,o}return{Store:s,install:v,version:"3.6.2",mapState:g,mapMutations:y,mapGetters:_,mapActions:b,createNamespacedHelpers:function(t){return{mapState:g.bind(null,t),mapGetters:_.bind(null,t),mapMutations:y.bind(null,t),mapActions:b.bind(null,t)}},createLogger:function(t){void 0===t&&(t={});var n=t.collapsed;void 0===n&&(n=!0);var o=t.filter;void 0===o&&(o=function(t,e,n){return!0});var r=t.transformer;void 0===r&&(r=function(t){return t});var i=t.mutationTransformer;void 0===i&&(i=function(t){return t});var c=t.actionFilter;void 0===c&&(c=function(t,e){return!0});var a=t.actionTransformer;void 0===a&&(a=function(t){return t});var s=t.logMutations;void 0===s&&(s=!0);var u=t.logActions;void 0===u&&(u=!0);var f=t.logger;return void 0===f&&(f=console),function(t){var l=e(t.state);void 0!==f&&(s&&t.subscribe((function(t,c){var a=e(c);if(o(t,l,a)){var s=O(),u=i(t),h="mutation "+t.type+s;C(f,h,n),f.log("%c prev state","color: #9E9E9E; font-weight: bold",r(l)),f.log("%c mutation","color: #03A9F4; font-weight: bold",u),f.log("%c next state","color: #4CAF50; font-weight: bold",r(a)),E(f)}l=a})),u&&t.subscribeAction((function(t,e){if(c(t,e)){var o=O(),r=a(t),i="action "+t.type+o;C(f,i,n),f.log("%c action","color: #03A9F4; font-weight: bold",r),E(f)}})))}}}}));
diff --git a/dist/vuex.mjs b/dist/vuex.mjs
new file mode 100644
index 000000000..2140898f4
--- /dev/null
+++ b/dist/vuex.mjs
@@ -0,0 +1,26 @@
+import Vuex from '../dist/vuex.common.js'
+
+const {
+ Store,
+ install,
+ version,
+ mapState,
+ mapMutations,
+ mapGetters,
+ mapActions,
+ createNamespacedHelpers,
+ createLogger
+} = Vuex
+
+export {
+ Vuex as default,
+ Store,
+ install,
+ version,
+ mapState,
+ mapMutations,
+ mapGetters,
+ mapActions,
+ createNamespacedHelpers,
+ createLogger
+}
diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js
index d1b8c92ff..11be6657d 100644
--- a/docs/.vuepress/config.js
+++ b/docs/.vuepress/config.js
@@ -45,10 +45,10 @@ module.exports = {
serviceWorker: true,
theme: '@vuepress/vue',
themeConfig: {
- algolia: {
- apiKey: '97f135e4b5f5487fb53f0f2dae8db59d',
- indexName: 'vuex',
- },
+ // algolia: {
+ // apiKey: '97f135e4b5f5487fb53f0f2dae8db59d',
+ // indexName: 'vuex',
+ // },
repo: 'vuejs/vuex',
docsDir: 'docs',
locales: {
@@ -59,7 +59,13 @@ module.exports = {
nav: [
{ text: 'Guide', link: '/guide/' },
{ text: 'API Reference', link: '/api/' },
- { text: 'Release Notes', link: 'https://github.com/vuejs/vuex/releases' }
+ { text: 'Release Notes', link: 'https://github.com/vuejs/vuex/releases' },
+ {
+ text: 'v3.x',
+ items: [
+ { text: 'v4.x', link: 'https://vuex.vuejs.org/' }
+ ]
+ }
],
sidebar: [
{
@@ -103,7 +109,13 @@ module.exports = {
nav: [
{ text: '指南', link: '/zh/guide/' },
{ text: 'API 参考', link: '/zh/api/' },
- { text: '更新记录', link: 'https://github.com/vuejs/vuex/releases' }
+ { text: '更新记录', link: 'https://github.com/vuejs/vuex/releases' },
+ {
+ text: 'v3.x',
+ items: [
+ { text: 'v4.x', link: 'https://vuex.vuejs.org/zh/' }
+ ]
+ }
],
sidebar: [
{
@@ -147,7 +159,13 @@ module.exports = {
nav: [
{ text: 'ガイド', link: '/ja/guide/' },
{ text: 'API リファレンス', link: '/ja/api/' },
- { text: 'リリースノート', link: 'https://github.com/vuejs/vuex/releases' }
+ { text: 'リリースノート', link: 'https://github.com/vuejs/vuex/releases' },
+ {
+ text: 'v3.x',
+ items: [
+ { text: 'v4.x', link: 'https://vuex.vuejs.org/ja/' }
+ ]
+ }
],
sidebar: [
{
@@ -191,7 +209,13 @@ module.exports = {
nav: [
{ text: 'Руководство', link: '/ru/guide/' },
{ text: 'Справочник API', link: '/ru/api/' },
- { text: 'История изменений', link: 'https://github.com/vuejs/vuex/releases' }
+ { text: 'История изменений', link: 'https://github.com/vuejs/vuex/releases' },
+ {
+ text: 'v3.x',
+ items: [
+ { text: 'v4.x', link: 'https://vuex.vuejs.org/' }
+ ]
+ }
],
sidebar: [
{
@@ -235,7 +259,13 @@ module.exports = {
nav: [
{ text: '가이드', link: '/kr/guide/' },
{ text: 'API 레퍼런스', link: '/kr/api/' },
- { text: '릴리즈 노트', link: 'https://github.com/vuejs/vuex/releases' }
+ { text: '릴리즈 노트', link: 'https://github.com/vuejs/vuex/releases' },
+ {
+ text: 'v3.x',
+ items: [
+ { text: 'v4.x', link: 'https://vuex.vuejs.org/' }
+ ]
+ }
],
sidebar: [
{
@@ -279,7 +309,13 @@ module.exports = {
nav: [
{ text: 'Guia', link: '/ptbr/guide/' },
{ text: 'Referência da API', link: '/ptbr/api/' },
- { text: 'Notas da Versão', link: 'https://github.com/vuejs/vuex/releases' }
+ { text: 'Notas da Versão', link: 'https://github.com/vuejs/vuex/releases' },
+ {
+ text: 'v3.x',
+ items: [
+ { text: 'v4.x', link: 'https://vuex.vuejs.org/ptbr/' }
+ ]
+ }
],
sidebar: [
{
@@ -323,7 +359,13 @@ module.exports = {
nav: [
{ text: 'Guide', link: '/fr/guide/' },
{ text: 'API', link: '/fr/api/' },
- { text: 'Notes de version', link: 'https://github.com/vuejs/vuex/releases' }
+ { text: 'Notes de version', link: 'https://github.com/vuejs/vuex/releases' },
+ {
+ text: 'v3.x',
+ items: [
+ { text: 'v4.x', link: 'https://vuex.vuejs.org/' }
+ ]
+ }
],
sidebar: [
{
diff --git a/docs/README.md b/docs/README.md
index c75bb088a..e57041f27 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -1,5 +1,9 @@
# What is Vuex?
+::: tip NOTE
+This is the docs for Vuex 3, which works with Vue 2. If you're looking for docs for Vuex 4, which works with Vue 3, [please check it out here](https://next.vuex.vuejs.org/).
+:::
+
Vuex is a **state management pattern + library** for Vue.js applications. It serves as a centralized store for all the components in an application, with rules ensuring that the state can only be mutated in a predictable fashion. It also integrates with Vue's official [devtools extension](https://github.com/vuejs/vue-devtools) to provide advanced features such as zero-config time-travel debugging and state snapshot export / import.
@@ -62,6 +66,6 @@ If you want to learn Vuex in an interactive way you can check out this [Vuex cou
Vuex helps us deal with shared state management with the cost of more concepts and boilerplate. It's a trade-off between short term and long term productivity.
-If you've never built a large-scale SPA and jump right into Vuex, it may feel verbose and daunting. That's perfectly normal - if your app is simple, you will most likely be fine without Vuex. A simple [store pattern](https://vuejs.org/v2/guide/state-management.html#Simple-State-Management-from-Scratch) may be all you need. But if you are building a medium-to-large-scale SPA, chances are you have run into situations that make you think about how to better handle state outside of your Vue components, and Vuex will be the natural next step for you. There's a good quote from Dan Abramov, the author of Redux:
+If you've never built a large-scale SPA and jump right into Vuex, it may feel verbose and daunting. That's perfectly normal - if your app is simple, you will most likely be fine without Vuex. A simple [store pattern](https://v2.vuejs.org/v2/guide/state-management.html#Simple-State-Management-from-Scratch) may be all you need. But if you are building a medium-to-large-scale SPA, chances are you have run into situations that make you think about how to better handle state outside of your Vue components, and Vuex will be the natural next step for you. There's a good quote from Dan Abramov, the author of Redux:
> Flux libraries are like glasses: you’ll know when you need them.
diff --git a/docs/api/README.md b/docs/api/README.md
index 49439f15b..9a4bd43f2 100644
--- a/docs/api/README.md
+++ b/docs/api/README.md
@@ -168,7 +168,7 @@ const store = new Vuex.Store({ ...options })
- `watch(fn: Function, callback: Function, options?: Object): Function`
- Reactively watch `fn`'s return value, and call the callback when the value changes. `fn` receives the store's state as the first argument, and getters as the second argument. Accepts an optional options object that takes the same options as [Vue's `vm.$watch` method](https://vuejs.org/v2/api/#vm-watch).
+ Reactively watch `fn`'s return value, and call the callback when the value changes. `fn` receives the store's state as the first argument, and getters as the second argument. Accepts an optional options object that takes the same options as [Vue's `vm.$watch` method](https://v2.vuejs.org/v2/api/#vm-watch).
To stop watching, call the returned unwatch function.
diff --git a/docs/fr/README.md b/docs/fr/README.md
index c381c4e2b..a8675b6c4 100644
--- a/docs/fr/README.md
+++ b/docs/fr/README.md
@@ -60,5 +60,5 @@ Si vous voulez apprendre Vuex de manière interactive, jetez un oeil à ce [cour
Bien que Vuex nous aide à gérer un état global partagé, il apporte aussi le cout de nouveaux concepts et _abstraction de code_ (« boilerplate »). C'est un compromis entre la productivité à court terme et à long terme.
-Si vous n'avez jamais créé une _application monopage_ à grande échelle et que vous sautez directement dans Vuex, cela peut paraitre verbeux et intimidant. C'est parfaitement normal ; si votre application est simple, vous vous en sortirez sans doute très bien sans Vuex. Un simple [canal d'évènement global](https://vuejs.org/v2/guide/state-management.html#Simple-State-Management-from-Scratch) pourrait très bien vous suffire. Mais si vous devez créer une application monopage à moyenne ou grande échelle, il y a des chances que vous vous trouviez dans des situations qui vous feront vous interroger sur une meilleure gestion de l'état global, détaché de votre composant Vue, et Vuex sera naturellement la prochaine étape pour vous. Voici une bonne citation de Dan Abramov, l'auteur de Redux :
+Si vous n'avez jamais créé une _application monopage_ à grande échelle et que vous sautez directement dans Vuex, cela peut paraitre verbeux et intimidant. C'est parfaitement normal ; si votre application est simple, vous vous en sortirez sans doute très bien sans Vuex. Un simple [canal d'évènement global](https://v2.vuejs.org/v2/guide/state-management.html#Simple-State-Management-from-Scratch) pourrait très bien vous suffire. Mais si vous devez créer une application monopage à moyenne ou grande échelle, il y a des chances que vous vous trouviez dans des situations qui vous feront vous interroger sur une meilleure gestion de l'état global, détaché de votre composant Vue, et Vuex sera naturellement la prochaine étape pour vous. Voici une bonne citation de Dan Abramov, l'auteur de Redux :
> « Les librairies Flux, c'est comme les lunettes : vous saurez quand vous en aurez besoin. »
diff --git a/docs/guide/README.md b/docs/guide/README.md
index f473a1ac2..06aa66f2c 100644
--- a/docs/guide/README.md
+++ b/docs/guide/README.md
@@ -16,8 +16,6 @@ We will be using ES2015 syntax for code examples for the rest of the docs. If yo
After [installing](../installation.md) Vuex, let's create a store. It is pretty straightforward - just provide an initial state object, and some mutations:
-### Vuex 3.x (for Vue 2)
-
```js
import Vue from 'vue'
import Vuex from 'vuex'
@@ -36,24 +34,6 @@ const store = new Vuex.Store({
})
```
-### Vuex 4.x (for Vue 3)
-
-```js
-import { createStore } from 'vuex'
-import { createApp } from 'vue'
-
-const store = createStore({
- state () {
- return {
- count: 1
- }
- }
-})
-
-const app = createApp({ /* your root component */ })
-app.use(store)
-```
-
Now, you can access the state object as `store.state`, and trigger a state change with the `store.commit` method:
```js
diff --git a/docs/guide/modules.md b/docs/guide/modules.md
index e09d6f8c6..e6a52f17b 100644
--- a/docs/guide/modules.md
+++ b/docs/guide/modules.md
@@ -85,7 +85,7 @@ const moduleA = {
## Namespacing
-By default, actions, mutations and getters inside modules are still registered under the **global namespace** - this allows multiple modules to react to the same mutation/action type.
+By default, actions and mutations are still registered under the **global namespace** - this allows multiple modules to react to the same action/mutation type. Getters are also registered in the global namespace by default. However, this currently has no functional purpose (it's as is to avoid breaking changes). You must be careful not to define two getters with the same name in different, non-namespaced modules, resulting in an error.
If you want your modules to be more self-contained or reusable, you can mark it as namespaced with `namespaced: true`. When the module is registered, all of its getters, actions and mutations will be automatically namespaced based on the path the module is registered at. For example:
diff --git a/docs/guide/mutations.md b/docs/guide/mutations.md
index 1c0ba8758..da1556440 100644
--- a/docs/guide/mutations.md
+++ b/docs/guide/mutations.md
@@ -137,7 +137,7 @@ mutations: {
}
```
-Now imagine we are debugging the app and looking at the devtool's mutation logs. For every mutation logged, the devtool will need to capture a "before" and "after" snapshots of the state. However, the asynchronous callback inside the example mutation above makes that impossible: the callback is not called yet when the mutation is committed, and there's no way for the devtool to know when the callback will actually be called - any state mutation performed in the callback is essentially un-trackable!
+Now imagine we are debugging the app and looking at the devtool's mutation logs. For every mutation logged, the devtool will need to capture a "before" and "after" snapshot of the state. However, the asynchronous callback inside the example mutation above makes that impossible: the callback is not called yet when the mutation is committed, and there's no way for the devtool to know when the callback will actually be called - any state mutation performed in the callback is essentially un-trackable!
## Committing Mutations in Components
diff --git a/docs/guide/state.md b/docs/guide/state.md
index 01a9d7d5a..bc9cbc120 100644
--- a/docs/guide/state.md
+++ b/docs/guide/state.md
@@ -8,11 +8,11 @@ Vuex uses a **single state tree** - that is, this single object contains all you
The single state tree does not conflict with modularity - in later chapters we will discuss how to split your state and mutations into sub modules.
-The data you store in Vuex follows the same rules as the `data` in a Vue instance, ie the state object must be plain. **See also:** [Vue#data](https://vuejs.org/v2/api/#data).
+The data you store in Vuex follows the same rules as the `data` in a Vue instance, ie the state object must be plain. **See also:** [Vue#data](https://v2.vuejs.org/v2/api/#data).
## Getting Vuex State into Vue Components
-So how do we display state inside the store in our Vue components? Since Vuex stores are reactive, the simplest way to "retrieve" state from it is simply returning some store state from within a [computed property](https://vuejs.org/guide/computed.html):
+So how do we display state inside the store in our Vue components? Since Vuex stores are reactive, the simplest way to "retrieve" state from it is simply returning some store state from within a [computed property](https://v2.vuejs.org/guide/computed.html):
```js
// let's create a Counter component
diff --git a/docs/guide/testing.md b/docs/guide/testing.md
index c1dafe5f7..f21544aeb 100644
--- a/docs/guide/testing.md
+++ b/docs/guide/testing.md
@@ -4,7 +4,7 @@
The main parts we want to unit test in Vuex are mutations and actions.
-### Testing Mutations
+## Testing Mutations
Mutations are very straightforward to test, because they are just functions that completely rely on their arguments. One trick is that if you are using ES2015 modules and put your mutations inside your `store.js` file, in addition to the default export, you should also export the mutations as a named export:
@@ -49,7 +49,7 @@ describe('mutations', () => {
})
```
-### Testing Actions
+## Testing Actions
Actions can be a bit more tricky because they may call out to external APIs. When testing actions, we usually need to do some level of mocking - for example, we can abstract the API calls into a service and mock that service inside our tests. In order to easily mock dependencies, we can use webpack and [inject-loader](https://github.com/plasticine/inject-loader) to bundle our test files.
@@ -146,7 +146,7 @@ describe('actions', () => {
})
```
-### Testing Getters
+## Testing Getters
If your getters have complicated computation, it is worth testing them. Getters are also very straightforward to test for the same reason as mutations.
@@ -193,11 +193,11 @@ describe('getters', () => {
})
```
-### Running Tests
+## Running Tests
If your mutations and actions are written properly, the tests should have no direct dependency on Browser APIs after proper mocking. Thus you can simply bundle the tests with webpack and run it directly in Node. Alternatively, you can use `mocha-loader` or Karma + `karma-webpack` to run the tests in real browsers.
-#### Running in Node
+### Running in Node
Create the following webpack config (together with proper [`.babelrc`](https://babeljs.io/docs/usage/babelrc/)):
@@ -228,13 +228,13 @@ webpack
mocha test-bundle.js
```
-#### Running in Browser
+### Running in Browser
1. Install `mocha-loader`.
2. Change the `entry` from the webpack config above to `'mocha-loader!babel-loader!./test.js'`.
3. Start `webpack-dev-server` using the config.
4. Go to `localhost:8080/webpack-dev-server/test-bundle`.
-#### Running in Browser with Karma + karma-webpack
+### Running in Browser with Karma + karma-webpack
Consult the setup in [vue-loader documentation](https://vue-loader.vuejs.org/en/workflow/testing.html).
diff --git a/docs/installation.md b/docs/installation.md
index 75d411aaa..6e1761440 100644
--- a/docs/installation.md
+++ b/docs/installation.md
@@ -19,24 +19,16 @@ Include `vuex` after Vue and it will install itself automatically:
```bash
npm install vuex --save
-
-# If using Vue 3.0 + Vuex 4.0:
-npm install vuex@next --save
```
## Yarn
```bash
yarn add vuex
-
-# If using Vue 3.0 + Vuex 4.0:
-yarn add vuex@next --save
```
When used with a module system, you must explicitly install Vuex as a plugin:
-### With Vue 2
-
```js
import Vue from 'vue'
import Vuex from 'vuex'
@@ -44,18 +36,6 @@ import Vuex from 'vuex'
Vue.use(Vuex)
```
-### With Vue 3
-
-```js
-import { createApp } from 'vue'
-import { createStore } from 'vuex'
-
-const app = createApp({ ... })
-const store = createStore({ ... })
-
-app.use(store)
-```
-
You don't need to do this when using global script tags.
## Promise
diff --git a/docs/ja/README.md b/docs/ja/README.md
index 5df513a9a..9413b59da 100644
--- a/docs/ja/README.md
+++ b/docs/ja/README.md
@@ -6,7 +6,7 @@ Vuex は Vue.js アプリケーションのための **状態管理パターン
これは予測可能な方法によってのみ状態の変異を行うというルールを保証し、アプリケーション内の全てのコンポーネントのための集中型のストアとして機能します。
また Vue 公式の[開発ツール拡張](https://github.com/vuejs/vue-devtools)と連携し、設定なしでタイムトラベルデバッグやステートのスナップショットのエクスポートやインポートのような高度な機能を提供します。
-### "状態管理パターン"とはなんですか?
+## "状態管理パターン"とはなんですか?
単純な Vue で作られたカウンターアプリをみてみましょう:
@@ -61,7 +61,7 @@ new Vue({

-### いつ、Vuexを使うべきでしょうか?
+## いつ、Vuexを使うべきでしょうか?
Vuex は、共有状態の管理に役立ちますが、さらに概念やボイラープレートのコストがかかります。これは、短期的生産性と長期的生産性のトレードオフです。
diff --git a/docs/ja/guide/README.md b/docs/ja/guide/README.md
index 89426d316..53810c325 100644
--- a/docs/ja/guide/README.md
+++ b/docs/ja/guide/README.md
@@ -8,7 +8,7 @@ Vuex アプリケーションの中心にあるものは**ストア**です。"
2. ストアの状態を直接変更することはできません。明示的に**ミューテーションをコミットする**ことによってのみ、ストアの状態を変更します。これによって、全ての状態の変更について追跡可能な記録を残すことが保証され、ツールでのアプリケーションの動作の理解を助けます。
-### シンプルなストア
+## シンプルなストア
:::tip 注意
私たちは、このドキュメントのコード例に ES2015 のシンタックスを利用しています。 もし触れたことがなければ、[ぜひ触れてください](https://babeljs.io/docs/learn-es2015/)!
diff --git a/docs/ja/guide/actions.md b/docs/ja/guide/actions.md
index 2439b42c5..dabaef33f 100644
--- a/docs/ja/guide/actions.md
+++ b/docs/ja/guide/actions.md
@@ -39,7 +39,7 @@ actions: {
}
```
-### アクションのディスパッチ
+## アクションのディスパッチ
アクションは `store.dispatch` がトリガーとなって実行されます:
@@ -97,7 +97,7 @@ actions: {
一連の非同期の処理を実行しつつ、ミューテーションのコミットによってのみ副作用(状態の変更)を与えていることに注意してください。
-### コンポーネント内でのアクションのディスパッチ
+## コンポーネント内でのアクションのディスパッチ
`this.$store.dispatch('xxx')` でコンポーネント内でアクションをディスパッチできます。あるいはコンポーネントのメソッドを `store.dispatch` にマッピングする `mapActions` ヘルパーを使うこともできます(ルートの `store` の注入が必要です):
@@ -119,7 +119,7 @@ export default {
}
```
-### アクションを構成する
+## アクションを構成する
アクションはしばしば非同期処理を行いますが、アクションが完了したことをどうやって知れば良いのでしょう?そしてもっと重要なことは、さらに複雑な非同期処理を取り扱うために、どうやって複数のアクションを構成させるかということです。
diff --git a/docs/ja/guide/forms.md b/docs/ja/guide/forms.md
index 2ad1f8922..99aef59b9 100644
--- a/docs/ja/guide/forms.md
+++ b/docs/ja/guide/forms.md
@@ -40,7 +40,7 @@ mutations: {
}
```
-### 双方向算出プロパティ
+## 双方向算出プロパティ
確かに、上記の例は単純な `v-model` と ローカルステートよりもかなり冗長で、`v-model` のいくつかの有用な機能が使えません。代わりに、セッターで双方向算出プロパティを使うアプローチがあります。
diff --git a/docs/ja/guide/getters.md b/docs/ja/guide/getters.md
index 417ce71de..9c8c70876 100644
--- a/docs/ja/guide/getters.md
+++ b/docs/ja/guide/getters.md
@@ -34,7 +34,7 @@ const store = new Vuex.Store({
})
```
-### プロパティスタイルアクセス
+## プロパティスタイルアクセス
ゲッターは `store.getters` オブジェクトから取り出され、プロパティとしてアクセスすることができます:
@@ -69,7 +69,7 @@ computed: {
プロパティとしてアクセスされるゲッターは Vue のリアクティブシステムの一部としてキャッシュされるという点に留意してください。
-### メソッドスタイルアクセス
+## メソッドスタイルアクセス
関数を返り値にすることで、ゲッターに引数を渡すこともできます。これは特にストアの中の配列を検索する時に役立ちます:
```js
@@ -87,7 +87,7 @@ store.getters.getTodoById(2) // -> { id: 2, text: '...', done: false }
メソッドによってアクセスされるゲッターは呼び出す度に実行され、その結果はキャッシュされない点に留意してください。
-### `mapGetters` ヘルパー
+## `mapGetters` ヘルパー
`mapGetters` ヘルパーはストアのゲッターをローカルの算出プロパティにマッピングさせます:
diff --git a/docs/ja/guide/modules.md b/docs/ja/guide/modules.md
index c6fd22ead..7541a6373 100644
--- a/docs/ja/guide/modules.md
+++ b/docs/ja/guide/modules.md
@@ -31,7 +31,7 @@ store.state.a // -> `moduleA` のステート
store.state.b // -> `moduleB` のステート
```
-### モジュールのローカルステート
+## モジュールのローカルステート
モジュールのミューテーションやゲッターの中では、渡される第1引数は**モジュールのローカルステート**です。
@@ -83,7 +83,7 @@ const moduleA = {
}
```
-### 名前空間
+## 名前空間
デフォルトでは、モジュール内部のアクション、ミューテーション、そしてゲッターは**グローバル名前空間**の元で登録されます - これにより、複数のモジュールが同じミューテーション/アクションタイプに反応することができます。
@@ -134,7 +134,7 @@ const store = new Vuex.Store({
名前空間のゲッターとアクションは、ローカライズされた `getters`、`dispatch`、`commit` を受け取ります。言い換えれば、同じモジュールに接頭辞 (prefix) を書き込まずに、モジュールアセットを使用することができます。名前空間オプションの切り替えは、モジュール内のコードには影響しません。
-#### 名前空間付きモジュールでのグローバルアセットへのアクセス
+### 名前空間付きモジュールでのグローバルアセットへのアクセス
グローバルステートとゲッターを使いたい場合、`rootState` と `rootGetters` はゲッター関数の第3引数と第4引数として渡され、アクション関数に渡される `context` オブジェクトのプロパティとしても公開されます。
@@ -174,7 +174,7 @@ modules: {
}
```
-#### 名前空間付きモジュールでのグローバルアクションへの登録
+### 名前空間付きモジュールでのグローバルアクションへの登録
名前空間付きモジュールでグローバルアクションに登録したい場合、`root: true` でそれをマークでき、そしてアクション定義を `handler` 関数に置くことができます。例えば:
@@ -200,7 +200,7 @@ modules: {
```
-#### 名前空間によるバインディングヘルパー
+### 名前空間によるバインディングヘルパー
`mapState`、`mapGetters`、`mapActions`、そして `mapMutations` ヘルパーを使って名前空間付きモジュールをコンポーネントにバインディングするとき、少し冗長になります:
@@ -261,7 +261,7 @@ export default {
}
```
-#### プラグイン開発者向けの注意事項
+### プラグイン開発者向けの注意事項
モジュールを提供する[プラグイン](plugins.md)を作成し、ユーザーがそれらを Vuex ストアに追加できるようにすると、モジュールの予測できない名前空間が気になるかもしれません。あなたのモジュールは、プラグインユーザーが名前空間付きモジュールの元にモジュールを追加すると、その名前空間に属するようになります。この状況に適応するには、プラグインオプションを使用して名前空間の値を受け取る必要があります。
@@ -277,7 +277,7 @@ export function createPlugin (options = {}) {
}
```
-### 動的にモジュールを登録する
+## 動的にモジュールを登録する
ストアが作られた**後**に `store.registerModule` メソッドを使って、モジュールを登録できます:
@@ -301,13 +301,13 @@ store.registerModule(['nested', 'myModule'], {
また、すでにモジュールが登録されているかどうかを `store.hasModule(moduleName)` メソッドを使って確認することができます。
-#### ステートの保持
+### ステートの保持
サーバサイドレンダリングされたアプリケーションから状態を保持するなど、新しいモジュールを登録するときに、以前の状態を保持したい場合があります。`preserveState` オプション(`store.registerModule('a', module, { preserveState: true })`)でこれを実現できます。
`preserveState: true` を設定した場合、モジュールを登録する際に、アクション、ミューテーション、そしてゲッターは追加されますがステートは追加されません。これはストアのステートはすでにモジュールのステートを登録しているので、それを上書きしないようにするためです。
-### モジュールの再利用
+## モジュールの再利用
時どき、モジュールの複数インスタンスを作成する必要があるかもしれません。例えば:
diff --git a/docs/ja/guide/mutations.md b/docs/ja/guide/mutations.md
index 961a98fce..bdda77d41 100644
--- a/docs/ja/guide/mutations.md
+++ b/docs/ja/guide/mutations.md
@@ -24,7 +24,7 @@ const store = new Vuex.Store({
store.commit('increment')
```
-### 追加の引数を渡してコミットする
+## 追加の引数を渡してコミットする
`store.commit` に追加の引数を渡すこともできます。この追加の引数は、特定のミューテーションに対する**ペイロード**と呼びます:
@@ -58,7 +58,7 @@ store.commit('increment', {
})
```
-### オブジェクトスタイルのコミット
+## オブジェクトスタイルのコミット
また `type` プロパティを持つオブジェクトを使って、ミューテーションをコミットすることもできます:
@@ -80,7 +80,7 @@ mutations: {
```
-### Vue のリアクティブなルールに則ったミューテーション
+## Vue のリアクティブなルールに則ったミューテーション
Vuex ストアの状態は Vue によってリアクティブになっているので、状態を変更すると、状態を監視している Vue コンポーネントは自動的に更新されます。これは Vuex のミューテーションは、通常の Vue と動作させているときと同じく、リアクティブな値に関する注意が必要であることを意味します:
@@ -96,7 +96,7 @@ Vuex ストアの状態は Vue によってリアクティブになっている
state.obj = { ...state.obj, newProp: 123 }
```
-### ミューテーション・タイプに定数を使用する
+## ミューテーション・タイプに定数を使用する
いろいろな Flux 実装において、ミューテーション・タイプに定数を使用することが共通して見られるパターンです。これはコードに対してリントツールのようなツールを利用できるという利点があり、また単一ファイルに全ての定数を設定することによって、共同で作業する人に、アプリケーション全体で何のミューテーションが可能であるかを一目見ただけで理解できるようにします:
@@ -123,7 +123,7 @@ const store = new Vuex.Store({
定数を使用するかどうかは好みの問題です。多くの開発者による大規模なプロジェクトで役に立ちますが、完全にオプションなので、もしお気に召さなければ使用しなくても構いません。
-### ミューテーションは同期的でなければならない
+## ミューテーションは同期的でなければならない
ひとつの重要なルールを覚えておきましょう。それは**ミューテーションハンドラ関数は同期的でなければならない**ということです。なぜか?次の例で考えてみましょう:
@@ -139,7 +139,7 @@ mutations: {
いま、開発ツールのミューテーションのログを見ながら、アプリケーションのデバッグを行っていることを想像してください。全てのミューテーションをログに記録するためには、ミューテーションの前後の状態のスナップショットを捕捉することが必要です。しかし、上の例にあるミューテーション内の非同期コールバックは、それを不可能にします: そのコールバックは、ミューテーションがコミットされた時点ではまだ呼び出されていません。そして、コールバックが実際にいつ呼び出されるかを、開発ツールは知る術がありません。いかなる状態変更でも、コールバック内で起きる場合は本質的に追跡不可能です。
-### コンポーネント内におけるミューテーションのコミット
+## コンポーネント内におけるミューテーションのコミット
`this.$store.commit('xxx')` と書くか、もしくはコンポーネントのメソッドを `store.commit` にマッピングする `mapMutations` ヘルパーを呼び出すこと(ルートの `store` の注入が必要)で、コンポーネント内でミューテーションをコミットできます:
@@ -162,7 +162,7 @@ export default {
}
```
-### アクションへ向けて
+## アクションへ向けて
状態変更を非同期に組み合わせることは、プログラムの動きを予測することを非常に困難にします。例えば、状態を変更する非同期コールバックを持った 2つのメソッドを両方呼び出すとき、それらがいつ呼び出されたか、どちらが先に呼び出されたかを、どうやって知ればよいのでしょう?これがまさに、状態変更と非同期の 2つの概念を分離したいという理由です。Vuex では**全てのミューテーションは同期的に行う**という作法になっています:
diff --git a/docs/ja/guide/plugins.md b/docs/ja/guide/plugins.md
index b24f1fad4..1e366839c 100644
--- a/docs/ja/guide/plugins.md
+++ b/docs/ja/guide/plugins.md
@@ -23,7 +23,7 @@ const store = new Vuex.Store({
})
```
-### プラグイン内でのミューテーションのコミット
+## プラグイン内でのミューテーションのコミット
プラグインは直接、状態を変更できません。これはコンポーネントに似ています。プラグインはコンポーネント同様に、ミューテーションのコミットをトリガーすることで状態を変更できます。
@@ -54,7 +54,7 @@ const store = new Vuex.Store({
})
```
-### 状態のスナップショットを撮る
+## 状態のスナップショットを撮る
時々、状態の"スナップショット"を撮って、ミューテーション前後の状態を比較したくなることがあるでしょう。それを実現するために、状態オブジェクトのディープコピーを行う必要があります:
@@ -85,7 +85,7 @@ const store = new Vuex.Store({
上のように記述すれば、プラグインはデフォルトで利用されることになります。本番環境( production ) では、 `process.env.NODE_ENV !== 'production'` を `false` に置き換えるために、 webpack では[DefinePlugin](https://webpack.js.org/plugins/define-plugin/) 、 Browserify では[envify](https://github.com/hughsk/envify) が必要になります。
-### ビルトインロガープラグイン
+## ビルトインロガープラグイン
> もし、あなたが [vue-devtools](https://github.com/vuejs/vue-devtools) を使っている場合は、これは不要でしょう。
diff --git a/docs/ja/guide/state.md b/docs/ja/guide/state.md
index 5491ff6f4..8a9dd2bd5 100644
--- a/docs/ja/guide/state.md
+++ b/docs/ja/guide/state.md
@@ -1,6 +1,6 @@
# ステート
-### 単一ステートツリー
+## 単一ステートツリー
@@ -8,7 +8,7 @@ Vuex は **単一ステートツリー (single state tree)** を使います。
単一ステートツリーはモジュール性と競合しません。以降の章で、アプリケーションの状態とミューテーション(変更)をサブモジュールに分割する方法について説明します。
-### Vuex の状態を Vue コンポーネントに入れる
+## Vuex の状態を Vue コンポーネントに入れる
ストアにある状態を Vue コンポーネント に表示するにはどうすればよいのでしょう? Vuex ストア はリアクティブなので、ストアから状態を"取り出す"一番シンプルな方法は、単純にいくつかのストアの状態を [算出プロパティ](https://jp.vuejs.org/guide/computed.html) で返すことです。
@@ -57,7 +57,7 @@ const Counter = {
}
```
-### `mapState` ヘルパー
+## `mapState` ヘルパー
@@ -91,7 +91,7 @@ computed: mapState([
])
```
-### オブジェクトスプレッド演算子
+## オブジェクトスプレッド演算子
`mapState` はオブジェクトを返すことに注意しましょう。どうやって、他のローカル算出プロパティと組み合わせるのでしょうか? 通常、最終的にひとつのオブジェクトを `computed` に渡せるように、複数のオブジェクトをひとつにマージするユーティリティを使わなければいけません。しかし、[オブジェクトスプレッド演算子](https://github.com/tc39/proposal-object-rest-spread)で、シンタックスをかなり単純にできます:
@@ -105,6 +105,6 @@ computed: {
}
```
-### コンポーネントはまだローカルステートを持つことできる
+## コンポーネントはまだローカルステートを持つことできる
Vuex を使うということは、**全て**の状態を Vuex の中に置くべき、というわけではありません。多くの状態を Vuex に置くことで、状態の変更がさらに明示的、デバッグ可能になりますが、ときにはコードを冗長でまわりくどいものにします。状態の一部がひとつのコンポーネントだけに属している場合は、それをローカルの状態として残しておくとよいでしょう。あなたは、トレードオフを考慮した上で、あなたのアプリの開発ニーズに合った決定をすべきです。
diff --git a/docs/ja/guide/strict.md b/docs/ja/guide/strict.md
index 2e0f8f09c..185537047 100644
--- a/docs/ja/guide/strict.md
+++ b/docs/ja/guide/strict.md
@@ -11,7 +11,7 @@ const store = new Vuex.Store({
厳格モードでは Vuex の状態がミューテーションハンドラの外部で変更されたら、エラーを投げるようになります。これで全ての状態変更がデバッギングツールで明示的に追跡できることが保証されます。
-### 開発環境 vs 本番環境
+## 開発環境 vs 本番環境
**本番環境で厳格モードを有効にしてデプロイしてはいけません!** 厳格モードでは不適切なミューテーションを検出するためにステートツリーに対して深い監視を実行します。パフォーマンスコストを回避するために本番環境では無効にしてください。
diff --git a/docs/ja/guide/testing.md b/docs/ja/guide/testing.md
index 3f106c3fe..a9e2d7d01 100644
--- a/docs/ja/guide/testing.md
+++ b/docs/ja/guide/testing.md
@@ -4,7 +4,7 @@
私たちが Vuex でユニットテストしたい主な部分はミューテーションとアクションです。
-### ミューテーションのテスト
+## ミューテーションのテスト
ミューテーションは完全に引数に依存しているだけの関数であるため、テストするのがとても簡単です。効果的なやり方として、もし ES2015 のモジュールを使っていて `store.js` ファイルの中にミューテーションがあるなら、デフォルトエクスポートに加えて、名前付きエクスポートでミューテーションをエクスポートできます。
@@ -49,7 +49,7 @@ describe('mutations', () => {
})
```
-### アクションのテスト
+## アクションのテスト
アクションは外部の API を呼び出す可能性があるため、ミューテーションのテストよりも少し注意が必要です。アクションをテストするとき、通常、いくつかの段階でモックを作る必要があります。例えば API 呼び出しをサービスとして抽象化し、そしてテストの内部ではそのサービスをモックにすることができます。簡単に依存関係をモック化するために、webpack と [inject-loader](https://github.com/plasticine/inject-loader) を使ってテストファイルをバンドルすることができます。
@@ -144,7 +144,7 @@ describe('actions', () => {
})
```
-### ゲッターのテスト
+## ゲッターのテスト
もしゲッターが複雑な計算を行っているならば、テストコードを書く価値があります。ゲッターはミューテーションと同様の理由でテストしやすいです。
@@ -191,11 +191,11 @@ describe('getters', () => {
})
```
-### テストの実行
+## テストの実行
ミューテーションやアクションが適切に書かれている場合は、適切にモック化された後、テストコードはブラウザの API に直接依存関係を持つことはないでしょう。したがって、単純に webpack でテストをバンドルでき、それを直接 Node で実行できます。別の方法として、本当のブラウザでテストを実行するためには `mocha-loader` または Karma + `karma-webpack` を使用できます。
-#### Node での実行
+### Node での実行
以下のような webpack の設定を作成します([`.babelrc`](https://babeljs.io/docs/usage/babelrc/) もあわせて使います):
@@ -226,13 +226,13 @@ webpack
mocha test-bundle.js
```
-#### ブラウザでの実行
+### ブラウザでの実行
1. `mocha-loader` をインストールする
2. 上記 webpack 設定から `entry` を `'mocha-loader!babel-loader!./test.js'` に変更する
3. 設定を使用して `webpack-dev-server` を開始する
4. ブラウザで `localhost:8080/webpack-dev-server/test-bundle` を開く
-#### Karma + karma-webpack を使ったブラウザでの実行
+### Karma + karma-webpack を使ったブラウザでの実行
[vue-loader ドキュメント](https://vue-loader.vuejs.org/ja/workflow/testing.html) 内のセットアップ方法を参考にしてください。
diff --git a/docs/ja/installation.md b/docs/ja/installation.md
index 24e23c9da..8730ac728 100644
--- a/docs/ja/installation.md
+++ b/docs/ja/installation.md
@@ -1,6 +1,6 @@
# インストール
-### 直接ダウンロードする / CDN
+## 直接ダウンロードする / CDN
[https://unpkg.com/vuex](https://unpkg.com/vuex)
@@ -15,13 +15,13 @@ Vue のあとで `vuex` を取り込むと自動的に Vuex が導入されま
```
-### NPM
+## NPM
``` bash
npm install vuex --save
```
-### Yarn
+## Yarn
``` bash
yarn add vuex
@@ -38,7 +38,7 @@ Vue.use(Vuex)
グローバルなスクリプトタグを利用する場合にはこのようにする必要はありません。
-### Promise
+## Promise
Vuex は [Promise (プロミス)](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Using_promises) を必要とします。ブラウザで Promise が実装されていない(例 IE)場合は、[es6-promise](https://github.com/stefanpenner/es6-promise) のようなポリフィルライブラリを使用できます。
@@ -63,7 +63,7 @@ yarn add es6-promise # Yarn
import 'es6-promise/auto'
```
-### 開発版ビルド
+## 開発版ビルド
最新の開発版ビルドを利用したい場合には、 Github から直接クローンし `vuex` を自身でビルドする必要があります。
diff --git a/docs/ptbr/README.md b/docs/ptbr/README.md
index 945ff0424..dbc9d40c6 100644
--- a/docs/ptbr/README.md
+++ b/docs/ptbr/README.md
@@ -1,12 +1,16 @@
# O que é Vuex?
+::: tip NOTE
+Esta documentação é para o Vuex 3, que funciona com Vue 2. Se você está procurando a documentação para o Vuex 4, que funciona com Vue 3, [por favor, confira aqui](https://next.vuex.vuejs.org/ptbr/).
+:::
+
-O Vuex é um **padrão de gerenciamento de estado + biblioteca** para aplicativos Vue.js. Ele serve como um _store_ centralizado para todos os componentes em uma aplicação, com regras garantindo que o estado só possa ser mutado de forma previsível. Ele também se integra com a extensão oficial [Vue devtools](https://github.com/vuejs/vue-devtools) para fornecer recursos avançados sem configurações adicionais, como depuração viajando pelo histórico de estado (_time travel_) e exportação/importação de registros de estado em determinado momento.
+O Vuex é um **padrão de gerenciamento de estado + biblioteca** para aplicações Vue.js. Ele serve como um _store_ centralizado para todos os componentes em uma aplicação, com regras garantindo que o estado só possa ser mutado de forma previsível. Ele também se integra com a extensão oficial [Vue devtools](https://github.com/vuejs/vue-devtools) para fornecer recursos avançados sem configurações adicionais, como depuração viajando pelo histórico de estado (_time travel_) e exportação/importação de registros de estado em determinado momento.
### O que é um "Padrão de Gerenciamento do Estado"?
-Vamos começar com um aplicativo simples de contador Vue:
+Vamos começar com uma aplicação simples de contador Vue:
``` js
new Vue({
@@ -29,9 +33,9 @@ new Vue({
})
```
-É um aplicativo independente com as seguintes partes:
+É uma aplicação independente com as seguintes partes:
-- O **estado** (_state_), que é a fonte da verdade que direciona nosso aplicativo;
+- O **estado** (_state_), que é a fonte da verdade que direciona nossa aplicação;
- A **_view_**, que é apenas um mapeamento declarativo do **estado**;
- As **ações** (_actions_), que são as possíveis maneiras pelas quais o estado pode mudar em reação às interações dos usuários da **_view_**.
@@ -62,6 +66,6 @@ Se você quiser aprender Vuex de um modo interativo, você pode conferir esse cu
Embora o Vuex nos ajude a lidar com o gerenciamento de estado compartilhado, ele também vem com o custo de mais conceitos e códigos repetitivos. É uma escolha de prós e contras entre produtividade de curto e longo prazo
-Se você nunca construiu um SPA em grande escala e for direto para o Vuex, ele pode parecer detalhado e desanimador. Isso é perfeitamente normal - se o seu aplicativo é simples, você provavelmente ficará bem sem o Vuex. Um simples [store pattern](https://br.vuejs.org/v2/guide/state-management.html#Gerenciamento-de-Estado-do-Zero) pode ser tudo que você precisa. Mas, se você está criando um SPA de médio a grande porte, é provável que tenha encontrado situações que fazem você pensar em como lidar melhor com o estado fora de seus componentes do Vue, e o Vuex será o próximo passo natural para você. Há uma boa citação de Dan Abramov, o autor do Redux:
+Se você nunca construiu um SPA em grande escala e for direto para o Vuex, ele pode parecer detalhado e desanimador. Isso é perfeitamente normal - se a sua aplicação é simples, você provavelmente ficará bem sem o Vuex. Um simples [store pattern](https://br.vuejs.org/v2/guide/state-management.html#Gerenciamento-de-Estado-do-Zero) pode ser tudo que você precisa. Mas, se você está criando um SPA de médio a grande porte, é provável que tenha encontrado situações que fazem você pensar em como lidar melhor com o estado fora de seus componentes do Vue, e o Vuex será o próximo passo natural para você. Há uma boa citação de Dan Abramov, o autor do Redux:
> As bibliotecas _Flux_ são como óculos: você saberá quando precisar delas.
diff --git a/docs/ptbr/api/README.md b/docs/ptbr/api/README.md
index 3840a5104..9d5366d89 100644
--- a/docs/ptbr/api/README.md
+++ b/docs/ptbr/api/README.md
@@ -71,7 +71,7 @@ const store = new Vuex.Store({ ...options })
rootGetters // todos os getters
```
- Os _getters_ registrados estão expostos em _store.getters_.
+ Os _getters_ registrados estão expostos em `store.getters`.
[Detalhes](../guide/getters.md)
@@ -95,7 +95,7 @@ const store = new Vuex.Store({ ...options })
}
```
- Cada módulo pode conter `estado` e `mutações` semelhantes às opções raiz. O estado de um módulo será anexado ao estado da raiz do _store_ usando a chave do módulo. As mutações e _getters_ de um módulo receberão apenas o estado local do módulo como o 1º argumento em vez do estado da raiz e as ações do módulo _context.state_ também apontarão para o estado local.
+ Cada módulo pode conter `estado` e `mutações` semelhantes às opções raiz. O estado de um módulo será anexado ao estado da raiz do _store_ usando a chave do módulo. As mutações e _getters_ de um módulo receberão apenas o estado local do módulo como o 1º argumento em vez do estado da raiz e as ações do módulo `context.state` também apontarão para o estado local.
[Detalhes](../guide/modules.md)
@@ -103,7 +103,7 @@ const store = new Vuex.Store({ ...options })
- type: `Array`
- Um _Array_ de funções de plug-in a serem aplicadas no _store_. O plug-in simplesmente recebe o _store_ como o único argumento e pode ouvir mutações (para persistência de dados de saída, registro ou depuração) ou mutações de despacho (para dados de entrada, por exemplo, websockets ou _observables_).
+ Um _Array_ de funções de _plugin_ a serem aplicadas no _store_. O _plugin_ simplesmente recebe o _store_ como o único argumento e pode ouvir mutações (para persistência de dados de saída, registro ou depuração) ou mutações de despacho (para dados de entrada, por exemplo, websockets ou _observables_).
[Detalhes](../guide/plugins.md)
@@ -120,7 +120,7 @@ const store = new Vuex.Store({ ...options })
- type: `boolean`
- Ative ou desative as ferramentas de desenvolvedor para uma determinada instância vuex. Passar _false_ à instância diz ao _store_ Vuex para não se integrar ao _devtools_. Útil para quando se tem vários _stores_ em uma _single page_.
+ Ative ou desative as ferramentas de desenvolvedor para uma determinada instância vuex. Passar `false` à instância diz ao _store_ Vuex para não se integrar ao _devtools_. Útil para quando se tem vários _stores_ em uma _single_ _page_.
``` js
{
@@ -149,14 +149,14 @@ const store = new Vuex.Store({ ...options })
- `commit(type: string, payload?: any, options?: Object)`
- `commit(mutation: Object, options?: Object)`
- Confirma (ou faz um _Commit_ de) uma mutação. _options_ pode ter _root: true_ que permite confirmar mutações da raiz em [módulos namespaced](../guide/modules.md#namespacing). [Detalhes](../guide/mutations.md)
+ Confirma (ou faz um _Commit_ de) uma mutação. _options_ pode ter `root: true` que permite confirmar mutações da raiz em [módulos namespaced](../guide/modules.md#namespacing). [Detalhes](../guide/mutations.md)
### dispatch
- `dispatch(type: string, payload?: any, options?: Object): Promise`
- `dispatch(action: Object, options?: Object): Promise`
- Despacha uma ação. _options_ pode ter _root: true_ que permite despachar ações para raiz em [módulos namespaced](../guide/modules.md#namespacing). Retorna um _Promise_ que resolve todos os manipuladores de ação acionados. [Detalhes](../guide/actions.md)
+ Despacha uma ação. _options_ pode ter `root: true` que permite despachar ações para raiz em [módulos namespaced](../guide/modules.md#namespacing). Retorna um _Promise_ que resolve todos os manipuladores de ação acionados. [Detalhes](../guide/actions.md)
### replaceState
@@ -229,7 +229,7 @@ const store = new Vuex.Store({ ...options })
Registra um módulo dinâmico. [Detalhes](../guide/modules.md#registro-de-modulo-dinamico)
- _options_ can have _preserveState: true_ que permite preservar o estado anterior. Útil com renderização do lado do servidor (_server-side-rendering_).
+ _options_ can have `preserveState: true` que permite preservar o estado anterior. Útil com renderização do lado do servidor (_server-side-rendering_).
### unregisterModule
@@ -287,4 +287,4 @@ const store = new Vuex.Store({ ...options })
- `createNamespacedHelpers(namespace: string): Object`
- Cria um componente _namespaced_ dos métodos auxiliares. O objeto retornado possui _mapState_, _mapGetters_, _mapActions_ e _mapMutations_, que estão conectados com o dado _namespace_. [Detalhes](../guide/modules.md#usando-metodos-auxiliares-com-namespace)
+ Cria um componente _namespaced_ dos métodos auxiliares. O objeto retornado possui `mapState`, `mapGetters`, `mapActions` e `mapMutations`, que estão conectados com o dado _namespace_. [Detalhes](../guide/modules.md#usando-metodos-auxiliares-com-namespace)
diff --git a/docs/ptbr/guide/README.md b/docs/ptbr/guide/README.md
index c4f3e4756..2d15f679d 100644
--- a/docs/ptbr/guide/README.md
+++ b/docs/ptbr/guide/README.md
@@ -31,7 +31,7 @@ const store = new Vuex.Store({
})
```
-Agora, você pode acessar o objeto de estado como _store.state_ e acionar uma mudança de estado com o método _store.commit_:
+Agora, você pode acessar o objeto de estado como `store.state` e acionar uma mudança de estado com o método `store.commit`:
``` js
store.commit('increment')
@@ -39,10 +39,10 @@ store.commit('increment')
console.log(store.state.count) // -> 1
```
-Novamente, a razão pela qual estamos confirmando (ou fazendo _commit_ de) uma mutação em vez de mudar _store.state.count_ diretamente, é porque queremos rastreá-la explicitamente. Esta convenção simples torna sua intenção mais explícita, de modo que você possa ter melhores argumetos sobre as mudanças de estado em seu aplicativo ao ler o código. Além disso, isso nos dá a oportunidade de implementar ferramentas que podem registrar cada mutação, capturar momentos do estado ou mesmo realizar depuração viajando pelo histórico de estado (_time travel_).
+Novamente, a razão pela qual estamos confirmando (ou fazendo _commit_ de) uma mutação em vez de mudar `store.state.count` diretamente, é porque queremos rastreá-la explicitamente. Esta convenção simples torna sua intenção mais explícita, de modo que você possa ter melhores argumetos sobre as mudanças de estado em sua aplicação ao ler o código. Além disso, isso nos dá a oportunidade de implementar ferramentas que podem registrar cada mutação, capturar momentos do estado ou mesmo realizar depuração viajando pelo histórico de estado (_time travel_).
Usar o estado do _store_ em um componente simplesmente envolve o retorno do estado dentro de um dado computado, porque o estado do _store_ é reativo. Acionar alterações simplesmente significa confirmar (ou fazer _commit_ de) mutações nos métodos dos componentes.
-Aqui está um exemplo do [aplicativo de contador do Vuex mais básico](https://jsfiddle.net/n9jmu5v7/1269/).
+Aqui está um exemplo da [aplicação de contador do Vuex mais básico](https://jsfiddle.net/n9jmu5v7/1269/).
Em seguida, discutiremos cada conceito chave em mais detalhes, começando com [Estado](state.md).
diff --git a/docs/ptbr/guide/actions.md b/docs/ptbr/guide/actions.md
index 506d4d84c..ead8f153b 100644
--- a/docs/ptbr/guide/actions.md
+++ b/docs/ptbr/guide/actions.md
@@ -27,7 +27,7 @@ const store = new Vuex.Store({
})
```
-Os manipuladores de ação recebem um objeto _context_ que expõe o mesmo conjunto de métodos/propriedades na instância do _store_, para que você possa chamar _context.commit_ para confirmar uma mutação ou acessar o estado e os _getters_ através do _context.state_ e do _context.getters_. Veremos por que esse objeto _context_ não é a própria instância do _store_ quando apresentarmos [Módulos](modules.md) mais tarde.
+Os manipuladores de ação recebem um objeto _context_ que expõe o mesmo conjunto de métodos/propriedades na instância do _store_, para que você possa chamar `context.commit` para confirmar uma mutação ou acessar o estado e os _getters_ através do `context.state` e do `context.getters`. Veremos por que esse objeto _context_ não é a própria instância do _store_ quando apresentarmos [Módulos](modules.md) mais tarde.
Na prática, muitas vezes usamos ES2015 [desestruturação de argumentos](https://github.com/lukehoban/es6features#destructuring) para simplificar um pouco o código (especialmente quando precisamos usar _commit_ várias vezes):
@@ -41,7 +41,7 @@ actions: {
### Ações de Despacho
-As ações são acionadas com o método _store.dispatch_:
+As ações são acionadas com o método `store.dispatch`:
``` js
store.dispatch('increment')
@@ -100,7 +100,7 @@ Observe que estamos realizando um fluxo de operações assíncronas, e gravando
### Ações de Despacho em Componentes
-Você pode despachar ações em componentes com `this.$store.dispatch('xxx')`, ou usar o auxiliar _mapActions_ que mapeia métodos do componente para chamadas do _store.dispatch_ (esta ação requer injeção do _store_ na instância raiz):
+Você pode despachar ações em componentes com `this.$store.dispatch('xxx')`, ou usar o auxiliar _mapActions_ que mapeia métodos do componente para chamadas do `store.dispatch` (esta ação requer injeção do _store_ na instância raiz):
``` js
import { mapActions } from 'vuex'
@@ -125,7 +125,7 @@ export default {
As ações geralmente são assíncronas, então como sabemos quando uma ação é realizada? E mais importante, como podemos compor ações múltiplas em conjunto para lidar com fluxos assíncronos mais complexos?
-A primeira coisa a saber é que o _store.dispatch_ pode manipular o _Promise_ retornado pelo manipulador de ação acionado e também retorna _Promise_:
+A primeira coisa a saber é que o `store.dispatch` pode manipular o _Promise_ retornado pelo manipulador de ação acionado e também retorna _Promise_:
``` js
actions: {
@@ -177,4 +177,4 @@ actions: {
}
```
-> É possível para um _store.dispatch_ desencadear vários manipuladores de ação em diferentes módulos. Neste caso, o valor retornado será um _Promise_ que resolve quando todos os manipuladores desencadeados foram resolvidos.
+> É possível para um `store.dispatch` desencadear vários manipuladores de ação em diferentes módulos. Neste caso, o valor retornado será um _Promise_ que resolve quando todos os manipuladores desencadeados foram resolvidos.
diff --git a/docs/ptbr/guide/getters.md b/docs/ptbr/guide/getters.md
index bc0922f4d..1d4c5fde2 100644
--- a/docs/ptbr/guide/getters.md
+++ b/docs/ptbr/guide/getters.md
@@ -36,13 +36,13 @@ const store = new Vuex.Store({
### Acesso Estilo-Propriedade
-Os _getters_ serão expostos no objeto _store.getters_ e você acessa valores como propriedades:
+Os _getters_ serão expostos no objeto `store.getters` e você acessa valores como propriedades:
``` js
store.getters.doneTodos // -> [{ id: 1, text: '...', done: true }]
```
-Os _getters_ também receberão outros _getters_ como o 2º argumento:
+Os _getters_ também receberão outros `getters` como o 2º argumento:
``` js
getters: {
diff --git a/docs/ptbr/guide/modules.md b/docs/ptbr/guide/modules.md
index 269d64acc..3544450f1 100644
--- a/docs/ptbr/guide/modules.md
+++ b/docs/ptbr/guide/modules.md
@@ -2,7 +2,7 @@
-Devido ao uso de uma única árvore de estado, todo o estado de nossa aplicação está contido dentro de um grande objeto. No entanto, à medida que nosso aplicativo cresce em escala, o _store_ pode ficar realmente inchado.
+Devido ao uso de uma única árvore de estado, todo o estado de nossa aplicação está contido dentro de um grande objeto. No entanto, à medida que nossa aplicação cresce em escala, o _store_ pode ficar realmente inchado.
Para ajudar com isso, o Vuex nos permite dividir nosso _store_ em **módulos**. Cada módulo pode conter seu próprio estado, mutações, ações, _getters_ e até módulos aninhados - é todo o complexo caminho abaixo:
@@ -55,7 +55,7 @@ const moduleA = {
}
```
-Da mesma forma, dentro das ações do módulo, _context.state_ irá expor o estado local, e o estado raiz será exposto como _context.rootState_:
+Da mesma forma, dentro das ações do módulo, `context.state` irá expor o estado local, e o estado raiz será exposto como `context.rootState`:
``` js
const moduleA = {
@@ -87,7 +87,7 @@ const moduleA = {
Por padrão, ações, mutações e _getters_ dentro dos módulos ainda são registrados sob o **_namespace_ global** - isso permite que vários módulos reajam ao mesmo tipo de ação/mutação.
-Se você quer que seus módulos sejam mais independentes ou reutilizáveis, você pode marcá-los como _namespaced_ com _namespaced: true_. Quando o módulo é registrado, todos os _getters_, ações e mutações serão automaticamente _namespaced_ com base no caminho no qual o módulo está registrado. Por exemplo:
+Se você quer que seus módulos sejam mais independentes ou reutilizáveis, você pode marcá-los como _namespaced_ com `namespaced: true`. Quando o módulo é registrado, todos os _getters_, ações e mutações serão automaticamente _namespaced_ com base no caminho no qual o módulo está registrado. Por exemplo:
``` js
const store = new Vuex.Store({
@@ -136,7 +136,7 @@ Os _getters_ e as ações _namespaced_ receberão _getters_, _dispatch_ e _commi
#### Acessando Recursos Globais em Módulos Namespaced
-Se você quiser usar estado global e _getters_, _rootState_ e _rootGetters_ são passados como o 3º e 4º argumentos para funções _getter_, e também expostos como propriedades no objeto _context_ passado para funções de ação.
+Se você quiser usar estado global e _getters_, `rootState` e `rootGetters` são passados como o 3º e 4º argumentos para funções _getter_, e também expostos como propriedades no objeto _context_ passado para funções de ação.
Para despachar ações confirmar (ou fazer um _commit_ de) mutações no _namespace_ global, passe `{root: true}` como o 3º argumento para _dispatch_ e _commit_.
@@ -176,7 +176,7 @@ modules: {
#### Registrar Ação Global em Módulos com Namespaces
-Se você quiser registrar ações globais em módulos com namespaces, você pode marcá-lo com _root: true_ e colocar a definição de ação na função _handler_. Por exemplo:
+Se você quiser registrar ações globais em módulos com namespaces, você pode marcá-lo com `root: true` e colocar a definição de ação na função _handler_. Por exemplo:
``` js
{
@@ -202,7 +202,7 @@ Se você quiser registrar ações globais em módulos com namespaces, você pode
#### Usando Métodos Auxiliares com Namespace
-Ao vincular um módulo com _namespace_ aos componentes com os auxiliares _mapState_, _mapGetters_, _mapActions_ e _mapMutations_, ele pode ficar um pouco verboso:
+Ao vincular um módulo com _namespace_ aos componentes com os auxiliares `mapState`, `mapGetters`, `mapActions` e `mapMutations`, ele pode ficar um pouco verboso:
``` js
computed: {
@@ -280,7 +280,7 @@ export function createPlugin (options = {}) {
### Registro de Módulo Dinâmico
-Você pode registrar um módulo **após** o _store_ ser criado com o método _store.registerModule_:
+Você pode registrar um módulo **após** o _store_ ser criado com o método `store.registerModule`:
``` js
// registra um módulo `myModule`
@@ -294,15 +294,15 @@ store.registerModule(['nested', 'myModule'], {
})
```
-Os estados do módulo serão expostos como _store.state.myModule_ e _store.state.nested.myModule_.
+Os estados do módulo serão expostos como `store.state.myModule` e `store.state.nested.myModule`.
-O registro de módulo dinâmico possibilita que outros plug-ins Vue aproveitem também o Vuex para gerenciamento de estado, anexando um módulo ao _store_ do aplicativo. Por exemplo, a biblioteca [`vuex-router-sync`](https://github.com/vuejs/vuex-router-sync) integra o vue-router com o vuex gerenciando o estado da rota do aplicativo em um módulo conectado dinamicamente.
+O registro de módulo dinâmico possibilita que outros _plugins_ Vue aproveitem também o Vuex para gerenciamento de estado, anexando um módulo ao _store_ da aplicação. Por exemplo, a biblioteca [`vuex-router-sync`](https://github.com/vuejs/vuex-router-sync) integra o vue-router com o vuex gerenciando o estado da rota da aplicação em um módulo conectado dinamicamente.
Você também pode remover um módulo dinamicamente registrado com o `store.unregisterModule(moduleName)`. Note que você não pode remover módulos estáticos (declarados na criação do _store_) com este método.
#### Preservando o estado
-É bem provável que você queira preservar o estado anterior ao registrar um novo módulo, como preservar o estado de um aplicativo Renderizado no Lado do Servidor (_Server_ _Side_ _Rendered_). Você pode fazer isso com a opção `preserveState`:`store.registerModule('a', module, {preserveState: true})`
+É bem provável que você queira preservar o estado anterior ao registrar um novo módulo, como preservar o estado de uma aplicação Renderizada no Lado do Servidor (_Server_ _Side_ _Rendered_). Você pode fazer isso com a opção `preserveState`:`store.registerModule('a', module, {preserveState: true})`
Quando você informa `preserveState: true`, o módulo é registrado, as ações, mutações e _getters_ são incluídos no _store_, mas o estado não. É assumido que estado da sua _store_ já contém um estado para aquele módulo e você não quer sobrescrevê-lo.
@@ -310,7 +310,7 @@ Quando você informa `preserveState: true`, o módulo é registrado, as ações,
Às vezes, podemos precisar criar várias instâncias de um módulo, por exemplo:
-- Criando multiplos _stores_ que usam o mesmo módulo (e.g. Para [evitar Singletons com informações de estado no SSR](https://ssr.vuejs.org/en/structure.html#avoid-stateful-singletons) quando a opção _runInNewContext_ é _false_ ou `'_once_'`);
+- Criando multiplos _stores_ que usam o mesmo módulo (e.g. Para [evitar Singletons com informações de estado no SSR](https://ssr.vuejs.org/en/structure.html#avoid-stateful-singletons) quando a opção `runInNewContext` é `false` ou `'_once_'`);
- Registrar o mesmo módulo várias vezes no mesmo _store_.
Se usarmos um objeto simples para declarar o estado do módulo, esse objeto de estado será compartilhado por referência e causará poluição entre estados de _store_/módulo quando ele sofrer uma mutação.
diff --git a/docs/ptbr/guide/mutations.md b/docs/ptbr/guide/mutations.md
index 924ca4a38..a8d4dabd9 100644
--- a/docs/ptbr/guide/mutations.md
+++ b/docs/ptbr/guide/mutations.md
@@ -18,7 +18,7 @@ const store = new Vuex.Store({
})
```
-Você não pode chamar diretamente um manipulador de mutação. Pense nisso mais como registro de evento: "Quando uma mutação com o tipo _increment_ é acionada, chame este manipulador." Para invocar um manipulador de mutação, você precisa chamar _store.commit_ com seu tipo:
+Você não pode chamar diretamente um manipulador de mutação. Pense nisso mais como registro de evento: "Quando uma mutação com o tipo _increment_ é acionada, chame este manipulador." Para invocar um manipulador de mutação, você precisa chamar `store.commit` com seu tipo:
``` js
store.commit('increment')
@@ -26,7 +26,7 @@ store.commit('increment')
### Commit com Payload
-Você pode passar um argumento adicional para o _store.commit_, que é chamado de **_payload_** para a mutação:
+Você pode passar um argumento adicional para o `store.commit`, que é chamado de **_payload_** para a mutação:
``` js
// ...
@@ -96,7 +96,7 @@ Como o estado de um _store_ Vuex é reativado pelo Vue, quando alteramos o estad
### Usando Constantes para Tipos de Mutação
-É um padrão comumente visto usar constantes para tipos de mutação em várias implementações do _Flux_. Isso permite que o código aproveite as ferramentas como os _linters_, e colocar todas as constantes em um único arquivo permite que seus colaboradores tenham uma visão geral das mutações possíveis em todo o aplicativo:
+É um padrão comumente visto usar constantes para tipos de mutação em várias implementações do _Flux_. Isso permite que o código aproveite as ferramentas como os _linters_, e colocar todas as constantes em um único arquivo permite que seus colaboradores tenham uma visão geral das mutações possíveis em toda a aplicação:
``` js
// mutation-types.js
@@ -136,11 +136,11 @@ mutations: {
}
```
-Agora imagine que estamos depurando o aplicativo e observando os logs de mutação do devtool. Para cada mutação registrada, o devtool precisará capturar os momentos "antes" e "depois" do estado. No entanto, o _callback_ assíncrono dentro da mutação de exemplo acima torna isso impossível: o _callback_ ainda não é chamado quando a mutação é confirmada (ou o _commit_ da mutação é feito) e não há como o devtool saber quando o _callback_ será realmente chamado - qualquer mutação de estado executada no _callback_ é essencialmente impossível de rastrear!
+Agora imagine que estamos depurando a aplicação e observando os logs de mutação do devtool. Para cada mutação registrada, o devtool precisará capturar os momentos "antes" e "depois" do estado. No entanto, o _callback_ assíncrono dentro da mutação de exemplo acima torna isso impossível: o _callback_ ainda não é chamado quando a mutação é confirmada (ou o _commit_ da mutação é feito) e não há como o devtool saber quando o _callback_ será realmente chamado - qualquer mutação de estado executada no _callback_ é essencialmente impossível de rastrear!
### Confirmando (ou fazendo Commits de) Mutações em Componentes
-Você pode confirmar (ou fazer _commit_ de) mutações em componentes com `this.$store.commit('xxx')`, ou use o auxiliar `mapMutations` que mapeia métodos de componentes para chamadas _store.commit_ (requer injeção _store_ raiz):
+Você pode confirmar (ou fazer _commit_ de) mutações em componentes com `this.$store.commit('xxx')`, ou use o auxiliar `mapMutations` que mapeia métodos de componentes para chamadas `store.commit` (requer injeção _store_ raiz):
``` js
import { mapMutations } from 'vuex'
diff --git a/docs/ptbr/guide/plugins.md b/docs/ptbr/guide/plugins.md
index b9c0f3925..d9204d0ee 100644
--- a/docs/ptbr/guide/plugins.md
+++ b/docs/ptbr/guide/plugins.md
@@ -83,7 +83,7 @@ const store = new Vuex.Store({
})
```
-O _plugin_ vai ser usado por padrão. Para produção, você vai precisar do [DefinePlugin](https://webpack.js.org/plugins/define-plugin/) para webpack ou [envify](https://github.com/hughsk/envify) para Browserify para converter o valor do `process.env.NODE_ENV !== 'production'` para _false_ no _build_ final.
+O _plugin_ vai ser usado por padrão. Para produção, você vai precisar do [DefinePlugin](https://webpack.js.org/plugins/define-plugin/) para webpack ou [envify](https://github.com/hughsk/envify) para Browserify para converter o valor do `process.env.NODE_ENV !== 'production'` para `false` no _build_ final.
### Plugin de Log Integrado
diff --git a/docs/ptbr/guide/state.md b/docs/ptbr/guide/state.md
index 70a7f4d6a..426c8876d 100644
--- a/docs/ptbr/guide/state.md
+++ b/docs/ptbr/guide/state.md
@@ -4,7 +4,7 @@
-O Vuex usa uma **árvore única de estado** - ou seja, esse único objeto contém todo o estado do seu nível de aplicação e serve como a "única fonte da verdade". Isso também significa que você terá apenas um _store_ para cada aplicativo. Uma árvore única de estado facilita a localização de uma parte específica do estado, e permite capturar facilmente momentos do estado atual do aplicativo para fins de depuração.
+O Vuex usa uma **árvore única de estado** - ou seja, esse único objeto contém todo o estado do seu nível de aplicação e serve como a "única fonte da verdade". Isso também significa que você terá apenas um _store_ para cada aplicação. Uma árvore única de estado facilita a localização de uma parte específica do estado, e permite capturar facilmente momentos do estado atual da aplicação para fins de depuração.
A árvore única de estado não entra em conflito com a modularidade - em capítulos posteriores, discutiremos como dividir seu estado e mutações em sub-módulos.
@@ -26,9 +26,9 @@ const Counter = {
}
```
-Sempre que o _store.state.count_ muda, fará com que o dado computado seja reavaliado e ative as atualizações de _DOM_ associadas.
+Sempre que o `store.state.count` muda, fará com que o dado computado seja reavaliado e ative as atualizações de DOM associadas.
-No entanto, esse padrão faz com que o componente dependa do _store_ _singleton_ global. Ao usar um sistema de módulo, ele precisa importar o _store_ em todos os componentes que usam o estado do _store_ e também requer _mocking_ ao testar o componente.
+No entanto, esse padrão faz com que o componente dependa do _store_ _singleton_ global. Ao usar um sistema de módulo, ele precisa importar o _store_ em todos os componentes que usam o estado do _store_ e também requer requer dados fictícios (ou _mocking_) ao testar o componente.
O Vuex fornece um mecanismo para "injetar" o _store_ em todos os componentes filho do componente raiz com a opção _store_ (habilitada por `Vue.use(Vuex)`):
@@ -87,7 +87,7 @@ export default {
}
```
-Também podemos passar um _Array_ de _Strings_ para _mapState_ quando o nome de um dado computado mapeado é o mesmo que um nome de árvore secundária do estado.
+Também podemos passar um _Array_ de _Strings_ para `mapState` quando o nome de um dado computado mapeado é o mesmo que um nome de árvore secundária do estado.
``` js
computed: mapState([
diff --git a/docs/ptbr/guide/strict.md b/docs/ptbr/guide/strict.md
index e07c3f653..0595177db 100644
--- a/docs/ptbr/guide/strict.md
+++ b/docs/ptbr/guide/strict.md
@@ -1,6 +1,6 @@
# Modo Estrito
-Para habilitar o modo estrito, simplesmente passe _strict: true_ ao criar um _store_ Vuex:
+Para habilitar o modo estrito, simplesmente passe `strict: true` ao criar um _store_ Vuex:
``` js
const store = new Vuex.Store({
diff --git a/docs/ptbr/guide/structure.md b/docs/ptbr/guide/structure.md
index b5cac0b86..4cbf4d4c1 100644
--- a/docs/ptbr/guide/structure.md
+++ b/docs/ptbr/guide/structure.md
@@ -2,7 +2,7 @@
O Vuex não restringe realmente como você estrutura seu código. Em vez disso, ele impõe um conjunto de princípios de alto nível:
-1. O estado do nível do aplicativo é centralizado no _store_.
+1. O estado do nível da aplicação é centralizado no _store_.
2. A única maneira de mudar o estado é confirmando (ou fazendo _commit_ das) **mutações**, que são transações síncronas
@@ -10,7 +10,7 @@ O Vuex não restringe realmente como você estrutura seu código. Em vez disso,
Enquanto você seguir estas regras, depende de você como estruturar seu projeto. Se o arquivo do seu _store_ for muito grande, basta começar a dividir as ações, mutações e _getters_ em arquivos separados.
-Para qualquer aplicativo não trivial, provavelmente precisaremos aproveitar os módulos. Aqui está um exemplo de estrutura de projeto:
+Para qualquer aplicação mais complexa, provavelmente precisaremos aproveitar os módulos. Aqui está um exemplo de estrutura de projeto:
``` bash
├── index.html
diff --git a/docs/ru/README.md b/docs/ru/README.md
index 29dbc3958..1183d95f8 100644
--- a/docs/ru/README.md
+++ b/docs/ru/README.md
@@ -1,10 +1,14 @@
# Что такое Vuex?
+:::tip Примечание
+Эта документация для Vuex 3, который работает с Vue 2. Документация для Vuex 4, который работает с Vue 3 [находится здесь](https://next.vuex.vuejs.org/).
+:::
+
Vuex — **паттерн управления состоянием + библиотека** для приложений на Vue.js. Он служит централизованным хранилищем данных для всех компонентов приложения с правилами, гарантирующими, что состояние может быть изменено только предсказуемым образом. Vuex интегрируется с официальным расширением [vue-devtools](https://github.com/vuejs/vue-devtools), предоставляя «из коробки» такие продвинутые возможности, как «машину времени» для отладки и экспорт/импорт слепков состояния данных.
-### Что такое «паттерн управления состоянием»?
+## Что такое «паттерн управления состоянием»?
Давайте начнём с простого приложения Vue, реализующего счётчик:
@@ -41,7 +45,7 @@ new Vue({
-Однако простота быстро исчезает, когда у нас появляется **нескольких компонентов, основывающихся на одном и том же состоянии**:
+Однако простота быстро исчезает, когда у нас появляется **несколько компонентов, основывающихся на одном и том же состоянии**:
* Несколько представлений могут зависеть от одной и той же части состояния приложения.
* Действия из разных представлений могут оказывать влияние на одни и те же части состояния приложения.
@@ -58,7 +62,7 @@ new Vue({

-### Когда следует использовать Vuex?
+## Когда следует использовать Vuex?
Vuex помогает управлять совместно используемым состоянием ценой привнесения новых концепций и вспомогательного кода. Компромисс, когда кратковременная продуктивность страдает на благо долгосрочной.
diff --git a/docs/ru/api/README.md b/docs/ru/api/README.md
index 6d6de240b..33f693883 100644
--- a/docs/ru/api/README.md
+++ b/docs/ru/api/README.md
@@ -176,13 +176,16 @@ const store = new Vuex.Store({ ...options });
* `subscribe(handler: Function, options?: Object): Function`
-Отслеживание вызова мутаций хранилища. Обработчик `handler` вызывается после каждой мутации и получает в качестве параметров дескриптор мутации и состояние после мутации:
+Отслеживание вызова мутаций хранилища. Обработчик `handler` вызывается после каждой мутации и получает в качестве параметров дескриптор мутации и состояние после мутации.
```js
-store.subscribe((mutation, state) => {
- console.log(mutation.type);
- console.log(mutation.payload);
-});
+const unsubscribe = store.subscribe((mutation, state) => {
+ console.log(mutation.type)
+ console.log(mutation.payload)
+})
+
+// для остановки отслеживания нужно вызвать unsubscribe
+unsubscribe()
```
По умолчанию, новый обработчик добавляется в конец цепочки, поэтому он будет выполняться после других обработчиков, добавленных раньше. Это поведение можно переопределить добавив `prepend: true` в `options`, что позволит добавлять обработчик в начало цепочки.
@@ -191,7 +194,7 @@ store.subscribe((mutation, state) => {
store.subscribe(handler, { prepend: true })
```
-Для прекращения отслеживания, необходимо вызвать возвращаемую методом функцию.
+Метод `subscribe` возвращает функцию `unsubscribe`, которую требуется вызывать когда отслеживание больше не требуется. Например, можно подписаться на модуль Vuex и прекращать отслеживание при удалении регистрации модуля. Или можно вызвать `subscribe` внутри компонента Vue, а позднее уничтожить компонент. В таких случаях, необходимо вручную останавливать отслеживание.
Чаще всего используется в плагинах. [Подробнее](../guide/plugins.md)
@@ -201,13 +204,18 @@ store.subscribe(handler, { prepend: true })
> Добавлено в версии 2.5.0
-Отслеживание вызова действий хранилища. Обработчик `handler` вызывается после каждого действия и получает в качестве параметров дескриптор действия и текущее состояние хранилища:
+Отслеживание вызова действий хранилища. Обработчик `handler` вызывается после каждого действия и получает в качестве параметров дескриптор действия и текущее состояние хранилища.
+
+Метод `subscribe` возвращает функцию `unsubscribe`, которую требуется вызывать когда отслеживание больше не требуется. Например, при удалении регистрации модуля Vuex или перед уничтожением компонента Vue.
```js
-store.subscribeAction((action, state) => {
- console.log(action.type);
- console.log(action.payload);
-});
+const unsubscribe = store.subscribeAction((action, state) => {
+ console.log(action.type)
+ console.log(action.payload)
+})
+
+// для остановки отслеживания нужно вызвать unsubscribe
+unsubscribe()
```
По умолчанию, новый обработчик добавляется в конец цепочки, поэтому он будет выполняться после других обработчиков, добавленных раньше. Это поведение можно переопределить добавив `prepend: true` в `options`, что позволит добавлять обработчик в начало цепочки.
@@ -216,7 +224,7 @@ store.subscribeAction((action, state) => {
store.subscribeAction(handler, { prepend: true })
```
-Для прекращения отслеживания, необходимо вызвать возвращаемую методом функцию.
+Метод `subscribe` возвращает функцию `unsubscribe`, которую требуется вызывать когда отслеживание больше не требуется. Например, можно подписаться на модуль Vuex и прекращать отслеживание при удалении регистрации модуля. Или можно вызвать `subscribe` внутри компонента Vue, а позднее уничтожить компонент. В таких случаях, необходимо вручную останавливать отслеживание.
> Добавлено в версии 3.1.0
@@ -237,7 +245,7 @@ store.subscribeAction({
С версии 3.4.0 в `subscribeAction` также можно указывать обработчик `error` для перехвата ошибки, выброшенной при выполнении действия. В качестве третьего аргумента функция получает объект `error`.
-``` js
+```js
store.subscribeAction({
error: (action, state, error) => {
console.log(`error action ${action.type}`)
diff --git a/docs/ru/guide/README.md b/docs/ru/guide/README.md
index 173771d3a..29bb97639 100644
--- a/docs/ru/guide/README.md
+++ b/docs/ru/guide/README.md
@@ -8,7 +8,7 @@
2. Нельзя напрямую изменять состояние хранилища. Единственный способ внести изменения — явно **вызвать мутацию**. Это гарантирует, что любое изменение состояния оставляет след и позволяет использовать инструментарий, чтобы лучше понимать ход работы приложения.
-### Простейшее хранилище
+## Простейшее хранилище
:::tip ЗАМЕЧАНИЕ
В примерах кода документации используется синтаксис ES2015. Если вы с ним ещё не знакомы, [сейчас самое время изучить](https://babeljs.io/docs/learn-es2015/)!
diff --git a/docs/ru/guide/actions.md b/docs/ru/guide/actions.md
index 3c75343c7..c55177e57 100644
--- a/docs/ru/guide/actions.md
+++ b/docs/ru/guide/actions.md
@@ -39,7 +39,7 @@ actions: {
}
```
-### Диспетчеризация действий
+## Диспетчеризация действий
Действия запускаются методом `store.dispatch`:
@@ -98,7 +98,7 @@ actions: {
Таким образом удаётся организовать поток асинхронных операций, записывая побочные эффекты действий в виде мутаций состояния.
-### Диспетчеризация действий в компонентах
+## Диспетчеризация действий в компонентах
Диспетчеризировать действия в компонентах можно при помощи `this.$store.dispatch('xxx')` или используя вспомогательную функцию `mapActions`, создающую локальные псевдонимы для действий в виде методов компонента (требуется наличие корневого `$store`):
@@ -121,7 +121,7 @@ export default {
};
```
-### Композиция действий
+## Композиция действий
Раз действия зачастую асинхронны, то как узнать, что действие уже завершилось? И, что важнее, как быть со связанными между собой действиями при организации более сложных асинхронных потоков?
diff --git a/docs/ru/guide/forms.md b/docs/ru/guide/forms.md
index 239c16ef2..70fb8f2d3 100644
--- a/docs/ru/guide/forms.md
+++ b/docs/ru/guide/forms.md
@@ -41,7 +41,7 @@ mutations: {
}
```
-### Двунаправленные вычисляемые свойства
+## Двунаправленные вычисляемые свойства
Заметно, что получившаяся выше запись — куда многословнее, чем используемая в связке `v-model` с локальным состоянием, да и некоторые полезные возможности `v-model` мы таким образом упускаем. В качестве альтернативы можно предложить использование двунаправленного вычисляемого свойства с сеттером:
diff --git a/docs/ru/guide/getters.md b/docs/ru/guide/getters.md
index b04f228d6..214bfc38a 100644
--- a/docs/ru/guide/getters.md
+++ b/docs/ru/guide/getters.md
@@ -34,7 +34,7 @@ const store = new Vuex.Store({
});
```
-### Стиль обращения как к свойствам
+## Стиль обращения как к свойствам
Геттеры доступны в объекте `store.getters`, и вы можете получить доступ к значениям как свойствам:
@@ -69,7 +69,7 @@ computed: {
Обратите внимание, что геттеры, доступ к которым выполняется как к свойствам, будут кэшироваться как часть системы реактивности Vue.
-### Стиль обращения как к методам
+## Стиль обращения как к методам
Можно также передавать аргументы геттерам, возвращая функцию. Это например пригодится, когда необходимо возвращать массив по указанному критерию:
@@ -88,7 +88,7 @@ store.getters.getTodoById(2); // -> { id: 2, text: '...', done: false }
Обратите внимание, что геттеры, доступ к которым выполняется как к методам, будут запускаться каждый раз при их вызове, а результаты не будут кэшироваться.
-### Вспомогательная функция `mapGetters`
+## Вспомогательная функция `mapGetters`
Функция `mapGetters` просто проксирует геттеры хранилища в локальные вычисляемые свойства компонента:
diff --git a/docs/ru/guide/modules.md b/docs/ru/guide/modules.md
index 5c8a79854..358eb7252 100644
--- a/docs/ru/guide/modules.md
+++ b/docs/ru/guide/modules.md
@@ -2,7 +2,7 @@
-Из-за использования единого дерева состояния, все глобальные данные приложения оказываются помещены в один большой объект. По мере роста приложения, хранилище может существенно раздуться.
+Благодаря использованию единого дерева состояния, все состояния приложения содержатся внутри одного большого объекта. Однако, по мере роста и масштабировании приложения, хранилище может существенно раздуться.
Чтобы помочь в этой беде, Vuex позволяет разделять хранилище на **модули**. Каждый модуль может содержать собственное состояние, мутации, действия, геттеры и даже встроенные подмодули — структура фрактальна:
@@ -31,7 +31,7 @@ store.state.a // -> состояние модуля `moduleA`
store.state.b // -> состояние модуля `moduleB`
```
-### Локальное состояние модулей
+## Локальное состояние модулей
Первым аргументом, который получает мутации и геттеры, будет **локальное состояние модуля**.
@@ -83,9 +83,9 @@ const moduleA = {
};
```
-### Пространства имён
+## Пространства имён
-По умолчанию действия, мутации и геттеры внутри модулей регистрируются в **глобальном пространстве имён** — это позволяет нескольким модулям реагировать на тот же тип мутаций/действий.
+Действия и мутации внутри модулей по умолчанию регистрируются в **глобальном пространстве имён** — это позволяет нескольким модулям реагировать на один и тот же тип действий/мутаций. Геттеры также по умолчанию регистрируются в глобальном пространстве имён. Однако, в настоящее время у этого нет функционального значения (так сделано во избежание кардинальных изменений). Поэтому следует быть осторожным, чтобы не определить два геттера с одинаковыми именами в разных модулях, что приведёт к ошибкам.
Если вы хотите сделать модули более самодостаточными и готовыми для переиспользования, вы можете создать его с собственным пространством имён, указав опцию `namespaced: true`. Когда модуль будет зарегистрирован, все его геттеры, действия и мутации будут автоматически связаны с этим пространством имён, основываясь на пути, по которому зарегистрирован модуль. Например:
@@ -134,7 +134,7 @@ const store = new Vuex.Store({
Геттеры и действия с собственным пространством имён будут получать свои локальные `getters`, `dispatch` и `commit`. Другими словами, вы можете использовать содержимое модуля без написания префиксов в том же модуле. Переключения между пространствами имён не влияет на код внутри модуля.
-#### Доступ к глобальному содержимому в модулях со своим пространством имён
+### Доступ к глобальному содержимому в модулях со своим пространством имён
Если вы хотите использовать глобальное состояние и геттеры, `rootState` и `rootGetters` передаются 3-м и 4-м аргументами в функции геттеров, а также как свойства в объекте `context`, передаваемом в функции действий.
@@ -176,7 +176,7 @@ modules: {
}
```
-#### Регистрация глобального действия в модуле с собственным пространством имён
+### Регистрация глобального действия в модуле с собственным пространством имён
Если вы хотите зарегистрировать глобальное действие в модуле с собственным пространством имён, вы можете пометить его с помощью `root: true` и поместить определение действия в функцию `handler`. Например:
@@ -202,7 +202,7 @@ modules: {
}
```
-#### Подключение с помощью вспомогательных функций к пространству имён
+### Подключение с помощью вспомогательных функций к пространству имён
Подключение модуля со своим пространством имён к компонентам с помощью вспомогательных функций `mapState`, `mapGetters`, `mapActions` и `mapMutations` это может выглядеть подобным образом:
@@ -268,7 +268,7 @@ export default {
};
```
-#### Уточнение для разработчиков плагинов
+### Уточнение для разработчиков плагинов
Вас может обеспокоить непредсказуемость пространства имён для ваших модулей, когда вы создаёте [плагин](plugins.md) с собственными модулями и возможностью пользователям добавлять их в хранилище Vuex. Ваши модули будут также помещены в пространство имён, если пользователи плагина добавляют ваши модули в модуль со своим пространством имён. Чтобы приспособиться к этой ситуации, вам может потребоваться получить значение пространства имён через настройки плагина:
@@ -284,7 +284,7 @@ export function createPlugin(options = {}) {
}
```
-### Динамическая регистрация модулей
+## Динамическая регистрация модулей
Вы можете зарегистрировать модуль уже и **после** того, как хранилище было создано, используя метод `store.registerModule`:
@@ -312,13 +312,13 @@ store.registerModule(['nested', 'myModule'], {
Обратите внимание, что можно проверить, зарегистрирован ли уже модуль с заданным именем с помощью метода `store.hasModule(moduleName)`.
-#### Сохранение состояния
+### Сохранение состояния
Вероятно, вы хотите сохранить предыдущее состояние при регистрации нового модуля, например сохранить состояние из приложения с рендерингом на стороне сервера. Вы можете этого добиться с помощью опции `preserveState`: `store.registerModule('a', module, { preserveState: true })`.
При использовании `preserveState: true` модуль регистрируется, действия, мутации и геттеры добавляются в хранилище, а состояние нет. Предполагается, что состояние вашего хранилища уже содержит состояние для этого модуля и нет необходимости его перезаписывать.
-### Повторное использование модулей
+## Повторное использование модулей
Иногда нам может потребоваться создать несколько экземпляров модуля, например:
diff --git a/docs/ru/guide/mutations.md b/docs/ru/guide/mutations.md
index b6e4df042..0a3d7dc2c 100644
--- a/docs/ru/guide/mutations.md
+++ b/docs/ru/guide/mutations.md
@@ -24,7 +24,7 @@ const store = new Vuex.Store({
store.commit('increment');
```
-### Мутации с нагрузкой
+## Мутации с нагрузкой
При вызове `store.commit` в мутацию можно также передать дополнительный параметр, называемый **нагрузкой (`payload`)**:
@@ -58,7 +58,7 @@ store.commit('increment', {
});
```
-### Объектный синтаксис
+## Объектный синтаксис
Другой способ вызвать мутацию — это передать в commit единственный параметр, в котором `type` указан напрямую:
@@ -79,7 +79,7 @@ mutations: {
}
```
-### Мутации следуют правилам реактивности Vue
+## Мутации следуют правилам реактивности Vue
Поскольку состояние хранилища Vuex — это реактивная переменная Vue, при возникновении мутации зависящие от этого состояния компоненты Vue обновляются автоматически. Кроме того, это значит, что мутации Vuex имеют те же самые подводные камни, что и реактивность в обычном Vue:
@@ -95,7 +95,7 @@ mutations: {
state.obj = { ...state.obj, newProp: 123 };
```
-### Использование констант для обозначения типов мутаций
+## Использование констант для обозначения типов мутаций
В различных вариантах реализации Flux этот подход используется весьма часто. Вынесите все константы с типами мутаций и действий в отдельный файл, чтобы было проще использовать линтеры и другие инструменты, а также чтобы дать читателям возможность с первого взгляда понять, какие мутации возможны в приложении:
@@ -123,7 +123,7 @@ const store = new Vuex.Store({
Тем не менее, использовать константы для указания типов мутаций совершенно необязательно, хотя это и может оказаться полезным в крупных проектах.
-### Мутации должны быть синхронными
+## Мутации должны быть синхронными
Нужно помнить одно важное правило: **обработчики мутаций обязаны быть синхронными**. Почему? Рассмотрим пример:
@@ -139,7 +139,7 @@ mutations: {
Теперь представьте, что вы отлаживаете приложение и смотрите в лог мутаций в инструментах разработчика. Для каждой залогированной мутации devtools должен сохранить слепки состояния приложения "до" и "после" её наступления. Однако, асинхронный коллбэк внутри приведённой выше мутации делает это невозможным: мутация-то уже записана, и у devtools нет никакой возможности знать, что далее будет вызван коллбэк, а, значит, и инициируемые им изменения становится, по сути дела, невозможно отследить.
-### Вызов мутаций в компонентах
+## Вызов мутаций в компонентах
Мутации можно вызывать из кода компонентов, используя `this.$store.commit('xxx')`, или применяя вспомогательный метод `mapMutations`, который проксирует вызовы `store.commit` через методы компонентов (для этого требуется наличие корневой ссылки на хранилище `$store`):
@@ -162,7 +162,7 @@ export default {
};
```
-### О действиях
+## О действиях
Привнесение асинхронности в мутации могло бы изрядно затруднить понимание логики программы. Например, если вызываются два метода, оба с асинхронными коллбэками, изменяющими состояние приложения — как предсказать, какой из коллбэков будет вызван первым? Именно поэтому концепции изменений и асинхронности рассматриваются по отдельности. Во Vuex **мутации — это синхронные транзакции**:
diff --git a/docs/ru/guide/plugins.md b/docs/ru/guide/plugins.md
index f4c808da0..b4584ad56 100644
--- a/docs/ru/guide/plugins.md
+++ b/docs/ru/guide/plugins.md
@@ -23,7 +23,7 @@ const store = new Vuex.Store({
});
```
-### Вызов мутаций из плагинов
+## Вызов мутаций из плагинов
Плагинам не разрешается напрямую изменять состояние приложения — как и компоненты, они могут только вызывать изменения опосредованно, используя мутации.
@@ -54,7 +54,7 @@ const store = new Vuex.Store({
});
```
-### Снятие слепков состояния
+## Снятие слепков состояния
Иногда плагину может потребоваться "снять слепок" состояния приложения или сравнить состояния "до" и "после" мутации. Для этого используйте глубокое копирование объекта состояния:
@@ -83,7 +83,7 @@ const store = new Vuex.Store({
Плагин будет использоваться по умолчанию. В production-окружении вам понадобится [DefinePlugin](https://webpack.js.org/plugins/define-plugin/) для webpack, или [envify](https://github.com/hughsk/envify) для Browserify, чтобы изменить значение `process.env.NODE_ENV !== 'production'` на `false` в финальной сборке.
-### Встроенный плагин логирования
+## Встроенный плагин логирования
> Если вы используете [vue-devtools](https://github.com/vuejs/vue-devtools), вам он скорее всего не понадобится
@@ -140,11 +140,11 @@ const logger = createLogger({
Обратите внимание, что этот плагин делает слепки состояний, поэтому использовать его стоит только на этапе разработки.
-#### Vuex до версии 3.5.0
+### Vuex до версии 3.5.0
До версии 3.5.0 функция `createLogger` экспортировалась по следующему пути `vuex/dist/logger`.
-``` js
+```js
import createLogger from 'vuex/dist/logger'
const store = new Vuex.Store({
plugins: [createLogger()]
diff --git a/docs/ru/guide/state.md b/docs/ru/guide/state.md
index 2abd3f26c..582bc13c8 100644
--- a/docs/ru/guide/state.md
+++ b/docs/ru/guide/state.md
@@ -1,6 +1,6 @@
# Состояние
-### Единое дерево состояния
+## Единое дерево состояния
@@ -10,7 +10,7 @@ Vuex использует **единое дерево состояния** —
Данные, которые хранятся во Vuex должны следовать тем же правилам, что и `data` в экземпляре Vue, т.е. объект состояния должен быть простым. **См. также:** [Vue#data](https://ru.vuejs.org/v2/api/#data).
-### Использование состояния Vuex в компонентах Vue
+## Использование состояния Vuex в компонентах Vue
Итак, как использовать состояние хранилища в компонентах Vue? Поскольку хранилище Vuex реактивно, самый простой способ «получения» — просто вернуть часть состояния хранилища в [вычисляемом свойстве](https://ru.vuejs.org/v2/guide/computed.html):
@@ -60,7 +60,7 @@ const Counter = {
};
```
-### Вспомогательная функция `mapState`
+## Вспомогательная функция `mapState`
@@ -97,7 +97,7 @@ computed: mapState([
]);
```
-### Оператор распространения объектов
+## Оператор распространения объектов
Обратите внимание, `mapState` возвращает объект. Как же его использовать в сочетании с другими локальными вычисляемыми свойствами? Для этого обычно приходилось использовать вспомогательные утилиты для объединения нескольких объектов в один, который передавать в `computed`. Однако, с помощью [оператора распространения объектов](https://github.com/tc39/proposal-object-rest-spread) можно значительно упростить синтаксис:
@@ -111,6 +111,6 @@ computed: {
}
```
-### Компоненты всё ещё могут иметь локальное состояние
+## Компоненты всё ещё могут иметь локальное состояние
Использование Vuex **не означает, что нужно выносить всё состояние** в хранилище. Хотя перемещение большей части состояния во Vuex, сделает мутации более явными и удобными для отладки, это также может привести к многословности и ненужному усложнению логики. Если часть состояния относится только к одному компоненту, лучше оставить его в качестве локального состояния. Вы должны взвесить все компромиссы и принять решение, соответствующее потребностям приложения и вектора его развития.
diff --git a/docs/ru/guide/strict.md b/docs/ru/guide/strict.md
index 0ab880209..996a5f7dd 100644
--- a/docs/ru/guide/strict.md
+++ b/docs/ru/guide/strict.md
@@ -11,7 +11,7 @@ const store = new Vuex.Store({
В строгом режиме любая попытка внесения изменений в состояние Vuex, кроме мутаций, будет выбрасывать ошибку. Это гарантирует, что все мутации состояния будут явно отслеживаться через инструменты отладки.
-### Разработка vs production
+## Разработка vs production
**Не используйте строгий режим в production!** Строгий режим запускает глубокое отслеживание за деревом состояния приложения в синхронном режиме для обнаружения несоответствующих мутаций, и это может быть затратным для производительности, когда совершается большое количество мутаций. Убедитесь, что выключили этот режим в production чтобы избежать ухудшения производительности.
diff --git a/docs/ru/installation.md b/docs/ru/installation.md
index 689704445..093cefba2 100644
--- a/docs/ru/installation.md
+++ b/docs/ru/installation.md
@@ -1,6 +1,6 @@
# Установка
-### Скачивание напрямую / CDN
+## Скачивание напрямую / CDN
[https://unpkg.com/vuex](https://unpkg.com/vuex)
@@ -17,30 +17,30 @@
```
-### NPM
+## NPM
```bash
npm install vuex --save
```
-### Yarn
+## Yarn
```bash
yarn add vuex
```
-При использовании системы сборки — явно установите Vuex с помощью команды `Vue.use()`:
+При использовании системы сборки необходимо явно устанавливать как плагин:
```js
-import Vue from 'vue';
-import Vuex from 'vuex';
+import Vue from 'vue'
+import Vuex from 'vuex'
-Vue.use(Vuex);
+Vue.use(Vuex)
```
При использовании глобальных тегов `
```
-### NPM
+## NPM
``` bash
npm install vuex --save
```
-### Yarn
+## Yarn
``` bash
yarn add vuex
@@ -38,7 +38,7 @@ Vue.use(Vuex)
当使用全局 script 标签引用 Vuex 时,不需要以上安装过程。
-### Promise
+## Promise
Vuex 依赖 [Promise](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Using_promises)。如果你支持的浏览器并没有实现 Promise (比如 IE),那么你可以使用一个 polyfill 的库,例如 [es6-promise](https://github.com/stefanpenner/es6-promise)。
@@ -63,7 +63,7 @@ yarn add es6-promise # Yarn
import 'es6-promise/auto'
```
-### 自己构建
+## 自己构建
如果需要使用 dev 分支下的最新版本,您可以直接从 GitHub 上克隆代码并自己构建。
diff --git a/examples/shopping-cart/api/shop.js b/examples/shopping-cart/api/shop.js
index 09d422d8c..708a5b77b 100644
--- a/examples/shopping-cart/api/shop.js
+++ b/examples/shopping-cart/api/shop.js
@@ -2,9 +2,9 @@
* Mocking client-server processing
*/
const _products = [
- {"id": 1, "title": "iPad 4 Mini", "price": 500.01, "inventory": 2},
- {"id": 2, "title": "H&M T-Shirt White", "price": 10.99, "inventory": 10},
- {"id": 3, "title": "Charli XCX - Sucker CD", "price": 19.99, "inventory": 5}
+ { 'id': 1, 'title': 'iPad 4 Mini', 'price': 500.01, 'inventory': 2 },
+ { 'id': 2, 'title': 'H&M T-Shirt White', 'price': 10.99, 'inventory': 10 },
+ { 'id': 3, 'title': 'Charli XCX - Sucker CD', 'price': 19.99, 'inventory': 5 }
]
export default {
diff --git a/examples/shopping-cart/components/ShoppingCart.vue b/examples/shopping-cart/components/ShoppingCart.vue
index b0f3b36f2..9a70e12d6 100644
--- a/examples/shopping-cart/components/ShoppingCart.vue
+++ b/examples/shopping-cart/components/ShoppingCart.vue
@@ -1,11 +1,11 @@
Your Cart
-
Please add some products to cart.
+
+ Please add some products to cart.
+
- -
+
-
{{ product.title }} - {{ product.price | currency }} x {{ product.quantity }}
diff --git a/examples/shopping-cart/store/modules/cart.js b/examples/shopping-cart/store/modules/cart.js
index fcdd3b565..73546e720 100644
--- a/examples/shopping-cart/store/modules/cart.js
+++ b/examples/shopping-cart/store/modules/cart.js
@@ -13,6 +13,7 @@ const getters = {
return state.items.map(({ id, quantity }) => {
const product = rootState.products.all.find(product => product.id === id)
return {
+ id: product.id,
title: product.title,
price: product.price,
quantity
diff --git a/examples/webpack.config.js b/examples/webpack.config.js
index 71bef3ce9..b2359c160 100644
--- a/examples/webpack.config.js
+++ b/examples/webpack.config.js
@@ -56,7 +56,7 @@ module.exports = {
new webpack.DefinePlugin({
__DEV__: JSON.stringify(true),
'process.env': {
- NODE_ENV: JSON.stringify(process.env.NODE_ENV),
+ NODE_ENV: JSON.stringify(process.env.NODE_ENV)
}
})
]
diff --git a/package.json b/package.json
index 6d9dbe06a..409ed1d4b 100644
--- a/package.json
+++ b/package.json
@@ -1,8 +1,17 @@
{
"name": "vuex",
- "version": "3.5.1",
+ "version": "3.6.2",
"description": "state management for Vue.js",
"main": "dist/vuex.common.js",
+ "exports": {
+ ".": {
+ "module": "./dist/vuex.esm.js",
+ "require": "./dist/vuex.common.js",
+ "import": "./dist/vuex.mjs"
+ },
+ "./*": "./*",
+ "./": "./"
+ },
"module": "dist/vuex.esm.js",
"unpkg": "dist/vuex.js",
"jsdelivr": "dist/vuex.js",
@@ -21,11 +30,12 @@
"build:main": "node scripts/build-main.js",
"build:logger": "node scripts/build-logger.js",
"lint": "eslint src test",
- "test": "npm run lint && npm run test:types && npm run test:unit && npm run test:ssr && npm run test:e2e",
+ "test": "npm run lint && npm run test:types && npm run test:unit && npm run test:ssr && npm run test:e2e && npm run test:esm",
"test:unit": "jest --testPathIgnorePatterns test/e2e",
- "test:e2e": "start-server-and-test dev http://localhost:8080 'jest --testPathIgnorePatterns test/unit'",
+ "test:e2e": "start-server-and-test dev http://localhost:8080 \"jest --testPathIgnorePatterns test/unit\"",
"test:ssr": "cross-env VUE_ENV=server jest --testPathIgnorePatterns test/e2e",
"test:types": "tsc -p types/test",
+ "test:esm": "node test/esm/esm-test.js",
"coverage": "jest --testPathIgnorePatterns test/e2e --coverage",
"changelog": "conventional-changelog -p angular -i CHANGELOG.md -s",
"release": "node scripts/release.js",
@@ -46,40 +56,40 @@
"vue": "^2.0.0"
},
"devDependencies": {
- "@babel/core": "^7.9.6",
- "@babel/preset-env": "^7.9.6",
+ "@babel/core": "^7.12.10",
+ "@babel/preset-env": "^7.12.11",
"@rollup/plugin-buble": "^0.21.3",
"@rollup/plugin-commonjs": "^11.1.0",
"@rollup/plugin-node-resolve": "^7.1.3",
"@rollup/plugin-replace": "^2.3.2",
"@types/node": "^13.13.5",
- "@vuepress/theme-vue": "^1.6.0",
- "babel-jest": "^26.0.1",
- "babel-loader": "^8.1.0",
+ "@vuepress/theme-vue": "^1.8.2",
+ "babel-jest": "^26.6.3",
+ "babel-loader": "^8.2.2",
"brotli": "^1.3.2",
"chalk": "^4.0.0",
- "conventional-changelog-cli": "^2.0.31",
+ "conventional-changelog-cli": "^2.1.1",
"cross-env": "^5.2.0",
"css-loader": "^2.1.0",
"enquirer": "^2.3.5",
"eslint": "^6.8.0",
"eslint-plugin-vue-libs": "^4.0.0",
- "execa": "^4.0.0",
+ "execa": "^5.0.0",
"express": "^4.17.1",
- "jest": "^26.0.1",
+ "jest": "^26.6.3",
"puppeteer": "^4.0.0",
"regenerator-runtime": "^0.13.5",
- "rollup": "^2.8.2",
+ "rollup": "^2.38.0",
"rollup-plugin-terser": "^5.3.0",
"semver": "^7.3.2",
- "start-server-and-test": "^1.11.0",
- "todomvc-app-css": "2.1.0",
+ "start-server-and-test": "^1.11.7",
+ "todomvc-app-css": "^2.3.0",
"typescript": "^3.8.3",
"vue": "2.5.22",
"vue-loader": "15.2.1",
"vue-server-renderer": "2.5.22",
"vue-template-compiler": "2.5.22",
- "vuepress": "^1.6.0",
+ "vuepress": "^1.8.2",
"webpack": "^4.43.0",
"webpack-dev-middleware": "^3.7.2",
"webpack-hot-middleware": "^2.25.0"
diff --git a/scripts/build.js b/scripts/build.js
index b77b162af..cfb554c96 100644
--- a/scripts/build.js
+++ b/scripts/build.js
@@ -5,7 +5,7 @@ const { gzipSync } = require('zlib')
const { compress } = require('brotli')
async function run(config, files) {
- await build(config)
+ await Promise.all([build(config), copy()])
checkAllSizes(files)
}
@@ -13,6 +13,10 @@ async function build(config) {
await execa('rollup', ['-c', config], { stdio: 'inherit' })
}
+async function copy() {
+ await fs.copy('src/index.mjs', 'dist/vuex.mjs')
+}
+
function checkAllSizes(files) {
console.log()
files.map((f) => checkSize(f))
diff --git a/scripts/release.js b/scripts/release.js
index c04ee38c3..41ec66464 100644
--- a/scripts/release.js
+++ b/scripts/release.js
@@ -56,13 +56,13 @@ async function main() {
console.log(tag)
- const { yes } = await prompt({
+ const { yes: tagOk } = await prompt({
type: 'confirm',
name: 'yes',
message: `Releasing v${targetVersion} with the "${tag}" tag. Confirm?`
})
- if (!yes) {
+ if (!tagOk) {
return
}
@@ -82,6 +82,16 @@ async function main() {
step('\nGenerating the changelog...')
await run('yarn', ['changelog'])
+ const { yes: changelogOk } = await prompt({
+ type: 'confirm',
+ name: 'yes',
+ message: `Changelog generated. Does it look good?`
+ })
+
+ if (!changelogOk) {
+ return
+ }
+
// Commit changes to the Git.
step('\nCommitting changes...')
await run('git', ['add', '-A'])
diff --git a/src/helpers.js b/src/helpers.js
index 1d5446f82..ddd1bcc65 100644
--- a/src/helpers.js
+++ b/src/helpers.js
@@ -36,7 +36,7 @@ export const mapState = normalizeNamespace((namespace, states) => {
/**
* Reduce the code which written in Vue.js for committing the mutation
* @param {String} [namespace] - Module's namespace
- * @param {Object|Array} mutations # Object's item can be a function which accept `commit` function as the first param, it can accept anthor params. You can commit mutation and do any other things in this function. specially, You need to pass anthor params from the mapped function.
+ * @param {Object|Array} mutations # Object's item can be a function which accept `commit` function as the first param, it can accept another params. You can commit mutation and do any other things in this function. specially, You need to pass anthor params from the mapped function.
* @return {Object}
*/
export const mapMutations = normalizeNamespace((namespace, mutations) => {
@@ -140,7 +140,7 @@ export const createNamespacedHelpers = (namespace) => ({
* normalizeMap([1, 2, 3]) => [ { key: 1, val: 1 }, { key: 2, val: 2 }, { key: 3, val: 3 } ]
* normalizeMap({a: 1, b: 2, c: 3}) => [ { key: 'a', val: 1 }, { key: 'b', val: 2 }, { key: 'c', val: 3 } ]
* @param {Array|Object} map
- * @return {Object}
+ * @return {Array}
*/
function normalizeMap (map) {
if (!isValidMap(map)) {
diff --git a/src/index.mjs b/src/index.mjs
new file mode 100644
index 000000000..2140898f4
--- /dev/null
+++ b/src/index.mjs
@@ -0,0 +1,26 @@
+import Vuex from '../dist/vuex.common.js'
+
+const {
+ Store,
+ install,
+ version,
+ mapState,
+ mapMutations,
+ mapGetters,
+ mapActions,
+ createNamespacedHelpers,
+ createLogger
+} = Vuex
+
+export {
+ Vuex as default,
+ Store,
+ install,
+ version,
+ mapState,
+ mapMutations,
+ mapGetters,
+ mapActions,
+ createNamespacedHelpers,
+ createLogger
+}
diff --git a/src/module/module-collection.js b/src/module/module-collection.js
index 095872882..75e641fce 100644
--- a/src/module/module-collection.js
+++ b/src/module/module-collection.js
@@ -72,7 +72,11 @@ export default class ModuleCollection {
const parent = this.get(path.slice(0, -1))
const key = path[path.length - 1]
- return parent.hasChild(key)
+ if (parent) {
+ return parent.hasChild(key)
+ }
+
+ return false
}
}
diff --git a/test/e2e/todomvc.spec.js b/test/e2e/todomvc.spec.js
index 5a61ab705..b7f3050d3 100644
--- a/test/e2e/todomvc.spec.js
+++ b/test/e2e/todomvc.spec.js
@@ -120,7 +120,7 @@ describe('e2e/todomvc', () => {
expect(await isFocused('.todo:nth-child(1) .edit')).toBe(true)
await clearValue('.todo:nth-child(1) .edit')
await setValue('.todo:nth-child(1) .edit', 'edited!')
- await click('footer') // blur
+ await click('.todo-count') // blur
expect(await count('.todo.editing')).toBe(0)
expect(await text('.todo:nth-child(1) label')).toBe('edited!')
diff --git a/test/esm/esm-import.mjs b/test/esm/esm-import.mjs
new file mode 100644
index 000000000..b708c9b77
--- /dev/null
+++ b/test/esm/esm-import.mjs
@@ -0,0 +1,30 @@
+import assert from 'assert'
+
+import { createRequire } from 'module'
+
+import Vuex, {
+ Store,
+ install,
+ version,
+ mapState,
+ mapMutations,
+ mapGetters,
+ mapActions,
+ createNamespacedHelpers,
+ createLogger
+} from 'vuex'
+
+const require = createRequire(import.meta.url)
+
+const cjs = require('vuex')
+
+assert.equal(Vuex, cjs)
+assert.equal(Store, cjs.Store)
+assert.equal(install, cjs.install)
+assert.equal(version, cjs.version)
+assert.equal(mapState, cjs.mapState)
+assert.equal(mapMutations, cjs.mapMutations)
+assert.equal(mapGetters, cjs.mapGetters)
+assert.equal(mapActions, cjs.mapActions)
+assert.equal(createNamespacedHelpers, cjs.createNamespacedHelpers)
+assert.equal(createLogger, cjs.createLogger)
diff --git a/test/esm/esm-test.js b/test/esm/esm-test.js
new file mode 100644
index 000000000..bd2cd6c11
--- /dev/null
+++ b/test/esm/esm-test.js
@@ -0,0 +1,8 @@
+// only test esm entry points on Node.14 or higher
+const [major] = process.versions.node.split('.')
+
+if (+major >= 14) {
+ (async function () {
+ await import('./esm-import.mjs')
+ })().catch(console.error)
+}
diff --git a/test/unit/module/module-collection.spec.js b/test/unit/module/module-collection.spec.js
index 3e8081ce3..514965cab 100644
--- a/test/unit/module/module-collection.spec.js
+++ b/test/unit/module/module-collection.spec.js
@@ -81,6 +81,23 @@ describe('ModuleCollection', () => {
expect(collection.get(['a'])).toBe(undefined)
})
+ it('isRegistered', () => {
+ const collection = new ModuleCollection({})
+
+ collection.register(['a'], {
+ state: { value: true }
+ })
+
+ collection.register(['a', 'b'], {
+ state: { value: false }
+ })
+
+ expect(collection.isRegistered(['a'])).toBe(true)
+ expect(collection.isRegistered(['a', 'b'])).toBe(true)
+ expect(collection.isRegistered(['c'])).toBe(false)
+ expect(collection.isRegistered(['c', 'd'])).toBe(false)
+ })
+
it('does not unregister initial modules', () => {
const collection = new ModuleCollection({
modules: {
diff --git a/test/unit/modules.spec.js b/test/unit/modules.spec.js
index 9ae47c862..8f11842d8 100644
--- a/test/unit/modules.spec.js
+++ b/test/unit/modules.spec.js
@@ -91,6 +91,18 @@ describe('Modules', () => {
expect(store.hasModule('bonjour')).toBe(false)
})
+ it('dynamic module existance test with nested modules', () => {
+ const store = new Vuex.Store({})
+
+ store.registerModule('a', {})
+ store.registerModule(['a', 'b'], {})
+
+ expect(store.hasModule(['a'])).toBe(true)
+ expect(store.hasModule(['a', 'b'])).toBe(true)
+ expect(store.hasModule(['c'])).toBe(false)
+ expect(store.hasModule(['c', 'd'])).toBe(false)
+ })
+
it('dynamic module registration preserving hydration', () => {
const store = new Vuex.Store({})
store.replaceState({ a: { foo: 'state' }})
diff --git a/yarn.lock b/yarn.lock
index 4d2c66a94..bd8861b80 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -28,6 +28,13 @@
dependencies:
"@babel/highlight" "^7.10.4"
+"@babel/code-frame@^7.12.11":
+ version "7.12.11"
+ resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f"
+ integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==
+ dependencies:
+ "@babel/highlight" "^7.10.4"
+
"@babel/compat-data@^7.10.4", "@babel/compat-data@^7.11.0":
version "7.11.0"
resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.11.0.tgz#e9f73efe09af1355b723a7f39b11bad637d7c99c"
@@ -37,7 +44,12 @@
invariant "^2.2.4"
semver "^5.5.0"
-"@babel/core@^7.1.0", "@babel/core@^7.11.0", "@babel/core@^7.7.5", "@babel/core@^7.8.4", "@babel/core@^7.9.6":
+"@babel/compat-data@^7.12.5", "@babel/compat-data@^7.12.7":
+ version "7.12.7"
+ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.12.7.tgz#9329b4782a7d6bbd7eef57e11addf91ee3ef1e41"
+ integrity sha512-YaxPMGs/XIWtYqrdEOZOCPsVWfEoriXopnsz3/i7apYPXQ3698UFhS6dVT1KN5qOsWmVgw/FOrmQgpRaZayGsw==
+
+"@babel/core@^7.1.0", "@babel/core@^7.11.0", "@babel/core@^7.7.5", "@babel/core@^7.8.4":
version "7.11.4"
resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.11.4.tgz#4301dfdfafa01eeb97f1896c5501a3f0655d4229"
integrity sha512-5deljj5HlqRXN+5oJTY7Zs37iH3z3b++KjiKtIsJy1NrjOOVSEaJHEetLBhyu0aQOSNNZ/0IuEAan9GzRuDXHg==
@@ -59,6 +71,27 @@
semver "^5.4.1"
source-map "^0.5.0"
+"@babel/core@^7.12.10":
+ version "7.12.10"
+ resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.12.10.tgz#b79a2e1b9f70ed3d84bbfb6d8c4ef825f606bccd"
+ integrity sha512-eTAlQKq65zHfkHZV0sIVODCPGVgoo1HdBlbSLi9CqOzuZanMv2ihzY+4paiKr1mH+XmYESMAmJ/dpZ68eN6d8w==
+ dependencies:
+ "@babel/code-frame" "^7.10.4"
+ "@babel/generator" "^7.12.10"
+ "@babel/helper-module-transforms" "^7.12.1"
+ "@babel/helpers" "^7.12.5"
+ "@babel/parser" "^7.12.10"
+ "@babel/template" "^7.12.7"
+ "@babel/traverse" "^7.12.10"
+ "@babel/types" "^7.12.10"
+ convert-source-map "^1.7.0"
+ debug "^4.1.0"
+ gensync "^1.0.0-beta.1"
+ json5 "^2.1.2"
+ lodash "^4.17.19"
+ semver "^5.4.1"
+ source-map "^0.5.0"
+
"@babel/generator@^7.11.0", "@babel/generator@^7.11.4":
version "7.11.4"
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.11.4.tgz#1ec7eec00defba5d6f83e50e3ee72ae2fee482be"
@@ -68,6 +101,15 @@
jsesc "^2.5.1"
source-map "^0.5.0"
+"@babel/generator@^7.12.10", "@babel/generator@^7.12.11":
+ version "7.12.11"
+ resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.12.11.tgz#98a7df7b8c358c9a37ab07a24056853016aba3af"
+ integrity sha512-Ggg6WPOJtSi8yYQvLVjG8F/TlpWDlKx0OpS4Kt+xMQPs5OaGYWy+v1A+1TvxI6sAMGZpKWWoAQ1DaeQbImlItA==
+ dependencies:
+ "@babel/types" "^7.12.11"
+ jsesc "^2.5.1"
+ source-map "^0.5.0"
+
"@babel/helper-annotate-as-pure@^7.10.4":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz#5bf0d495a3f757ac3bda48b5bf3b3ba309c72ba3"
@@ -94,6 +136,16 @@
levenary "^1.1.1"
semver "^5.5.0"
+"@babel/helper-compilation-targets@^7.12.5":
+ version "7.12.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.12.5.tgz#cb470c76198db6a24e9dbc8987275631e5d29831"
+ integrity sha512-+qH6NrscMolUlzOYngSBMIOQpKUGPPsc61Bu5W10mg84LxZ7cmvnBHzARKbDoFxVvqqAbj6Tg6N7bSrWSPXMyw==
+ dependencies:
+ "@babel/compat-data" "^7.12.5"
+ "@babel/helper-validator-option" "^7.12.1"
+ browserslist "^4.14.5"
+ semver "^5.5.0"
+
"@babel/helper-create-class-features-plugin@^7.10.4", "@babel/helper-create-class-features-plugin@^7.10.5":
version "7.10.5"
resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.5.tgz#9f61446ba80e8240b0a5c85c6fdac8459d6f259d"
@@ -106,6 +158,17 @@
"@babel/helper-replace-supers" "^7.10.4"
"@babel/helper-split-export-declaration" "^7.10.4"
+"@babel/helper-create-class-features-plugin@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.12.1.tgz#3c45998f431edd4a9214c5f1d3ad1448a6137f6e"
+ integrity sha512-hkL++rWeta/OVOBTRJc9a5Azh5mt5WgZUGAKMD8JM141YsE08K//bp1unBBieO6rUKkIPyUE0USQ30jAy3Sk1w==
+ dependencies:
+ "@babel/helper-function-name" "^7.10.4"
+ "@babel/helper-member-expression-to-functions" "^7.12.1"
+ "@babel/helper-optimise-call-expression" "^7.10.4"
+ "@babel/helper-replace-supers" "^7.12.1"
+ "@babel/helper-split-export-declaration" "^7.10.4"
+
"@babel/helper-create-regexp-features-plugin@^7.10.4":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.4.tgz#fdd60d88524659a0b6959c0579925e425714f3b8"
@@ -115,6 +178,14 @@
"@babel/helper-regex" "^7.10.4"
regexpu-core "^4.7.0"
+"@babel/helper-create-regexp-features-plugin@^7.12.1":
+ version "7.12.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.7.tgz#2084172e95443fa0a09214ba1bb328f9aea1278f"
+ integrity sha512-idnutvQPdpbduutvi3JVfEgcVIHooQnhvhx0Nk9isOINOIGYkZea1Pk2JlJRiUnMefrlvr0vkByATBY/mB4vjQ==
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.10.4"
+ regexpu-core "^4.7.1"
+
"@babel/helper-define-map@^7.10.4":
version "7.10.5"
resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz#b53c10db78a640800152692b13393147acb9bb30"
@@ -140,6 +211,15 @@
"@babel/template" "^7.10.4"
"@babel/types" "^7.10.4"
+"@babel/helper-function-name@^7.12.11":
+ version "7.12.11"
+ resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.12.11.tgz#1fd7738aee5dcf53c3ecff24f1da9c511ec47b42"
+ integrity sha512-AtQKjtYNolKNi6nNNVLQ27CP6D9oFR6bq/HPYSizlzbp7uC1M59XJe8L+0uXjbIaZaUJF99ruHqVGiKXU/7ybA==
+ dependencies:
+ "@babel/helper-get-function-arity" "^7.12.10"
+ "@babel/template" "^7.12.7"
+ "@babel/types" "^7.12.11"
+
"@babel/helper-get-function-arity@^7.10.4":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz#98c1cbea0e2332f33f9a4661b8ce1505b2c19ba2"
@@ -147,6 +227,13 @@
dependencies:
"@babel/types" "^7.10.4"
+"@babel/helper-get-function-arity@^7.12.10":
+ version "7.12.10"
+ resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.10.tgz#b158817a3165b5faa2047825dfa61970ddcc16cf"
+ integrity sha512-mm0n5BPjR06wh9mPQaDdXWDoll/j5UpCAPl1x8fS71GHm7HA6Ua2V4ylG1Ju8lvcTOietbPNNPaSilKj+pj+Ag==
+ dependencies:
+ "@babel/types" "^7.12.10"
+
"@babel/helper-hoist-variables@^7.10.4":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz#d49b001d1d5a68ca5e6604dda01a6297f7c9381e"
@@ -161,6 +248,13 @@
dependencies:
"@babel/types" "^7.11.0"
+"@babel/helper-member-expression-to-functions@^7.12.1", "@babel/helper-member-expression-to-functions@^7.12.7":
+ version "7.12.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.7.tgz#aa77bd0396ec8114e5e30787efa78599d874a855"
+ integrity sha512-DCsuPyeWxeHgh1Dus7APn7iza42i/qXqiFPWyBDdOFtvS581JQePsc1F/nD+fHrcswhLlRc2UpYS1NwERxZhHw==
+ dependencies:
+ "@babel/types" "^7.12.7"
+
"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.10.4", "@babel/helper-module-imports@^7.8.3":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz#4c5c54be04bd31670a7382797d75b9fa2e5b5620"
@@ -168,6 +262,13 @@
dependencies:
"@babel/types" "^7.10.4"
+"@babel/helper-module-imports@^7.12.1", "@babel/helper-module-imports@^7.12.5":
+ version "7.12.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz#1bfc0229f794988f76ed0a4d4e90860850b54dfb"
+ integrity sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA==
+ dependencies:
+ "@babel/types" "^7.12.5"
+
"@babel/helper-module-transforms@^7.10.4", "@babel/helper-module-transforms@^7.10.5", "@babel/helper-module-transforms@^7.11.0":
version "7.11.0"
resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.11.0.tgz#b16f250229e47211abdd84b34b64737c2ab2d359"
@@ -181,6 +282,21 @@
"@babel/types" "^7.11.0"
lodash "^4.17.19"
+"@babel/helper-module-transforms@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz#7954fec71f5b32c48e4b303b437c34453fd7247c"
+ integrity sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w==
+ dependencies:
+ "@babel/helper-module-imports" "^7.12.1"
+ "@babel/helper-replace-supers" "^7.12.1"
+ "@babel/helper-simple-access" "^7.12.1"
+ "@babel/helper-split-export-declaration" "^7.11.0"
+ "@babel/helper-validator-identifier" "^7.10.4"
+ "@babel/template" "^7.10.4"
+ "@babel/traverse" "^7.12.1"
+ "@babel/types" "^7.12.1"
+ lodash "^4.17.19"
+
"@babel/helper-optimise-call-expression@^7.10.4":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz#50dc96413d594f995a77905905b05893cd779673"
@@ -188,6 +304,13 @@
dependencies:
"@babel/types" "^7.10.4"
+"@babel/helper-optimise-call-expression@^7.12.10":
+ version "7.12.10"
+ resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.10.tgz#94ca4e306ee11a7dd6e9f42823e2ac6b49881e2d"
+ integrity sha512-4tpbU0SrSTjjt65UMWSrUOPZTsgvPgGG4S8QSTNHacKzpS51IVWGDj0yCwyeZND/i+LSN2g/O63jEXEWm49sYQ==
+ dependencies:
+ "@babel/types" "^7.12.10"
+
"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz#2f75a831269d4f677de49986dff59927533cf375"
@@ -210,6 +333,15 @@
"@babel/template" "^7.10.4"
"@babel/types" "^7.10.4"
+"@babel/helper-remap-async-to-generator@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.12.1.tgz#8c4dbbf916314f6047dc05e6a2217074238347fd"
+ integrity sha512-9d0KQCRM8clMPcDwo8SevNs+/9a8yWVVmaE80FGJcEP8N1qToREmWEGnBn8BUlJhYRFz6fqxeRL1sl5Ogsed7A==
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.10.4"
+ "@babel/helper-wrap-function" "^7.10.4"
+ "@babel/types" "^7.12.1"
+
"@babel/helper-replace-supers@^7.10.4":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz#d585cd9388ea06e6031e4cd44b6713cbead9e6cf"
@@ -220,6 +352,16 @@
"@babel/traverse" "^7.10.4"
"@babel/types" "^7.10.4"
+"@babel/helper-replace-supers@^7.12.1":
+ version "7.12.11"
+ resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.12.11.tgz#ea511658fc66c7908f923106dd88e08d1997d60d"
+ integrity sha512-q+w1cqmhL7R0FNzth/PLLp2N+scXEK/L2AHbXUyydxp828F4FEa5WcVoqui9vFRiHDQErj9Zof8azP32uGVTRA==
+ dependencies:
+ "@babel/helper-member-expression-to-functions" "^7.12.7"
+ "@babel/helper-optimise-call-expression" "^7.12.10"
+ "@babel/traverse" "^7.12.10"
+ "@babel/types" "^7.12.11"
+
"@babel/helper-simple-access@^7.10.4":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.10.4.tgz#0f5ccda2945277a2a7a2d3a821e15395edcf3461"
@@ -228,6 +370,13 @@
"@babel/template" "^7.10.4"
"@babel/types" "^7.10.4"
+"@babel/helper-simple-access@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz#32427e5aa61547d38eb1e6eaf5fd1426fdad9136"
+ integrity sha512-OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA==
+ dependencies:
+ "@babel/types" "^7.12.1"
+
"@babel/helper-skip-transparent-expression-wrappers@^7.11.0":
version "7.11.0"
resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.11.0.tgz#eec162f112c2f58d3af0af125e3bb57665146729"
@@ -235,6 +384,13 @@
dependencies:
"@babel/types" "^7.11.0"
+"@babel/helper-skip-transparent-expression-wrappers@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz#462dc63a7e435ade8468385c63d2b84cce4b3cbf"
+ integrity sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA==
+ dependencies:
+ "@babel/types" "^7.12.1"
+
"@babel/helper-split-export-declaration@^7.10.4", "@babel/helper-split-export-declaration@^7.11.0":
version "7.11.0"
resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz#f8a491244acf6a676158ac42072911ba83ad099f"
@@ -242,11 +398,28 @@
dependencies:
"@babel/types" "^7.11.0"
+"@babel/helper-split-export-declaration@^7.12.11":
+ version "7.12.11"
+ resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.11.tgz#1b4cc424458643c47d37022223da33d76ea4603a"
+ integrity sha512-LsIVN8j48gHgwzfocYUSkO/hjYAOJqlpJEc7tGXcIm4cubjVUf8LGW6eWRyxEu7gA25q02p0rQUWoCI33HNS5g==
+ dependencies:
+ "@babel/types" "^7.12.11"
+
"@babel/helper-validator-identifier@^7.10.4":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2"
integrity sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==
+"@babel/helper-validator-identifier@^7.12.11":
+ version "7.12.11"
+ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz#c9a1f021917dcb5ccf0d4e453e399022981fc9ed"
+ integrity sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==
+
+"@babel/helper-validator-option@^7.12.1", "@babel/helper-validator-option@^7.12.11":
+ version "7.12.11"
+ resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.12.11.tgz#d66cb8b7a3e7fe4c6962b32020a131ecf0847f4f"
+ integrity sha512-TBFCyj939mFSdeX7U7DDj32WtzYY7fDcalgq8v3fBZMNOJQNn7nOYzMaUCiPxPYfCup69mtIpqlKgMZLvQ8Xhw==
+
"@babel/helper-wrap-function@^7.10.4":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.10.4.tgz#8a6f701eab0ff39f765b5a1cfef409990e624b87"
@@ -266,6 +439,15 @@
"@babel/traverse" "^7.10.4"
"@babel/types" "^7.10.4"
+"@babel/helpers@^7.12.5":
+ version "7.12.5"
+ resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.12.5.tgz#1a1ba4a768d9b58310eda516c449913fe647116e"
+ integrity sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA==
+ dependencies:
+ "@babel/template" "^7.10.4"
+ "@babel/traverse" "^7.12.5"
+ "@babel/types" "^7.12.5"
+
"@babel/highlight@^7.10.4":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz#7d1bdfd65753538fabe6c38596cdb76d9ac60143"
@@ -280,6 +462,11 @@
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.11.4.tgz#6fa1a118b8b0d80d0267b719213dc947e88cc0ca"
integrity sha512-MggwidiH+E9j5Sh8pbrX5sJvMcsqS5o+7iB42M9/k0CD63MjYbdP4nhSh7uB5wnv2/RVzTZFTxzF/kIa5mrCqA==
+"@babel/parser@^7.12.10", "@babel/parser@^7.12.11", "@babel/parser@^7.12.7":
+ version "7.12.11"
+ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.11.tgz#9ce3595bcd74bc5c466905e86c535b8b25011e79"
+ integrity sha512-N3UxG+uuF4CMYoNj8AhnbAcJF0PiuJ9KHuy1lQmkYsxTer/MAH9UBNHsBoAX/4s6NvlDD047No8mYVGGzLL4hg==
+
"@babel/plugin-proposal-async-generator-functions@^7.10.4":
version "7.10.5"
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.5.tgz#3491cabf2f7c179ab820606cec27fed15e0e8558"
@@ -289,6 +476,15 @@
"@babel/helper-remap-async-to-generator" "^7.10.4"
"@babel/plugin-syntax-async-generators" "^7.8.0"
+"@babel/plugin-proposal-async-generator-functions@^7.12.1":
+ version "7.12.12"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.12.12.tgz#04b8f24fd4532008ab4e79f788468fd5a8476566"
+ integrity sha512-nrz9y0a4xmUrRq51bYkWJIO5SBZyG2ys2qinHsN0zHDHVsUaModrkpyWWWXfGqYQmOL3x9sQIcTNN/pBGpo09A==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/helper-remap-async-to-generator" "^7.12.1"
+ "@babel/plugin-syntax-async-generators" "^7.8.0"
+
"@babel/plugin-proposal-class-properties@^7.10.4", "@babel/plugin-proposal-class-properties@^7.8.3":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.10.4.tgz#a33bf632da390a59c7a8c570045d1115cd778807"
@@ -297,6 +493,14 @@
"@babel/helper-create-class-features-plugin" "^7.10.4"
"@babel/helper-plugin-utils" "^7.10.4"
+"@babel/plugin-proposal-class-properties@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.12.1.tgz#a082ff541f2a29a4821065b8add9346c0c16e5de"
+ integrity sha512-cKp3dlQsFsEs5CWKnN7BnSHOd0EOW8EKpEjkoz1pO2E5KzIDNV9Ros1b0CnmbVgAGXJubOYVBOGCT1OmJwOI7w==
+ dependencies:
+ "@babel/helper-create-class-features-plugin" "^7.12.1"
+ "@babel/helper-plugin-utils" "^7.10.4"
+
"@babel/plugin-proposal-decorators@^7.8.3":
version "7.10.5"
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.10.5.tgz#42898bba478bc4b1ae242a703a953a7ad350ffb4"
@@ -314,6 +518,14 @@
"@babel/helper-plugin-utils" "^7.10.4"
"@babel/plugin-syntax-dynamic-import" "^7.8.0"
+"@babel/plugin-proposal-dynamic-import@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.12.1.tgz#43eb5c2a3487ecd98c5c8ea8b5fdb69a2749b2dc"
+ integrity sha512-a4rhUSZFuq5W8/OO8H7BL5zspjnc1FLd9hlOxIK/f7qG4a0qsqk8uvF/ywgBA8/OmjsapjpvaEOYItfGG1qIvQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/plugin-syntax-dynamic-import" "^7.8.0"
+
"@babel/plugin-proposal-export-namespace-from@^7.10.4":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.10.4.tgz#570d883b91031637b3e2958eea3c438e62c05f54"
@@ -322,6 +534,14 @@
"@babel/helper-plugin-utils" "^7.10.4"
"@babel/plugin-syntax-export-namespace-from" "^7.8.3"
+"@babel/plugin-proposal-export-namespace-from@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.1.tgz#8b9b8f376b2d88f5dd774e4d24a5cc2e3679b6d4"
+ integrity sha512-6CThGf0irEkzujYS5LQcjBx8j/4aQGiVv7J9+2f7pGfxqyKh3WnmVJYW3hdrQjyksErMGBPQrCnHfOtna+WLbw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/plugin-syntax-export-namespace-from" "^7.8.3"
+
"@babel/plugin-proposal-json-strings@^7.10.4":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.10.4.tgz#593e59c63528160233bd321b1aebe0820c2341db"
@@ -330,6 +550,14 @@
"@babel/helper-plugin-utils" "^7.10.4"
"@babel/plugin-syntax-json-strings" "^7.8.0"
+"@babel/plugin-proposal-json-strings@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.12.1.tgz#d45423b517714eedd5621a9dfdc03fa9f4eb241c"
+ integrity sha512-GoLDUi6U9ZLzlSda2Df++VSqDJg3CG+dR0+iWsv6XRw1rEq+zwt4DirM9yrxW6XWaTpmai1cWJLMfM8qQJf+yw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/plugin-syntax-json-strings" "^7.8.0"
+
"@babel/plugin-proposal-logical-assignment-operators@^7.11.0":
version "7.11.0"
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.11.0.tgz#9f80e482c03083c87125dee10026b58527ea20c8"
@@ -338,6 +566,14 @@
"@babel/helper-plugin-utils" "^7.10.4"
"@babel/plugin-syntax-logical-assignment-operators" "^7.10.4"
+"@babel/plugin-proposal-logical-assignment-operators@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.12.1.tgz#f2c490d36e1b3c9659241034a5d2cd50263a2751"
+ integrity sha512-k8ZmVv0JU+4gcUGeCDZOGd0lCIamU/sMtIiX3UWnUc5yzgq6YUGyEolNYD+MLYKfSzgECPcqetVcJP9Afe/aCA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4"
+
"@babel/plugin-proposal-nullish-coalescing-operator@^7.10.4":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.10.4.tgz#02a7e961fc32e6d5b2db0649e01bf80ddee7e04a"
@@ -346,6 +582,14 @@
"@babel/helper-plugin-utils" "^7.10.4"
"@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0"
+"@babel/plugin-proposal-nullish-coalescing-operator@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.12.1.tgz#3ed4fff31c015e7f3f1467f190dbe545cd7b046c"
+ integrity sha512-nZY0ESiaQDI1y96+jk6VxMOaL4LPo/QDHBqL+SF3/vl6dHkTwHlOI8L4ZwuRBHgakRBw5zsVylel7QPbbGuYgg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0"
+
"@babel/plugin-proposal-numeric-separator@^7.10.4":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.10.4.tgz#ce1590ff0a65ad12970a609d78855e9a4c1aef06"
@@ -354,6 +598,14 @@
"@babel/helper-plugin-utils" "^7.10.4"
"@babel/plugin-syntax-numeric-separator" "^7.10.4"
+"@babel/plugin-proposal-numeric-separator@^7.12.7":
+ version "7.12.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.7.tgz#8bf253de8139099fea193b297d23a9d406ef056b"
+ integrity sha512-8c+uy0qmnRTeukiGsjLGy6uVs/TFjJchGXUeBqlG4VWYOdJWkhhVPdQ3uHwbmalfJwv2JsV0qffXP4asRfL2SQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/plugin-syntax-numeric-separator" "^7.10.4"
+
"@babel/plugin-proposal-object-rest-spread@^7.11.0":
version "7.11.0"
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.11.0.tgz#bd81f95a1f746760ea43b6c2d3d62b11790ad0af"
@@ -363,6 +615,15 @@
"@babel/plugin-syntax-object-rest-spread" "^7.8.0"
"@babel/plugin-transform-parameters" "^7.10.4"
+"@babel/plugin-proposal-object-rest-spread@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz#def9bd03cea0f9b72283dac0ec22d289c7691069"
+ integrity sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/plugin-syntax-object-rest-spread" "^7.8.0"
+ "@babel/plugin-transform-parameters" "^7.12.1"
+
"@babel/plugin-proposal-optional-catch-binding@^7.10.4":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.10.4.tgz#31c938309d24a78a49d68fdabffaa863758554dd"
@@ -371,6 +632,14 @@
"@babel/helper-plugin-utils" "^7.10.4"
"@babel/plugin-syntax-optional-catch-binding" "^7.8.0"
+"@babel/plugin-proposal-optional-catch-binding@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.12.1.tgz#ccc2421af64d3aae50b558a71cede929a5ab2942"
+ integrity sha512-hFvIjgprh9mMw5v42sJWLI1lzU5L2sznP805zeT6rySVRA0Y18StRhDqhSxlap0oVgItRsB6WSROp4YnJTJz0g==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/plugin-syntax-optional-catch-binding" "^7.8.0"
+
"@babel/plugin-proposal-optional-chaining@^7.11.0":
version "7.11.0"
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.11.0.tgz#de5866d0646f6afdaab8a566382fe3a221755076"
@@ -380,6 +649,15 @@
"@babel/helper-skip-transparent-expression-wrappers" "^7.11.0"
"@babel/plugin-syntax-optional-chaining" "^7.8.0"
+"@babel/plugin-proposal-optional-chaining@^7.12.7":
+ version "7.12.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.12.7.tgz#e02f0ea1b5dc59d401ec16fb824679f683d3303c"
+ integrity sha512-4ovylXZ0PWmwoOvhU2vhnzVNnm88/Sm9nx7V8BPgMvAzn5zDou3/Awy0EjglyubVHasJj+XCEkr/r1X3P5elCA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1"
+ "@babel/plugin-syntax-optional-chaining" "^7.8.0"
+
"@babel/plugin-proposal-private-methods@^7.10.4":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.10.4.tgz#b160d972b8fdba5c7d111a145fc8c421fc2a6909"
@@ -388,6 +666,14 @@
"@babel/helper-create-class-features-plugin" "^7.10.4"
"@babel/helper-plugin-utils" "^7.10.4"
+"@babel/plugin-proposal-private-methods@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.12.1.tgz#86814f6e7a21374c980c10d38b4493e703f4a389"
+ integrity sha512-mwZ1phvH7/NHK6Kf8LP7MYDogGV+DKB1mryFOEwx5EBNQrosvIczzZFTUmWaeujd5xT6G1ELYWUz3CutMhjE1w==
+ dependencies:
+ "@babel/helper-create-class-features-plugin" "^7.12.1"
+ "@babel/helper-plugin-utils" "^7.10.4"
+
"@babel/plugin-proposal-unicode-property-regex@^7.10.4", "@babel/plugin-proposal-unicode-property-regex@^7.4.4":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.4.tgz#4483cda53041ce3413b7fe2f00022665ddfaa75d"
@@ -396,6 +682,14 @@
"@babel/helper-create-regexp-features-plugin" "^7.10.4"
"@babel/helper-plugin-utils" "^7.10.4"
+"@babel/plugin-proposal-unicode-property-regex@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.1.tgz#2a183958d417765b9eae334f47758e5d6a82e072"
+ integrity sha512-MYq+l+PvHuw/rKUz1at/vb6nCnQ2gmJBNaM62z0OgH7B2W1D9pvkpYtlti9bGtizNIU1K3zm4bZF9F91efVY0w==
+ dependencies:
+ "@babel/helper-create-regexp-features-plugin" "^7.12.1"
+ "@babel/helper-plugin-utils" "^7.10.4"
+
"@babel/plugin-syntax-async-generators@^7.8.0", "@babel/plugin-syntax-async-generators@^7.8.4":
version "7.8.4"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d"
@@ -417,6 +711,13 @@
dependencies:
"@babel/helper-plugin-utils" "^7.10.4"
+"@babel/plugin-syntax-class-properties@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.1.tgz#bcb297c5366e79bebadef509549cd93b04f19978"
+ integrity sha512-U40A76x5gTwmESz+qiqssqmeEsKvcSyvtgktrm0uzcARAmM9I1jR221f6Oq+GmHrcD+LvZDag1UTOTe2fL3TeA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
"@babel/plugin-syntax-decorators@^7.10.4":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.10.4.tgz#6853085b2c429f9d322d02f5a635018cdeb2360c"
@@ -508,6 +809,13 @@
dependencies:
"@babel/helper-plugin-utils" "^7.10.4"
+"@babel/plugin-syntax-top-level-await@^7.12.1", "@babel/plugin-syntax-top-level-await@^7.8.3":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.1.tgz#dd6c0b357ac1bb142d98537450a319625d13d2a0"
+ integrity sha512-i7ooMZFS+a/Om0crxZodrTzNEPJHZrlMVGMTEpFAj6rYY/bKCddB0Dk/YxfPuYXOopuhKk/e1jV6h+WUU9XN3A==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
"@babel/plugin-transform-arrow-functions@^7.10.4":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.10.4.tgz#e22960d77e697c74f41c501d44d73dbf8a6a64cd"
@@ -515,6 +823,13 @@
dependencies:
"@babel/helper-plugin-utils" "^7.10.4"
+"@babel/plugin-transform-arrow-functions@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.12.1.tgz#8083ffc86ac8e777fbe24b5967c4b2521f3cb2b3"
+ integrity sha512-5QB50qyN44fzzz4/qxDPQMBCTHgxg3n0xRBLJUmBlLoU/sFvxVWGZF/ZUfMVDQuJUKXaBhbupxIzIfZ6Fwk/0A==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
"@babel/plugin-transform-async-to-generator@^7.10.4":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.10.4.tgz#41a5017e49eb6f3cda9392a51eef29405b245a37"
@@ -524,6 +839,15 @@
"@babel/helper-plugin-utils" "^7.10.4"
"@babel/helper-remap-async-to-generator" "^7.10.4"
+"@babel/plugin-transform-async-to-generator@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.12.1.tgz#3849a49cc2a22e9743cbd6b52926d30337229af1"
+ integrity sha512-SDtqoEcarK1DFlRJ1hHRY5HvJUj5kX4qmtpMAm2QnhOlyuMC4TMdCRgW6WXpv93rZeYNeLP22y8Aq2dbcDRM1A==
+ dependencies:
+ "@babel/helper-module-imports" "^7.12.1"
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/helper-remap-async-to-generator" "^7.12.1"
+
"@babel/plugin-transform-block-scoped-functions@^7.10.4":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.10.4.tgz#1afa595744f75e43a91af73b0d998ecfe4ebc2e8"
@@ -531,6 +855,13 @@
dependencies:
"@babel/helper-plugin-utils" "^7.10.4"
+"@babel/plugin-transform-block-scoped-functions@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.1.tgz#f2a1a365bde2b7112e0a6ded9067fdd7c07905d9"
+ integrity sha512-5OpxfuYnSgPalRpo8EWGPzIYf0lHBWORCkj5M0oLBwHdlux9Ri36QqGW3/LR13RSVOAoUUMzoPI/jpE4ABcHoA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
"@babel/plugin-transform-block-scoping@^7.10.4":
version "7.11.1"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.11.1.tgz#5b7efe98852bef8d652c0b28144cd93a9e4b5215"
@@ -538,6 +869,13 @@
dependencies:
"@babel/helper-plugin-utils" "^7.10.4"
+"@babel/plugin-transform-block-scoping@^7.12.11":
+ version "7.12.12"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.12.tgz#d93a567a152c22aea3b1929bb118d1d0a175cdca"
+ integrity sha512-VOEPQ/ExOVqbukuP7BYJtI5ZxxsmegTwzZ04j1aF0dkSypGo9XpDHuOrABsJu+ie+penpSJheDJ11x1BEZNiyQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
"@babel/plugin-transform-classes@^7.10.4":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.10.4.tgz#405136af2b3e218bc4a1926228bc917ab1a0adc7"
@@ -552,6 +890,20 @@
"@babel/helper-split-export-declaration" "^7.10.4"
globals "^11.1.0"
+"@babel/plugin-transform-classes@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.12.1.tgz#65e650fcaddd3d88ddce67c0f834a3d436a32db6"
+ integrity sha512-/74xkA7bVdzQTBeSUhLLJgYIcxw/dpEpCdRDiHgPJ3Mv6uC11UhjpOhl72CgqbBCmt1qtssCyB2xnJm1+PFjog==
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.10.4"
+ "@babel/helper-define-map" "^7.10.4"
+ "@babel/helper-function-name" "^7.10.4"
+ "@babel/helper-optimise-call-expression" "^7.10.4"
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/helper-replace-supers" "^7.12.1"
+ "@babel/helper-split-export-declaration" "^7.10.4"
+ globals "^11.1.0"
+
"@babel/plugin-transform-computed-properties@^7.10.4":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.10.4.tgz#9ded83a816e82ded28d52d4b4ecbdd810cdfc0eb"
@@ -559,6 +911,13 @@
dependencies:
"@babel/helper-plugin-utils" "^7.10.4"
+"@babel/plugin-transform-computed-properties@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.12.1.tgz#d68cf6c9b7f838a8a4144badbe97541ea0904852"
+ integrity sha512-vVUOYpPWB7BkgUWPo4C44mUQHpTZXakEqFjbv8rQMg7TC6S6ZhGZ3otQcRH6u7+adSlE5i0sp63eMC/XGffrzg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
"@babel/plugin-transform-destructuring@^7.10.4":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.10.4.tgz#70ddd2b3d1bea83d01509e9bb25ddb3a74fc85e5"
@@ -566,6 +925,13 @@
dependencies:
"@babel/helper-plugin-utils" "^7.10.4"
+"@babel/plugin-transform-destructuring@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.12.1.tgz#b9a570fe0d0a8d460116413cb4f97e8e08b2f847"
+ integrity sha512-fRMYFKuzi/rSiYb2uRLiUENJOKq4Gnl+6qOv5f8z0TZXg3llUwUhsNNwrwaT/6dUhJTzNpBr+CUvEWBtfNY1cw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
"@babel/plugin-transform-dotall-regex@^7.10.4", "@babel/plugin-transform-dotall-regex@^7.4.4":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.4.tgz#469c2062105c1eb6a040eaf4fac4b488078395ee"
@@ -574,6 +940,14 @@
"@babel/helper-create-regexp-features-plugin" "^7.10.4"
"@babel/helper-plugin-utils" "^7.10.4"
+"@babel/plugin-transform-dotall-regex@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.1.tgz#a1d16c14862817b6409c0a678d6f9373ca9cd975"
+ integrity sha512-B2pXeRKoLszfEW7J4Hg9LoFaWEbr/kzo3teWHmtFCszjRNa/b40f9mfeqZsIDLLt/FjwQ6pz/Gdlwy85xNckBA==
+ dependencies:
+ "@babel/helper-create-regexp-features-plugin" "^7.12.1"
+ "@babel/helper-plugin-utils" "^7.10.4"
+
"@babel/plugin-transform-duplicate-keys@^7.10.4":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.10.4.tgz#697e50c9fee14380fe843d1f306b295617431e47"
@@ -581,6 +955,13 @@
dependencies:
"@babel/helper-plugin-utils" "^7.10.4"
+"@babel/plugin-transform-duplicate-keys@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.1.tgz#745661baba295ac06e686822797a69fbaa2ca228"
+ integrity sha512-iRght0T0HztAb/CazveUpUQrZY+aGKKaWXMJ4uf9YJtqxSUe09j3wteztCUDRHs+SRAL7yMuFqUsLoAKKzgXjw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
"@babel/plugin-transform-exponentiation-operator@^7.10.4":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.10.4.tgz#5ae338c57f8cf4001bdb35607ae66b92d665af2e"
@@ -589,6 +970,14 @@
"@babel/helper-builder-binary-assignment-operator-visitor" "^7.10.4"
"@babel/helper-plugin-utils" "^7.10.4"
+"@babel/plugin-transform-exponentiation-operator@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.1.tgz#b0f2ed356ba1be1428ecaf128ff8a24f02830ae0"
+ integrity sha512-7tqwy2bv48q+c1EHbXK0Zx3KXd2RVQp6OC7PbwFNt/dPTAV3Lu5sWtWuAj8owr5wqtWnqHfl2/mJlUmqkChKug==
+ dependencies:
+ "@babel/helper-builder-binary-assignment-operator-visitor" "^7.10.4"
+ "@babel/helper-plugin-utils" "^7.10.4"
+
"@babel/plugin-transform-for-of@^7.10.4":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.10.4.tgz#c08892e8819d3a5db29031b115af511dbbfebae9"
@@ -596,6 +985,13 @@
dependencies:
"@babel/helper-plugin-utils" "^7.10.4"
+"@babel/plugin-transform-for-of@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.12.1.tgz#07640f28867ed16f9511c99c888291f560921cfa"
+ integrity sha512-Zaeq10naAsuHo7heQvyV0ptj4dlZJwZgNAtBYBnu5nNKJoW62m0zKcIEyVECrUKErkUkg6ajMy4ZfnVZciSBhg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
"@babel/plugin-transform-function-name@^7.10.4":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.10.4.tgz#6a467880e0fc9638514ba369111811ddbe2644b7"
@@ -604,6 +1000,14 @@
"@babel/helper-function-name" "^7.10.4"
"@babel/helper-plugin-utils" "^7.10.4"
+"@babel/plugin-transform-function-name@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.1.tgz#2ec76258c70fe08c6d7da154003a480620eba667"
+ integrity sha512-JF3UgJUILoFrFMEnOJLJkRHSk6LUSXLmEFsA23aR2O5CSLUxbeUX1IZ1YQ7Sn0aXb601Ncwjx73a+FVqgcljVw==
+ dependencies:
+ "@babel/helper-function-name" "^7.10.4"
+ "@babel/helper-plugin-utils" "^7.10.4"
+
"@babel/plugin-transform-literals@^7.10.4":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.10.4.tgz#9f42ba0841100a135f22712d0e391c462f571f3c"
@@ -611,6 +1015,13 @@
dependencies:
"@babel/helper-plugin-utils" "^7.10.4"
+"@babel/plugin-transform-literals@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.1.tgz#d73b803a26b37017ddf9d3bb8f4dc58bfb806f57"
+ integrity sha512-+PxVGA+2Ag6uGgL0A5f+9rklOnnMccwEBzwYFL3EUaKuiyVnUipyXncFcfjSkbimLrODoqki1U9XxZzTvfN7IQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
"@babel/plugin-transform-member-expression-literals@^7.10.4":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.10.4.tgz#b1ec44fcf195afcb8db2c62cd8e551c881baf8b7"
@@ -618,6 +1029,13 @@
dependencies:
"@babel/helper-plugin-utils" "^7.10.4"
+"@babel/plugin-transform-member-expression-literals@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.1.tgz#496038602daf1514a64d43d8e17cbb2755e0c3ad"
+ integrity sha512-1sxePl6z9ad0gFMB9KqmYofk34flq62aqMt9NqliS/7hPEpURUCMbyHXrMPlo282iY7nAvUB1aQd5mg79UD9Jg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
"@babel/plugin-transform-modules-amd@^7.10.4":
version "7.10.5"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.5.tgz#1b9cddaf05d9e88b3aad339cb3e445c4f020a9b1"
@@ -627,6 +1045,15 @@
"@babel/helper-plugin-utils" "^7.10.4"
babel-plugin-dynamic-import-node "^2.3.3"
+"@babel/plugin-transform-modules-amd@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.12.1.tgz#3154300b026185666eebb0c0ed7f8415fefcf6f9"
+ integrity sha512-tDW8hMkzad5oDtzsB70HIQQRBiTKrhfgwC/KkJeGsaNFTdWhKNt/BiE8c5yj19XiGyrxpbkOfH87qkNg1YGlOQ==
+ dependencies:
+ "@babel/helper-module-transforms" "^7.12.1"
+ "@babel/helper-plugin-utils" "^7.10.4"
+ babel-plugin-dynamic-import-node "^2.3.3"
+
"@babel/plugin-transform-modules-commonjs@^7.10.4":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.10.4.tgz#66667c3eeda1ebf7896d41f1f16b17105a2fbca0"
@@ -637,6 +1064,16 @@
"@babel/helper-simple-access" "^7.10.4"
babel-plugin-dynamic-import-node "^2.3.3"
+"@babel/plugin-transform-modules-commonjs@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.12.1.tgz#fa403124542636c786cf9b460a0ffbb48a86e648"
+ integrity sha512-dY789wq6l0uLY8py9c1B48V8mVL5gZh/+PQ5ZPrylPYsnAvnEMjqsUXkuoDVPeVK+0VyGar+D08107LzDQ6pag==
+ dependencies:
+ "@babel/helper-module-transforms" "^7.12.1"
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/helper-simple-access" "^7.12.1"
+ babel-plugin-dynamic-import-node "^2.3.3"
+
"@babel/plugin-transform-modules-systemjs@^7.10.4":
version "7.10.5"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.5.tgz#6270099c854066681bae9e05f87e1b9cadbe8c85"
@@ -647,6 +1084,17 @@
"@babel/helper-plugin-utils" "^7.10.4"
babel-plugin-dynamic-import-node "^2.3.3"
+"@babel/plugin-transform-modules-systemjs@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.12.1.tgz#663fea620d593c93f214a464cd399bf6dc683086"
+ integrity sha512-Hn7cVvOavVh8yvW6fLwveFqSnd7rbQN3zJvoPNyNaQSvgfKmDBO9U1YL9+PCXGRlZD9tNdWTy5ACKqMuzyn32Q==
+ dependencies:
+ "@babel/helper-hoist-variables" "^7.10.4"
+ "@babel/helper-module-transforms" "^7.12.1"
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/helper-validator-identifier" "^7.10.4"
+ babel-plugin-dynamic-import-node "^2.3.3"
+
"@babel/plugin-transform-modules-umd@^7.10.4":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.10.4.tgz#9a8481fe81b824654b3a0b65da3df89f3d21839e"
@@ -655,6 +1103,14 @@
"@babel/helper-module-transforms" "^7.10.4"
"@babel/helper-plugin-utils" "^7.10.4"
+"@babel/plugin-transform-modules-umd@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.12.1.tgz#eb5a218d6b1c68f3d6217b8fa2cc82fec6547902"
+ integrity sha512-aEIubCS0KHKM0zUos5fIoQm+AZUMt1ZvMpqz0/H5qAQ7vWylr9+PLYurT+Ic7ID/bKLd4q8hDovaG3Zch2uz5Q==
+ dependencies:
+ "@babel/helper-module-transforms" "^7.12.1"
+ "@babel/helper-plugin-utils" "^7.10.4"
+
"@babel/plugin-transform-named-capturing-groups-regex@^7.10.4":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.10.4.tgz#78b4d978810b6f3bcf03f9e318f2fc0ed41aecb6"
@@ -662,6 +1118,13 @@
dependencies:
"@babel/helper-create-regexp-features-plugin" "^7.10.4"
+"@babel/plugin-transform-named-capturing-groups-regex@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.1.tgz#b407f5c96be0d9f5f88467497fa82b30ac3e8753"
+ integrity sha512-tB43uQ62RHcoDp9v2Nsf+dSM8sbNodbEicbQNA53zHz8pWUhsgHSJCGpt7daXxRydjb0KnfmB+ChXOv3oADp1Q==
+ dependencies:
+ "@babel/helper-create-regexp-features-plugin" "^7.12.1"
+
"@babel/plugin-transform-new-target@^7.10.4":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.10.4.tgz#9097d753cb7b024cb7381a3b2e52e9513a9c6888"
@@ -669,6 +1132,13 @@
dependencies:
"@babel/helper-plugin-utils" "^7.10.4"
+"@babel/plugin-transform-new-target@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.1.tgz#80073f02ee1bb2d365c3416490e085c95759dec0"
+ integrity sha512-+eW/VLcUL5L9IvJH7rT1sT0CzkdUTvPrXC2PXTn/7z7tXLBuKvezYbGdxD5WMRoyvyaujOq2fWoKl869heKjhw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
"@babel/plugin-transform-object-super@^7.10.4":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.10.4.tgz#d7146c4d139433e7a6526f888c667e314a093894"
@@ -677,6 +1147,14 @@
"@babel/helper-plugin-utils" "^7.10.4"
"@babel/helper-replace-supers" "^7.10.4"
+"@babel/plugin-transform-object-super@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.1.tgz#4ea08696b8d2e65841d0c7706482b048bed1066e"
+ integrity sha512-AvypiGJH9hsquNUn+RXVcBdeE3KHPZexWRdimhuV59cSoOt5kFBmqlByorAeUlGG2CJWd0U+4ZtNKga/TB0cAw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/helper-replace-supers" "^7.12.1"
+
"@babel/plugin-transform-parameters@^7.10.4":
version "7.10.5"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.5.tgz#59d339d58d0b1950435f4043e74e2510005e2c4a"
@@ -685,6 +1163,13 @@
"@babel/helper-get-function-arity" "^7.10.4"
"@babel/helper-plugin-utils" "^7.10.4"
+"@babel/plugin-transform-parameters@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.12.1.tgz#d2e963b038771650c922eff593799c96d853255d"
+ integrity sha512-xq9C5EQhdPK23ZeCdMxl8bbRnAgHFrw5EOC3KJUsSylZqdkCaFEXxGSBuTSObOpiiHHNyb82es8M1QYgfQGfNg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
"@babel/plugin-transform-property-literals@^7.10.4":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.10.4.tgz#f6fe54b6590352298785b83edd815d214c42e3c0"
@@ -692,6 +1177,13 @@
dependencies:
"@babel/helper-plugin-utils" "^7.10.4"
+"@babel/plugin-transform-property-literals@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.1.tgz#41bc81200d730abb4456ab8b3fbd5537b59adecd"
+ integrity sha512-6MTCR/mZ1MQS+AwZLplX4cEySjCpnIF26ToWo942nqn8hXSm7McaHQNeGx/pt7suI1TWOWMfa/NgBhiqSnX0cQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
"@babel/plugin-transform-regenerator@^7.10.4":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.10.4.tgz#2015e59d839074e76838de2159db421966fd8b63"
@@ -699,6 +1191,13 @@
dependencies:
regenerator-transform "^0.14.2"
+"@babel/plugin-transform-regenerator@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.1.tgz#5f0a28d842f6462281f06a964e88ba8d7ab49753"
+ integrity sha512-gYrHqs5itw6i4PflFX3OdBPMQdPbF4bj2REIUxlMRUFk0/ZOAIpDFuViuxPjUL7YC8UPnf+XG7/utJvqXdPKng==
+ dependencies:
+ regenerator-transform "^0.14.2"
+
"@babel/plugin-transform-reserved-words@^7.10.4":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.10.4.tgz#8f2682bcdcef9ed327e1b0861585d7013f8a54dd"
@@ -706,6 +1205,13 @@
dependencies:
"@babel/helper-plugin-utils" "^7.10.4"
+"@babel/plugin-transform-reserved-words@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.1.tgz#6fdfc8cc7edcc42b36a7c12188c6787c873adcd8"
+ integrity sha512-pOnUfhyPKvZpVyBHhSBoX8vfA09b7r00Pmm1sH+29ae2hMTKVmSp4Ztsr8KBKjLjx17H0eJqaRC3bR2iThM54A==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
"@babel/plugin-transform-runtime@^7.11.0":
version "7.11.0"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.11.0.tgz#e27f78eb36f19448636e05c33c90fd9ad9b8bccf"
@@ -723,6 +1229,13 @@
dependencies:
"@babel/helper-plugin-utils" "^7.10.4"
+"@babel/plugin-transform-shorthand-properties@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.1.tgz#0bf9cac5550fce0cfdf043420f661d645fdc75e3"
+ integrity sha512-GFZS3c/MhX1OusqB1MZ1ct2xRzX5ppQh2JU1h2Pnfk88HtFTM+TWQqJNfwkmxtPQtb/s1tk87oENfXJlx7rSDw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
"@babel/plugin-transform-spread@^7.11.0":
version "7.11.0"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.11.0.tgz#fa84d300f5e4f57752fe41a6d1b3c554f13f17cc"
@@ -731,6 +1244,14 @@
"@babel/helper-plugin-utils" "^7.10.4"
"@babel/helper-skip-transparent-expression-wrappers" "^7.11.0"
+"@babel/plugin-transform-spread@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.12.1.tgz#527f9f311be4ec7fdc2b79bb89f7bf884b3e1e1e"
+ integrity sha512-vuLp8CP0BE18zVYjsEBZ5xoCecMK6LBMMxYzJnh01rxQRvhNhH1csMMmBfNo5tGpGO+NhdSNW2mzIvBu3K1fng==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1"
+
"@babel/plugin-transform-sticky-regex@^7.10.4":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.10.4.tgz#8f3889ee8657581130a29d9cc91d7c73b7c4a28d"
@@ -739,6 +1260,13 @@
"@babel/helper-plugin-utils" "^7.10.4"
"@babel/helper-regex" "^7.10.4"
+"@babel/plugin-transform-sticky-regex@^7.12.7":
+ version "7.12.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.7.tgz#560224613ab23987453948ed21d0b0b193fa7fad"
+ integrity sha512-VEiqZL5N/QvDbdjfYQBhruN0HYjSPjC4XkeqW4ny/jNtH9gcbgaqBIXYEZCNnESMAGs0/K/R7oFGMhOyu/eIxg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
"@babel/plugin-transform-template-literals@^7.10.4":
version "7.10.5"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.5.tgz#78bc5d626a6642db3312d9d0f001f5e7639fde8c"
@@ -747,6 +1275,13 @@
"@babel/helper-annotate-as-pure" "^7.10.4"
"@babel/helper-plugin-utils" "^7.10.4"
+"@babel/plugin-transform-template-literals@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.12.1.tgz#b43ece6ed9a79c0c71119f576d299ef09d942843"
+ integrity sha512-b4Zx3KHi+taXB1dVRBhVJtEPi9h1THCeKmae2qP0YdUHIFhVjtpqqNfxeVAa1xeHVhAy4SbHxEwx5cltAu5apw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
"@babel/plugin-transform-typeof-symbol@^7.10.4":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.10.4.tgz#9509f1a7eec31c4edbffe137c16cc33ff0bc5bfc"
@@ -754,6 +1289,13 @@
dependencies:
"@babel/helper-plugin-utils" "^7.10.4"
+"@babel/plugin-transform-typeof-symbol@^7.12.10":
+ version "7.12.10"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.10.tgz#de01c4c8f96580bd00f183072b0d0ecdcf0dec4b"
+ integrity sha512-JQ6H8Rnsogh//ijxspCjc21YPd3VLVoYtAwv3zQmqAt8YGYUtdo5usNhdl4b9/Vir2kPFZl6n1h0PfUz4hJhaA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
"@babel/plugin-transform-unicode-escapes@^7.10.4":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.10.4.tgz#feae523391c7651ddac115dae0a9d06857892007"
@@ -761,6 +1303,13 @@
dependencies:
"@babel/helper-plugin-utils" "^7.10.4"
+"@babel/plugin-transform-unicode-escapes@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.1.tgz#5232b9f81ccb07070b7c3c36c67a1b78f1845709"
+ integrity sha512-I8gNHJLIc7GdApm7wkVnStWssPNbSRMPtgHdmH3sRM1zopz09UWPS4x5V4n1yz/MIWTVnJ9sp6IkuXdWM4w+2Q==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
"@babel/plugin-transform-unicode-regex@^7.10.4":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.10.4.tgz#e56d71f9282fac6db09c82742055576d5e6d80a8"
@@ -769,7 +1318,15 @@
"@babel/helper-create-regexp-features-plugin" "^7.10.4"
"@babel/helper-plugin-utils" "^7.10.4"
-"@babel/preset-env@^7.11.0", "@babel/preset-env@^7.9.6":
+"@babel/plugin-transform-unicode-regex@^7.12.1":
+ version "7.12.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.1.tgz#cc9661f61390db5c65e3febaccefd5c6ac3faecb"
+ integrity sha512-SqH4ClNngh/zGwHZOOQMTD+e8FGWexILV+ePMyiDJttAWRh5dhDL8rcl5lSgU3Huiq6Zn6pWTMvdPAb21Dwdyg==
+ dependencies:
+ "@babel/helper-create-regexp-features-plugin" "^7.12.1"
+ "@babel/helper-plugin-utils" "^7.10.4"
+
+"@babel/preset-env@^7.11.0":
version "7.11.0"
resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.11.0.tgz#860ee38f2ce17ad60480c2021ba9689393efb796"
integrity sha512-2u1/k7rG/gTh02dylX2kL3S0IJNF+J6bfDSp4DI2Ma8QN6Y9x9pmAax59fsCk6QUQG0yqH47yJWA+u1I1LccAg==
@@ -843,6 +1400,78 @@
levenary "^1.1.1"
semver "^5.5.0"
+"@babel/preset-env@^7.12.11":
+ version "7.12.11"
+ resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.12.11.tgz#55d5f7981487365c93dbbc84507b1c7215e857f9"
+ integrity sha512-j8Tb+KKIXKYlDBQyIOy4BLxzv1NUOwlHfZ74rvW+Z0Gp4/cI2IMDPBWAgWceGcE7aep9oL/0K9mlzlMGxA8yNw==
+ dependencies:
+ "@babel/compat-data" "^7.12.7"
+ "@babel/helper-compilation-targets" "^7.12.5"
+ "@babel/helper-module-imports" "^7.12.5"
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/helper-validator-option" "^7.12.11"
+ "@babel/plugin-proposal-async-generator-functions" "^7.12.1"
+ "@babel/plugin-proposal-class-properties" "^7.12.1"
+ "@babel/plugin-proposal-dynamic-import" "^7.12.1"
+ "@babel/plugin-proposal-export-namespace-from" "^7.12.1"
+ "@babel/plugin-proposal-json-strings" "^7.12.1"
+ "@babel/plugin-proposal-logical-assignment-operators" "^7.12.1"
+ "@babel/plugin-proposal-nullish-coalescing-operator" "^7.12.1"
+ "@babel/plugin-proposal-numeric-separator" "^7.12.7"
+ "@babel/plugin-proposal-object-rest-spread" "^7.12.1"
+ "@babel/plugin-proposal-optional-catch-binding" "^7.12.1"
+ "@babel/plugin-proposal-optional-chaining" "^7.12.7"
+ "@babel/plugin-proposal-private-methods" "^7.12.1"
+ "@babel/plugin-proposal-unicode-property-regex" "^7.12.1"
+ "@babel/plugin-syntax-async-generators" "^7.8.0"
+ "@babel/plugin-syntax-class-properties" "^7.12.1"
+ "@babel/plugin-syntax-dynamic-import" "^7.8.0"
+ "@babel/plugin-syntax-export-namespace-from" "^7.8.3"
+ "@babel/plugin-syntax-json-strings" "^7.8.0"
+ "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4"
+ "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0"
+ "@babel/plugin-syntax-numeric-separator" "^7.10.4"
+ "@babel/plugin-syntax-object-rest-spread" "^7.8.0"
+ "@babel/plugin-syntax-optional-catch-binding" "^7.8.0"
+ "@babel/plugin-syntax-optional-chaining" "^7.8.0"
+ "@babel/plugin-syntax-top-level-await" "^7.12.1"
+ "@babel/plugin-transform-arrow-functions" "^7.12.1"
+ "@babel/plugin-transform-async-to-generator" "^7.12.1"
+ "@babel/plugin-transform-block-scoped-functions" "^7.12.1"
+ "@babel/plugin-transform-block-scoping" "^7.12.11"
+ "@babel/plugin-transform-classes" "^7.12.1"
+ "@babel/plugin-transform-computed-properties" "^7.12.1"
+ "@babel/plugin-transform-destructuring" "^7.12.1"
+ "@babel/plugin-transform-dotall-regex" "^7.12.1"
+ "@babel/plugin-transform-duplicate-keys" "^7.12.1"
+ "@babel/plugin-transform-exponentiation-operator" "^7.12.1"
+ "@babel/plugin-transform-for-of" "^7.12.1"
+ "@babel/plugin-transform-function-name" "^7.12.1"
+ "@babel/plugin-transform-literals" "^7.12.1"
+ "@babel/plugin-transform-member-expression-literals" "^7.12.1"
+ "@babel/plugin-transform-modules-amd" "^7.12.1"
+ "@babel/plugin-transform-modules-commonjs" "^7.12.1"
+ "@babel/plugin-transform-modules-systemjs" "^7.12.1"
+ "@babel/plugin-transform-modules-umd" "^7.12.1"
+ "@babel/plugin-transform-named-capturing-groups-regex" "^7.12.1"
+ "@babel/plugin-transform-new-target" "^7.12.1"
+ "@babel/plugin-transform-object-super" "^7.12.1"
+ "@babel/plugin-transform-parameters" "^7.12.1"
+ "@babel/plugin-transform-property-literals" "^7.12.1"
+ "@babel/plugin-transform-regenerator" "^7.12.1"
+ "@babel/plugin-transform-reserved-words" "^7.12.1"
+ "@babel/plugin-transform-shorthand-properties" "^7.12.1"
+ "@babel/plugin-transform-spread" "^7.12.1"
+ "@babel/plugin-transform-sticky-regex" "^7.12.7"
+ "@babel/plugin-transform-template-literals" "^7.12.1"
+ "@babel/plugin-transform-typeof-symbol" "^7.12.10"
+ "@babel/plugin-transform-unicode-escapes" "^7.12.1"
+ "@babel/plugin-transform-unicode-regex" "^7.12.1"
+ "@babel/preset-modules" "^0.1.3"
+ "@babel/types" "^7.12.11"
+ core-js-compat "^3.8.0"
+ semver "^5.5.0"
+
"@babel/preset-modules@^0.1.3":
version "0.1.4"
resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.4.tgz#362f2b68c662842970fdb5e254ffc8fc1c2e415e"
@@ -870,6 +1499,15 @@
"@babel/parser" "^7.10.4"
"@babel/types" "^7.10.4"
+"@babel/template@^7.12.7":
+ version "7.12.7"
+ resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.12.7.tgz#c817233696018e39fbb6c491d2fb684e05ed43bc"
+ integrity sha512-GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow==
+ dependencies:
+ "@babel/code-frame" "^7.10.4"
+ "@babel/parser" "^7.12.7"
+ "@babel/types" "^7.12.7"
+
"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.10.4", "@babel/traverse@^7.11.0", "@babel/traverse@^7.7.0":
version "7.11.0"
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.11.0.tgz#9b996ce1b98f53f7c3e4175115605d56ed07dd24"
@@ -885,6 +1523,21 @@
globals "^11.1.0"
lodash "^4.17.19"
+"@babel/traverse@^7.12.1", "@babel/traverse@^7.12.10", "@babel/traverse@^7.12.5":
+ version "7.12.12"
+ resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.12.12.tgz#d0cd87892704edd8da002d674bc811ce64743376"
+ integrity sha512-s88i0X0lPy45RrLM8b9mz8RPH5FqO9G9p7ti59cToE44xFm1Q+Pjh5Gq4SXBbtb88X7Uy7pexeqRIQDDMNkL0w==
+ dependencies:
+ "@babel/code-frame" "^7.12.11"
+ "@babel/generator" "^7.12.11"
+ "@babel/helper-function-name" "^7.12.11"
+ "@babel/helper-split-export-declaration" "^7.12.11"
+ "@babel/parser" "^7.12.11"
+ "@babel/types" "^7.12.12"
+ debug "^4.1.0"
+ globals "^11.1.0"
+ lodash "^4.17.19"
+
"@babel/types@^7.0.0", "@babel/types@^7.10.4", "@babel/types@^7.10.5", "@babel/types@^7.11.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4", "@babel/types@^7.7.0":
version "7.11.0"
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.11.0.tgz#2ae6bf1ba9ae8c3c43824e5861269871b206e90d"
@@ -894,6 +1547,15 @@
lodash "^4.17.19"
to-fast-properties "^2.0.0"
+"@babel/types@^7.12.1", "@babel/types@^7.12.10", "@babel/types@^7.12.11", "@babel/types@^7.12.12", "@babel/types@^7.12.5", "@babel/types@^7.12.7":
+ version "7.12.12"
+ resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.12.12.tgz#4608a6ec313abbd87afa55004d373ad04a96c299"
+ integrity sha512-lnIX7piTxOH22xE7fDXDbSHg9MM1/6ORnafpJmov5rs0kX5g4BZxeXNJLXsMRiO0U5Rb8/FvMS6xlTnTHvxonQ==
+ dependencies:
+ "@babel/helper-validator-identifier" "^7.12.11"
+ lodash "^4.17.19"
+ to-fast-properties "^2.0.0"
+
"@bcoe/v8-coverage@^0.2.3":
version "0.2.3"
resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
@@ -907,28 +1569,11 @@
exec-sh "^0.3.2"
minimist "^1.2.0"
-"@hapi/address@^4.1.0":
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/@hapi/address/-/address-4.1.0.tgz#d60c5c0d930e77456fdcde2598e77302e2955e1d"
- integrity sha512-SkszZf13HVgGmChdHo/PxchnSaCJ6cetVqLzyciudzZRT0jcOouIF/Q93mgjw8cce+D+4F4C1Z/WrfFN+O3VHQ==
- dependencies:
- "@hapi/hoek" "^9.0.0"
-
-"@hapi/formula@^2.0.0":
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/@hapi/formula/-/formula-2.0.0.tgz#edade0619ed58c8e4f164f233cda70211e787128"
- integrity sha512-V87P8fv7PI0LH7LiVi8Lkf3x+KCO7pQozXRssAHNXXL9L1K+uyu4XypLXwxqVDKgyQai6qj3/KteNlrqDx4W5A==
-
"@hapi/hoek@^9.0.0":
version "9.0.4"
resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.0.4.tgz#e80ad4e8e8d2adc6c77d985f698447e8628b6010"
integrity sha512-EwaJS7RjoXUZ2cXXKZZxZqieGtc7RbvQhUy8FwDoMQtxWVi14tFjeFCYPZAM1mBCpOpiBpyaZbb9NeHc7eGKgw==
-"@hapi/pinpoint@^2.0.0":
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/@hapi/pinpoint/-/pinpoint-2.0.0.tgz#805b40d4dbec04fc116a73089494e00f073de8df"
- integrity sha512-vzXR5MY7n4XeIvLpfl3HtE3coZYO4raKXW766R6DZw/6aLqR26iuZ109K7a0NtF2Db0jxqh7xz2AxkUwpUFybw==
-
"@hapi/topo@^5.0.0":
version "5.0.0"
resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-5.0.0.tgz#c19af8577fa393a06e9c77b60995af959be721e7"
@@ -952,93 +1597,93 @@
resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.2.tgz#26520bf09abe4a5644cd5414e37125a8954241dd"
integrity sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==
-"@jest/console@^26.3.0":
- version "26.3.0"
- resolved "https://registry.yarnpkg.com/@jest/console/-/console-26.3.0.tgz#ed04063efb280c88ba87388b6f16427c0a85c856"
- integrity sha512-/5Pn6sJev0nPUcAdpJHMVIsA8sKizL2ZkcKPE5+dJrCccks7tcM7c9wbgHudBJbxXLoTbqsHkG1Dofoem4F09w==
+"@jest/console@^26.6.2":
+ version "26.6.2"
+ resolved "https://registry.yarnpkg.com/@jest/console/-/console-26.6.2.tgz#4e04bc464014358b03ab4937805ee36a0aeb98f2"
+ integrity sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g==
dependencies:
- "@jest/types" "^26.3.0"
+ "@jest/types" "^26.6.2"
"@types/node" "*"
chalk "^4.0.0"
- jest-message-util "^26.3.0"
- jest-util "^26.3.0"
+ jest-message-util "^26.6.2"
+ jest-util "^26.6.2"
slash "^3.0.0"
-"@jest/core@^26.4.2":
- version "26.4.2"
- resolved "https://registry.yarnpkg.com/@jest/core/-/core-26.4.2.tgz#85d0894f31ac29b5bab07aa86806d03dd3d33edc"
- integrity sha512-sDva7YkeNprxJfepOctzS8cAk9TOekldh+5FhVuXS40+94SHbiicRO1VV2tSoRtgIo+POs/Cdyf8p76vPTd6dg==
+"@jest/core@^26.6.3":
+ version "26.6.3"
+ resolved "https://registry.yarnpkg.com/@jest/core/-/core-26.6.3.tgz#7639fcb3833d748a4656ada54bde193051e45fad"
+ integrity sha512-xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw==
dependencies:
- "@jest/console" "^26.3.0"
- "@jest/reporters" "^26.4.1"
- "@jest/test-result" "^26.3.0"
- "@jest/transform" "^26.3.0"
- "@jest/types" "^26.3.0"
+ "@jest/console" "^26.6.2"
+ "@jest/reporters" "^26.6.2"
+ "@jest/test-result" "^26.6.2"
+ "@jest/transform" "^26.6.2"
+ "@jest/types" "^26.6.2"
"@types/node" "*"
ansi-escapes "^4.2.1"
chalk "^4.0.0"
exit "^0.1.2"
graceful-fs "^4.2.4"
- jest-changed-files "^26.3.0"
- jest-config "^26.4.2"
- jest-haste-map "^26.3.0"
- jest-message-util "^26.3.0"
+ jest-changed-files "^26.6.2"
+ jest-config "^26.6.3"
+ jest-haste-map "^26.6.2"
+ jest-message-util "^26.6.2"
jest-regex-util "^26.0.0"
- jest-resolve "^26.4.0"
- jest-resolve-dependencies "^26.4.2"
- jest-runner "^26.4.2"
- jest-runtime "^26.4.2"
- jest-snapshot "^26.4.2"
- jest-util "^26.3.0"
- jest-validate "^26.4.2"
- jest-watcher "^26.3.0"
+ jest-resolve "^26.6.2"
+ jest-resolve-dependencies "^26.6.3"
+ jest-runner "^26.6.3"
+ jest-runtime "^26.6.3"
+ jest-snapshot "^26.6.2"
+ jest-util "^26.6.2"
+ jest-validate "^26.6.2"
+ jest-watcher "^26.6.2"
micromatch "^4.0.2"
p-each-series "^2.1.0"
rimraf "^3.0.0"
slash "^3.0.0"
strip-ansi "^6.0.0"
-"@jest/environment@^26.3.0":
- version "26.3.0"
- resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-26.3.0.tgz#e6953ab711ae3e44754a025f838bde1a7fd236a0"
- integrity sha512-EW+MFEo0DGHahf83RAaiqQx688qpXgl99wdb8Fy67ybyzHwR1a58LHcO376xQJHfmoXTu89M09dH3J509cx2AA==
+"@jest/environment@^26.6.2":
+ version "26.6.2"
+ resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-26.6.2.tgz#ba364cc72e221e79cc8f0a99555bf5d7577cf92c"
+ integrity sha512-nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA==
dependencies:
- "@jest/fake-timers" "^26.3.0"
- "@jest/types" "^26.3.0"
+ "@jest/fake-timers" "^26.6.2"
+ "@jest/types" "^26.6.2"
"@types/node" "*"
- jest-mock "^26.3.0"
+ jest-mock "^26.6.2"
-"@jest/fake-timers@^26.3.0":
- version "26.3.0"
- resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-26.3.0.tgz#f515d4667a6770f60ae06ae050f4e001126c666a"
- integrity sha512-ZL9ytUiRwVP8ujfRepffokBvD2KbxbqMhrXSBhSdAhISCw3gOkuntisiSFv+A6HN0n0fF4cxzICEKZENLmW+1A==
+"@jest/fake-timers@^26.6.2":
+ version "26.6.2"
+ resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-26.6.2.tgz#459c329bcf70cee4af4d7e3f3e67848123535aad"
+ integrity sha512-14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA==
dependencies:
- "@jest/types" "^26.3.0"
+ "@jest/types" "^26.6.2"
"@sinonjs/fake-timers" "^6.0.1"
"@types/node" "*"
- jest-message-util "^26.3.0"
- jest-mock "^26.3.0"
- jest-util "^26.3.0"
+ jest-message-util "^26.6.2"
+ jest-mock "^26.6.2"
+ jest-util "^26.6.2"
-"@jest/globals@^26.4.2":
- version "26.4.2"
- resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-26.4.2.tgz#73c2a862ac691d998889a241beb3dc9cada40d4a"
- integrity sha512-Ot5ouAlehhHLRhc+sDz2/9bmNv9p5ZWZ9LE1pXGGTCXBasmi5jnYjlgYcYt03FBwLmZXCZ7GrL29c33/XRQiow==
+"@jest/globals@^26.6.2":
+ version "26.6.2"
+ resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-26.6.2.tgz#5b613b78a1aa2655ae908eba638cc96a20df720a"
+ integrity sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA==
dependencies:
- "@jest/environment" "^26.3.0"
- "@jest/types" "^26.3.0"
- expect "^26.4.2"
+ "@jest/environment" "^26.6.2"
+ "@jest/types" "^26.6.2"
+ expect "^26.6.2"
-"@jest/reporters@^26.4.1":
- version "26.4.1"
- resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-26.4.1.tgz#3b4d6faf28650f3965f8b97bc3d114077fb71795"
- integrity sha512-aROTkCLU8++yiRGVxLsuDmZsQEKO6LprlrxtAuzvtpbIFl3eIjgIf3EUxDKgomkS25R9ZzwGEdB5weCcBZlrpQ==
+"@jest/reporters@^26.6.2":
+ version "26.6.2"
+ resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-26.6.2.tgz#1f518b99637a5f18307bd3ecf9275f6882a667f6"
+ integrity sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw==
dependencies:
"@bcoe/v8-coverage" "^0.2.3"
- "@jest/console" "^26.3.0"
- "@jest/test-result" "^26.3.0"
- "@jest/transform" "^26.3.0"
- "@jest/types" "^26.3.0"
+ "@jest/console" "^26.6.2"
+ "@jest/test-result" "^26.6.2"
+ "@jest/transform" "^26.6.2"
+ "@jest/types" "^26.6.2"
chalk "^4.0.0"
collect-v8-coverage "^1.0.0"
exit "^0.1.2"
@@ -1049,73 +1694,73 @@
istanbul-lib-report "^3.0.0"
istanbul-lib-source-maps "^4.0.0"
istanbul-reports "^3.0.2"
- jest-haste-map "^26.3.0"
- jest-resolve "^26.4.0"
- jest-util "^26.3.0"
- jest-worker "^26.3.0"
+ jest-haste-map "^26.6.2"
+ jest-resolve "^26.6.2"
+ jest-util "^26.6.2"
+ jest-worker "^26.6.2"
slash "^3.0.0"
source-map "^0.6.0"
string-length "^4.0.1"
terminal-link "^2.0.0"
- v8-to-istanbul "^5.0.1"
+ v8-to-istanbul "^7.0.0"
optionalDependencies:
node-notifier "^8.0.0"
-"@jest/source-map@^26.3.0":
- version "26.3.0"
- resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-26.3.0.tgz#0e646e519883c14c551f7b5ae4ff5f1bfe4fc3d9"
- integrity sha512-hWX5IHmMDWe1kyrKl7IhFwqOuAreIwHhbe44+XH2ZRHjrKIh0LO5eLQ/vxHFeAfRwJapmxuqlGAEYLadDq6ZGQ==
+"@jest/source-map@^26.6.2":
+ version "26.6.2"
+ resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-26.6.2.tgz#29af5e1e2e324cafccc936f218309f54ab69d535"
+ integrity sha512-YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA==
dependencies:
callsites "^3.0.0"
graceful-fs "^4.2.4"
source-map "^0.6.0"
-"@jest/test-result@^26.3.0":
- version "26.3.0"
- resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-26.3.0.tgz#46cde01fa10c0aaeb7431bf71e4a20d885bc7fdb"
- integrity sha512-a8rbLqzW/q7HWheFVMtghXV79Xk+GWwOK1FrtimpI5n1la2SY0qHri3/b0/1F0Ve0/yJmV8pEhxDfVwiUBGtgg==
+"@jest/test-result@^26.6.2":
+ version "26.6.2"
+ resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-26.6.2.tgz#55da58b62df134576cc95476efa5f7949e3f5f18"
+ integrity sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ==
dependencies:
- "@jest/console" "^26.3.0"
- "@jest/types" "^26.3.0"
+ "@jest/console" "^26.6.2"
+ "@jest/types" "^26.6.2"
"@types/istanbul-lib-coverage" "^2.0.0"
collect-v8-coverage "^1.0.0"
-"@jest/test-sequencer@^26.4.2":
- version "26.4.2"
- resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-26.4.2.tgz#58a3760a61eec758a2ce6080201424580d97cbba"
- integrity sha512-83DRD8N3M0tOhz9h0bn6Kl6dSp+US6DazuVF8J9m21WAp5x7CqSMaNycMP0aemC/SH/pDQQddbsfHRTBXVUgog==
+"@jest/test-sequencer@^26.6.3":
+ version "26.6.3"
+ resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-26.6.3.tgz#98e8a45100863886d074205e8ffdc5a7eb582b17"
+ integrity sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw==
dependencies:
- "@jest/test-result" "^26.3.0"
+ "@jest/test-result" "^26.6.2"
graceful-fs "^4.2.4"
- jest-haste-map "^26.3.0"
- jest-runner "^26.4.2"
- jest-runtime "^26.4.2"
+ jest-haste-map "^26.6.2"
+ jest-runner "^26.6.3"
+ jest-runtime "^26.6.3"
-"@jest/transform@^26.3.0":
- version "26.3.0"
- resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-26.3.0.tgz#c393e0e01459da8a8bfc6d2a7c2ece1a13e8ba55"
- integrity sha512-Isj6NB68QorGoFWvcOjlUhpkT56PqNIsXKR7XfvoDlCANn/IANlh8DrKAA2l2JKC3yWSMH5wS0GwuQM20w3b2A==
+"@jest/transform@^26.6.2":
+ version "26.6.2"
+ resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-26.6.2.tgz#5ac57c5fa1ad17b2aae83e73e45813894dcf2e4b"
+ integrity sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA==
dependencies:
"@babel/core" "^7.1.0"
- "@jest/types" "^26.3.0"
+ "@jest/types" "^26.6.2"
babel-plugin-istanbul "^6.0.0"
chalk "^4.0.0"
convert-source-map "^1.4.0"
fast-json-stable-stringify "^2.0.0"
graceful-fs "^4.2.4"
- jest-haste-map "^26.3.0"
+ jest-haste-map "^26.6.2"
jest-regex-util "^26.0.0"
- jest-util "^26.3.0"
+ jest-util "^26.6.2"
micromatch "^4.0.2"
pirates "^4.0.1"
slash "^3.0.0"
source-map "^0.6.1"
write-file-atomic "^3.0.0"
-"@jest/types@^26.3.0":
- version "26.3.0"
- resolved "https://registry.yarnpkg.com/@jest/types/-/types-26.3.0.tgz#97627bf4bdb72c55346eef98e3b3f7ddc4941f71"
- integrity sha512-BDPG23U0qDeAvU4f99haztXwdAg3hz4El95LkAM+tHAqqhiVzRpEGHHU8EDxT/AnxOrA65YjLBwDahdJ9pTLJQ==
+"@jest/types@^26.6.2":
+ version "26.6.2"
+ resolved "https://registry.yarnpkg.com/@jest/types/-/types-26.6.2.tgz#bef5a532030e1d88a2f5a6d933f84e97226ed48e"
+ integrity sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==
dependencies:
"@types/istanbul-lib-coverage" "^2.0.0"
"@types/istanbul-reports" "^3.0.0"
@@ -1186,6 +1831,23 @@
estree-walker "^1.0.1"
picomatch "^2.2.2"
+"@sideway/address@^4.1.0":
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/@sideway/address/-/address-4.1.0.tgz#0b301ada10ac4e0e3fa525c90615e0b61a72b78d"
+ integrity sha512-wAH/JYRXeIFQRsxerIuLjgUu2Xszam+O5xKeatJ4oudShOOirfmsQ1D6LL54XOU2tizpCYku+s1wmU0SYdpoSA==
+ dependencies:
+ "@hapi/hoek" "^9.0.0"
+
+"@sideway/formula@^3.0.0":
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/@sideway/formula/-/formula-3.0.0.tgz#fe158aee32e6bd5de85044be615bc08478a0a13c"
+ integrity sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg==
+
+"@sideway/pinpoint@^2.0.0":
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/@sideway/pinpoint/-/pinpoint-2.0.0.tgz#cff8ffadc372ad29fd3f78277aeb29e632cc70df"
+ integrity sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==
+
"@sindresorhus/is@^0.14.0":
version "0.14.0"
resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea"
@@ -1245,6 +1907,13 @@
dependencies:
"@babel/types" "^7.3.0"
+"@types/babel__traverse@^7.0.4":
+ version "7.11.0"
+ resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.11.0.tgz#b9a1efa635201ba9bc850323a8793ee2d36c04a0"
+ integrity sha512-kSjgDMZONiIfSH1Nxcr5JIRMwUetDki63FSQfpTCz8ogF3Ulqm8+mr5f78dUYs6vMiB6gBusQqfQmBvHZj/lwg==
+ dependencies:
+ "@babel/types" "^7.3.0"
+
"@types/buble@^0.19.2":
version "0.19.2"
resolved "https://registry.yarnpkg.com/@types/buble/-/buble-0.19.2.tgz#a4289d20b175b3c206aaad80caabdabe3ecdfdd1"
@@ -1348,10 +2017,10 @@
dependencies:
"@types/node" "*"
-"@types/stack-utils@^1.0.1":
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-1.0.1.tgz#0a851d3bd96498fa25c33ab7278ed3bd65f06c3e"
- integrity sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw==
+"@types/stack-utils@^2.0.0":
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.0.tgz#7036640b4e21cc2f259ae826ce843d277dad8cff"
+ integrity sha512-RJJrrySY7A8havqpGObOB4W92QXKJo63/jFLLgpvOtsGUqbQZ9Sbgl35KMm1DjC6j7AvmmU2bIno+3IyEaemaw==
"@types/yargs-parser@*":
version "15.0.0"
@@ -1489,18 +2158,18 @@
optionalDependencies:
prettier "^1.18.2"
-"@vuepress/core@1.6.0":
- version "1.6.0"
- resolved "https://registry.yarnpkg.com/@vuepress/core/-/core-1.6.0.tgz#8abca498cd8c589dd621be5d5b1c9c805dfed3fd"
- integrity sha512-zce6xMB77pk4g44CHYE75cBuJpa3lmLPujknymH0sD1LKkSrlkgH04x+LGhu98bVU/hiS0xjV3jDs3X37Texbw==
+"@vuepress/core@1.8.2":
+ version "1.8.2"
+ resolved "https://registry.yarnpkg.com/@vuepress/core/-/core-1.8.2.tgz#4f5bafc894691bfea4146294a582a129483daf2a"
+ integrity sha512-lh9BLC06k9s0wxTuWtCkiNj49fkbW87enp0XSrFZHEoyDGSGndQjZmMMErcHc5Hx7nrW1nzc33sPH1NNtJl0hw==
dependencies:
"@babel/core" "^7.8.4"
"@vue/babel-preset-app" "^4.1.2"
- "@vuepress/markdown" "1.6.0"
- "@vuepress/markdown-loader" "1.6.0"
- "@vuepress/plugin-last-updated" "1.6.0"
- "@vuepress/plugin-register-components" "1.6.0"
- "@vuepress/shared-utils" "1.6.0"
+ "@vuepress/markdown" "1.8.2"
+ "@vuepress/markdown-loader" "1.8.2"
+ "@vuepress/plugin-last-updated" "1.8.2"
+ "@vuepress/plugin-register-components" "1.8.2"
+ "@vuepress/shared-utils" "1.8.2"
autoprefixer "^9.5.1"
babel-loader "^8.0.4"
cache-loader "^3.0.0"
@@ -1522,7 +2191,7 @@
url-loader "^1.0.1"
vue "^2.6.10"
vue-loader "^15.7.1"
- vue-router "^3.1.3"
+ vue-router "^3.4.5"
vue-server-renderer "^2.6.10"
vue-template-compiler "^2.6.10"
vuepress-html-webpack-plugin "^3.2.0"
@@ -1533,21 +2202,21 @@
webpack-merge "^4.1.2"
webpackbar "3.2.0"
-"@vuepress/markdown-loader@1.6.0":
- version "1.6.0"
- resolved "https://registry.yarnpkg.com/@vuepress/markdown-loader/-/markdown-loader-1.6.0.tgz#5a666c5b01c01181a3c0802ceed5a2b96577d9c7"
- integrity sha512-7cYD9+td89u0EePoHw+nVwxCoafYvpP10r6RfdN3Ongvd2apyn37Mjjv+85U1jnSTRvjZHV4v7KFs4H8+Y0xiw==
+"@vuepress/markdown-loader@1.8.2":
+ version "1.8.2"
+ resolved "https://registry.yarnpkg.com/@vuepress/markdown-loader/-/markdown-loader-1.8.2.tgz#b2a58291a967f2bbe0af6e58f9542f5911879233"
+ integrity sha512-mWzFXikCUcAN/chpKkqZpRYKdo0312hMv8cBea2hvrJYV6y4ODB066XKvXN8JwOcxuCjxWYJkhWGr+pXq1oTtw==
dependencies:
- "@vuepress/markdown" "1.6.0"
+ "@vuepress/markdown" "1.8.2"
loader-utils "^1.1.0"
lru-cache "^5.1.1"
-"@vuepress/markdown@1.6.0":
- version "1.6.0"
- resolved "https://registry.yarnpkg.com/@vuepress/markdown/-/markdown-1.6.0.tgz#6702a1938b5d5308919261ffcc5c369eabfa6694"
- integrity sha512-niFP+mKbEPu82OkkYf+dZMd8cWYfKEeIFq2jrQCJcVnCuSGVmJbKJbQF+cP/iu+94RHFVUtKwsh4X3Ef/1PLXw==
+"@vuepress/markdown@1.8.2":
+ version "1.8.2"
+ resolved "https://registry.yarnpkg.com/@vuepress/markdown/-/markdown-1.8.2.tgz#50ea5a1962591a436b26d1aa2b111df37eb9ea8a"
+ integrity sha512-zznBHVqW+iBkznF/BO/GY9RFu53khyl0Ey0PnGqvwCJpRLNan6y5EXgYumtjw2GSYn5nDTTALYxtyNBdz64PKg==
dependencies:
- "@vuepress/shared-utils" "1.6.0"
+ "@vuepress/shared-utils" "1.8.2"
markdown-it "^8.4.1"
markdown-it-anchor "^5.0.2"
markdown-it-chain "^1.3.0"
@@ -1555,43 +2224,43 @@
markdown-it-table-of-contents "^0.4.0"
prismjs "^1.13.0"
-"@vuepress/plugin-active-header-links@1.6.0":
- version "1.6.0"
- resolved "https://registry.yarnpkg.com/@vuepress/plugin-active-header-links/-/plugin-active-header-links-1.6.0.tgz#7d94db2e34a0b4af10b93171f56e7efc3bb7bd40"
- integrity sha512-AsbUptcwtBJtlvrcDyiW2HZAHz/tLoYXrGopJVPtWUZ9LzNIcXuSFVIRzKd1Jc+86VPUYLeDhLBIWe0rfsphAQ==
+"@vuepress/plugin-active-header-links@1.8.2":
+ version "1.8.2"
+ resolved "https://registry.yarnpkg.com/@vuepress/plugin-active-header-links/-/plugin-active-header-links-1.8.2.tgz#0cb9b29c826dd97d35357a9b09c962ef782cb793"
+ integrity sha512-JmXAQg8D7J8mcKe2Ue3BZ9dOCzJMJXP4Cnkkc/IrqfDg0ET0l96gYWZohCqlvRIWt4f0VPiFAO4FLYrW+hko+g==
dependencies:
lodash.debounce "^4.0.8"
-"@vuepress/plugin-last-updated@1.6.0":
- version "1.6.0"
- resolved "https://registry.yarnpkg.com/@vuepress/plugin-last-updated/-/plugin-last-updated-1.6.0.tgz#9c27739b87adc908b1fbb90f96b3456065c20f08"
- integrity sha512-/gnk9HGaZw3ow/i9ODjZxK40TbriTWuMY3YYIzqvP7CT3mrM92nMKYDygYbffbu6xkWdUZppN8JadtJ7we4z9A==
+"@vuepress/plugin-last-updated@1.8.2":
+ version "1.8.2"
+ resolved "https://registry.yarnpkg.com/@vuepress/plugin-last-updated/-/plugin-last-updated-1.8.2.tgz#7ce689f8d5050cf0213949bc2e5aa879c09ff4b1"
+ integrity sha512-pYIRZi52huO9b6HY3JQNPKNERCLzMHejjBRt9ekdnJ1xhLs4MmRvt37BoXjI/qzvXkYtr7nmGgnKThNBVRTZuA==
dependencies:
cross-spawn "^6.0.5"
-"@vuepress/plugin-nprogress@1.6.0":
- version "1.6.0"
- resolved "https://registry.yarnpkg.com/@vuepress/plugin-nprogress/-/plugin-nprogress-1.6.0.tgz#7c93a3ed233ef8cc21b689d54f518902502e064c"
- integrity sha512-dhIho2z33aGjPavcdVYRlqR3+ZC5Vd3FPd+HkRP8MdIIFxhVR1HLFxVgaSUcASOCGAwuG58OB2RStvgMQLtTEA==
+"@vuepress/plugin-nprogress@1.8.2":
+ version "1.8.2"
+ resolved "https://registry.yarnpkg.com/@vuepress/plugin-nprogress/-/plugin-nprogress-1.8.2.tgz#dc6c082925420c8c59ecb7fc2d4a9401f6d4664a"
+ integrity sha512-3TOBee2NM3WLr1tdjDTGfrAMggjN+OlEPyKyv8FqThsVkDYhw48O3HwqlThp9KX7UbL3ExxIFBwWRFLC+kYrdw==
dependencies:
nprogress "^0.2.0"
-"@vuepress/plugin-register-components@1.6.0":
- version "1.6.0"
- resolved "https://registry.yarnpkg.com/@vuepress/plugin-register-components/-/plugin-register-components-1.6.0.tgz#bdf7271a38edffa83d48ab82210489f4fc6343e8"
- integrity sha512-w9Lafh1G3514rulpjSoIfZXt94wZ5oMkpXyVzXyC2wRHqSu/4fKpcxhwxf6HeT57jIBdPifT+eUrL+XIZWnXLQ==
+"@vuepress/plugin-register-components@1.8.2":
+ version "1.8.2"
+ resolved "https://registry.yarnpkg.com/@vuepress/plugin-register-components/-/plugin-register-components-1.8.2.tgz#2fb45a68b0a1efb8822670d95c3b231a2d0eb74d"
+ integrity sha512-6SUq3nHFMEh9qKFnjA8QnrNxj0kLs7+Gspq1OBU8vtu0NQmSvLFZVaMV7pzT/9zN2nO5Pld5qhsUJv1g71MrEA==
dependencies:
- "@vuepress/shared-utils" "1.6.0"
+ "@vuepress/shared-utils" "1.8.2"
-"@vuepress/plugin-search@1.6.0":
- version "1.6.0"
- resolved "https://registry.yarnpkg.com/@vuepress/plugin-search/-/plugin-search-1.6.0.tgz#a064f638a8f30485859b871047deaf9194ffc886"
- integrity sha512-Js7zRmM6/b6dYfnJsSP2MQN0lzjUfSX8l3z9y/QHxK8BaXIx7LdTcQY6FGK4pxuwlWcg02CIUS5BMc1gZKn6Nw==
+"@vuepress/plugin-search@1.8.2":
+ version "1.8.2"
+ resolved "https://registry.yarnpkg.com/@vuepress/plugin-search/-/plugin-search-1.8.2.tgz#74b92f663acf6b4560e15dc0442a84c4e874e206"
+ integrity sha512-JrSJr9o0Kar14lVtZ4wfw39pplxvvMh8vDBD9oW09a+6Zi/4bySPGdcdaqdqGW+OHSiZNvG+6uyfKSBBBqF6PA==
-"@vuepress/shared-utils@1.6.0":
- version "1.6.0"
- resolved "https://registry.yarnpkg.com/@vuepress/shared-utils/-/shared-utils-1.6.0.tgz#8bf0c9c4e502bc6f10e70db3b236e816d8165631"
- integrity sha512-+TMHgW7gmVY2lRX5qpPbsLkbxTBbzRo+Ar05tvEI0bAG0c6v2gWyQr3BchdbLyRJxrAVk530PABAjM8roDJ9bw==
+"@vuepress/shared-utils@1.8.2":
+ version "1.8.2"
+ resolved "https://registry.yarnpkg.com/@vuepress/shared-utils/-/shared-utils-1.8.2.tgz#5ec1601f2196aca34ad82eed7c9be2d7948f705b"
+ integrity sha512-6kGubc7iBDWruEBUU7yR+sQ++SOhMuvKWvWeTZJKRZedthycdzYz7QVpua0FaZSAJm5/dIt8ymU4WQvxTtZgTQ==
dependencies:
chalk "^2.3.2"
escape-html "^1.0.3"
@@ -1603,14 +2272,14 @@
toml "^3.0.0"
upath "^1.1.0"
-"@vuepress/theme-default@1.6.0":
- version "1.6.0"
- resolved "https://registry.yarnpkg.com/@vuepress/theme-default/-/theme-default-1.6.0.tgz#870c4513a186ae233d2c818fb8bef753f35da972"
- integrity sha512-dV6awQzV+gQqxYK8oHY5A9Hwj34H23bA2khPjqqLDpgLMnw4tvxMfriwK5tuaAjgnHT+MZB1VmgsNdUA9T9HIQ==
+"@vuepress/theme-default@1.8.2":
+ version "1.8.2"
+ resolved "https://registry.yarnpkg.com/@vuepress/theme-default/-/theme-default-1.8.2.tgz#7f474036c752c1f9801b83f68f5c70c092b182b4"
+ integrity sha512-rE7M1rs3n2xp4a/GrweO8EGwqFn3EA5gnFWdVmVIHyr7C1nix+EqjpPQF1SVWNnIrDdQuCw38PqS+oND1K2vYw==
dependencies:
- "@vuepress/plugin-active-header-links" "1.6.0"
- "@vuepress/plugin-nprogress" "1.6.0"
- "@vuepress/plugin-search" "1.6.0"
+ "@vuepress/plugin-active-header-links" "1.8.2"
+ "@vuepress/plugin-nprogress" "1.8.2"
+ "@vuepress/plugin-search" "1.8.2"
docsearch.js "^2.5.2"
lodash "^4.17.15"
stylus "^0.54.8"
@@ -1618,12 +2287,12 @@
vuepress-plugin-container "^2.0.2"
vuepress-plugin-smooth-scroll "^0.0.3"
-"@vuepress/theme-vue@^1.6.0":
- version "1.6.0"
- resolved "https://registry.yarnpkg.com/@vuepress/theme-vue/-/theme-vue-1.6.0.tgz#7107b04808261a22d5ef0a9d2a75993886d14fc1"
- integrity sha512-WdR7Ez7rabDDQoqBcVXSAWNdKNw7Ez0R7WQP+Fau52BjNPnECzSaXo4EDrwTRm2Ps49L+X6wFyVK7lW7hKBtTQ==
+"@vuepress/theme-vue@^1.8.2":
+ version "1.8.2"
+ resolved "https://registry.yarnpkg.com/@vuepress/theme-vue/-/theme-vue-1.8.2.tgz#7cf253588bed9199fdd051c77bfc2304b18f9c42"
+ integrity sha512-Eu+8JrJc9ksXLgbtkweFURBPMywQGvOWAFuVcYMQjHLfecI06Zfc1XLeXmKw50gRRQFgsB1kUhqrQOah9gIpwA==
dependencies:
- "@vuepress/theme-default" "1.6.0"
+ "@vuepress/theme-default" "1.8.2"
"@webassemblyjs/ast@1.9.0":
version "1.9.0"
@@ -2146,12 +2815,12 @@ aws4@^1.8.0:
resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.10.1.tgz#e1e82e4f3e999e2cfd61b161280d16a111f86428"
integrity sha512-zg7Hz2k5lI8kb7U32998pRRFin7zJlkfezGJjUc2heaD4Pw2wObakCDVzkKztTm/Ln7eiVvYsjqak0Ed4LkMDA==
-axios@^0.19.2:
- version "0.19.2"
- resolved "https://registry.yarnpkg.com/axios/-/axios-0.19.2.tgz#3ea36c5d8818d0d5f8a8a97a6d36b86cdc00cb27"
- integrity sha512-fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA==
+axios@^0.21.1:
+ version "0.21.1"
+ resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.1.tgz#22563481962f4d6bde9a76d516ef0e5d3c09b2b8"
+ integrity sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==
dependencies:
- follow-redirects "1.5.10"
+ follow-redirects "^1.10.0"
babel-eslint@^10.0.1:
version "10.1.0"
@@ -2165,21 +2834,21 @@ babel-eslint@^10.0.1:
eslint-visitor-keys "^1.0.0"
resolve "^1.12.0"
-babel-jest@^26.0.1, babel-jest@^26.3.0:
- version "26.3.0"
- resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-26.3.0.tgz#10d0ca4b529ca3e7d1417855ef7d7bd6fc0c3463"
- integrity sha512-sxPnQGEyHAOPF8NcUsD0g7hDCnvLL2XyblRBcgrzTWBB/mAIpWow3n1bEL+VghnnZfreLhFSBsFluRoK2tRK4g==
+babel-jest@^26.6.3:
+ version "26.6.3"
+ resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-26.6.3.tgz#d87d25cb0037577a0c89f82e5755c5d293c01056"
+ integrity sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA==
dependencies:
- "@jest/transform" "^26.3.0"
- "@jest/types" "^26.3.0"
+ "@jest/transform" "^26.6.2"
+ "@jest/types" "^26.6.2"
"@types/babel__core" "^7.1.7"
babel-plugin-istanbul "^6.0.0"
- babel-preset-jest "^26.3.0"
+ babel-preset-jest "^26.6.2"
chalk "^4.0.0"
graceful-fs "^4.2.4"
slash "^3.0.0"
-babel-loader@^8.0.4, babel-loader@^8.1.0:
+babel-loader@^8.0.4:
version "8.1.0"
resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.1.0.tgz#c611d5112bd5209abe8b9fa84c3e4da25275f1c3"
integrity sha512-7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw==
@@ -2190,6 +2859,16 @@ babel-loader@^8.0.4, babel-loader@^8.1.0:
pify "^4.0.1"
schema-utils "^2.6.5"
+babel-loader@^8.2.2:
+ version "8.2.2"
+ resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.2.tgz#9363ce84c10c9a40e6c753748e1441b60c8a0b81"
+ integrity sha512-JvTd0/D889PQBtUXJ2PXaKU/pjZDMtHA9V2ecm+eNRmmBCMR09a+fmpGTNwnJtFmFl5Ei7Vy47LjBb+L0wQ99g==
+ dependencies:
+ find-cache-dir "^3.3.1"
+ loader-utils "^1.4.0"
+ make-dir "^3.1.0"
+ schema-utils "^2.6.5"
+
babel-plugin-dynamic-import-node@^2.3.3:
version "2.3.3"
resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3"
@@ -2208,20 +2887,20 @@ babel-plugin-istanbul@^6.0.0:
istanbul-lib-instrument "^4.0.0"
test-exclude "^6.0.0"
-babel-plugin-jest-hoist@^26.2.0:
- version "26.2.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.2.0.tgz#bdd0011df0d3d513e5e95f76bd53b51147aca2dd"
- integrity sha512-B/hVMRv8Nh1sQ1a3EY8I0n4Y1Wty3NrR5ebOyVT302op+DOAau+xNEImGMsUWOC3++ZlMooCytKz+NgN8aKGbA==
+babel-plugin-jest-hoist@^26.6.2:
+ version "26.6.2"
+ resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.6.2.tgz#8185bd030348d254c6d7dd974355e6a28b21e62d"
+ integrity sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw==
dependencies:
"@babel/template" "^7.3.3"
"@babel/types" "^7.3.3"
"@types/babel__core" "^7.0.0"
"@types/babel__traverse" "^7.0.6"
-babel-preset-current-node-syntax@^0.1.3:
- version "0.1.3"
- resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-0.1.3.tgz#b4b547acddbf963cba555ba9f9cbbb70bfd044da"
- integrity sha512-uyexu1sVwcdFnyq9o8UQYsXwXflIh8LvrF5+cKrYam93ned1CStffB3+BEcsxGSgagoA3GEyjDqO4a/58hyPYQ==
+babel-preset-current-node-syntax@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b"
+ integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==
dependencies:
"@babel/plugin-syntax-async-generators" "^7.8.4"
"@babel/plugin-syntax-bigint" "^7.8.3"
@@ -2234,14 +2913,15 @@ babel-preset-current-node-syntax@^0.1.3:
"@babel/plugin-syntax-object-rest-spread" "^7.8.3"
"@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
"@babel/plugin-syntax-optional-chaining" "^7.8.3"
+ "@babel/plugin-syntax-top-level-await" "^7.8.3"
-babel-preset-jest@^26.3.0:
- version "26.3.0"
- resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-26.3.0.tgz#ed6344506225c065fd8a0b53e191986f74890776"
- integrity sha512-5WPdf7nyYi2/eRxCbVrE1kKCWxgWY4RsPEbdJWFm7QsesFGqjdkyLeu1zRkwM1cxK6EPIlNd6d2AxLk7J+t4pw==
+babel-preset-jest@^26.6.2:
+ version "26.6.2"
+ resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-26.6.2.tgz#747872b1171df032252426586881d62d31798fee"
+ integrity sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ==
dependencies:
- babel-plugin-jest-hoist "^26.2.0"
- babel-preset-current-node-syntax "^0.1.3"
+ babel-plugin-jest-hoist "^26.6.2"
+ babel-preset-current-node-syntax "^1.0.0"
balanced-match@^1.0.0:
version "1.0.0"
@@ -2319,10 +2999,10 @@ bluebird@3.7.2, bluebird@^3.1.1, bluebird@^3.5.5:
resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f"
integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==
-bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.4.0:
- version "4.11.9"
- resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.9.tgz#26d556829458f9d1e81fc48952493d0ba3507828"
- integrity sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==
+bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9:
+ version "4.12.0"
+ resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88"
+ integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==
bn.js@^5.1.1:
version "5.1.3"
@@ -2407,7 +3087,7 @@ braces@^3.0.1, braces@~3.0.2:
dependencies:
fill-range "^7.0.1"
-brorand@^1.0.1:
+brorand@^1.0.1, brorand@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f"
integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=
@@ -2485,15 +3165,16 @@ browserify-zlib@^0.2.0:
dependencies:
pako "~1.0.5"
-browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.8.5:
- version "4.14.0"
- resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.14.0.tgz#2908951abfe4ec98737b72f34c3bcedc8d43b000"
- integrity sha512-pUsXKAF2lVwhmtpeA3LJrZ76jXuusrNyhduuQs7CDFf9foT4Y38aQOserd2lMe5DSSrjf3fx34oHwryuvxAUgQ==
+browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.14.5, browserslist@^4.16.1, browserslist@^4.8.5:
+ version "4.16.6"
+ resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.6.tgz#d7901277a5a88e554ed305b183ec9b0c08f66fa2"
+ integrity sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==
dependencies:
- caniuse-lite "^1.0.30001111"
- electron-to-chromium "^1.3.523"
- escalade "^3.0.2"
- node-releases "^1.1.60"
+ caniuse-lite "^1.0.30001219"
+ colorette "^1.2.2"
+ electron-to-chromium "^1.3.723"
+ escalade "^3.1.1"
+ node-releases "^1.1.71"
bser@2.1.1:
version "2.1.1"
@@ -2688,15 +3369,6 @@ camelcase-keys@^2.0.0:
camelcase "^2.0.0"
map-obj "^1.0.0"
-camelcase-keys@^4.0.0:
- version "4.2.0"
- resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-4.2.0.tgz#a2aa5fb1af688758259c32c141426d78923b9b77"
- integrity sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=
- dependencies:
- camelcase "^4.1.0"
- map-obj "^2.0.0"
- quick-lru "^1.0.0"
-
camelcase-keys@^6.2.2:
version "6.2.2"
resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-6.2.2.tgz#5e755d6ba51aa223ec7d3d52f25778210f9dc3c0"
@@ -2711,11 +3383,6 @@ camelcase@^2.0.0:
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f"
integrity sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=
-camelcase@^4.1.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd"
- integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=
-
camelcase@^5.0.0, camelcase@^5.2.0, camelcase@^5.3.1:
version "5.3.1"
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
@@ -2736,10 +3403,10 @@ caniuse-api@^3.0.0:
lodash.memoize "^4.1.2"
lodash.uniq "^4.5.0"
-caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001111:
- version "1.0.30001120"
- resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001120.tgz#cd21d35e537214e19f7b9f4f161f7b0f2710d46c"
- integrity sha512-JBP68okZs1X8D7MQTY602jxMYBmXEKOFkzTBaNSkubooMPFOAv2TXWaKle7qgHpjLDhUzA/TMT0qsNleVyXGUQ==
+caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001219:
+ version "1.0.30001228"
+ resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001228.tgz#bfdc5942cd3326fa51ee0b42fbef4da9d492a7fa"
+ integrity sha512-QQmLOGJ3DEgokHbMSA8cj2a+geXqmnpyOFT0lhQV6P3/YOJvGDEwoedcwxEQ30gJIwIIunHIicunJ2rzK5gB2A==
capture-exit@^2.0.0:
version "2.0.0"
@@ -2868,6 +3535,11 @@ cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3:
inherits "^2.0.1"
safe-buffer "^5.0.1"
+cjs-module-lexer@^0.6.0:
+ version "0.6.0"
+ resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-0.6.0.tgz#4186fcca0eae175970aee870b9fe2d6cf8d5655f"
+ integrity sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw==
+
class-utils@^0.3.5:
version "0.3.6"
resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463"
@@ -2902,15 +3574,6 @@ cli-width@^3.0.0:
resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6"
integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==
-clipboard@^2.0.0:
- version "2.0.6"
- resolved "https://registry.yarnpkg.com/clipboard/-/clipboard-2.0.6.tgz#52921296eec0fdf77ead1749421b21c968647376"
- integrity sha512-g5zbiixBRk/wyKakSwCKd7vQXDjFnAMGHoEyBogG/bw9kTD9GvdAvaoRR1ALcEzt3pVKxZR0pViekPMIS0QyGg==
- dependencies:
- good-listener "^1.2.2"
- select "^1.1.2"
- tiny-emitter "^2.0.0"
-
cliui@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5"
@@ -3003,10 +3666,10 @@ color@^3.0.0:
color-convert "^1.9.1"
color-string "^1.5.2"
-colorette@^1.2.1:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.1.tgz#4d0b921325c14faf92633086a536db6e89564b1b"
- integrity sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==
+colorette@^1.2.1, colorette@^1.2.2:
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94"
+ integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==
combined-stream@^1.0.6, combined-stream@~1.0.6:
version "1.0.8"
@@ -3134,101 +3797,101 @@ content-type@~1.0.4:
resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b"
integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==
-conventional-changelog-angular@^5.0.11:
- version "5.0.11"
- resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-5.0.11.tgz#99a3ca16e4a5305e0c2c2fae3ef74fd7631fc3fb"
- integrity sha512-nSLypht/1yEflhuTogC03i7DX7sOrXGsRn14g131Potqi6cbGbGEE9PSDEHKldabB6N76HiSyw9Ph+kLmC04Qw==
+conventional-changelog-angular@^5.0.12:
+ version "5.0.12"
+ resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-5.0.12.tgz#c979b8b921cbfe26402eb3da5bbfda02d865a2b9"
+ integrity sha512-5GLsbnkR/7A89RyHLvvoExbiGbd9xKdKqDTrArnPbOqBqG/2wIosu0fHwpeIRI8Tl94MhVNBXcLJZl92ZQ5USw==
dependencies:
compare-func "^2.0.0"
q "^1.5.1"
-conventional-changelog-atom@^2.0.7:
- version "2.0.7"
- resolved "https://registry.yarnpkg.com/conventional-changelog-atom/-/conventional-changelog-atom-2.0.7.tgz#221575253a04f77a2fd273eb2bf29a138f710abf"
- integrity sha512-7dOREZwzB+tCEMjRTDfen0OHwd7vPUdmU0llTy1eloZgtOP4iSLVzYIQqfmdRZEty+3w5Jz+AbhfTJKoKw1JeQ==
+conventional-changelog-atom@^2.0.8:
+ version "2.0.8"
+ resolved "https://registry.yarnpkg.com/conventional-changelog-atom/-/conventional-changelog-atom-2.0.8.tgz#a759ec61c22d1c1196925fca88fe3ae89fd7d8de"
+ integrity sha512-xo6v46icsFTK3bb7dY/8m2qvc8sZemRgdqLb/bjpBsH2UyOS8rKNTgcb5025Hri6IpANPApbXMg15QLb1LJpBw==
dependencies:
q "^1.5.1"
-conventional-changelog-cli@^2.0.31:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/conventional-changelog-cli/-/conventional-changelog-cli-2.1.0.tgz#5da5be32203ca8382815afc85b7f9151115d5e97"
- integrity sha512-hZ8EcpxV4LcGOZwH+U5LJQDnyA4o/uyUdmIGzmFZMB4caujavvDBo/iTgVihk0m1QKkEhJgulagrILSm1JCakA==
+conventional-changelog-cli@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/conventional-changelog-cli/-/conventional-changelog-cli-2.1.1.tgz#7a11980bc399938e0509d2adf8e7a0e213eb994e"
+ integrity sha512-xMGQdKJ+4XFDDgfX5aK7UNFduvJMbvF5BB+g0OdVhA3rYdYyhctrIE2Al+WYdZeKTdg9YzMWF2iFPT8MupIwng==
dependencies:
add-stream "^1.0.0"
- conventional-changelog "^3.1.23"
+ conventional-changelog "^3.1.24"
lodash "^4.17.15"
- meow "^7.0.0"
+ meow "^8.0.0"
tempfile "^3.0.0"
-conventional-changelog-codemirror@^2.0.7:
- version "2.0.7"
- resolved "https://registry.yarnpkg.com/conventional-changelog-codemirror/-/conventional-changelog-codemirror-2.0.7.tgz#d6b6a8ce2707710c5a036e305037547fb9e15bfb"
- integrity sha512-Oralk1kiagn3Gb5cR5BffenWjVu59t/viE6UMD/mQa1hISMPkMYhJIqX+CMeA1zXgVBO+YHQhhokEj99GP5xcg==
+conventional-changelog-codemirror@^2.0.8:
+ version "2.0.8"
+ resolved "https://registry.yarnpkg.com/conventional-changelog-codemirror/-/conventional-changelog-codemirror-2.0.8.tgz#398e9530f08ce34ec4640af98eeaf3022eb1f7dc"
+ integrity sha512-z5DAsn3uj1Vfp7po3gpt2Boc+Bdwmw2++ZHa5Ak9k0UKsYAO5mH1UBTN0qSCuJZREIhX6WU4E1p3IW2oRCNzQw==
dependencies:
q "^1.5.1"
-conventional-changelog-conventionalcommits@^4.4.0:
- version "4.4.0"
- resolved "https://registry.yarnpkg.com/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.4.0.tgz#8d96687141c9bbd725a89b95c04966d364194cd4"
- integrity sha512-ybvx76jTh08tpaYrYn/yd0uJNLt5yMrb1BphDe4WBredMlvPisvMghfpnJb6RmRNcqXeuhR6LfGZGewbkRm9yA==
+conventional-changelog-conventionalcommits@^4.5.0:
+ version "4.5.0"
+ resolved "https://registry.yarnpkg.com/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.5.0.tgz#a02e0b06d11d342fdc0f00c91d78265ed0bc0a62"
+ integrity sha512-buge9xDvjjOxJlyxUnar/+6i/aVEVGA7EEh4OafBCXPlLUQPGbRUBhBUveWRxzvR8TEjhKEP4BdepnpG2FSZXw==
dependencies:
compare-func "^2.0.0"
lodash "^4.17.15"
q "^1.5.1"
-conventional-changelog-core@^4.2.0:
- version "4.2.0"
- resolved "https://registry.yarnpkg.com/conventional-changelog-core/-/conventional-changelog-core-4.2.0.tgz#d8befd1e1f5126bf35a17668276cc8c244650469"
- integrity sha512-8+xMvN6JvdDtPbGBqA7oRNyZD4od1h/SIzrWqHcKZjitbVXrFpozEeyn4iI4af1UwdrabQpiZMaV07fPUTGd4w==
+conventional-changelog-core@^4.2.1:
+ version "4.2.2"
+ resolved "https://registry.yarnpkg.com/conventional-changelog-core/-/conventional-changelog-core-4.2.2.tgz#f0897df6d53b5d63dec36b9442bd45354f8b3ce5"
+ integrity sha512-7pDpRUiobQDNkwHyJG7k9f6maPo9tfPzkSWbRq97GGiZqisElhnvUZSvyQH20ogfOjntB5aadvv6NNcKL1sReg==
dependencies:
add-stream "^1.0.0"
- conventional-changelog-writer "^4.0.17"
- conventional-commits-parser "^3.1.0"
+ conventional-changelog-writer "^4.0.18"
+ conventional-commits-parser "^3.2.0"
dateformat "^3.0.0"
get-pkg-repo "^1.0.0"
- git-raw-commits "2.0.0"
+ git-raw-commits "^2.0.8"
git-remote-origin-url "^2.0.0"
- git-semver-tags "^4.1.0"
+ git-semver-tags "^4.1.1"
lodash "^4.17.15"
- normalize-package-data "^2.3.5"
+ normalize-package-data "^3.0.0"
q "^1.5.1"
read-pkg "^3.0.0"
read-pkg-up "^3.0.0"
shelljs "^0.8.3"
- through2 "^3.0.0"
+ through2 "^4.0.0"
-conventional-changelog-ember@^2.0.8:
- version "2.0.8"
- resolved "https://registry.yarnpkg.com/conventional-changelog-ember/-/conventional-changelog-ember-2.0.8.tgz#f0f04eb7ff3c885af97db100865ab95dcfa9917f"
- integrity sha512-JEMEcUAMg4Q9yxD341OgWlESQ4gLqMWMXIWWUqoQU8yvTJlKnrvcui3wk9JvnZQyONwM2g1MKRZuAjKxr8hAXA==
+conventional-changelog-ember@^2.0.9:
+ version "2.0.9"
+ resolved "https://registry.yarnpkg.com/conventional-changelog-ember/-/conventional-changelog-ember-2.0.9.tgz#619b37ec708be9e74a220f4dcf79212ae1c92962"
+ integrity sha512-ulzIReoZEvZCBDhcNYfDIsLTHzYHc7awh+eI44ZtV5cx6LVxLlVtEmcO+2/kGIHGtw+qVabJYjdI5cJOQgXh1A==
dependencies:
q "^1.5.1"
-conventional-changelog-eslint@^3.0.8:
- version "3.0.8"
- resolved "https://registry.yarnpkg.com/conventional-changelog-eslint/-/conventional-changelog-eslint-3.0.8.tgz#f8b952b7ed7253ea0ac0b30720bb381f4921b46c"
- integrity sha512-5rTRltgWG7TpU1PqgKHMA/2ivjhrB+E+S7OCTvj0zM/QGg4vmnVH67Vq/EzvSNYtejhWC+OwzvDrLk3tqPry8A==
+conventional-changelog-eslint@^3.0.9:
+ version "3.0.9"
+ resolved "https://registry.yarnpkg.com/conventional-changelog-eslint/-/conventional-changelog-eslint-3.0.9.tgz#689bd0a470e02f7baafe21a495880deea18b7cdb"
+ integrity sha512-6NpUCMgU8qmWmyAMSZO5NrRd7rTgErjrm4VASam2u5jrZS0n38V7Y9CzTtLT2qwz5xEChDR4BduoWIr8TfwvXA==
dependencies:
q "^1.5.1"
-conventional-changelog-express@^2.0.5:
- version "2.0.5"
- resolved "https://registry.yarnpkg.com/conventional-changelog-express/-/conventional-changelog-express-2.0.5.tgz#6e93705acdad374516ca125990012a48e710f8de"
- integrity sha512-pW2hsjKG+xNx/Qjof8wYlAX/P61hT5gQ/2rZ2NsTpG+PgV7Rc8RCfITvC/zN9K8fj0QmV6dWmUefCteD9baEAw==
+conventional-changelog-express@^2.0.6:
+ version "2.0.6"
+ resolved "https://registry.yarnpkg.com/conventional-changelog-express/-/conventional-changelog-express-2.0.6.tgz#420c9d92a347b72a91544750bffa9387665a6ee8"
+ integrity sha512-SDez2f3iVJw6V563O3pRtNwXtQaSmEfTCaTBPCqn0oG0mfkq0rX4hHBq5P7De2MncoRixrALj3u3oQsNK+Q0pQ==
dependencies:
q "^1.5.1"
-conventional-changelog-jquery@^3.0.10:
- version "3.0.10"
- resolved "https://registry.yarnpkg.com/conventional-changelog-jquery/-/conventional-changelog-jquery-3.0.10.tgz#fe8eb6aff322aa980af5eb68497622a5f6257ce7"
- integrity sha512-QCW6wF8QgPkq2ruPaxc83jZxoWQxLkt/pNxIDn/oYjMiVgrtqNdd7lWe3vsl0hw5ENHNf/ejXuzDHk6suKsRpg==
+conventional-changelog-jquery@^3.0.11:
+ version "3.0.11"
+ resolved "https://registry.yarnpkg.com/conventional-changelog-jquery/-/conventional-changelog-jquery-3.0.11.tgz#d142207400f51c9e5bb588596598e24bba8994bf"
+ integrity sha512-x8AWz5/Td55F7+o/9LQ6cQIPwrCjfJQ5Zmfqi8thwUEKHstEn4kTIofXub7plf1xvFA2TqhZlq7fy5OmV6BOMw==
dependencies:
q "^1.5.1"
-conventional-changelog-jshint@^2.0.8:
- version "2.0.8"
- resolved "https://registry.yarnpkg.com/conventional-changelog-jshint/-/conventional-changelog-jshint-2.0.8.tgz#3fff4df8cb46037f77b9dc3f8e354c7f99332f13"
- integrity sha512-hB/iI0IiZwnZ+seYI+qEQ4b+EMQSEC8jGIvhO2Vpz1E5p8FgLz75OX8oB1xJWl+s4xBMB6f8zJr0tC/BL7YOjw==
+conventional-changelog-jshint@^2.0.9:
+ version "2.0.9"
+ resolved "https://registry.yarnpkg.com/conventional-changelog-jshint/-/conventional-changelog-jshint-2.0.9.tgz#f2d7f23e6acd4927a238555d92c09b50fe3852ff"
+ integrity sha512-wMLdaIzq6TNnMHMy31hql02OEQ8nCQfExw1SE0hYL5KvU+JCTuPaDO+7JiogGT2gJAxiUGATdtYYfh+nT+6riA==
dependencies:
compare-func "^2.0.0"
q "^1.5.1"
@@ -3238,58 +3901,58 @@ conventional-changelog-preset-loader@^2.3.4:
resolved "https://registry.yarnpkg.com/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.3.4.tgz#14a855abbffd59027fd602581f1f34d9862ea44c"
integrity sha512-GEKRWkrSAZeTq5+YjUZOYxdHq+ci4dNwHvpaBC3+ENalzFWuCWa9EZXSuZBpkr72sMdKB+1fyDV4takK1Lf58g==
-conventional-changelog-writer@^4.0.17:
- version "4.0.17"
- resolved "https://registry.yarnpkg.com/conventional-changelog-writer/-/conventional-changelog-writer-4.0.17.tgz#4753aaa138bf5aa59c0b274cb5937efcd2722e21"
- integrity sha512-IKQuK3bib/n032KWaSb8YlBFds+aLmzENtnKtxJy3+HqDq5kohu3g/UdNbIHeJWygfnEbZjnCKFxAW0y7ArZAw==
+conventional-changelog-writer@^4.0.18:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/conventional-changelog-writer/-/conventional-changelog-writer-4.1.0.tgz#1ca7880b75aa28695ad33312a1f2366f4b12659f"
+ integrity sha512-WwKcUp7WyXYGQmkLsX4QmU42AZ1lqlvRW9mqoyiQzdD+rJWbTepdWoKJuwXTS+yq79XKnQNa93/roViPQrAQgw==
dependencies:
compare-func "^2.0.0"
- conventional-commits-filter "^2.0.6"
+ conventional-commits-filter "^2.0.7"
dateformat "^3.0.0"
handlebars "^4.7.6"
json-stringify-safe "^5.0.1"
lodash "^4.17.15"
- meow "^7.0.0"
+ meow "^8.0.0"
semver "^6.0.0"
split "^1.0.0"
- through2 "^3.0.0"
-
-conventional-changelog@^3.1.23:
- version "3.1.23"
- resolved "https://registry.yarnpkg.com/conventional-changelog/-/conventional-changelog-3.1.23.tgz#d696408021b579a3814aba79b38729ed86478aea"
- integrity sha512-sScUu2NHusjRC1dPc5p8/b3kT78OYr95/Bx7Vl8CPB8tF2mG1xei5iylDTRjONV5hTlzt+Cn/tBWrKdd299b7A==
- dependencies:
- conventional-changelog-angular "^5.0.11"
- conventional-changelog-atom "^2.0.7"
- conventional-changelog-codemirror "^2.0.7"
- conventional-changelog-conventionalcommits "^4.4.0"
- conventional-changelog-core "^4.2.0"
- conventional-changelog-ember "^2.0.8"
- conventional-changelog-eslint "^3.0.8"
- conventional-changelog-express "^2.0.5"
- conventional-changelog-jquery "^3.0.10"
- conventional-changelog-jshint "^2.0.8"
+ through2 "^4.0.0"
+
+conventional-changelog@^3.1.24:
+ version "3.1.24"
+ resolved "https://registry.yarnpkg.com/conventional-changelog/-/conventional-changelog-3.1.24.tgz#ebd180b0fd1b2e1f0095c4b04fd088698348a464"
+ integrity sha512-ed6k8PO00UVvhExYohroVPXcOJ/K1N0/drJHx/faTH37OIZthlecuLIRX/T6uOp682CAoVoFpu+sSEaeuH6Asg==
+ dependencies:
+ conventional-changelog-angular "^5.0.12"
+ conventional-changelog-atom "^2.0.8"
+ conventional-changelog-codemirror "^2.0.8"
+ conventional-changelog-conventionalcommits "^4.5.0"
+ conventional-changelog-core "^4.2.1"
+ conventional-changelog-ember "^2.0.9"
+ conventional-changelog-eslint "^3.0.9"
+ conventional-changelog-express "^2.0.6"
+ conventional-changelog-jquery "^3.0.11"
+ conventional-changelog-jshint "^2.0.9"
conventional-changelog-preset-loader "^2.3.4"
-conventional-commits-filter@^2.0.6:
- version "2.0.6"
- resolved "https://registry.yarnpkg.com/conventional-commits-filter/-/conventional-commits-filter-2.0.6.tgz#0935e1240c5ca7698329affee1b6a46d33324c4c"
- integrity sha512-4g+sw8+KA50/Qwzfr0hL5k5NWxqtrOVw4DDk3/h6L85a9Gz0/Eqp3oP+CWCNfesBvZZZEFHF7OTEbRe+yYSyKw==
+conventional-commits-filter@^2.0.7:
+ version "2.0.7"
+ resolved "https://registry.yarnpkg.com/conventional-commits-filter/-/conventional-commits-filter-2.0.7.tgz#f8d9b4f182fce00c9af7139da49365b136c8a0b3"
+ integrity sha512-ASS9SamOP4TbCClsRHxIHXRfcGCnIoQqkvAzCSbZzTFLfcTqJVugB0agRgsEELsqaeWgsXv513eS116wnlSSPA==
dependencies:
lodash.ismatch "^4.4.0"
modify-values "^1.0.0"
-conventional-commits-parser@^3.1.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-3.1.0.tgz#10140673d5e7ef5572633791456c5d03b69e8be4"
- integrity sha512-RSo5S0WIwXZiRxUGTPuYFbqvrR4vpJ1BDdTlthFgvHt5kEdnd1+pdvwWphWn57/oIl4V72NMmOocFqqJ8mFFhA==
+conventional-commits-parser@^3.2.0:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-3.2.0.tgz#9e261b139ca4b7b29bcebbc54460da36894004ca"
+ integrity sha512-XmJiXPxsF0JhAKyfA2Nn+rZwYKJ60nanlbSWwwkGwLQFbugsc0gv1rzc7VbbUWAzJfR1qR87/pNgv9NgmxtBMQ==
dependencies:
JSONStream "^1.0.4"
is-text-path "^1.0.1"
lodash "^4.17.15"
- meow "^7.0.0"
+ meow "^8.0.0"
split2 "^2.0.0"
- through2 "^3.0.0"
+ through2 "^4.0.0"
trim-off-newlines "^1.0.0"
convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0:
@@ -3352,6 +4015,14 @@ core-js-compat@^3.6.2, core-js-compat@^3.6.5:
browserslist "^4.8.5"
semver "7.0.0"
+core-js-compat@^3.8.0:
+ version "3.8.3"
+ resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.8.3.tgz#9123fb6b9cad30f0651332dc77deba48ef9b0b3f"
+ integrity sha512-1sCb0wBXnBIL16pfFG1Gkvei6UzvKyTNYpiC41yrdjEv0UoJoq9E/abTMzyYJ6JpTkAj15dLjbqifIzEBDVvog==
+ dependencies:
+ browserslist "^4.16.1"
+ semver "7.0.0"
+
core-js@^3.6.4, core-js@^3.6.5:
version "3.6.5"
resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.6.5.tgz#7395dc273af37fb2e50e9bd3d9fe841285231d1a"
@@ -3421,7 +4092,7 @@ cross-spawn@^6.0.0, cross-spawn@^6.0.5:
shebang-command "^1.2.0"
which "^1.2.9"
-cross-spawn@^7.0.0:
+cross-spawn@^7.0.0, cross-spawn@^7.0.3:
version "7.0.3"
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
@@ -3659,12 +4330,10 @@ cyclist@^1.0.1:
resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9"
integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=
-dargs@^4.0.1:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/dargs/-/dargs-4.1.0.tgz#03a9dbb4b5c2f139bf14ae53f0b8a2a6a86f4e17"
- integrity sha1-A6nbtLXC8Tm/FK5T8LiipqhvThc=
- dependencies:
- number-is-nan "^1.0.0"
+dargs@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/dargs/-/dargs-7.0.0.tgz#04015c41de0bcb69ec84050f3d9be0caf8d6d5cc"
+ integrity sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==
dashdash@^1.12.0:
version "1.14.1"
@@ -3699,19 +4368,19 @@ debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.9:
dependencies:
ms "2.0.0"
-debug@4, debug@4.1.1, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1:
+debug@4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1:
version "4.1.1"
resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791"
integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==
dependencies:
ms "^2.1.1"
-debug@=3.1.0, debug@~3.1.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
- integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==
+debug@4.3.1:
+ version "4.3.1"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee"
+ integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==
dependencies:
- ms "2.0.0"
+ ms "2.1.2"
debug@^3.1.1, debug@^3.2.5:
version "3.2.6"
@@ -3720,7 +4389,14 @@ debug@^3.1.1, debug@^3.2.5:
dependencies:
ms "^2.1.1"
-decamelize-keys@^1.0.0, decamelize-keys@^1.1.0:
+debug@~3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
+ integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==
+ dependencies:
+ ms "2.0.0"
+
+decamelize-keys@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.0.tgz#d171a87933252807eb3cb61dc1c1445d078df2d9"
integrity sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=
@@ -3842,11 +4518,6 @@ delayed-stream@~1.0.0:
resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk=
-delegate@^3.1.2:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/delegate/-/delegate-3.2.0.tgz#b66b71c3158522e8ab5744f720d8ca0c2af59166"
- integrity sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==
-
depd@~1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9"
@@ -3875,10 +4546,10 @@ detect-node@^2.0.4:
resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c"
integrity sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==
-diff-sequences@^26.3.0:
- version "26.3.0"
- resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-26.3.0.tgz#62a59b1b29ab7fd27cef2a33ae52abe73042d0a2"
- integrity sha512-5j5vdRcw3CNctePNYN0Wy2e/JbWT6cAYnXv5OuqPhDpyCGc0uLu2TK0zOCJWNB9kOIfYMSpIulRaDgIi4HJ6Ig==
+diff-sequences@^26.6.2:
+ version "26.6.2"
+ resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-26.6.2.tgz#48ba99157de1923412eed41db6b6d4aa9ca7c0b1"
+ integrity sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==
diffie-hellman@^5.0.0:
version "5.0.3"
@@ -3902,9 +4573,9 @@ dns-equal@^1.0.0:
integrity sha1-s55/HabrCnW6nBcySzR1PEfgZU0=
dns-packet@^1.3.1:
- version "1.3.1"
- resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.1.tgz#12aa426981075be500b910eedcd0b47dd7deda5a"
- integrity sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==
+ version "1.3.4"
+ resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.4.tgz#e3455065824a2507ba886c55a89963bb107dec6f"
+ integrity sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA==
dependencies:
ip "^1.1.0"
safe-buffer "^5.0.1"
@@ -4041,23 +4712,23 @@ ee-first@1.1.1:
resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=
-electron-to-chromium@^1.3.523:
- version "1.3.555"
- resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.555.tgz#a096716ff77cf8da9a608eb628fd6927869503d2"
- integrity sha512-/55x3nF2feXFZ5tdGUOr00TxnUjUgdxhrn+eCJ1FAcoAt+cKQTjQkUC5XF4frMWE1R5sjHk+JueuBalimfe5Pg==
+electron-to-chromium@^1.3.723:
+ version "1.3.737"
+ resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.737.tgz#196f2e9656f4f3c31930750e1899c091b72d36b5"
+ integrity sha512-P/B84AgUSQXaum7a8m11HUsYL8tj9h/Pt5f7Hg7Ty6bm5DxlFq+e5+ouHUoNQMsKDJ7u4yGfI8mOErCmSH9wyg==
elliptic@^6.5.3:
- version "6.5.3"
- resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.3.tgz#cb59eb2efdaf73a0bd78ccd7015a62ad6e0f93d6"
- integrity sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==
+ version "6.5.4"
+ resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb"
+ integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==
dependencies:
- bn.js "^4.4.0"
- brorand "^1.0.1"
+ bn.js "^4.11.9"
+ brorand "^1.1.0"
hash.js "^1.0.0"
- hmac-drbg "^1.0.0"
- inherits "^2.0.1"
- minimalistic-assert "^1.0.0"
- minimalistic-crypto-utils "^1.0.0"
+ hmac-drbg "^1.0.1"
+ inherits "^2.0.4"
+ minimalistic-assert "^1.0.1"
+ minimalistic-crypto-utils "^1.0.1"
emittery@^0.7.1:
version "0.7.1"
@@ -4180,10 +4851,10 @@ es6-promise@^4.1.0:
resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a"
integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==
-escalade@^3.0.2:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.0.2.tgz#6a580d70edb87880f22b4c91d0d56078df6962c4"
- integrity sha512-gPYAU37hYCUhW5euPeR+Y74F7BL+IBsV93j5cvGriSaD1aG6MGsqsV1yamRdrWrb2j3aiZvb0X+UBOWpx3JWtQ==
+escalade@^3.1.1:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"
+ integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==
escape-goat@^2.0.0:
version "2.1.1"
@@ -4462,6 +5133,21 @@ execa@^4.0.0:
signal-exit "^3.0.2"
strip-final-newline "^2.0.0"
+execa@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/execa/-/execa-5.0.0.tgz#4029b0007998a841fbd1032e5f4de86a3c1e3376"
+ integrity sha512-ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ==
+ dependencies:
+ cross-spawn "^7.0.3"
+ get-stream "^6.0.0"
+ human-signals "^2.1.0"
+ is-stream "^2.0.0"
+ merge-stream "^2.0.0"
+ npm-run-path "^4.0.1"
+ onetime "^5.1.2"
+ signal-exit "^3.0.3"
+ strip-final-newline "^2.0.0"
+
exit@^0.1.2:
version "0.1.2"
resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c"
@@ -4480,16 +5166,16 @@ expand-brackets@^2.1.4:
snapdragon "^0.8.1"
to-regex "^3.0.1"
-expect@^26.4.2:
- version "26.4.2"
- resolved "https://registry.yarnpkg.com/expect/-/expect-26.4.2.tgz#36db120928a5a2d7d9736643032de32f24e1b2a1"
- integrity sha512-IlJ3X52Z0lDHm7gjEp+m76uX46ldH5VpqmU0006vqDju/285twh7zaWMRhs67VpQhBwjjMchk+p5aA0VkERCAA==
+expect@^26.6.2:
+ version "26.6.2"
+ resolved "https://registry.yarnpkg.com/expect/-/expect-26.6.2.tgz#c6b996bf26bf3fe18b67b2d0f51fc981ba934417"
+ integrity sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA==
dependencies:
- "@jest/types" "^26.3.0"
+ "@jest/types" "^26.6.2"
ansi-styles "^4.0.0"
jest-get-type "^26.3.0"
- jest-matcher-utils "^26.4.2"
- jest-message-util "^26.3.0"
+ jest-matcher-utils "^26.6.2"
+ jest-message-util "^26.6.2"
jest-regex-util "^26.0.0"
express@^4.17.1:
@@ -4718,6 +5404,15 @@ find-cache-dir@^2.1.0:
make-dir "^2.0.0"
pkg-dir "^3.0.0"
+find-cache-dir@^3.3.1:
+ version "3.3.1"
+ resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.1.tgz#89b33fad4a4670daa94f855f7fbe31d6d84fe880"
+ integrity sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==
+ dependencies:
+ commondir "^1.0.1"
+ make-dir "^3.0.2"
+ pkg-dir "^4.1.0"
+
find-up@^1.0.0:
version "1.1.2"
resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f"
@@ -4770,18 +5465,16 @@ flush-write-stream@^1.0.0:
inherits "^2.0.3"
readable-stream "^2.3.6"
-follow-redirects@1.5.10:
- version "1.5.10"
- resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.5.10.tgz#7b7a9f9aea2fdff36786a94ff643ed07f4ff5e2a"
- integrity sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==
- dependencies:
- debug "=3.1.0"
-
follow-redirects@^1.0.0:
version "1.13.0"
resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.13.0.tgz#b42e8d93a2a7eea5ed88633676d6597bc8e384db"
integrity sha512-aq6gF1BEKje4a9i9+5jimNFIpq4Q1WiwBToeRK5NvZBd/TRsmW8BsJfOEGkr76TbOyPVD3OVDN910EcUNtRYEA==
+follow-redirects@^1.10.0:
+ version "1.13.2"
+ resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.13.2.tgz#dd73c8effc12728ba5cf4259d760ea5fb83e3147"
+ integrity sha512-6mPTgLxYm3r6Bkkg0vNM0HTjfGrOEtsfbhagQvbxDEsEkpNhw582upBaoRZylzen6krEmxXJgt9Ju6HiI4O7BA==
+
for-in@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"
@@ -4933,6 +5626,11 @@ get-stream@^5.0.0, get-stream@^5.1.0:
dependencies:
pump "^3.0.0"
+get-stream@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.0.tgz#3e0012cb6827319da2706e601a1583e8629a6718"
+ integrity sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg==
+
get-value@^2.0.3, get-value@^2.0.6:
version "2.0.6"
resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28"
@@ -4945,16 +5643,16 @@ getpass@^0.1.1:
dependencies:
assert-plus "^1.0.0"
-git-raw-commits@2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-2.0.0.tgz#d92addf74440c14bcc5c83ecce3fb7f8a79118b5"
- integrity sha512-w4jFEJFgKXMQJ0H0ikBk2S+4KP2VEjhCvLCNqbNRQC8BgGWgLKNCO7a9K9LI+TVT7Gfoloje502sEnctibffgg==
+git-raw-commits@^2.0.8:
+ version "2.0.9"
+ resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-2.0.9.tgz#5cbc707a615cb77b71e687f8a1ee54af46208b22"
+ integrity sha512-hSpNpxprVno7IOd4PZ93RQ+gNdzPAIrW0x8av6JQDJGV4k1mR9fE01dl8sEqi2P7aKmmwiGUn1BCPuf16Ae0Qw==
dependencies:
- dargs "^4.0.1"
+ dargs "^7.0.0"
lodash.template "^4.0.2"
- meow "^4.0.0"
- split2 "^2.0.0"
- through2 "^2.0.0"
+ meow "^8.0.0"
+ split2 "^3.0.0"
+ through2 "^4.0.0"
git-remote-origin-url@^2.0.0:
version "2.0.0"
@@ -4964,12 +5662,12 @@ git-remote-origin-url@^2.0.0:
gitconfiglocal "^1.0.0"
pify "^2.3.0"
-git-semver-tags@^4.1.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/git-semver-tags/-/git-semver-tags-4.1.0.tgz#0146c9bc24ee96104c99f443071c8c2d7dc848e3"
- integrity sha512-TcxAGeo03HdErzKzi4fDD+xEL7gi8r2Y5YSxH6N2XYdVSV5UkBwfrt7Gqo1b+uSHCjy/sa9Y6BBBxxFLxfbhTg==
+git-semver-tags@^4.1.1:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/git-semver-tags/-/git-semver-tags-4.1.1.tgz#63191bcd809b0ec3e151ba4751c16c444e5b5780"
+ integrity sha512-OWyMt5zBe7xFs8vglMmhM9lRQzCWL3WjHtxNNfJTMngGym7pC1kh8sP6jevfydJ6LP3ZvGxfb6ABYgPUM0mtsA==
dependencies:
- meow "^7.0.0"
+ meow "^8.0.0"
semver "^6.0.0"
gitconfiglocal@^1.0.0:
@@ -5075,13 +5773,6 @@ globby@^9.2.0:
pify "^4.0.1"
slash "^2.0.0"
-good-listener@^1.2.2:
- version "1.2.2"
- resolved "https://registry.yarnpkg.com/good-listener/-/good-listener-1.2.2.tgz#d53b30cdf9313dffb7dc9a0d477096aa6d145c50"
- integrity sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=
- dependencies:
- delegate "^3.1.2"
-
got@^9.6.0:
version "9.6.0"
resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85"
@@ -5125,9 +5816,9 @@ handle-thing@^2.0.0:
integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==
handlebars@^4.7.6:
- version "4.7.6"
- resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.6.tgz#d4c05c1baf90e9945f77aa68a7a219aa4a7df74e"
- integrity sha512-1f2BACcBfiwAfStCKZNrUCgqNZkGsAT7UM3kkYtXuLo0KnaVfjKOyf7PRzB6++aK9STyT1Pd2ZCPe3EGOXleXA==
+ version "4.7.7"
+ resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.7.tgz#9ce33416aad02dbd6c8fafa8240d5d98004945a1"
+ integrity sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==
dependencies:
minimist "^1.2.5"
neo-async "^2.6.0"
@@ -5251,7 +5942,7 @@ hex-color-regex@^1.1.0:
resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e"
integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==
-hmac-drbg@^1.0.0:
+hmac-drbg@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1"
integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=
@@ -5269,9 +5960,16 @@ hogan.js@^3.0.2:
nopt "1.0.10"
hosted-git-info@^2.1.4:
- version "2.8.8"
- resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488"
- integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==
+ version "2.8.9"
+ resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9"
+ integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==
+
+hosted-git-info@^3.0.6:
+ version "3.0.7"
+ resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-3.0.7.tgz#a30727385ea85acfcee94e0aad9e368c792e036c"
+ integrity sha512-fWqc0IcuXs+BmE9orLDyVykAG9GJtGLGuZAAqgcckPgv5xad4AcXGIv8galtQvlwutxSlaMcdw7BUtq2EIvqCQ==
+ dependencies:
+ lru-cache "^6.0.0"
hpack.js@^2.1.6:
version "2.1.6"
@@ -5443,6 +6141,11 @@ human-signals@^1.1.1:
resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3"
integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==
+human-signals@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0"
+ integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==
+
iconv-lite@0.4.24, iconv-lite@^0.4.24:
version "0.4.24"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
@@ -5550,11 +6253,6 @@ indent-string@^2.1.0:
dependencies:
repeating "^2.0.0"
-indent-string@^3.0.0:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289"
- integrity sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=
-
indent-string@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251"
@@ -5594,9 +6292,9 @@ inherits@2.0.3:
integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=
ini@^1.3.2, ini@^1.3.5, ini@~1.3.0:
- version "1.3.5"
- resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927"
- integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==
+ version "1.3.7"
+ resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.7.tgz#a09363e1911972ea16d7a8851005d84cf09a9a84"
+ integrity sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==
inquirer@^7.0.0:
version "7.3.3"
@@ -5734,6 +6432,13 @@ is-color-stop@^1.0.0:
rgb-regex "^1.0.1"
rgba-regex "^1.0.0"
+is-core-module@^2.1.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a"
+ integrity sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==
+ dependencies:
+ has "^1.0.3"
+
is-data-descriptor@^0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56"
@@ -6073,67 +6778,67 @@ javascript-stringify@^2.0.1:
resolved "https://registry.yarnpkg.com/javascript-stringify/-/javascript-stringify-2.0.1.tgz#6ef358035310e35d667c675ed63d3eb7c1aa19e5"
integrity sha512-yV+gqbd5vaOYjqlbk16EG89xB5udgjqQF3C5FAORDg4f/IS1Yc5ERCv5e/57yBcfJYw05V5JyIXabhwb75Xxow==
-jest-changed-files@^26.3.0:
- version "26.3.0"
- resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-26.3.0.tgz#68fb2a7eb125f50839dab1f5a17db3607fe195b1"
- integrity sha512-1C4R4nijgPltX6fugKxM4oQ18zimS7LqQ+zTTY8lMCMFPrxqBFb7KJH0Z2fRQJvw2Slbaipsqq7s1mgX5Iot+g==
+jest-changed-files@^26.6.2:
+ version "26.6.2"
+ resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-26.6.2.tgz#f6198479e1cc66f22f9ae1e22acaa0b429c042d0"
+ integrity sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ==
dependencies:
- "@jest/types" "^26.3.0"
+ "@jest/types" "^26.6.2"
execa "^4.0.0"
throat "^5.0.0"
-jest-cli@^26.4.2:
- version "26.4.2"
- resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-26.4.2.tgz#24afc6e4dfc25cde4c7ec4226fb7db5f157c21da"
- integrity sha512-zb+lGd/SfrPvoRSC/0LWdaWCnscXc1mGYW//NP4/tmBvRPT3VntZ2jtKUONsRi59zc5JqmsSajA9ewJKFYp8Cw==
+jest-cli@^26.6.3:
+ version "26.6.3"
+ resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-26.6.3.tgz#43117cfef24bc4cd691a174a8796a532e135e92a"
+ integrity sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg==
dependencies:
- "@jest/core" "^26.4.2"
- "@jest/test-result" "^26.3.0"
- "@jest/types" "^26.3.0"
+ "@jest/core" "^26.6.3"
+ "@jest/test-result" "^26.6.2"
+ "@jest/types" "^26.6.2"
chalk "^4.0.0"
exit "^0.1.2"
graceful-fs "^4.2.4"
import-local "^3.0.2"
is-ci "^2.0.0"
- jest-config "^26.4.2"
- jest-util "^26.3.0"
- jest-validate "^26.4.2"
+ jest-config "^26.6.3"
+ jest-util "^26.6.2"
+ jest-validate "^26.6.2"
prompts "^2.0.1"
- yargs "^15.3.1"
+ yargs "^15.4.1"
-jest-config@^26.4.2:
- version "26.4.2"
- resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-26.4.2.tgz#da0cbb7dc2c131ffe831f0f7f2a36256e6086558"
- integrity sha512-QBf7YGLuToiM8PmTnJEdRxyYy3mHWLh24LJZKVdXZ2PNdizSe1B/E8bVm+HYcjbEzGuVXDv/di+EzdO/6Gq80A==
+jest-config@^26.6.3:
+ version "26.6.3"
+ resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-26.6.3.tgz#64f41444eef9eb03dc51d5c53b75c8c71f645349"
+ integrity sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg==
dependencies:
"@babel/core" "^7.1.0"
- "@jest/test-sequencer" "^26.4.2"
- "@jest/types" "^26.3.0"
- babel-jest "^26.3.0"
+ "@jest/test-sequencer" "^26.6.3"
+ "@jest/types" "^26.6.2"
+ babel-jest "^26.6.3"
chalk "^4.0.0"
deepmerge "^4.2.2"
glob "^7.1.1"
graceful-fs "^4.2.4"
- jest-environment-jsdom "^26.3.0"
- jest-environment-node "^26.3.0"
+ jest-environment-jsdom "^26.6.2"
+ jest-environment-node "^26.6.2"
jest-get-type "^26.3.0"
- jest-jasmine2 "^26.4.2"
+ jest-jasmine2 "^26.6.3"
jest-regex-util "^26.0.0"
- jest-resolve "^26.4.0"
- jest-util "^26.3.0"
- jest-validate "^26.4.2"
+ jest-resolve "^26.6.2"
+ jest-util "^26.6.2"
+ jest-validate "^26.6.2"
micromatch "^4.0.2"
- pretty-format "^26.4.2"
+ pretty-format "^26.6.2"
-jest-diff@^26.4.2:
- version "26.4.2"
- resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-26.4.2.tgz#a1b7b303bcc534aabdb3bd4a7caf594ac059f5aa"
- integrity sha512-6T1XQY8U28WH0Z5rGpQ+VqZSZz8EN8rZcBtfvXaOkbwxIEeRre6qnuZQlbY1AJ4MKDxQF8EkrCvK+hL/VkyYLQ==
+jest-diff@^26.6.2:
+ version "26.6.2"
+ resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-26.6.2.tgz#1aa7468b52c3a68d7d5c5fdcdfcd5e49bd164394"
+ integrity sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==
dependencies:
chalk "^4.0.0"
- diff-sequences "^26.3.0"
+ diff-sequences "^26.6.2"
jest-get-type "^26.3.0"
- pretty-format "^26.4.2"
+ pretty-format "^26.6.2"
jest-docblock@^26.0.0:
version "26.0.0"
@@ -6142,130 +6847,131 @@ jest-docblock@^26.0.0:
dependencies:
detect-newline "^3.0.0"
-jest-each@^26.4.2:
- version "26.4.2"
- resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-26.4.2.tgz#bb14f7f4304f2bb2e2b81f783f989449b8b6ffae"
- integrity sha512-p15rt8r8cUcRY0Mvo1fpkOGYm7iI8S6ySxgIdfh3oOIv+gHwrHTy5VWCGOecWUhDsit4Nz8avJWdT07WLpbwDA==
+jest-each@^26.6.2:
+ version "26.6.2"
+ resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-26.6.2.tgz#02526438a77a67401c8a6382dfe5999952c167cb"
+ integrity sha512-Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A==
dependencies:
- "@jest/types" "^26.3.0"
+ "@jest/types" "^26.6.2"
chalk "^4.0.0"
jest-get-type "^26.3.0"
- jest-util "^26.3.0"
- pretty-format "^26.4.2"
+ jest-util "^26.6.2"
+ pretty-format "^26.6.2"
-jest-environment-jsdom@^26.3.0:
- version "26.3.0"
- resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-26.3.0.tgz#3b749ba0f3a78e92ba2c9ce519e16e5dd515220c"
- integrity sha512-zra8He2btIMJkAzvLaiZ9QwEPGEetbxqmjEBQwhH3CA+Hhhu0jSiEJxnJMbX28TGUvPLxBt/zyaTLrOPF4yMJA==
+jest-environment-jsdom@^26.6.2:
+ version "26.6.2"
+ resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-26.6.2.tgz#78d09fe9cf019a357009b9b7e1f101d23bd1da3e"
+ integrity sha512-jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q==
dependencies:
- "@jest/environment" "^26.3.0"
- "@jest/fake-timers" "^26.3.0"
- "@jest/types" "^26.3.0"
+ "@jest/environment" "^26.6.2"
+ "@jest/fake-timers" "^26.6.2"
+ "@jest/types" "^26.6.2"
"@types/node" "*"
- jest-mock "^26.3.0"
- jest-util "^26.3.0"
- jsdom "^16.2.2"
-
-jest-environment-node@^26.3.0:
- version "26.3.0"
- resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-26.3.0.tgz#56c6cfb506d1597f94ee8d717072bda7228df849"
- integrity sha512-c9BvYoo+FGcMj5FunbBgtBnbR5qk3uky8PKyRVpSfe2/8+LrNQMiXX53z6q2kY+j15SkjQCOSL/6LHnCPLVHNw==
- dependencies:
- "@jest/environment" "^26.3.0"
- "@jest/fake-timers" "^26.3.0"
- "@jest/types" "^26.3.0"
+ jest-mock "^26.6.2"
+ jest-util "^26.6.2"
+ jsdom "^16.4.0"
+
+jest-environment-node@^26.6.2:
+ version "26.6.2"
+ resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-26.6.2.tgz#824e4c7fb4944646356f11ac75b229b0035f2b0c"
+ integrity sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag==
+ dependencies:
+ "@jest/environment" "^26.6.2"
+ "@jest/fake-timers" "^26.6.2"
+ "@jest/types" "^26.6.2"
"@types/node" "*"
- jest-mock "^26.3.0"
- jest-util "^26.3.0"
+ jest-mock "^26.6.2"
+ jest-util "^26.6.2"
jest-get-type@^26.3.0:
version "26.3.0"
resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-26.3.0.tgz#e97dc3c3f53c2b406ca7afaed4493b1d099199e0"
integrity sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==
-jest-haste-map@^26.3.0:
- version "26.3.0"
- resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-26.3.0.tgz#c51a3b40100d53ab777bfdad382d2e7a00e5c726"
- integrity sha512-DHWBpTJgJhLLGwE5Z1ZaqLTYqeODQIZpby0zMBsCU9iRFHYyhklYqP4EiG73j5dkbaAdSZhgB938mL51Q5LeZA==
+jest-haste-map@^26.6.2:
+ version "26.6.2"
+ resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-26.6.2.tgz#dd7e60fe7dc0e9f911a23d79c5ff7fb5c2cafeaa"
+ integrity sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w==
dependencies:
- "@jest/types" "^26.3.0"
+ "@jest/types" "^26.6.2"
"@types/graceful-fs" "^4.1.2"
"@types/node" "*"
anymatch "^3.0.3"
fb-watchman "^2.0.0"
graceful-fs "^4.2.4"
jest-regex-util "^26.0.0"
- jest-serializer "^26.3.0"
- jest-util "^26.3.0"
- jest-worker "^26.3.0"
+ jest-serializer "^26.6.2"
+ jest-util "^26.6.2"
+ jest-worker "^26.6.2"
micromatch "^4.0.2"
sane "^4.0.3"
walker "^1.0.7"
optionalDependencies:
fsevents "^2.1.2"
-jest-jasmine2@^26.4.2:
- version "26.4.2"
- resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-26.4.2.tgz#18a9d5bec30904267ac5e9797570932aec1e2257"
- integrity sha512-z7H4EpCldHN1J8fNgsja58QftxBSL+JcwZmaXIvV9WKIM+x49F4GLHu/+BQh2kzRKHAgaN/E82od+8rTOBPyPA==
+jest-jasmine2@^26.6.3:
+ version "26.6.3"
+ resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-26.6.3.tgz#adc3cf915deacb5212c93b9f3547cd12958f2edd"
+ integrity sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg==
dependencies:
"@babel/traverse" "^7.1.0"
- "@jest/environment" "^26.3.0"
- "@jest/source-map" "^26.3.0"
- "@jest/test-result" "^26.3.0"
- "@jest/types" "^26.3.0"
+ "@jest/environment" "^26.6.2"
+ "@jest/source-map" "^26.6.2"
+ "@jest/test-result" "^26.6.2"
+ "@jest/types" "^26.6.2"
"@types/node" "*"
chalk "^4.0.0"
co "^4.6.0"
- expect "^26.4.2"
+ expect "^26.6.2"
is-generator-fn "^2.0.0"
- jest-each "^26.4.2"
- jest-matcher-utils "^26.4.2"
- jest-message-util "^26.3.0"
- jest-runtime "^26.4.2"
- jest-snapshot "^26.4.2"
- jest-util "^26.3.0"
- pretty-format "^26.4.2"
+ jest-each "^26.6.2"
+ jest-matcher-utils "^26.6.2"
+ jest-message-util "^26.6.2"
+ jest-runtime "^26.6.3"
+ jest-snapshot "^26.6.2"
+ jest-util "^26.6.2"
+ pretty-format "^26.6.2"
throat "^5.0.0"
-jest-leak-detector@^26.4.2:
- version "26.4.2"
- resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-26.4.2.tgz#c73e2fa8757bf905f6f66fb9e0070b70fa0f573f"
- integrity sha512-akzGcxwxtE+9ZJZRW+M2o+nTNnmQZxrHJxX/HjgDaU5+PLmY1qnQPnMjgADPGCRPhB+Yawe1iij0REe+k/aHoA==
+jest-leak-detector@^26.6.2:
+ version "26.6.2"
+ resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-26.6.2.tgz#7717cf118b92238f2eba65054c8a0c9c653a91af"
+ integrity sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg==
dependencies:
jest-get-type "^26.3.0"
- pretty-format "^26.4.2"
+ pretty-format "^26.6.2"
-jest-matcher-utils@^26.4.2:
- version "26.4.2"
- resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-26.4.2.tgz#fa81f3693f7cb67e5fc1537317525ef3b85f4b06"
- integrity sha512-KcbNqWfWUG24R7tu9WcAOKKdiXiXCbMvQYT6iodZ9k1f7065k0keUOW6XpJMMvah+hTfqkhJhRXmA3r3zMAg0Q==
+jest-matcher-utils@^26.6.2:
+ version "26.6.2"
+ resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz#8e6fd6e863c8b2d31ac6472eeb237bc595e53e7a"
+ integrity sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw==
dependencies:
chalk "^4.0.0"
- jest-diff "^26.4.2"
+ jest-diff "^26.6.2"
jest-get-type "^26.3.0"
- pretty-format "^26.4.2"
+ pretty-format "^26.6.2"
-jest-message-util@^26.3.0:
- version "26.3.0"
- resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-26.3.0.tgz#3bdb538af27bb417f2d4d16557606fd082d5841a"
- integrity sha512-xIavRYqr4/otGOiLxLZGj3ieMmjcNE73Ui+LdSW/Y790j5acqCsAdDiLIbzHCZMpN07JOENRWX5DcU+OQ+TjTA==
+jest-message-util@^26.6.2:
+ version "26.6.2"
+ resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-26.6.2.tgz#58173744ad6fc0506b5d21150b9be56ef001ca07"
+ integrity sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA==
dependencies:
"@babel/code-frame" "^7.0.0"
- "@jest/types" "^26.3.0"
- "@types/stack-utils" "^1.0.1"
+ "@jest/types" "^26.6.2"
+ "@types/stack-utils" "^2.0.0"
chalk "^4.0.0"
graceful-fs "^4.2.4"
micromatch "^4.0.2"
+ pretty-format "^26.6.2"
slash "^3.0.0"
stack-utils "^2.0.2"
-jest-mock@^26.3.0:
- version "26.3.0"
- resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-26.3.0.tgz#ee62207c3c5ebe5f35b760e1267fee19a1cfdeba"
- integrity sha512-PeaRrg8Dc6mnS35gOo/CbZovoDPKAeB1FICZiuagAgGvbWdNNyjQjkOaGUa/3N3JtpQ/Mh9P4A2D4Fv51NnP8Q==
+jest-mock@^26.6.2:
+ version "26.6.2"
+ resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-26.6.2.tgz#d6cb712b041ed47fe0d9b6fc3474bc6543feb302"
+ integrity sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew==
dependencies:
- "@jest/types" "^26.3.0"
+ "@jest/types" "^26.6.2"
"@types/node" "*"
jest-pnp-resolver@^1.2.2:
@@ -6278,151 +6984,153 @@ jest-regex-util@^26.0.0:
resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-26.0.0.tgz#d25e7184b36e39fd466c3bc41be0971e821fee28"
integrity sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A==
-jest-resolve-dependencies@^26.4.2:
- version "26.4.2"
- resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-26.4.2.tgz#739bdb027c14befb2fe5aabbd03f7bab355f1dc5"
- integrity sha512-ADHaOwqEcVc71uTfySzSowA/RdxUpCxhxa2FNLiin9vWLB1uLPad3we+JSSROq5+SrL9iYPdZZF8bdKM7XABTQ==
+jest-resolve-dependencies@^26.6.3:
+ version "26.6.3"
+ resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-26.6.3.tgz#6680859ee5d22ee5dcd961fe4871f59f4c784fb6"
+ integrity sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg==
dependencies:
- "@jest/types" "^26.3.0"
+ "@jest/types" "^26.6.2"
jest-regex-util "^26.0.0"
- jest-snapshot "^26.4.2"
+ jest-snapshot "^26.6.2"
-jest-resolve@^26.4.0:
- version "26.4.0"
- resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-26.4.0.tgz#6dc0af7fb93e65b73fec0368ca2b76f3eb59a6d7"
- integrity sha512-bn/JoZTEXRSlEx3+SfgZcJAVuTMOksYq9xe9O6s4Ekg84aKBObEaVXKOEilULRqviSLAYJldnoWV9c07kwtiCg==
+jest-resolve@^26.6.2:
+ version "26.6.2"
+ resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-26.6.2.tgz#a3ab1517217f469b504f1b56603c5bb541fbb507"
+ integrity sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ==
dependencies:
- "@jest/types" "^26.3.0"
+ "@jest/types" "^26.6.2"
chalk "^4.0.0"
graceful-fs "^4.2.4"
jest-pnp-resolver "^1.2.2"
- jest-util "^26.3.0"
+ jest-util "^26.6.2"
read-pkg-up "^7.0.1"
- resolve "^1.17.0"
+ resolve "^1.18.1"
slash "^3.0.0"
-jest-runner@^26.4.2:
- version "26.4.2"
- resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-26.4.2.tgz#c3ec5482c8edd31973bd3935df5a449a45b5b853"
- integrity sha512-FgjDHeVknDjw1gRAYaoUoShe1K3XUuFMkIaXbdhEys+1O4bEJS8Avmn4lBwoMfL8O5oFTdWYKcf3tEJyyYyk8g==
+jest-runner@^26.6.3:
+ version "26.6.3"
+ resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-26.6.3.tgz#2d1fed3d46e10f233fd1dbd3bfaa3fe8924be159"
+ integrity sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ==
dependencies:
- "@jest/console" "^26.3.0"
- "@jest/environment" "^26.3.0"
- "@jest/test-result" "^26.3.0"
- "@jest/types" "^26.3.0"
+ "@jest/console" "^26.6.2"
+ "@jest/environment" "^26.6.2"
+ "@jest/test-result" "^26.6.2"
+ "@jest/types" "^26.6.2"
"@types/node" "*"
chalk "^4.0.0"
emittery "^0.7.1"
exit "^0.1.2"
graceful-fs "^4.2.4"
- jest-config "^26.4.2"
+ jest-config "^26.6.3"
jest-docblock "^26.0.0"
- jest-haste-map "^26.3.0"
- jest-leak-detector "^26.4.2"
- jest-message-util "^26.3.0"
- jest-resolve "^26.4.0"
- jest-runtime "^26.4.2"
- jest-util "^26.3.0"
- jest-worker "^26.3.0"
+ jest-haste-map "^26.6.2"
+ jest-leak-detector "^26.6.2"
+ jest-message-util "^26.6.2"
+ jest-resolve "^26.6.2"
+ jest-runtime "^26.6.3"
+ jest-util "^26.6.2"
+ jest-worker "^26.6.2"
source-map-support "^0.5.6"
throat "^5.0.0"
-jest-runtime@^26.4.2:
- version "26.4.2"
- resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-26.4.2.tgz#94ce17890353c92e4206580c73a8f0c024c33c42"
- integrity sha512-4Pe7Uk5a80FnbHwSOk7ojNCJvz3Ks2CNQWT5Z7MJo4tX0jb3V/LThKvD9tKPNVNyeMH98J/nzGlcwc00R2dSHQ==
- dependencies:
- "@jest/console" "^26.3.0"
- "@jest/environment" "^26.3.0"
- "@jest/fake-timers" "^26.3.0"
- "@jest/globals" "^26.4.2"
- "@jest/source-map" "^26.3.0"
- "@jest/test-result" "^26.3.0"
- "@jest/transform" "^26.3.0"
- "@jest/types" "^26.3.0"
+jest-runtime@^26.6.3:
+ version "26.6.3"
+ resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-26.6.3.tgz#4f64efbcfac398331b74b4b3c82d27d401b8fa2b"
+ integrity sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw==
+ dependencies:
+ "@jest/console" "^26.6.2"
+ "@jest/environment" "^26.6.2"
+ "@jest/fake-timers" "^26.6.2"
+ "@jest/globals" "^26.6.2"
+ "@jest/source-map" "^26.6.2"
+ "@jest/test-result" "^26.6.2"
+ "@jest/transform" "^26.6.2"
+ "@jest/types" "^26.6.2"
"@types/yargs" "^15.0.0"
chalk "^4.0.0"
+ cjs-module-lexer "^0.6.0"
collect-v8-coverage "^1.0.0"
exit "^0.1.2"
glob "^7.1.3"
graceful-fs "^4.2.4"
- jest-config "^26.4.2"
- jest-haste-map "^26.3.0"
- jest-message-util "^26.3.0"
- jest-mock "^26.3.0"
+ jest-config "^26.6.3"
+ jest-haste-map "^26.6.2"
+ jest-message-util "^26.6.2"
+ jest-mock "^26.6.2"
jest-regex-util "^26.0.0"
- jest-resolve "^26.4.0"
- jest-snapshot "^26.4.2"
- jest-util "^26.3.0"
- jest-validate "^26.4.2"
+ jest-resolve "^26.6.2"
+ jest-snapshot "^26.6.2"
+ jest-util "^26.6.2"
+ jest-validate "^26.6.2"
slash "^3.0.0"
strip-bom "^4.0.0"
- yargs "^15.3.1"
+ yargs "^15.4.1"
-jest-serializer@^26.3.0:
- version "26.3.0"
- resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-26.3.0.tgz#1c9d5e1b74d6e5f7e7f9627080fa205d976c33ef"
- integrity sha512-IDRBQBLPlKa4flg77fqg0n/pH87tcRKwe8zxOVTWISxGpPHYkRZ1dXKyh04JOja7gppc60+soKVZ791mruVdow==
+jest-serializer@^26.6.2:
+ version "26.6.2"
+ resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-26.6.2.tgz#d139aafd46957d3a448f3a6cdabe2919ba0742d1"
+ integrity sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g==
dependencies:
"@types/node" "*"
graceful-fs "^4.2.4"
-jest-snapshot@^26.4.2:
- version "26.4.2"
- resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-26.4.2.tgz#87d3ac2f2bd87ea8003602fbebd8fcb9e94104f6"
- integrity sha512-N6Uub8FccKlf5SBFnL2Ri/xofbaA68Cc3MGjP/NuwgnsvWh+9hLIR/DhrxbSiKXMY9vUW5dI6EW1eHaDHqe9sg==
+jest-snapshot@^26.6.2:
+ version "26.6.2"
+ resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-26.6.2.tgz#f3b0af1acb223316850bd14e1beea9837fb39c84"
+ integrity sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og==
dependencies:
"@babel/types" "^7.0.0"
- "@jest/types" "^26.3.0"
+ "@jest/types" "^26.6.2"
+ "@types/babel__traverse" "^7.0.4"
"@types/prettier" "^2.0.0"
chalk "^4.0.0"
- expect "^26.4.2"
+ expect "^26.6.2"
graceful-fs "^4.2.4"
- jest-diff "^26.4.2"
+ jest-diff "^26.6.2"
jest-get-type "^26.3.0"
- jest-haste-map "^26.3.0"
- jest-matcher-utils "^26.4.2"
- jest-message-util "^26.3.0"
- jest-resolve "^26.4.0"
+ jest-haste-map "^26.6.2"
+ jest-matcher-utils "^26.6.2"
+ jest-message-util "^26.6.2"
+ jest-resolve "^26.6.2"
natural-compare "^1.4.0"
- pretty-format "^26.4.2"
+ pretty-format "^26.6.2"
semver "^7.3.2"
-jest-util@^26.3.0:
- version "26.3.0"
- resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-26.3.0.tgz#a8974b191df30e2bf523ebbfdbaeb8efca535b3e"
- integrity sha512-4zpn6bwV0+AMFN0IYhH/wnzIQzRaYVrz1A8sYnRnj4UXDXbOVtWmlaZkO9mipFqZ13okIfN87aDoJWB7VH6hcw==
+jest-util@^26.6.2:
+ version "26.6.2"
+ resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-26.6.2.tgz#907535dbe4d5a6cb4c47ac9b926f6af29576cbc1"
+ integrity sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q==
dependencies:
- "@jest/types" "^26.3.0"
+ "@jest/types" "^26.6.2"
"@types/node" "*"
chalk "^4.0.0"
graceful-fs "^4.2.4"
is-ci "^2.0.0"
micromatch "^4.0.2"
-jest-validate@^26.4.2:
- version "26.4.2"
- resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-26.4.2.tgz#e871b0dfe97747133014dcf6445ee8018398f39c"
- integrity sha512-blft+xDX7XXghfhY0mrsBCYhX365n8K5wNDC4XAcNKqqjEzsRUSXP44m6PL0QJEW2crxQFLLztVnJ4j7oPlQrQ==
+jest-validate@^26.6.2:
+ version "26.6.2"
+ resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-26.6.2.tgz#23d380971587150467342911c3d7b4ac57ab20ec"
+ integrity sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ==
dependencies:
- "@jest/types" "^26.3.0"
+ "@jest/types" "^26.6.2"
camelcase "^6.0.0"
chalk "^4.0.0"
jest-get-type "^26.3.0"
leven "^3.1.0"
- pretty-format "^26.4.2"
+ pretty-format "^26.6.2"
-jest-watcher@^26.3.0:
- version "26.3.0"
- resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-26.3.0.tgz#f8ef3068ddb8af160ef868400318dc4a898eed08"
- integrity sha512-XnLdKmyCGJ3VoF6G/p5ohbJ04q/vv5aH9ENI+i6BL0uu9WWB6Z7Z2lhQQk0d2AVZcRGp1yW+/TsoToMhBFPRdQ==
+jest-watcher@^26.6.2:
+ version "26.6.2"
+ resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-26.6.2.tgz#a5b683b8f9d68dbcb1d7dae32172d2cca0592975"
+ integrity sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ==
dependencies:
- "@jest/test-result" "^26.3.0"
- "@jest/types" "^26.3.0"
+ "@jest/test-result" "^26.6.2"
+ "@jest/types" "^26.6.2"
"@types/node" "*"
ansi-escapes "^4.2.1"
chalk "^4.0.0"
- jest-util "^26.3.0"
+ jest-util "^26.6.2"
string-length "^4.0.1"
jest-worker@^24.9.0:
@@ -6433,34 +7141,34 @@ jest-worker@^24.9.0:
merge-stream "^2.0.0"
supports-color "^6.1.0"
-jest-worker@^26.3.0:
- version "26.3.0"
- resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.3.0.tgz#7c8a97e4f4364b4f05ed8bca8ca0c24de091871f"
- integrity sha512-Vmpn2F6IASefL+DVBhPzI2J9/GJUsqzomdeN+P+dK8/jKxbh8R3BtFnx3FIta7wYlPU62cpJMJQo4kuOowcMnw==
+jest-worker@^26.6.2:
+ version "26.6.2"
+ resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed"
+ integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==
dependencies:
"@types/node" "*"
merge-stream "^2.0.0"
supports-color "^7.0.0"
-jest@^26.0.1:
- version "26.4.2"
- resolved "https://registry.yarnpkg.com/jest/-/jest-26.4.2.tgz#7e8bfb348ec33f5459adeaffc1a25d5752d9d312"
- integrity sha512-LLCjPrUh98Ik8CzW8LLVnSCfLaiY+wbK53U7VxnFSX7Q+kWC4noVeDvGWIFw0Amfq1lq2VfGm7YHWSLBV62MJw==
+jest@^26.6.3:
+ version "26.6.3"
+ resolved "https://registry.yarnpkg.com/jest/-/jest-26.6.3.tgz#40e8fdbe48f00dfa1f0ce8121ca74b88ac9148ef"
+ integrity sha512-lGS5PXGAzR4RF7V5+XObhqz2KZIDUA1yD0DG6pBVmy10eh0ZIXQImRuzocsI/N2XZ1GrLFwTS27In2i2jlpq1Q==
dependencies:
- "@jest/core" "^26.4.2"
+ "@jest/core" "^26.6.3"
import-local "^3.0.2"
- jest-cli "^26.4.2"
+ jest-cli "^26.6.3"
-joi@^17.1.1:
- version "17.2.1"
- resolved "https://registry.yarnpkg.com/joi/-/joi-17.2.1.tgz#e5140fdf07e8fecf9bc977c2832d1bdb1e3f2a0a"
- integrity sha512-YT3/4Ln+5YRpacdmfEfrrKh50/kkgX3LgBltjqnlMPIYiZ4hxXZuVJcxmsvxsdeHg9soZfE3qXxHC2tMpCCBOA==
+joi@^17.3.0:
+ version "17.3.0"
+ resolved "https://registry.yarnpkg.com/joi/-/joi-17.3.0.tgz#f1be4a6ce29bc1716665819ac361dfa139fff5d2"
+ integrity sha512-Qh5gdU6niuYbUIUV5ejbsMiiFmBdw8Kcp8Buj2JntszCkCfxJ9Cz76OtHxOZMPXrt5810iDIXs+n1nNVoquHgg==
dependencies:
- "@hapi/address" "^4.1.0"
- "@hapi/formula" "^2.0.0"
"@hapi/hoek" "^9.0.0"
- "@hapi/pinpoint" "^2.0.0"
"@hapi/topo" "^5.0.0"
+ "@sideway/address" "^4.1.0"
+ "@sideway/formula" "^3.0.0"
+ "@sideway/pinpoint" "^2.0.0"
"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:
version "4.0.0"
@@ -6480,7 +7188,7 @@ jsbn@~0.1.0:
resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM=
-jsdom@^16.2.2:
+jsdom@^16.4.0:
version "16.4.0"
resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.4.0.tgz#36005bde2d136f73eee1a830c6d45e55408edddb"
integrity sha512-lYMm3wYdgPhrl7pDcRmvzPhhrGVBeVhPIqeHjzeiHN3DFmD1RBpbExbi8vU7BJdH8VAZYovR8DMt0PNNDM7k8w==
@@ -6824,10 +7532,10 @@ lodash.uniq@^4.5.0:
resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773"
integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=
-lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.3, lodash@^4.17.5:
- version "4.17.20"
- resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52"
- integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==
+lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.3, lodash@^4.17.5:
+ version "4.17.21"
+ resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
+ integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
loglevel@^1.6.8:
version "1.7.0"
@@ -6879,6 +7587,13 @@ lru-cache@^5.1.1:
dependencies:
yallist "^3.0.2"
+lru-cache@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94"
+ integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==
+ dependencies:
+ yallist "^4.0.0"
+
magic-string@^0.25.0, magic-string@^0.25.2, magic-string@^0.25.5, magic-string@^0.25.7:
version "0.25.7"
resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.7.tgz#3f497d6fd34c669c6798dcb821f2ef31f5445051"
@@ -6894,7 +7609,7 @@ make-dir@^2.0.0:
pify "^4.0.1"
semver "^5.6.0"
-make-dir@^3.0.0:
+make-dir@^3.0.0, make-dir@^3.0.2, make-dir@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f"
integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==
@@ -6918,11 +7633,6 @@ map-obj@^1.0.0, map-obj@^1.0.1:
resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d"
integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=
-map-obj@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-2.0.0.tgz#a65cd29087a92598b8791257a523e021222ac1f9"
- integrity sha1-plzSkIepJZi4eRJXpSPgISIqwfk=
-
map-obj@^4.0.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.1.0.tgz#b91221b542734b9f14256c0132c897c5d7256fd5"
@@ -7039,37 +7749,22 @@ meow@^3.3.0:
redent "^1.0.0"
trim-newlines "^1.0.0"
-meow@^4.0.0:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/meow/-/meow-4.0.1.tgz#d48598f6f4b1472f35bf6317a95945ace347f975"
- integrity sha512-xcSBHD5Z86zaOc+781KrupuHAzeGXSLtiAOmBsiLDiPSaYSB6hdew2ng9EBAnZ62jagG9MHAOdxpDi/lWBFJ/A==
- dependencies:
- camelcase-keys "^4.0.0"
- decamelize-keys "^1.0.0"
- loud-rejection "^1.0.0"
- minimist "^1.1.3"
- minimist-options "^3.0.1"
- normalize-package-data "^2.3.4"
- read-pkg-up "^3.0.0"
- redent "^2.0.0"
- trim-newlines "^2.0.0"
-
-meow@^7.0.0:
- version "7.1.1"
- resolved "https://registry.yarnpkg.com/meow/-/meow-7.1.1.tgz#7c01595e3d337fcb0ec4e8eed1666ea95903d306"
- integrity sha512-GWHvA5QOcS412WCo8vwKDlTelGLsCGBVevQB5Kva961rmNfun0PCbv5+xta2kUMFJyR8/oWnn7ddeKdosbAPbA==
+meow@^8.0.0:
+ version "8.1.2"
+ resolved "https://registry.yarnpkg.com/meow/-/meow-8.1.2.tgz#bcbe45bda0ee1729d350c03cffc8395a36c4e897"
+ integrity sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==
dependencies:
"@types/minimist" "^1.2.0"
camelcase-keys "^6.2.2"
decamelize-keys "^1.1.0"
hard-rejection "^2.1.0"
minimist-options "4.1.0"
- normalize-package-data "^2.5.0"
+ normalize-package-data "^3.0.0"
read-pkg-up "^7.0.1"
redent "^3.0.0"
trim-newlines "^3.0.0"
- type-fest "^0.13.1"
- yargs-parser "^18.1.3"
+ type-fest "^0.18.0"
+ yargs-parser "^20.2.3"
merge-descriptors@1.0.1:
version "1.0.1"
@@ -7192,7 +7887,7 @@ minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1:
resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7"
integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==
-minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1:
+minimalistic-crypto-utils@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a"
integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=
@@ -7213,14 +7908,6 @@ minimist-options@4.1.0:
is-plain-obj "^1.1.0"
kind-of "^6.0.3"
-minimist-options@^3.0.1:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-3.0.2.tgz#fba4c8191339e13ecf4d61beb03f070103f3d954"
- integrity sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==
- dependencies:
- arrify "^1.0.1"
- is-plain-obj "^1.1.0"
-
minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5:
version "1.2.5"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
@@ -7304,7 +7991,7 @@ ms@2.1.1:
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a"
integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==
-ms@^2.1.1:
+ms@2.1.2, ms@^2.1.1:
version "2.1.2"
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
@@ -7421,9 +8108,9 @@ node-modules-regexp@^1.0.0:
integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=
node-notifier@^8.0.0:
- version "8.0.0"
- resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-8.0.0.tgz#a7eee2d51da6d0f7ff5094bc7108c911240c1620"
- integrity sha512-46z7DUmcjoYdaWyXouuFNNfUo6eFa94t23c53c+lG/9Cvauk4a98rAUp9672X5dxGdQmLpPzTxzu8f/OeEPaFA==
+ version "8.0.1"
+ resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-8.0.1.tgz#f86e89bbc925f2b068784b31f382afdc6ca56be1"
+ integrity sha512-BvEXF+UmsnAfYfoapKM9nGxnP+Wn7P91YfXmrKnfcYCx6VBeoN5Ez5Ogck6I8Bi5k4RlpqRYaw75pAwzX9OphA==
dependencies:
growly "^1.3.0"
is-wsl "^2.2.0"
@@ -7432,10 +8119,10 @@ node-notifier@^8.0.0:
uuid "^8.3.0"
which "^2.0.2"
-node-releases@^1.1.60:
- version "1.1.60"
- resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.60.tgz#6948bdfce8286f0b5d0e5a88e8384e954dfe7084"
- integrity sha512-gsO4vjEdQaTusZAEebUWp2a5d7dF5DYoIpDG7WySnk7BuZDW+GPpHXoXXuYawRBr/9t5q54tirPz79kFIWg4dA==
+node-releases@^1.1.71:
+ version "1.1.72"
+ resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.72.tgz#14802ab6b1039a79a0c7d662b610a5bbd76eacbe"
+ integrity sha512-LLUo+PpH3dU6XizX3iVoubUNheF/owjXCZZ5yACDxNnPtgFuludV1ZL3ayK1kVep42Rmm0+R9/Y60NQbZ2bifw==
nopt@1.0.10:
version "1.0.10"
@@ -7444,7 +8131,7 @@ nopt@1.0.10:
dependencies:
abbrev "1"
-normalize-package-data@^2.3.0, normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.3.5, normalize-package-data@^2.5.0:
+normalize-package-data@^2.3.0, normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.5.0:
version "2.5.0"
resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8"
integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==
@@ -7454,6 +8141,16 @@ normalize-package-data@^2.3.0, normalize-package-data@^2.3.2, normalize-package-
semver "2 || 3 || 4 || 5"
validate-npm-package-license "^3.0.1"
+normalize-package-data@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-3.0.0.tgz#1f8a7c423b3d2e85eb36985eaf81de381d01301a"
+ integrity sha512-6lUjEI0d3v6kFrtgA/lOx4zHCWULXsFNIjHolnZCKCTLA6m/G625cdn3O7eNmT0iD3jfo6HZ9cdImGZwf21prw==
+ dependencies:
+ hosted-git-info "^3.0.6"
+ resolve "^1.17.0"
+ semver "^7.3.2"
+ validate-npm-package-license "^3.0.1"
+
normalize-path@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9"
@@ -7497,7 +8194,7 @@ npm-run-path@^2.0.0:
dependencies:
path-key "^2.0.0"
-npm-run-path@^4.0.0:
+npm-run-path@^4.0.0, npm-run-path@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea"
integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==
@@ -7521,11 +8218,6 @@ num2fraction@^1.2.2:
resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede"
integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=
-number-is-nan@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
- integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=
-
nwsapi@^2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7"
@@ -7634,7 +8326,7 @@ once@^1.3.0, once@^1.3.1, once@^1.4.0:
dependencies:
wrappy "1"
-onetime@^5.1.0:
+onetime@^5.1.0, onetime@^5.1.2:
version "5.1.2"
resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e"
integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==
@@ -7909,9 +8601,9 @@ path-key@^3.0.0, path-key@^3.1.0:
integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
path-parse@^1.0.6:
- version "1.0.6"
- resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c"
- integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==
+ version "1.0.7"
+ resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
+ integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
path-to-regexp@0.1.7:
version "0.1.7"
@@ -8008,7 +8700,7 @@ pkg-dir@^3.0.0:
dependencies:
find-up "^3.0.0"
-pkg-dir@^4.2.0:
+pkg-dir@^4.1.0, pkg-dir@^4.2.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3"
integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==
@@ -8402,15 +9094,15 @@ pretty-error@^2.0.2:
renderkid "^2.0.1"
utila "~0.4"
-pretty-format@^26.4.2:
- version "26.4.2"
- resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-26.4.2.tgz#d081d032b398e801e2012af2df1214ef75a81237"
- integrity sha512-zK6Gd8zDsEiVydOCGLkoBoZuqv8VTiHyAbKznXe/gaph/DAeZOmit9yMfgIz5adIgAMMs5XfoYSwAX3jcCO1tA==
+pretty-format@^26.6.2:
+ version "26.6.2"
+ resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-26.6.2.tgz#e35c2705f14cb7fe2fe94fa078345b444120fc93"
+ integrity sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==
dependencies:
- "@jest/types" "^26.3.0"
+ "@jest/types" "^26.6.2"
ansi-regex "^5.0.0"
ansi-styles "^4.0.0"
- react-is "^16.12.0"
+ react-is "^17.0.1"
pretty-time@^1.1.0:
version "1.1.0"
@@ -8418,11 +9110,9 @@ pretty-time@^1.1.0:
integrity sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==
prismjs@^1.13.0:
- version "1.21.0"
- resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.21.0.tgz#36c086ec36b45319ec4218ee164c110f9fc015a3"
- integrity sha512-uGdSIu1nk3kej2iZsLyDoJ7e9bnPzIgY0naW/HdknGj61zScaprVEVGHrPoXqI+M9sP0NDnTK2jpkvmldpuqDw==
- optionalDependencies:
- clipboard "^2.0.0"
+ version "1.25.0"
+ resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.25.0.tgz#6f822df1bdad965734b310b315a23315cf999756"
+ integrity sha512-WCjJHl1KEWbnkQom1+SzftbtXMKQoezOCYs5rECqMN+jP+apI7ftoflyqigqzopSO3hMhTEb0mFClA8lkolgEg==
process-nextick-args@~2.0.0:
version "2.0.1"
@@ -8602,11 +9292,6 @@ querystringify@^2.1.1:
resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6"
integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==
-quick-lru@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-1.1.0.tgz#4360b17c61136ad38078397ff11416e186dcfbb8"
- integrity sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g=
-
quick-lru@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f"
@@ -8652,10 +9337,10 @@ rc@^1.2.8:
minimist "^1.2.0"
strip-json-comments "~2.0.1"
-react-is@^16.12.0:
- version "16.13.1"
- resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"
- integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
+react-is@^17.0.1:
+ version "17.0.1"
+ resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.1.tgz#5b3531bd76a645a4c9fb6e693ed36419e3301339"
+ integrity sha512-NAnt2iGDXohE5LI7uBnLnqvLQMtzhkiAOLXTmv+qnF9Ky7xAPcX8Up/xWIhxvLVGJvuLiNc4xQLtuqDRzb4fSA==
read-pkg-up@^1.0.1:
version "1.0.1"
@@ -8723,7 +9408,7 @@ read-pkg@^5.2.0:
string_decoder "~1.1.1"
util-deprecate "~1.0.1"
-"readable-stream@2 || 3", readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0:
+readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0:
version "3.6.0"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198"
integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==
@@ -8763,14 +9448,6 @@ redent@^1.0.0:
indent-string "^2.1.0"
strip-indent "^1.0.1"
-redent@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/redent/-/redent-2.0.0.tgz#c1b2007b42d57eb1389079b3c8333639d5e1ccaa"
- integrity sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=
- dependencies:
- indent-string "^3.0.0"
- strip-indent "^2.0.0"
-
redent@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f"
@@ -8855,6 +9532,18 @@ regexpu-core@^4.7.0:
unicode-match-property-ecmascript "^1.0.4"
unicode-match-property-value-ecmascript "^1.2.0"
+regexpu-core@^4.7.1:
+ version "4.7.1"
+ resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.1.tgz#2dea5a9a07233298fbf0db91fa9abc4c6e0f8ad6"
+ integrity sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ==
+ dependencies:
+ regenerate "^1.4.0"
+ regenerate-unicode-properties "^8.2.0"
+ regjsgen "^0.5.1"
+ regjsparser "^0.6.4"
+ unicode-match-property-ecmascript "^1.0.4"
+ unicode-match-property-value-ecmascript "^1.2.0"
+
registry-auth-token@^4.0.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.2.0.tgz#1d37dffda72bbecd0f581e4715540213a65eb7da"
@@ -9017,6 +9706,14 @@ resolve@^1.1.6, resolve@^1.10.0, resolve@^1.11.0, resolve@^1.12.0, resolve@^1.14
dependencies:
path-parse "^1.0.6"
+resolve@^1.18.1:
+ version "1.19.0"
+ resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.19.0.tgz#1af5bf630409734a067cae29318aac7fa29a267c"
+ integrity sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==
+ dependencies:
+ is-core-module "^2.1.0"
+ path-parse "^1.0.6"
+
responselike@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7"
@@ -9099,10 +9796,10 @@ rollup-pluginutils@^2.8.2:
dependencies:
estree-walker "^0.6.1"
-rollup@^2.8.2:
- version "2.26.8"
- resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.26.8.tgz#7b02353835a73c4797f42177a5fa3fc074012713"
- integrity sha512-li9WaJYc5z9WzV1jhZbPQCrsOpGNsI+Li1qyrn5n745ZNSnlkRlBtj1Hs+Z0Dc2N1+P7HT34UKAEASqN9Th8cg==
+rollup@^2.38.0:
+ version "2.38.0"
+ resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.38.0.tgz#57942d5a10826cb12ed1f19c261f774efa502d2d"
+ integrity sha512-ay9zDiNitZK/LNE/EM2+v5CZ7drkB2xyDljvb1fQJCGnq43ZWRkhxN145oV8GmoW1YNi4sA/1Jdkr2LfawJoXw==
optionalDependencies:
fsevents "~2.1.2"
@@ -9123,13 +9820,20 @@ run-queue@^1.0.0, run-queue@^1.0.3:
dependencies:
aproba "^1.1.1"
-rxjs@^6.5.5, rxjs@^6.6.0:
+rxjs@^6.6.0:
version "6.6.2"
resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.2.tgz#8096a7ac03f2cc4fe5860ef6e572810d9e01c0d2"
integrity sha512-BHdBMVoWC2sL26w//BCu3YzKT4s2jip/WhwsGEDmeKYBhKDZeYezVUnHatYB7L85v5xs0BAQmg6BEYJEKxBabg==
dependencies:
tslib "^1.9.0"
+rxjs@^6.6.3:
+ version "6.6.3"
+ resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.3.tgz#8ca84635c4daa900c0d3967a6ee7ac60271ee552"
+ integrity sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==
+ dependencies:
+ tslib "^1.9.0"
+
safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
version "5.1.2"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
@@ -9210,11 +9914,6 @@ select-hose@^2.0.0:
resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca"
integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=
-select@^1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/select/-/select-1.1.2.tgz#0e7350acdec80b1108528786ec1d4418d11b396d"
- integrity sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0=
-
selfsigned@^1.10.7:
version "1.10.7"
resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.7.tgz#da5819fd049d5574f28e88a9bcc6dbc6e6f3906b"
@@ -9245,9 +9944,11 @@ semver@^6.0.0, semver@^6.1.0, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0:
integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
semver@^7.3.2:
- version "7.3.2"
- resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938"
- integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==
+ version "7.3.4"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.4.tgz#27aaa7d2e4ca76452f98d3add093a72c943edc97"
+ integrity sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==
+ dependencies:
+ lru-cache "^6.0.0"
send@0.17.1:
version "0.17.1"
@@ -9391,7 +10092,7 @@ shellwords@^0.1.1:
resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b"
integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==
-signal-exit@^3.0.0, signal-exit@^3.0.2:
+signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3:
version "3.0.3"
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c"
integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==
@@ -9612,6 +10313,13 @@ split2@^2.0.0:
dependencies:
through2 "^2.0.2"
+split2@^3.0.0:
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/split2/-/split2-3.2.2.tgz#bf2cf2a37d838312c249c89206fd7a17dd12365f"
+ integrity sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==
+ dependencies:
+ readable-stream "^3.0.0"
+
split@0.3:
version "0.3.3"
resolved "https://registry.yarnpkg.com/split/-/split-0.3.3.tgz#cd0eea5e63a211dfff7eb0f091c4133e2d0dd28f"
@@ -9647,9 +10355,9 @@ sshpk@^1.7.0:
tweetnacl "~0.14.0"
ssri@^6.0.1:
- version "6.0.1"
- resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.1.tgz#2a3c41b28dd45b62b63676ecb74001265ae9edd8"
- integrity sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==
+ version "6.0.2"
+ resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.2.tgz#157939134f20464e7301ddba3e90ffa8f7728ac5"
+ integrity sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==
dependencies:
figgy-pudding "^3.5.1"
@@ -9670,18 +10378,18 @@ stack-utils@^2.0.2:
dependencies:
escape-string-regexp "^2.0.0"
-start-server-and-test@^1.11.0:
- version "1.11.3"
- resolved "https://registry.yarnpkg.com/start-server-and-test/-/start-server-and-test-1.11.3.tgz#d293d2cff2c2fa0a46bbcf6b292716dbc8042d01"
- integrity sha512-7r2lvcnJPECSG+ydMzk1wLt3MdzsHnYj+kXgKyzbvTXul5XYEmYJJ3K7YUGNgo5w/vnZb8L/AZMyg1C17qBdzg==
+start-server-and-test@^1.11.7:
+ version "1.11.7"
+ resolved "https://registry.yarnpkg.com/start-server-and-test/-/start-server-and-test-1.11.7.tgz#3026bc6020e41edd4efad231bedf00a6a051f22a"
+ integrity sha512-91hA8mddcHSS3R7xRrVS9FT4qdRDvHlOEbI+mAA/sAW+31e78ptFmWWj+PJHFUKJrxtIkQ3ZeejPxCdesktULg==
dependencies:
bluebird "3.7.2"
check-more-types "2.24.0"
- debug "4.1.1"
+ debug "4.3.1"
execa "3.4.0"
lazy-ass "1.6.0"
ps-tree "1.2.0"
- wait-on "5.2.0"
+ wait-on "5.2.1"
static-extend@^0.1.1:
version "0.1.2"
@@ -9868,11 +10576,6 @@ strip-indent@^1.0.1:
dependencies:
get-stdin "^4.0.1"
-strip-indent@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68"
- integrity sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=
-
strip-indent@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001"
@@ -10103,13 +10806,12 @@ through2@^2.0.0, through2@^2.0.2:
readable-stream "~2.3.6"
xtend "~4.0.1"
-through2@^3.0.0:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/through2/-/through2-3.0.2.tgz#99f88931cfc761ec7678b41d5d7336b5b6a07bf4"
- integrity sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==
+through2@^4.0.0:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/through2/-/through2-4.0.2.tgz#a7ce3ac2a7a8b0b966c80e7c49f0484c3b239764"
+ integrity sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==
dependencies:
- inherits "^2.0.4"
- readable-stream "2 || 3"
+ readable-stream "3"
through@2, "through@>=2.2.7 <3", through@^2.3.6, through@^2.3.8, through@~2.3, through@~2.3.1, through@~2.3.4:
version "2.3.8"
@@ -10133,11 +10835,6 @@ timsort@^0.3.0:
resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4"
integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=
-tiny-emitter@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz#1d1a56edfc51c43e863cbb5382a72330e3555423"
- integrity sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==
-
tmp@^0.0.33:
version "0.0.33"
resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9"
@@ -10146,9 +10843,9 @@ tmp@^0.0.33:
os-tmpdir "~1.0.2"
tmpl@1.0.x:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1"
- integrity sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc"
+ integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==
to-arraybuffer@^1.0.0:
version "1.0.1"
@@ -10202,10 +10899,10 @@ to-regex@^3.0.1, to-regex@^3.0.2:
regex-not "^1.0.2"
safe-regex "^1.1.0"
-todomvc-app-css@2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/todomvc-app-css/-/todomvc-app-css-2.1.0.tgz#b6f2716d339afa2e5f799347d2a48b05396242a5"
- integrity sha1-tvJxbTOa+i5feZNH0qSLBTliQqU=
+todomvc-app-css@^2.3.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/todomvc-app-css/-/todomvc-app-css-2.3.0.tgz#cc27f1686ab4c418eef4e790289cc124baca2546"
+ integrity sha512-RG8hxqoVn8Be3wxyuyHfOSAXiY1Z0N+PYQOe/jxzy3wpU1Obfwd1RF1i/fz/fR+MrYL+Q+BdrUt8SsXdtR7Oow==
toidentifier@1.0.0:
version "1.0.0"
@@ -10251,11 +10948,6 @@ trim-newlines@^1.0.0:
resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613"
integrity sha1-WIeWa7WCpFA6QetST301ARgVphM=
-trim-newlines@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-2.0.0.tgz#b403d0b91be50c331dfc4b82eeceb22c3de16d20"
- integrity sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA=
-
trim-newlines@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.0.tgz#79726304a6a898aa8373427298d54c2ee8b1cb30"
@@ -10305,10 +10997,10 @@ type-fest@^0.11.0:
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.11.0.tgz#97abf0872310fed88a5c466b25681576145e33f1"
integrity sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==
-type-fest@^0.13.1:
- version "0.13.1"
- resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.13.1.tgz#0172cb5bce80b0bd542ea348db50c7e21834d934"
- integrity sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==
+type-fest@^0.18.0:
+ version "0.18.1"
+ resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.18.1.tgz#db4bc151a4a2cf4eebf9add5db75508db6cc841f"
+ integrity sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==
type-fest@^0.6.0:
version "0.6.0"
@@ -10359,9 +11051,9 @@ uglify-js@3.4.x:
source-map "~0.6.1"
uglify-js@^3.1.4:
- version "3.10.3"
- resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.10.3.tgz#f0d2f99736c14de46d2d24649ba328be3e71c3bf"
- integrity sha512-Lh00i69Uf6G74mvYpHCI9KVVXLcHW/xu79YTvH7Mkc9zyKUeSPz0owW0dguj0Scavns3ZOh3wY63J0Zb97Za2g==
+ version "3.13.5"
+ resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.13.5.tgz#5d71d6dbba64cf441f32929b1efce7365bb4f113"
+ integrity sha512-xtB8yEqIkn7zmOyS2zUNBsYCBRhDkvlNxMMY2smuJ/qA8NCHeQvKCF3i9Z4k8FJH4+PJvZRtMrPynfZ75+CSZw==
unbzip2-stream@^1.3.3:
version "1.4.3"
@@ -10516,9 +11208,9 @@ url-parse-lax@^3.0.0:
prepend-http "^2.0.0"
url-parse@^1.4.3:
- version "1.4.7"
- resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.7.tgz#a8a83535e8c00a316e403a5db4ac1b9b853ae278"
- integrity sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg==
+ version "1.5.3"
+ resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.3.tgz#71c1303d38fb6639ade183c2992c8cc0686df862"
+ integrity sha512-IIORyIQD9rvj0A4CLWsHkBBJuNqWpFQe224b6j9t/ABmquIS0qDU2pY6kl6AuOrL5OkCXHMCFNe1jBcuAggjvQ==
dependencies:
querystringify "^2.1.1"
requires-port "^1.0.0"
@@ -10589,19 +11281,19 @@ uuid@^3.3.2, uuid@^3.4.0:
integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==
uuid@^8.3.0:
- version "8.3.0"
- resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.0.tgz#ab738085ca22dc9a8c92725e459b1d507df5d6ea"
- integrity sha512-fX6Z5o4m6XsXBdli9g7DtWgAx+osMsRRZFKma1mIUsLCz6vRvv+pz5VNbyu9UEDzpMWulZfvpgb/cmDXVulYFQ==
+ version "8.3.2"
+ resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2"
+ integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==
v8-compile-cache@^2.0.3:
version "2.1.1"
resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz#54bc3cdd43317bca91e35dcaf305b1a7237de745"
integrity sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ==
-v8-to-istanbul@^5.0.1:
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-5.0.1.tgz#0608f5b49a481458625edb058488607f25498ba5"
- integrity sha512-mbDNjuDajqYe3TXFk5qxcQy8L1msXNE37WTlLoqqpBfRsimbNcrlhQlDPntmECEcUvdC+AQ8CyMMf6EUx1r74Q==
+v8-to-istanbul@^7.0.0:
+ version "7.1.0"
+ resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-7.1.0.tgz#5b95cef45c0f83217ec79f8fc7ee1c8b486aee07"
+ integrity sha512-uXUVqNUCLa0AH1vuVxzi+MI4RfxEOKt9pBgKwHbgH7st8Kv2P1m+jvWNnektzBh5QShF3ODgKmUFCf38LnVz1g==
dependencies:
"@types/istanbul-lib-coverage" "^2.0.1"
convert-source-map "^1.6.0"
@@ -10678,10 +11370,10 @@ vue-loader@^15.7.1:
vue-hot-reload-api "^2.3.0"
vue-style-loader "^4.1.0"
-vue-router@^3.1.3:
- version "3.4.3"
- resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-3.4.3.tgz#fa93768616ee338aa174f160ac965167fa572ffa"
- integrity sha512-BADg1mjGWX18Dpmy6bOGzGNnk7B/ZA0RxuA6qedY/YJwirMfKXIDzcccmHbQI0A6k5PzMdMloc0ElHfyOoX35A==
+vue-router@^3.4.5:
+ version "3.4.9"
+ resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-3.4.9.tgz#c016f42030ae2932f14e4748b39a1d9a0e250e66"
+ integrity sha512-CGAKWN44RqXW06oC+u4mPgHLQQi2t6vLD/JbGRDAXm0YpMv0bgpKuU5bBd7AvMgfTz9kXVRIWKHqRwGEb8xFkA==
vue-server-renderer@2.5.22:
version "2.5.22"
@@ -10777,13 +11469,13 @@ vuepress-plugin-smooth-scroll@^0.0.3:
dependencies:
smoothscroll-polyfill "^0.4.3"
-vuepress@^1.6.0:
- version "1.6.0"
- resolved "https://registry.yarnpkg.com/vuepress/-/vuepress-1.6.0.tgz#00e6f1649d992f4cfef80a2e3f7af8683acc6ad9"
- integrity sha512-5hxhkgMROjo6ja59oyrHeiOv6xpq1sy86ejaWgevMWiMbBIZU+9grwrd+PSL6q4rwfsi/a8NqYzcBXV/ZSXWZA==
+vuepress@^1.8.2:
+ version "1.8.2"
+ resolved "https://registry.yarnpkg.com/vuepress/-/vuepress-1.8.2.tgz#97e8bf979630611fc7b621fc4cc35b798ee5e847"
+ integrity sha512-BU1lUDwsA3ghf7a9ga4dsf0iTc++Z/l7BR1kUagHWVBHw7HNRgRDfAZBDDQXhllMILVToIxaTifpne9mSi94OA==
dependencies:
- "@vuepress/core" "1.6.0"
- "@vuepress/theme-default" "1.6.0"
+ "@vuepress/core" "1.8.2"
+ "@vuepress/theme-default" "1.8.2"
cac "^6.5.6"
envinfo "^7.2.0"
opencollective-postinstall "^2.0.2"
@@ -10803,16 +11495,16 @@ w3c-xmlserializer@^2.0.0:
dependencies:
xml-name-validator "^3.0.0"
-wait-on@5.2.0:
- version "5.2.0"
- resolved "https://registry.yarnpkg.com/wait-on/-/wait-on-5.2.0.tgz#6711e74422523279714a36d52cf49fb47c9d9597"
- integrity sha512-U1D9PBgGw2XFc6iZqn45VBubw02VsLwnZWteQ1au4hUVHasTZuFSKRzlTB2dqgLhji16YVI8fgpEpwUdCr8B6g==
+wait-on@5.2.1:
+ version "5.2.1"
+ resolved "https://registry.yarnpkg.com/wait-on/-/wait-on-5.2.1.tgz#05b66fcb4d7f5da01537f03e7cf96e8836422996"
+ integrity sha512-H2F986kNWMU9hKlI9l/ppO6tN8ZSJd35yBljMLa1/vjzWP++Qh6aXyt77/u7ySJFZQqBtQxnvm/xgG48AObXcw==
dependencies:
- axios "^0.19.2"
- joi "^17.1.1"
- lodash "^4.17.19"
+ axios "^0.21.1"
+ joi "^17.3.0"
+ lodash "^4.17.20"
minimist "^1.2.5"
- rxjs "^6.5.5"
+ rxjs "^6.6.3"
walker@^1.0.7, walker@~1.0.5:
version "1.0.7"
@@ -11129,9 +11821,9 @@ write@1.0.3:
mkdirp "^0.5.1"
ws@^6.2.1:
- version "6.2.1"
- resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb"
- integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==
+ version "6.2.2"
+ resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.2.tgz#dd5cdbd57a9979916097652d78f1cc5faea0c32e"
+ integrity sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==
dependencies:
async-limiter "~1.0.0"
@@ -11161,9 +11853,9 @@ xtend@^4.0.0, xtend@~4.0.1:
integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
y18n@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b"
- integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.1.tgz#8db2b83c31c5d75099bb890b23f3094891e247d4"
+ integrity sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==
yallist@^2.1.2:
version "2.1.2"
@@ -11175,6 +11867,11 @@ yallist@^3.0.2:
resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd"
integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==
+yallist@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
+ integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
+
yargs-parser@^13.1.2:
version "13.1.2"
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38"
@@ -11183,7 +11880,7 @@ yargs-parser@^13.1.2:
camelcase "^5.0.0"
decamelize "^1.2.0"
-yargs-parser@^18.1.2, yargs-parser@^18.1.3:
+yargs-parser@^18.1.2:
version "18.1.3"
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0"
integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==
@@ -11191,6 +11888,11 @@ yargs-parser@^18.1.2, yargs-parser@^18.1.3:
camelcase "^5.0.0"
decamelize "^1.2.0"
+yargs-parser@^20.2.3:
+ version "20.2.4"
+ resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54"
+ integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==
+
yargs@^13.3.2:
version "13.3.2"
resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd"
@@ -11207,7 +11909,7 @@ yargs@^13.3.2:
y18n "^4.0.0"
yargs-parser "^13.1.2"
-yargs@^15.3.1:
+yargs@^15.4.1:
version "15.4.1"
resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8"
integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==