From 5b1f46fdb3004fa5972b8b17f52cd24dbbee0458 Mon Sep 17 00:00:00 2001 From: ktsn Date: Sun, 15 Mar 2020 15:15:03 +0800 Subject: [PATCH 01/69] feat!: wip vue 3 support --- jest.config.js | 18 + package.json | 15 +- src/component.ts | 179 -- src/data.ts | 54 - src/declarations.ts | 10 - src/globals.d.ts | 5 - src/helpers.ts | 62 + src/index.ts | 23 +- src/reflect.ts | 42 - src/util.ts | 54 - src/vue.ts | 207 +++ test/.babelrc | 4 +- test/specs/test-babel.spec.js | 154 ++ test/{test.ts => specs/test-ts.spec.ts} | 293 ++-- test/test-babel.js | 209 --- test/tsconfig.json | 2 +- test/webpack.config.js | 25 - tsconfig.json | 3 +- yarn.lock | 2133 ++++++++++++++++++++--- 19 files changed, 2450 insertions(+), 1042 deletions(-) create mode 100644 jest.config.js delete mode 100644 src/component.ts delete mode 100644 src/data.ts delete mode 100644 src/declarations.ts delete mode 100644 src/globals.d.ts create mode 100644 src/helpers.ts delete mode 100644 src/reflect.ts delete mode 100644 src/util.ts create mode 100644 src/vue.ts create mode 100644 test/specs/test-babel.spec.js rename test/{test.ts => specs/test-ts.spec.ts} (51%) delete mode 100644 test/test-babel.js delete mode 100644 test/webpack.config.js diff --git a/jest.config.js b/jest.config.js new file mode 100644 index 0000000..a06e253 --- /dev/null +++ b/jest.config.js @@ -0,0 +1,18 @@ +module.exports = { + preset: 'ts-jest/presets/js-with-babel', + + testMatch: [ + '**/test/**/?(*.)+(spec|test).[jt]s?(x)' + ], + + moduleNameMapper: { + '^vue$': 'vue/dist/vue.cjs.prod.js' + }, + + globals: { + 'ts-jest': { + tsConfig: 'test/tsconfig.json', + babelConfig: 'test/.babelrc' + } + } +} diff --git a/package.json b/package.json index becf6a8..d82089e 100644 --- a/package.json +++ b/package.json @@ -19,9 +19,8 @@ "clean": "rimraf ./lib", "example": "npm run build && webpack --config example/webpack.config.js", "dev": "webpack --config example/webpack.config.js --watch", - "dev:test": "node build/dev-test.js", "lint": "eslint --ext js,jsx,ts,tsx,vue .", - "test": "npm run build && webpack --config test/webpack.config.js && mocha test/test.build.js", + "test": "jest", "docs:dev": "vuepress dev docs", "docs:build": "vuepress build docs", "release": "bash build/release.sh" @@ -43,7 +42,7 @@ }, "homepage": "https://github.com/vuejs/vue-class-component#readme", "peerDependencies": { - "vue": "^2.0.0" + "vue": "^3.0.0" }, "devDependencies": { "@babel/core": "^7.7.7", @@ -52,29 +51,29 @@ "@babel/plugin-syntax-jsx": "^7.7.4", "@babel/preset-env": "^7.7.7", "@types/chai": "^4.2.7", + "@types/jest": "^25.1.3", "@types/mocha": "^5.2.7", "@types/node": "^13.1.6", "@typescript-eslint/parser": "^2.15.0", "babel-helper-vue-jsx-merge-props": "^2.0.3", + "babel-jest": "^25.1.0", "babel-loader": "^8.0.6", "babel-plugin-transform-vue-jsx": "^4.0.1", - "chai": "^4.2.0", "css-loader": "^3.4.2", "eslint": "^6.8.0", "eslint-plugin-vue-libs": "^4.0.0", - "mocha": "^7.0.0", + "jest": "^25.1.0", "reflect-metadata": "^0.1.13", "rimraf": "^3.0.0", "rollup": "^1.29.0", "rollup-plugin-babel": "^4.3.3", "rollup-plugin-replace": "^2.2.0", - "testdouble": "^3.12.5", + "ts-jest": "^25.2.1", "ts-loader": "^6.2.1", "typescript": "^3.7.4", "uglify-es": "^3.3.9", - "vue": "^2.6.11", + "vue": "^3.0.0-alpha.9", "vue-loader": "^15.8.3", - "vue-template-compiler": "^2.6.11", "vuepress": "^1.2.0", "vuex": "^3.1.2", "webpack": "^4.41.5", diff --git a/src/component.ts b/src/component.ts deleted file mode 100644 index 54a8192..0000000 --- a/src/component.ts +++ /dev/null @@ -1,179 +0,0 @@ -import Vue, { ComponentOptions } from 'vue' -import { copyReflectionMetadata, reflectionIsSupported } from './reflect' -import { VueClass, DecoratedClass } from './declarations' -import { collectDataFromConstructor } from './data' -import { hasProto, isPrimitive, warn } from './util' - -export const $internalHooks = [ - 'data', - 'beforeCreate', - 'created', - 'beforeMount', - 'mounted', - 'beforeDestroy', - 'destroyed', - 'beforeUpdate', - 'updated', - 'activated', - 'deactivated', - 'render', - 'errorCaptured', // 2.5 - 'serverPrefetch' // 2.6 -] - -export function componentFactory ( - Component: VueClass, - options: ComponentOptions = {} -): VueClass { - options.name = options.name || (Component as any)._componentTag || (Component as any).name - // prototype props. - const proto = Component.prototype - Object.getOwnPropertyNames(proto).forEach(function (key) { - if (key === 'constructor') { - return - } - - // hooks - if ($internalHooks.indexOf(key) > -1) { - options[key] = proto[key] - return - } - const descriptor = Object.getOwnPropertyDescriptor(proto, key)! - if (descriptor.value !== void 0) { - // methods - if (typeof descriptor.value === 'function') { - (options.methods || (options.methods = {}))[key] = descriptor.value - } else { - // typescript decorated data - (options.mixins || (options.mixins = [])).push({ - data (this: Vue) { - return { [key]: descriptor.value } - } - }) - } - } else if (descriptor.get || descriptor.set) { - // computed properties - (options.computed || (options.computed = {}))[key] = { - get: descriptor.get, - set: descriptor.set - } - } - }) - - // add data hook to collect class properties as Vue instance's data - ;(options.mixins || (options.mixins = [])).push({ - data (this: Vue) { - return collectDataFromConstructor(this, Component) - } - }) - - // decorate options - const decorators = (Component as DecoratedClass).__decorators__ - if (decorators) { - decorators.forEach(fn => fn(options)) - delete (Component as DecoratedClass).__decorators__ - } - - // find super - const superProto = Object.getPrototypeOf(Component.prototype) - const Super = superProto instanceof Vue - ? superProto.constructor as VueClass - : Vue - const Extended = Super.extend(options) - - forwardStaticMembers(Extended, Component, Super) - - if (reflectionIsSupported()) { - copyReflectionMetadata(Extended, Component) - } - - return Extended -} - -const reservedPropertyNames = [ - // Unique id - 'cid', - - // Super Vue constructor - 'super', - - // Component options that will be used by the component - 'options', - 'superOptions', - 'extendOptions', - 'sealedOptions', - - // Private assets - 'component', - 'directive', - 'filter' -] - -const shouldIgnore = { - prototype: true, - arguments: true, - callee: true, - caller: true -} - -function forwardStaticMembers ( - Extended: typeof Vue, - Original: typeof Vue, - Super: typeof Vue -): void { - // We have to use getOwnPropertyNames since Babel registers methods as non-enumerable - Object.getOwnPropertyNames(Original).forEach(key => { - // Skip the properties that should not be overwritten - if (shouldIgnore[key]) { - return - } - - // Some browsers does not allow reconfigure built-in properties - const extendedDescriptor = Object.getOwnPropertyDescriptor(Extended, key) - if (extendedDescriptor && !extendedDescriptor.configurable) { - return - } - - const descriptor = Object.getOwnPropertyDescriptor(Original, key)! - - // If the user agent does not support `__proto__` or its family (IE <= 10), - // the sub class properties may be inherited properties from the super class in TypeScript. - // We need to exclude such properties to prevent to overwrite - // the component options object which stored on the extended constructor (See #192). - // If the value is a referenced value (object or function), - // we can check equality of them and exclude it if they have the same reference. - // If it is a primitive value, it will be forwarded for safety. - if (!hasProto) { - // Only `cid` is explicitly exluded from property forwarding - // because we cannot detect whether it is a inherited property or not - // on the no `__proto__` environment even though the property is reserved. - if (key === 'cid') { - return - } - - const superDescriptor = Object.getOwnPropertyDescriptor(Super, key) - - if ( - !isPrimitive(descriptor.value) && - superDescriptor && - superDescriptor.value === descriptor.value - ) { - return - } - } - - // Warn if the users manually declare reserved properties - if ( - process.env.NODE_ENV !== 'production' && - reservedPropertyNames.indexOf(key) >= 0 - ) { - warn( - `Static property name '${key}' declared on class '${Original.name}' ` + - 'conflicts with reserved property name of Vue internal. ' + - 'It may cause unexpected behavior of the component. Consider renaming the property.' - ) - } - - Object.defineProperty(Extended, key, descriptor) - }) -} diff --git a/src/data.ts b/src/data.ts deleted file mode 100644 index db7b81b..0000000 --- a/src/data.ts +++ /dev/null @@ -1,54 +0,0 @@ -import Vue from 'vue' -import { VueClass } from './declarations' -import { warn } from './util' - -export function collectDataFromConstructor (vm: Vue, Component: VueClass) { - // override _init to prevent to init as Vue instance - const originalInit = Component.prototype._init - Component.prototype._init = function (this: Vue) { - // proxy to actual vm - const keys = Object.getOwnPropertyNames(vm) - // 2.2.0 compat (props are no longer exposed as self properties) - if (vm.$options.props) { - for (const key in vm.$options.props) { - if (!vm.hasOwnProperty(key)) { - keys.push(key) - } - } - } - keys.forEach(key => { - if (key.charAt(0) !== '_') { - Object.defineProperty(this, key, { - get: () => vm[key], - set: value => { vm[key] = value }, - configurable: true - }) - } - }) - } - - // should be acquired class property values - const data = new Component() - - // restore original _init to avoid memory leak (#209) - Component.prototype._init = originalInit - - // create plain data object - const plainData = {} - Object.keys(data).forEach(key => { - if (data[key] !== undefined) { - plainData[key] = data[key] - } - }) - - if (process.env.NODE_ENV !== 'production') { - if (!(Component.prototype instanceof Vue) && Object.keys(plainData).length > 0) { - warn( - 'Component class must inherit Vue or its descendant class ' + - 'when class property is used.' - ) - } - } - - return plainData -} diff --git a/src/declarations.ts b/src/declarations.ts deleted file mode 100644 index af7981f..0000000 --- a/src/declarations.ts +++ /dev/null @@ -1,10 +0,0 @@ -import Vue, { ComponentOptions } from 'vue' - -export type VueClass = { new (...args: any[]): V & Vue } & typeof Vue - -export type DecoratedClass = VueClass & { - // Property, method and parameter decorators created by `createDecorator` helper - // will enqueue functions that update component options for lazy processing. - // They will be executed just before creating component constructor. - __decorators__?: ((options: ComponentOptions) => void)[] -} diff --git a/src/globals.d.ts b/src/globals.d.ts deleted file mode 100644 index c0af8b4..0000000 --- a/src/globals.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -/** - * global type declarations in this project - * should not expose to userland - */ -import 'reflect-metadata' diff --git a/src/helpers.ts b/src/helpers.ts new file mode 100644 index 0000000..f646971 --- /dev/null +++ b/src/helpers.ts @@ -0,0 +1,62 @@ +import { ComponentOptions } from 'vue' +import { Vue, VueBase, VueMixin } from './vue' + +export function Options (options: ComponentOptions & ThisType): (target: VC) => VC { + return Component => { + Component.__vccBase = options + return Component + } +} + +export interface VueDecorator { + // Class decorator + (Ctor: VueBase): void + + // Property decorator + (target: Vue, key: string): void + + // Parameter decorator + (target: Vue, key: string, index: number): void +} + +export function createDecorator (factory: (options: ComponentOptions, key: string, index: number) => void): VueDecorator { + return (target: Vue | VueBase, key?: any, index?: any) => { + const Ctor = typeof target === 'function' + ? target + : target.constructor as VueBase + if (!Ctor.__vccDecorators) { + Ctor.__vccDecorators = [] + } + if (typeof index !== 'number') { + index = undefined + } + Ctor.__vccDecorators.push(options => factory(options, key, index)) + } +} + +interface PropsMixin { + new (...args: any[]): { + $props: Props + } +} + +type UnionToIntersection = (U extends any +? (k: U) => void +: never) extends (k: infer I) => void + ? I + : never + +type ExtractInstance = T extends VueMixin + ? V + : never + +type MixedVueBase = Mixins extends (infer T)[] + ? VueBase> & Vue> & PropsMixin + : never + +export function mixins (...Ctors: T): MixedVueBase +export function mixins (...Ctors: VueMixin[]): VueBase { + return class MixedVue extends Vue { + static __vccMixins = Ctors.map(Ctor => Ctor.__vccOpts) + } +} diff --git a/src/index.ts b/src/index.ts index d2b955b..d93b141 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,22 +1,3 @@ -import Vue, { ComponentOptions } from 'vue' -import { VueClass } from './declarations' -import { componentFactory, $internalHooks } from './component' +export { Vue } from './vue' +export { Options, VueDecorator, createDecorator, mixins } from './helpers' -export { createDecorator, VueDecorator, mixins } from './util' - -function Component (options: ComponentOptions & ThisType): >(target: VC) => VC -function Component >(target: VC): VC -function Component (options: ComponentOptions | VueClass): any { - if (typeof options === 'function') { - return componentFactory(options) - } - return function (Component: VueClass) { - return componentFactory(Component, options) - } -} - -Component.registerHooks = function registerHooks (keys: string[]): void { - $internalHooks.push(...keys) -} - -export default Component diff --git a/src/reflect.ts b/src/reflect.ts deleted file mode 100644 index ab65dff..0000000 --- a/src/reflect.ts +++ /dev/null @@ -1,42 +0,0 @@ -import Vue, { VueConstructor } from 'vue' -import { VueClass } from './declarations' - -// The rational behind the verbose Reflect-feature check below is the fact that there are polyfills -// which add an implementation for Reflect.defineMetadata but not for Reflect.getOwnMetadataKeys. -// Without this check consumers will encounter hard to track down runtime errors. -export function reflectionIsSupported () { - return typeof Reflect !== 'undefined' && Reflect.defineMetadata && Reflect.getOwnMetadataKeys -} - -export function copyReflectionMetadata ( - to: VueConstructor, - from: VueClass -) { - forwardMetadata(to, from) - - Object.getOwnPropertyNames(from.prototype).forEach(key => { - forwardMetadata(to.prototype, from.prototype, key) - }) - - Object.getOwnPropertyNames(from).forEach(key => { - forwardMetadata(to, from, key) - }) -} - -function forwardMetadata (to: object, from: object, propertyKey?: string): void { - const metaKeys = propertyKey - ? Reflect.getOwnMetadataKeys(from, propertyKey) - : Reflect.getOwnMetadataKeys(from) - - metaKeys.forEach(metaKey => { - const metadata = propertyKey - ? Reflect.getOwnMetadata(metaKey, from, propertyKey) - : Reflect.getOwnMetadata(metaKey, from) - - if (propertyKey) { - Reflect.defineMetadata(metaKey, metadata, to, propertyKey) - } else { - Reflect.defineMetadata(metaKey, metadata, to) - } - }) -} diff --git a/src/util.ts b/src/util.ts deleted file mode 100644 index 40ae747..0000000 --- a/src/util.ts +++ /dev/null @@ -1,54 +0,0 @@ -import Vue, { ComponentOptions } from 'vue' -import { VueClass, DecoratedClass } from './declarations' - -export const noop = () => {} - -const fakeArray = { __proto__: [] } -export const hasProto = fakeArray instanceof Array - -export interface VueDecorator { - // Class decorator - (Ctor: typeof Vue): void - - // Property decorator - (target: Vue, key: string): void - - // Parameter decorator - (target: Vue, key: string, index: number): void -} - -export function createDecorator (factory: (options: ComponentOptions, key: string, index: number) => void): VueDecorator { - return (target: Vue | typeof Vue, key?: any, index?: any) => { - const Ctor = typeof target === 'function' - ? target as DecoratedClass - : target.constructor as DecoratedClass - if (!Ctor.__decorators__) { - Ctor.__decorators__ = [] - } - if (typeof index !== 'number') { - index = undefined - } - Ctor.__decorators__.push(options => factory(options, key, index)) - } -} - -export function mixins (CtorA: VueClass): VueClass -export function mixins (CtorA: VueClass, CtorB: VueClass): VueClass -export function mixins (CtorA: VueClass, CtorB: VueClass, CtorC: VueClass): VueClass -export function mixins (CtorA: VueClass, CtorB: VueClass, CtorC: VueClass, CtorD: VueClass): VueClass -export function mixins (CtorA: VueClass, CtorB: VueClass, CtorC: VueClass, CtorD: VueClass, CtorE: VueClass): VueClass -export function mixins (...Ctors: VueClass[]): VueClass -export function mixins (...Ctors: VueClass[]): VueClass { - return Vue.extend({ mixins: Ctors }) -} - -export function isPrimitive (value: any): boolean { - const type = typeof value - return value == null || (type !== 'object' && type !== 'function') -} - -export function warn (message: string): void { - if (typeof console !== 'undefined') { - console.warn('[vue-class-component] ' + message) - } -} diff --git a/src/vue.ts b/src/vue.ts new file mode 100644 index 0000000..8c639f7 --- /dev/null +++ b/src/vue.ts @@ -0,0 +1,207 @@ +import { + ComponentPublicInstance, + ComponentOptions, + VNode +} from 'vue' + +function isFunction (value: any): value is Function { + return typeof value === 'function' +} + +function getSuperOptions (Ctor: Function): ComponentOptions | undefined { + const superProto = Object.getPrototypeOf(Ctor.prototype) + if (!superProto) { + return undefined + } + + const Super = superProto.constructor as typeof Vue + return Super.__vccOpts +} + +interface ClassComponentHooks { + /* To be extended on user land */ +} + +type VueStatic = { + [K in keyof typeof Vue]: (typeof Vue)[K] +} + +export type VueMixin = VueStatic & { prototype: V } + +export type VueBase = VueMixin & (new (...args: any[]) => V) + +export class Vue implements ComponentPublicInstance<{}, {}, {}, {}, {}, Props>, ClassComponentHooks { + /** @internal */ + static __vccCache?: ComponentOptions + + /** @internal */ + static __vccBase?: ComponentOptions + + /** @internal */ + static __vccDecorators?: ((options: ComponentOptions) => void)[] + + /** @internal */ + static __vccMixins?: ComponentOptions[] + + /** @internal */ + static __vccHooks = [ + 'data', + 'beforeCreate', + 'created', + 'beforeMount', + 'mounted', + 'beforeUnmount', + 'unmounted', + 'beforeUpdate', + 'updated', + 'activated', + 'deactivated', + 'render', + 'errorCaptured', + 'serverPrefetch' + ] + + /** @internal */ + static get __vccOpts (): ComponentOptions { + // Early return if `this` is base class as it does not have any options + if (this === Vue) { + return {} + } + + const cache = this.hasOwnProperty('__vccCache') && this.__vccCache + if (cache) { + return cache + } + + const Ctor = this + + // If the options are provided via decorator use it as a base + const options = this.__vccCache = this.hasOwnProperty('__vccBase') + ? { ...this.__vccBase } + : {} + + // Handle super class options + options.extends = getSuperOptions(Ctor) + + // Handle mixins + const mixins = this.hasOwnProperty('__vccMixins') && this.__vccMixins + if (mixins) { + options.mixins = options.mixins ? options.mixins.concat(mixins) : mixins + } + + // Class name -> component name + options.name = options.name || Ctor.name + + options.methods = { ...options.methods } + options.computed = { ...options.computed } + + const proto = Ctor.prototype + Object.getOwnPropertyNames(proto).forEach(key => { + if (key === 'constructor') { + return + } + + // hooks + if (Ctor.__vccHooks.indexOf(key) > -1) { + (options as any)[key] = (proto as any)[key] + return + } + + const descriptor = Object.getOwnPropertyDescriptor(proto, key)! + + // methods + if (typeof descriptor.value === 'function') { + (options.methods as any)[key] = descriptor.value + return + } + + // computed properties + if (descriptor.get || descriptor.set) { + (options.computed as any)[key] = { + get: descriptor.get, + set: descriptor.set + } + return + } + }) + + // Class properties -> reactive data + const hookDataOption = options.data + + options.data = function () { + const hookData = isFunction(hookDataOption) + ? hookDataOption.call(this) + : hookDataOption + + // should be acquired class property values + const data: any = new Ctor(this.$props) + + // create plain data object + const plainData = {} + Object.keys(data).forEach(key => { + if (data[key] !== undefined && key !== '$props') { + (plainData as any)[key] = data[key] + } + }) + + return { + ...hookData, + ...plainData + } + } + + const decorators = this.hasOwnProperty('__vccDecorators') && this.__vccDecorators + if (decorators) { + decorators.forEach(fn => fn(options)) + } + + return options + } + + static registerHooks (keys: string[]): void { + this.__vccHooks.push(...keys) + } + + // Public instance properties + $!: ComponentPublicInstance['$'] + $data!: ComponentPublicInstance['$data'] + $attrs!: ComponentPublicInstance['$attrs'] + $refs!: ComponentPublicInstance['$refs'] + $slots!: ComponentPublicInstance['$slots'] + $root!: ComponentPublicInstance['$root'] + $parent!: ComponentPublicInstance['$parent'] + $emit!: ComponentPublicInstance['$emit'] + $el!: ComponentPublicInstance['$el'] + $options!: ComponentPublicInstance['$options'] + $forceUpdate!: ComponentPublicInstance['$forceUpdate'] + $nextTick!: ComponentPublicInstance['$nextTick'] + $watch!: ComponentPublicInstance['$watch'] + $props: Props + + // Built-in hooks + data?(): object + beforeCreate?(): void + created?(): void + beforeMount?(): void + mounted?(): void + beforeUnmount?(): void + unmounted?(): void + beforeUpdate?(): void + updated?(): void + activated?(): void + deactivated?(): void + render?(): VNode | void + errorCaptured?(err: Error, vm: Vue, info: string): boolean | undefined + serverPrefetch?(): Promise + + constructor (props: Props) { + this.$props = props + + Object.keys(props).forEach(key => { + Object.defineProperty(this, key, { + enumerable: false, + value: (props as any)[key] + }) + }) + } +} diff --git a/test/.babelrc b/test/.babelrc index 6dc23e7..cb59e88 100644 --- a/test/.babelrc +++ b/test/.babelrc @@ -1,7 +1,5 @@ { - "presets": [ - ["@babel/env", { "modules": false }] - ], + "presets": ["@babel/env"], "plugins": [ ["@babel/proposal-decorators", { "legacy": true }], ["@babel/proposal-class-properties", { "loose": true }] diff --git a/test/specs/test-babel.spec.js b/test/specs/test-babel.spec.js new file mode 100644 index 0000000..f68cdee --- /dev/null +++ b/test/specs/test-babel.spec.js @@ -0,0 +1,154 @@ +import 'reflect-metadata' +import { Options, createDecorator, mixins, Vue } from '../../src' +import { createApp } from 'vue' + +describe('vue-class-component with Babel', () => { + const root = document.createElement('div') + + it('should be instantiated without any errors', () => { + class MyComp extends Vue { + render() {} + } + expect(() => createApp(MyComp).mount(root)).not.toThrow() + }) + + it('should collect class properties as data', () => { + @Options({ + props: ['propValue'] + }) + class MyComp extends Vue { + foo = 'hello' + bar = 1 + this.propValue + + render() {} + } + const c = createApp(MyComp, { propValue: 1 }).mount(root) + expect(c.foo).toBe('hello') + expect(c.propValue).toBe(1) + expect(c.bar).toBe(2) + }) + + it('should not collect uninitialized class properties', () => { + const Prop = createDecorator((options, key) => { + if (!options.props) { + options.props = {} + } + options.props[key] = { + type: null + } + }) + + class MyComp extends Vue { + foo + @Prop bar + + render() {} + } + const c = createApp(MyComp).mount(root) + expect('foo' in c.$data).toBe(false) + expect('bar' in c.$data).toBe(false) + }) + + // #155 + it('createDecrator: create a class decorator', () => { + const DataMixin = createDecorator(options => { + options.data = function () { + return { + test: 'foo' + } + } + }) + + @DataMixin + class MyComp extends Vue { + render() {} + } + + const vm = createApp(MyComp).mount(root) + expect(vm.test).toBe('foo') + }) + + it('should not throw if property decorator declare some methods', () => { + const Test = createDecorator((options, key) => { + if (!options.methods) { + options.methods = {} + } + options.methods[key] = () => 'test' + }) + + class MyComp extends Vue { + @Test test + + render() {} + } + + const vm = createApp(MyComp).mount(root) + expect(vm.test()).toBe('test') + }) + + it('should forward static members', () => { + class MyComp extends Vue { + static foo = 'foo' + + static bar () { + return 'bar' + } + } + + expect(MyComp.foo).toBe('foo') + expect(MyComp.bar()).toBe('bar') + }) + + it('mixin helper', function () { + class MixinA extends Vue { + valueA = 'hello' + } + + class MixinB extends Vue { + valueB = 123 + } + + class MyComp extends mixins(MixinA, MixinB) { + test () { + this.valueA = 'hi' + this.valueB = 456 + } + + render() {} + } + + const vm = createApp(MyComp).mount(root) + expect(vm.valueA).toBe('hello') + expect(vm.valueB).toBe(123) + vm.test() + expect(vm.valueA).toBe('hi') + expect(vm.valueB).toBe(456) + }) + + it('copies reflection metadata', function () { + @Reflect.metadata('worksConstructor', true) + class Test extends Vue { + @Reflect.metadata('worksStatic', true) + static staticValue = 'staticValue' + + _test = false + + @Reflect.metadata('worksMethod', true) + test () { + void 0 + } + + @Reflect.metadata('worksAccessor', true) + get testAccessor () { + return this._test + } + + render() {} + } + + expect(Reflect.getOwnMetadata('worksConstructor', Test)).toBe(true) + expect(Reflect.getOwnMetadata('worksStatic', Test, 'staticValue')).toBe(true) + expect(Reflect.getOwnMetadata('worksMethod', Test.prototype, 'test')).toBe(true) + expect(Reflect.getOwnMetadata('worksAccessor', Test.prototype, 'testAccessor')).toBe(true) + }) +}) diff --git a/test/test.ts b/test/specs/test-ts.spec.ts similarity index 51% rename from test/test.ts rename to test/specs/test-ts.spec.ts index d70d816..3b8bf94 100644 --- a/test/test.ts +++ b/test/specs/test-ts.spec.ts @@ -1,98 +1,85 @@ import 'reflect-metadata' -import Component, { createDecorator, mixins } from '../lib' -import { expect } from 'chai' -import * as td from 'testdouble' -import Vue, { ComputedOptions } from 'vue' +import { createApp, h, resolveComponent } from 'vue' +import { Options, createDecorator, mixins, Vue } from '../../src' + +const root = document.createElement('div') describe('vue-class-component', () => { it('hooks', () => { let created = false - let destroyed = false + let unmounted = false - @Component class MyComp extends Vue { created () { created = true } - destroyed () { - destroyed = true + unmounted () { + unmounted = true } + + render() {} } - const c = new MyComp() - expect(created).to.be.true - expect(destroyed).to.be.false - c.$destroy() - expect(destroyed).to.be.true + const app = createApp(MyComp) + app.mount(root) + expect(created).toBe(true) + expect(unmounted).toBe(false) + app.unmount(root) + expect(unmounted).toBe(true) }) it('hooks: adding custom hooks', () => { - Component.registerHooks(['beforeRouteEnter']) + class SubVue extends Vue {} + SubVue.registerHooks(['beforeRouteEnter']) - @Component - class MyComp extends Vue { + class MyComp extends SubVue { static options: any beforeRouteEnter () { return 'beforeRouteEnter' } + + render() {} } - expect(MyComp.options.beforeRouteEnter()).to.equal('beforeRouteEnter') + const app = createApp(MyComp).mount(root) + expect((app.$options as any).beforeRouteEnter()).toBe('beforeRouteEnter') }) it('data: should collect from class properties', () => { - @Component({ + @Options({ props: ['foo'] }) class MyComp extends Vue { foo!: number a: string = 'hello' b: number = this.foo + 1 + + render() {} } - const c = new MyComp({ - propsData: { - foo: 1 - } - }) - expect(c.a).to.equal('hello') - expect(c.b).to.equal(2) - }) + const app = createApp(MyComp, { foo: 1 }).mount(root) as MyComp - it('data: should collect from decorated class properties', () => { - const valueDecorator = (value: any) => (_: any, __: any): any => { - return { - enumerable: true, - value - } - } + expect(app.a).toBe('hello') + expect(app.b).toBe(2) + }) - const getterDecorator = (value: any) => (_: any, __: any): any => { - return { - enumerable: true, - get () { - return value - } - } + it('data: $props should be available', () => { + interface Props { + foo: number } - @Component - class MyComp extends Vue { - @valueDecorator('field1') - field1!: string + class MyComp extends Vue { + message = 'answer is ' + this.$props.foo - @getterDecorator('field2') - field2!: string + render() {} } - const c = new MyComp() - expect(c.field1).to.equal('field1') - expect(c.field2).to.equal('field2') + const app = createApp(MyComp, { foo: 42 }).mount(root) as MyComp + expect(app.message).toBe('answer is 42') }) - it('data: should collect custom property defined on beforeCreate', () => { - @Component + xit('data: should collect custom property defined on beforeCreate', () => { class MyComp extends Vue { $store: any foo: string = 'Hello, ' + this.$store.state.msg @@ -104,29 +91,31 @@ describe('vue-class-component', () => { } } } + + render() {} } - const c = new MyComp() - expect(c.foo).to.equal('Hello, world') + const app = createApp(MyComp).mount(root) as MyComp + expect(app.foo).toBe('Hello, world') }) it('methods', () => { let msg: string = '' - @Component class MyComp extends Vue { hello () { msg = 'hi' } + + render() {} } - const c = new MyComp() - c.hello() - expect(msg).to.equal('hi') + const app = createApp(MyComp).mount(root) as MyComp + app.hello() + expect(msg).toBe('hi') }) it('computed', () => { - @Component class MyComp extends Vue { a!: number data () { @@ -137,47 +126,42 @@ describe('vue-class-component', () => { get b () { return this.a + 1 } + + render() {} } - const c = new MyComp() - expect(c.a).to.equal(1) - expect(c.b).to.equal(2) - c.a = 2 - expect(c.b).to.equal(3) + const app = createApp(MyComp).mount(root) as MyComp + expect(app.a).toBe(1) + expect(app.b).toBe(2) + app.a = 2 + expect(app.b).toBe(3) }) describe('name', () => { it('via name option', () => { - @Component({ name: 'test' }) - class MyComp extends Vue {} - - const c = new MyComp() - expect(c.$options.name).to.equal('test') - }) - - it('via _componentTag', () => { - @Component + @Options({ name: 'test' }) class MyComp extends Vue { - static _componentTag = 'test' + render() {} } - const c = new MyComp() - expect(c.$options.name).to.equal('test') + const app = createApp(MyComp).mount(root) + expect(app.$options.name).toBe('test') }) it('via class name', () => { - @Component - class MyComp extends Vue {} + class MyComp extends Vue { + render() {} + } - const c = new MyComp() - expect(c.$options.name).to.equal('MyComp') + const app = createApp(MyComp).mount(root) + expect(app.$options.name).toBe('MyComp') }) }) it('other options', (done) => { let v: number - @Component({ + @Options({ watch: { a: val => v = val } @@ -187,18 +171,19 @@ describe('vue-class-component', () => { data () { return { a: 1 } } + + render() {} } - const c = new MyComp() - c.a = 2 - Vue.nextTick(() => { - expect(v).to.equal(2) + const app = createApp(MyComp).mount(root) as MyComp + app.a = 2 + app.$nextTick(() => { + expect(v).toBe(2) done() }) }) it('extending', function () { - @Component class Base extends Vue { a!: number data (): any { @@ -206,17 +191,18 @@ describe('vue-class-component', () => { } } - @Component class A extends Base { b!: number data (): any { return { b: 2 } } + + render() {} } - const a = new A() - expect(a.a).to.equal(1) - expect(a.b).to.equal(2) + const app = createApp(A).mount(root) as A + expect(app.a).toBe(1) + expect(app.b).toBe(2) }) // #199 @@ -228,9 +214,8 @@ describe('vue-class-component', () => { options.watch[valueKey] = key }) - const spy = td.function() + const spy = jest.fn() - @Component class Base extends Vue { count = 0 @@ -240,13 +225,14 @@ describe('vue-class-component', () => { } } - @Component - class A extends Base {} + class A extends Base { + render() {} + } - const vm = new A() - vm.count++ - vm.$nextTick(() => { - td.verify(spy(), { times: 1 }) + const app = createApp(A).mount(root) as A + app.count++ + app.$nextTick(() => { + expect(spy).toHaveBeenCalledTimes(1) done() }) }) @@ -255,32 +241,36 @@ describe('vue-class-component', () => { const Prop = createDecorator((options, key) => { // component options should be passed to the callback // and update for the options affect the component - (options.props || (options.props = {}))[key] = true + if (!options.props) { + (options as any).props = {} + } + (options.props as any)[key] = { + type: null + } }) - const NoCache = createDecorator((options, key) => { + const Wrap = createDecorator((options, key) => { // options should have computed and methods etc. // that specified by class property accessors and methods - const computedOption = options.computed![key] as ComputedOptions - computedOption.cache = false + const computedOption = (options.computed as any)[key] + const originalGet = computedOption.get + computedOption.get = function() { + return '(' + originalGet() + ')' + } }) - @Component class MyComp extends Vue { @Prop foo!: string - @NoCache get bar (): string { + @Wrap get bar (): string { return 'world' } + + render() {} } - const c = new MyComp({ - propsData: { - foo: 'hello' - } - }) - expect(c.foo).to.equal('hello') - expect(c.bar).to.equal('world') - expect((MyComp as any).options.computed.bar.cache).to.be.false + const app = createApp(MyComp, { foo: 'hello' }).mount(root) as MyComp + expect(app.foo).toBe('hello') + expect(app.bar).toBe('(world)') }) // #104 @@ -297,15 +287,18 @@ describe('vue-class-component', () => { }) const createChild = () => { - @Component class Child extends Vue { @Value('child') value!: string + + render() { + return h('div') + } } return Child } - @Component({ + @Options({ components: { Child: createChild() } @@ -313,12 +306,17 @@ describe('vue-class-component', () => { class Parent extends Vue { @Value('parent') value!: string + + render() { + const child = resolveComponent('Child') as any + return h(child, { ref: 'child' }) + } } - const parent = new Parent() - const child = new (parent as any).$options.components.Child() - expect(parent.value).to.equal('parent') - expect(child.value).to.equal('child') + const parent = createApp(Parent).mount(root) as Parent + const child = parent.$refs.child as any + expect(parent.value).toBe('parent') + expect(child.value).toBe('child') }) // #155 @@ -331,16 +329,16 @@ describe('vue-class-component', () => { } }) - @Component @DataMixin - class MyComp extends Vue {} + class MyComp extends Vue { + render() {} + } - const vm: any = new MyComp() - expect(vm.test).to.equal('foo') + const app: any = createApp(MyComp).mount(root) + expect(app.test).toBe('foo') }) it('forwardStatics', function () { - @Component class MyComp extends Vue { static myValue = 52 @@ -349,60 +347,37 @@ describe('vue-class-component', () => { } } - expect(MyComp.myValue).to.equal(52) - expect(MyComp.myFunc()).to.equal(42) - }) - - it('should warn if declared static property uses a reserved name but not prevent forwarding', function () { - const originalWarn = console.warn - console.warn = td.function('warn') as any - - @Component - class MyComp extends Vue { - static options = 'test' - } - - const message = '[vue-class-component] ' + - 'Static property name \'options\' declared on class \'MyComp\' conflicts with ' + - 'reserved property name of Vue internal. It may cause unexpected behavior of the component. Consider renaming the property.' - - expect(MyComp.options).to.equal('test') - try { - td.verify(console.warn(message)) - } finally { - console.warn = originalWarn - } + expect(MyComp.myValue).toBe(52) + expect(MyComp.myFunc()).toBe(42) }) it('mixin helper', function () { - @Component class MixinA extends Vue { valueA = 'hello' } - @Component class MixinB extends Vue { valueB = 123 } - @Component class MyComp extends mixins(MixinA, MixinB) { test () { this.valueA = 'hi' this.valueB = 456 } + + render() {} } - const vm = new MyComp() - expect(vm.valueA).to.equal('hello') - expect(vm.valueB).to.equal(123) - vm.test() - expect(vm.valueA).to.equal('hi') - expect(vm.valueB).to.equal(456) + const app = createApp(MyComp).mount(root) as MyComp + expect(app.valueA).toBe('hello') + expect(app.valueB).toBe(123) + app.test() + expect(app.valueA).toBe('hi') + expect(app.valueB).toBe(456) }) it('copies reflection metadata', function () { - @Component @Reflect.metadata('worksConstructor', true) class Test extends Vue { @Reflect.metadata('worksStatic', true) @@ -421,9 +396,9 @@ describe('vue-class-component', () => { } } - expect(Reflect.getOwnMetadata('worksConstructor', Test)).to.equal(true) - expect(Reflect.getOwnMetadata('worksStatic', Test, 'staticValue')).to.equal(true) - expect(Reflect.getOwnMetadata('worksMethod', Test.prototype, 'test')).to.equal(true) - expect(Reflect.getOwnMetadata('worksAccessor', Test.prototype, 'testAccessor')).to.equal(true) + expect(Reflect.getOwnMetadata('worksConstructor', Test)).toBe(true) + expect(Reflect.getOwnMetadata('worksStatic', Test, 'staticValue')).toBe(true) + expect(Reflect.getOwnMetadata('worksMethod', Test.prototype, 'test')).toBe(true) + expect(Reflect.getOwnMetadata('worksAccessor', Test.prototype, 'testAccessor')).toBe(true) }) }) diff --git a/test/test-babel.js b/test/test-babel.js deleted file mode 100644 index 2c164b3..0000000 --- a/test/test-babel.js +++ /dev/null @@ -1,209 +0,0 @@ -import 'reflect-metadata' -import Component, { createDecorator, mixins } from '../lib' -import { expect } from 'chai' -import * as td from 'testdouble' -import Vue from 'vue' - -describe('vue-class-component with Babel', () => { - it('should be instantiated without any errors', () => { - @Component - class MyComp {} - expect(() => new MyComp()).to.not.throw(Error) - }) - - it('should collect class properties as data', () => { - @Component({ - props: ['propValue'] - }) - class MyComp extends Vue { - foo = 'hello' - bar = 1 + this.propValue - } - const c = new MyComp({ - propsData: { - propValue: 1 - } - }) - expect(c.foo).to.equal('hello') - expect(c.propValue).to.equal(1) - expect(c.bar).to.equal(2) - }) - - it('should collect decorated class properties', () => { - const valueDecorator = (value) => () => { - return { - enumerable: true, - value: value - } - } - - const getterDecorator = (value) => () => { - return { - enumerable: true, - get () { - return value - } - } - } - - @Component - class MyComp extends Vue { - @valueDecorator('field1') - field1 - - @getterDecorator('field2') - field2 - } - - const c = new MyComp() - expect(c.field1).to.equal('field1') - expect(c.field2).to.equal('field2') - }) - - it('should not collect uninitialized class properties', () => { - const Prop = createDecorator((options, key) => { - if (!options.props) { - options.props = {} - } - options.props[key] = true - }) - - @Component - class MyComp { - foo - @Prop bar - } - const c = new MyComp() - expect('foo' in c.$data).to.be.false - expect('bar' in c.$data).to.be.false - }) - - it('warn if class property is used without inheriting Vue class', () => { - const originalWarn = console.warn - console.warn = td.function('warn') - - @Component({ - foo: Number - }) - class MyComp { - bar = this.foo + 2 - } - const c = new MyComp({ - propsData: { - foo: 1 - } - }) - - const message = '[vue-class-component] ' + - 'Component class must inherit Vue or its descendant class ' + - 'when class property is used.' - - try { - td.verify(console.warn(message)) - } finally { - console.warn = originalWarn - } - }) - - // #155 - it('createDecrator: create a class decorator', () => { - const DataMixin = createDecorator(options => { - options.data = function () { - return { - test: 'foo' - } - } - }) - - @Component - @DataMixin - class MyComp extends Vue {} - - const vm = new MyComp() - expect(vm.test).to.equal('foo') - }) - - it('should not throw if property decorator declare some methods', () => { - const Test = createDecorator((options, key) => { - if (!options.methods) { - options.methods = {} - } - options.methods[key] = () => 'test' - }) - - @Component - class MyComp extends Vue { - @Test test - } - - const vm = new MyComp() - expect(vm.test()).to.equal('test') - }) - - it('should forward static members', () => { - @Component - class MyComp extends Vue { - static foo = 'foo' - - static bar () { - return 'bar' - } - } - - expect(MyComp.foo).to.equal('foo') - expect(MyComp.bar()).to.equal('bar') - }) - - it('mixin helper', function () { - @Component - class MixinA extends Vue { - valueA = 'hello' - } - - @Component - class MixinB extends Vue { - valueB = 123 - } - - @Component - class MyComp extends mixins(MixinA, MixinB) { - test () { - this.valueA = 'hi' - this.valueB = 456 - } - } - - const vm = new MyComp() - expect(vm.valueA).to.equal('hello') - expect(vm.valueB).to.equal(123) - vm.test() - expect(vm.valueA).to.equal('hi') - expect(vm.valueB).to.equal(456) - }) - - it('copies reflection metadata', function () { - @Component - @Reflect.metadata('worksConstructor', true) - class Test extends Vue { - @Reflect.metadata('worksStatic', true) - static staticValue = 'staticValue' - - _test = false - - @Reflect.metadata('worksMethod', true) - test () { - void 0 - } - - @Reflect.metadata('worksAccessor', true) - get testAccessor () { - return this._test - } - } - - expect(Reflect.getOwnMetadata('worksConstructor', Test)).to.equal(true) - expect(Reflect.getOwnMetadata('worksStatic', Test, 'staticValue')).to.equal(true) - expect(Reflect.getOwnMetadata('worksMethod', Test.prototype, 'test')).to.equal(true) - expect(Reflect.getOwnMetadata('worksAccessor', Test.prototype, 'testAccessor')).to.equal(true) - }) -}) diff --git a/test/tsconfig.json b/test/tsconfig.json index cd83a94..92af8e2 100644 --- a/test/tsconfig.json +++ b/test/tsconfig.json @@ -1,7 +1,7 @@ { "extends": "../tsconfig.json", "compilerOptions": { - "outDir": "", + "module": "CommonJS", "experimentalDecorators": true, "declaration": false }, diff --git a/test/webpack.config.js b/test/webpack.config.js deleted file mode 100644 index 8221ed1..0000000 --- a/test/webpack.config.js +++ /dev/null @@ -1,25 +0,0 @@ -module.exports = { - mode: 'development', - entry: [ - './test/test.ts', - './test/test-babel.js' - ], - output: { - path: __dirname, - filename: 'test.build.js' - }, - module: { - rules: [ - { - test: /\.ts$/, - exclude: /node_modules|vue\/src/, - loader: 'ts-loader' - }, - { - test: /\.js$/, - exclude: /node_modules|vue\/src/, - loader: 'babel-loader' - } - ] - } -} diff --git a/tsconfig.json b/tsconfig.json index 367cd47..ad8d26b 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -11,8 +11,7 @@ "declaration": true, "strict": true, "noUnusedLocals": true, - "noUnusedParameters": true, - "suppressImplicitAnyIndexErrors": true + "noUnusedParameters": true }, "include": [ "src/**/*.ts" diff --git a/yarn.lock b/yarn.lock index 7a63664..360855d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -16,6 +16,13 @@ dependencies: "@babel/highlight" "^7.0.0" +"@babel/code-frame@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.8.3.tgz#33e25903d7481181534e12ec0a25f16b6fcf419e" + integrity sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g== + dependencies: + "@babel/highlight" "^7.8.3" + "@babel/core@^7.0.0", "@babel/core@^7.7.7": version "7.7.7" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.7.7.tgz#ee155d2e12300bcc0cff6a8ad46f2af5063803e9" @@ -36,6 +43,27 @@ semver "^5.4.1" source-map "^0.5.0" +"@babel/core@^7.1.0", "@babel/core@^7.7.5": + version "7.8.6" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.8.6.tgz#27d7df9258a45c2e686b6f18b6c659e563aa4636" + integrity sha512-Sheg7yEJD51YHAvLEV/7Uvw95AeWqYPL3Vk3zGujJKIhJ+8oLw2ALaf3hbucILhKsgSoADOvtKRJuNVdcJkOrg== + dependencies: + "@babel/code-frame" "^7.8.3" + "@babel/generator" "^7.8.6" + "@babel/helpers" "^7.8.4" + "@babel/parser" "^7.8.6" + "@babel/template" "^7.8.6" + "@babel/traverse" "^7.8.6" + "@babel/types" "^7.8.6" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.1" + json5 "^2.1.0" + lodash "^4.17.13" + resolve "^1.3.2" + semver "^5.4.1" + source-map "^0.5.0" + "@babel/generator@^7.7.4", "@babel/generator@^7.7.7": version "7.7.7" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.7.7.tgz#859ac733c44c74148e1a72980a64ec84b85f4f45" @@ -46,6 +74,16 @@ lodash "^4.17.13" source-map "^0.5.0" +"@babel/generator@^7.8.6": + version "7.8.6" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.8.6.tgz#57adf96d370c9a63c241cd719f9111468578537a" + integrity sha512-4bpOR5ZBz+wWcMeVtcf7FbjcFzCp+817z2/gHNncIRcM9MmKzUhtWCYAq27RAfUrAFwb+OCG1s9WEaVxfi6cjg== + dependencies: + "@babel/types" "^7.8.6" + jsesc "^2.5.1" + lodash "^4.17.13" + source-map "^0.5.0" + "@babel/helper-annotate-as-pure@^7.7.4": version "7.7.4" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.7.4.tgz#bb3faf1e74b74bd547e867e48f551fa6b098b6ce" @@ -116,6 +154,15 @@ "@babel/template" "^7.7.4" "@babel/types" "^7.7.4" +"@babel/helper-function-name@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz#eeeb665a01b1f11068e9fb86ad56a1cb1a824cca" + integrity sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA== + dependencies: + "@babel/helper-get-function-arity" "^7.8.3" + "@babel/template" "^7.8.3" + "@babel/types" "^7.8.3" + "@babel/helper-get-function-arity@^7.7.4": version "7.7.4" resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.4.tgz#cb46348d2f8808e632f0ab048172130e636005f0" @@ -123,6 +170,13 @@ dependencies: "@babel/types" "^7.7.4" +"@babel/helper-get-function-arity@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz#b894b947bd004381ce63ea1db9f08547e920abd5" + integrity sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA== + dependencies: + "@babel/types" "^7.8.3" + "@babel/helper-hoist-variables@^7.7.4": version "7.7.4" resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.7.4.tgz#612384e3d823fdfaaf9fce31550fe5d4db0f3d12" @@ -175,6 +229,11 @@ resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz#bbb3fbee98661c569034237cc03967ba99b4f250" integrity sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA== +"@babel/helper-plugin-utils@^7.8.0": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz#9ea293be19babc0f52ff8ca88b34c3611b208670" + integrity sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ== + "@babel/helper-regex@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.0.0.tgz#2c1718923b57f9bbe64705ffe5640ac64d9bdb27" @@ -225,6 +284,13 @@ dependencies: "@babel/types" "^7.7.4" +"@babel/helper-split-export-declaration@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz#31a9f30070f91368a7182cf05f831781065fc7a9" + integrity sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA== + dependencies: + "@babel/types" "^7.8.3" + "@babel/helper-wrap-function@^7.7.4": version "7.7.4" resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.7.4.tgz#37ab7fed5150e22d9d7266e830072c0cdd8baace" @@ -244,6 +310,15 @@ "@babel/traverse" "^7.7.4" "@babel/types" "^7.7.4" +"@babel/helpers@^7.8.4": + version "7.8.4" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.8.4.tgz#754eb3ee727c165e0a240d6c207de7c455f36f73" + integrity sha512-VPbe7wcQ4chu4TDQjimHv/5tj73qz88o12EPkO2ValS2QiQS/1F2SsjyIGNnAD0vF/nZS6Cf9i+vW6HIlnaR8w== + dependencies: + "@babel/template" "^7.8.3" + "@babel/traverse" "^7.8.4" + "@babel/types" "^7.8.3" + "@babel/highlight@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0.tgz#f710c38c8d458e6dd9a201afb637fcb781ce99e4" @@ -253,11 +328,25 @@ esutils "^2.0.2" js-tokens "^4.0.0" +"@babel/highlight@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.8.3.tgz#28f173d04223eaaa59bc1d439a3836e6d1265797" + integrity sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg== + dependencies: + chalk "^2.0.0" + esutils "^2.0.2" + js-tokens "^4.0.0" + "@babel/parser@^7.0.0", "@babel/parser@^7.7.4", "@babel/parser@^7.7.7": version "7.7.7" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.7.7.tgz#1b886595419cf92d811316d5b715a53ff38b4937" integrity sha512-WtTZMZAZLbeymhkd/sEaPD8IQyGAhmuTuvTzLiCFM7iXiVdY0gc0IaI+cW0fh1BnSMbJSzXX6/fHllgHKwHhXw== +"@babel/parser@^7.1.0", "@babel/parser@^7.7.5", "@babel/parser@^7.8.6": + version "7.8.6" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.8.6.tgz#ba5c9910cddb77685a008e3c587af8d27b67962c" + integrity sha512-trGNYSfwq5s0SgM1BMEB8hX3NDmO7EP2wsDGDexiaKMB92BaRpS+qZfpkMqUBhcsOTBwNy9B/jieo4ad/t/z2g== + "@babel/plugin-proposal-async-generator-functions@^7.2.0", "@babel/plugin-proposal-async-generator-functions@^7.7.4": version "7.7.4" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.7.4.tgz#0351c5ac0a9e927845fffd5b82af476947b7ce6d" @@ -331,6 +420,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" +"@babel/plugin-syntax-bigint@^7.0.0": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea" + integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + "@babel/plugin-syntax-decorators@^7.7.4": version "7.7.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.7.4.tgz#3c91cfee2a111663ff3ac21b851140f5a52a4e0b" @@ -359,6 +455,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" +"@babel/plugin-syntax-object-rest-spread@^7.0.0": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" + integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + "@babel/plugin-syntax-object-rest-spread@^7.2.0", "@babel/plugin-syntax-object-rest-spread@^7.7.4": version "7.7.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.7.4.tgz#47cf220d19d6d0d7b154304701f468fc1cc6ff46" @@ -764,6 +867,15 @@ "@babel/parser" "^7.7.4" "@babel/types" "^7.7.4" +"@babel/template@^7.8.3", "@babel/template@^7.8.6": + version "7.8.6" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.8.6.tgz#86b22af15f828dfb086474f964dcc3e39c43ce2b" + integrity sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg== + dependencies: + "@babel/code-frame" "^7.8.3" + "@babel/parser" "^7.8.6" + "@babel/types" "^7.8.6" + "@babel/traverse@^7.0.0", "@babel/traverse@^7.7.4": version "7.7.4" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.7.4.tgz#9c1e7c60fb679fe4fcfaa42500833333c2058558" @@ -779,6 +891,21 @@ globals "^11.1.0" lodash "^4.17.13" +"@babel/traverse@^7.1.0", "@babel/traverse@^7.8.4", "@babel/traverse@^7.8.6": + version "7.8.6" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.8.6.tgz#acfe0c64e1cd991b3e32eae813a6eb564954b5ff" + integrity sha512-2B8l0db/DPi8iinITKuo7cbPznLCEk0kCxDoB9/N6gGNg/gxOXiR/IcymAFPiBwk5w6TtQ27w4wpElgp9btR9A== + dependencies: + "@babel/code-frame" "^7.8.3" + "@babel/generator" "^7.8.6" + "@babel/helper-function-name" "^7.8.3" + "@babel/helper-split-export-declaration" "^7.8.3" + "@babel/parser" "^7.8.6" + "@babel/types" "^7.8.6" + debug "^4.1.0" + globals "^11.1.0" + lodash "^4.17.13" + "@babel/types@^7.0.0": version "7.1.2" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.1.2.tgz#183e7952cf6691628afdc2e2b90d03240bac80c0" @@ -788,6 +915,15 @@ lodash "^4.17.10" to-fast-properties "^2.0.0" +"@babel/types@^7.3.0", "@babel/types@^7.8.3", "@babel/types@^7.8.6": + version "7.8.6" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.8.6.tgz#629ecc33c2557fcde7126e58053127afdb3e6d01" + integrity sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA== + dependencies: + esutils "^2.0.2" + lodash "^4.17.13" + to-fast-properties "^2.0.0" + "@babel/types@^7.7.4": version "7.7.4" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.7.4.tgz#516570d539e44ddf308c07569c258ff94fde9193" @@ -797,6 +933,193 @@ lodash "^4.17.13" 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" + integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== + +"@cnakazawa/watch@^1.0.3": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.4.tgz#f864ae85004d0fcab6f50be9141c4da368d1656a" + integrity sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ== + dependencies: + exec-sh "^0.3.2" + minimist "^1.2.0" + +"@istanbuljs/load-nyc-config@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.0.0.tgz#10602de5570baea82f8afbfa2630b24e7a8cfe5b" + integrity sha512-ZR0rq/f/E4f4XcgnDvtMWXCUJpi8eO0rssVhmztsZqLIEFA9UUP9zmpE0VxlM+kv/E1ul2I876Fwil2ayptDVg== + dependencies: + camelcase "^5.3.1" + find-up "^4.1.0" + js-yaml "^3.13.1" + resolve-from "^5.0.0" + +"@istanbuljs/schema@^0.1.2": + version "0.1.2" + resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.2.tgz#26520bf09abe4a5644cd5414e37125a8954241dd" + integrity sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw== + +"@jest/console@^25.1.0": + version "25.1.0" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-25.1.0.tgz#1fc765d44a1e11aec5029c08e798246bd37075ab" + integrity sha512-3P1DpqAMK/L07ag/Y9/Jup5iDEG9P4pRAuZiMQnU0JB3UOvCyYCjCoxr7sIA80SeyUCUKrr24fKAxVpmBgQonA== + dependencies: + "@jest/source-map" "^25.1.0" + chalk "^3.0.0" + jest-util "^25.1.0" + slash "^3.0.0" + +"@jest/core@^25.1.0": + version "25.1.0" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-25.1.0.tgz#3d4634fc3348bb2d7532915d67781cdac0869e47" + integrity sha512-iz05+NmwCmZRzMXvMo6KFipW7nzhbpEawrKrkkdJzgytavPse0biEnCNr2wRlyCsp3SmKaEY+SGv7YWYQnIdig== + dependencies: + "@jest/console" "^25.1.0" + "@jest/reporters" "^25.1.0" + "@jest/test-result" "^25.1.0" + "@jest/transform" "^25.1.0" + "@jest/types" "^25.1.0" + ansi-escapes "^4.2.1" + chalk "^3.0.0" + exit "^0.1.2" + graceful-fs "^4.2.3" + jest-changed-files "^25.1.0" + jest-config "^25.1.0" + jest-haste-map "^25.1.0" + jest-message-util "^25.1.0" + jest-regex-util "^25.1.0" + jest-resolve "^25.1.0" + jest-resolve-dependencies "^25.1.0" + jest-runner "^25.1.0" + jest-runtime "^25.1.0" + jest-snapshot "^25.1.0" + jest-util "^25.1.0" + jest-validate "^25.1.0" + jest-watcher "^25.1.0" + micromatch "^4.0.2" + p-each-series "^2.1.0" + realpath-native "^1.1.0" + rimraf "^3.0.0" + slash "^3.0.0" + strip-ansi "^6.0.0" + +"@jest/environment@^25.1.0": + version "25.1.0" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-25.1.0.tgz#4a97f64770c9d075f5d2b662b5169207f0a3f787" + integrity sha512-cTpUtsjU4cum53VqBDlcW0E4KbQF03Cn0jckGPW/5rrE9tb+porD3+hhLtHAwhthsqfyF+bizyodTlsRA++sHg== + dependencies: + "@jest/fake-timers" "^25.1.0" + "@jest/types" "^25.1.0" + jest-mock "^25.1.0" + +"@jest/fake-timers@^25.1.0": + version "25.1.0" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-25.1.0.tgz#a1e0eff51ffdbb13ee81f35b52e0c1c11a350ce8" + integrity sha512-Eu3dysBzSAO1lD7cylZd/CVKdZZ1/43SF35iYBNV1Lvvn2Undp3Grwsv8PrzvbLhqwRzDd4zxrY4gsiHc+wygQ== + dependencies: + "@jest/types" "^25.1.0" + jest-message-util "^25.1.0" + jest-mock "^25.1.0" + jest-util "^25.1.0" + lolex "^5.0.0" + +"@jest/reporters@^25.1.0": + version "25.1.0" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-25.1.0.tgz#9178ecf136c48f125674ac328f82ddea46e482b0" + integrity sha512-ORLT7hq2acJQa8N+NKfs68ZtHFnJPxsGqmofxW7v7urVhzJvpKZG9M7FAcgh9Ee1ZbCteMrirHA3m5JfBtAaDg== + dependencies: + "@bcoe/v8-coverage" "^0.2.3" + "@jest/console" "^25.1.0" + "@jest/environment" "^25.1.0" + "@jest/test-result" "^25.1.0" + "@jest/transform" "^25.1.0" + "@jest/types" "^25.1.0" + chalk "^3.0.0" + collect-v8-coverage "^1.0.0" + exit "^0.1.2" + glob "^7.1.2" + istanbul-lib-coverage "^3.0.0" + istanbul-lib-instrument "^4.0.0" + istanbul-lib-report "^3.0.0" + istanbul-lib-source-maps "^4.0.0" + istanbul-reports "^3.0.0" + jest-haste-map "^25.1.0" + jest-resolve "^25.1.0" + jest-runtime "^25.1.0" + jest-util "^25.1.0" + jest-worker "^25.1.0" + slash "^3.0.0" + source-map "^0.6.0" + string-length "^3.1.0" + terminal-link "^2.0.0" + v8-to-istanbul "^4.0.1" + optionalDependencies: + node-notifier "^6.0.0" + +"@jest/source-map@^25.1.0": + version "25.1.0" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-25.1.0.tgz#b012e6c469ccdbc379413f5c1b1ffb7ba7034fb0" + integrity sha512-ohf2iKT0xnLWcIUhL6U6QN+CwFWf9XnrM2a6ybL9NXxJjgYijjLSitkYHIdzkd8wFliH73qj/+epIpTiWjRtAA== + dependencies: + callsites "^3.0.0" + graceful-fs "^4.2.3" + source-map "^0.6.0" + +"@jest/test-result@^25.1.0": + version "25.1.0" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-25.1.0.tgz#847af2972c1df9822a8200457e64be4ff62821f7" + integrity sha512-FZzSo36h++U93vNWZ0KgvlNuZ9pnDnztvaM7P/UcTx87aPDotG18bXifkf1Ji44B7k/eIatmMzkBapnAzjkJkg== + dependencies: + "@jest/console" "^25.1.0" + "@jest/transform" "^25.1.0" + "@jest/types" "^25.1.0" + "@types/istanbul-lib-coverage" "^2.0.0" + collect-v8-coverage "^1.0.0" + +"@jest/test-sequencer@^25.1.0": + version "25.1.0" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-25.1.0.tgz#4df47208542f0065f356fcdb80026e3c042851ab" + integrity sha512-WgZLRgVr2b4l/7ED1J1RJQBOharxS11EFhmwDqknpknE0Pm87HLZVS2Asuuw+HQdfQvm2aXL2FvvBLxOD1D0iw== + dependencies: + "@jest/test-result" "^25.1.0" + jest-haste-map "^25.1.0" + jest-runner "^25.1.0" + jest-runtime "^25.1.0" + +"@jest/transform@^25.1.0": + version "25.1.0" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-25.1.0.tgz#221f354f512b4628d88ce776d5b9e601028ea9da" + integrity sha512-4ktrQ2TPREVeM+KxB4zskAT84SnmG1vaz4S+51aTefyqn3zocZUnliLLm5Fsl85I3p/kFPN4CRp1RElIfXGegQ== + dependencies: + "@babel/core" "^7.1.0" + "@jest/types" "^25.1.0" + babel-plugin-istanbul "^6.0.0" + chalk "^3.0.0" + convert-source-map "^1.4.0" + fast-json-stable-stringify "^2.0.0" + graceful-fs "^4.2.3" + jest-haste-map "^25.1.0" + jest-regex-util "^25.1.0" + jest-util "^25.1.0" + micromatch "^4.0.2" + pirates "^4.0.1" + realpath-native "^1.1.0" + slash "^3.0.0" + source-map "^0.6.1" + write-file-atomic "^3.0.0" + +"@jest/types@^25.1.0": + version "25.1.0" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-25.1.0.tgz#b26831916f0d7c381e11dbb5e103a72aed1b4395" + integrity sha512-VpOtt7tCrgvamWZh1reVsGADujKigBUFTi19mlRjqEGsE8qH4r3s+skY33dNdXOwyZIvuftZ5tqdF1IgsMejMA== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^1.1.1" + "@types/yargs" "^15.0.0" + chalk "^3.0.0" + "@mrmlnc/readdir-enhanced@^2.2.1": version "2.2.1" resolved "https://registry.yarnpkg.com/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde" @@ -810,11 +1133,56 @@ resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b" integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw== +"@sinonjs/commons@^1.7.0": + version "1.7.1" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.7.1.tgz#da5fd19a5f71177a53778073978873964f49acf1" + integrity sha512-Debi3Baff1Qu1Unc3mjJ96MgpbwTn43S1+9yJ0llWygPwDNu2aaWBD6yc9y/Z8XDRNhx7U+u2UDg2OGQXkclUQ== + dependencies: + type-detect "4.0.8" + +"@types/babel__core@^7.1.0": + version "7.1.6" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.6.tgz#16ff42a5ae203c9af1c6e190ed1f30f83207b610" + integrity sha512-tTnhWszAqvXnhW7m5jQU9PomXSiKXk2sFxpahXvI20SZKu9ylPi8WtIxueZ6ehDWikPT0jeFujMj3X4ZHuf3Tg== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + "@types/babel__generator" "*" + "@types/babel__template" "*" + "@types/babel__traverse" "*" + +"@types/babel__generator@*": + version "7.6.1" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.1.tgz#4901767b397e8711aeb99df8d396d7ba7b7f0e04" + integrity sha512-bBKm+2VPJcMRVwNhxKu8W+5/zT7pwNEqeokFOmbvVSqGzFneNxYcEBro9Ac7/N9tlsaPYnZLK8J1LWKkMsLAew== + dependencies: + "@babel/types" "^7.0.0" + +"@types/babel__template@*": + version "7.0.2" + resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.0.2.tgz#4ff63d6b52eddac1de7b975a5223ed32ecea9307" + integrity sha512-/K6zCpeW7Imzgab2bLkLEbz0+1JlFSrUMdw7KoIIu+IUdu51GWaBZpd3y1VXGVXzynvGa4DaIaxNZHiON3GXUg== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + +"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": + version "7.0.9" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.0.9.tgz#be82fab304b141c3eee81a4ce3b034d0eba1590a" + integrity sha512-jEFQ8L1tuvPjOI8lnpaf73oCJe+aoxL6ygqSy6c8LcW98zaC+4mzWuQIRCEvKeCOu+lbqdXcg4Uqmm1S8AP1tw== + dependencies: + "@babel/types" "^7.3.0" + "@types/chai@^4.2.7": version "4.2.7" resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.2.7.tgz#1c8c25cbf6e59ffa7d6b9652c78e547d9a41692d" integrity sha512-luq8meHGYwvky0O7u0eQZdA7B4Wd9owUCqvbw2m3XCrCU8mplYOujMBbvyS547AxJkC+pGnd0Cm15eNxEUNU8g== +"@types/color-name@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" + integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== + "@types/eslint-visitor-keys@^1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#1ee30d79544ca84d68d4b3cdb0af4f205663dd2d" @@ -839,6 +1207,34 @@ "@types/minimatch" "*" "@types/node" "*" +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz#42995b446db9a48a11a07ec083499a860e9138ff" + integrity sha512-hRJD2ahnnpLgsj6KWMYSrmXkM3rm2Dl1qkx6IOFD5FnuNPXJIG5L0dhgKXCYTRMGzU4n0wImQ/xfmRc4POUFlg== + +"@types/istanbul-lib-report@*": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686" + integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== + dependencies: + "@types/istanbul-lib-coverage" "*" + +"@types/istanbul-reports@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-1.1.1.tgz#7a8cbf6a406f36c8add871625b278eaf0b0d255a" + integrity sha512-UpYjBi8xefVChsCoBpKShdxTllC9pwISirfoZsUa2AAdQg/Jd2KQGtSbw+ya7GPo7x/wAPlH6JBhKhAsXUEZNA== + dependencies: + "@types/istanbul-lib-coverage" "*" + "@types/istanbul-lib-report" "*" + +"@types/jest@^25.1.3": + version "25.1.3" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-25.1.3.tgz#9b0b5addebccfb631175870be8ba62182f1bc35a" + integrity sha512-jqargqzyJWgWAJCXX96LBGR/Ei7wQcZBvRv0PLEu9ZByMfcs23keUJrKv9FMR6YZf9YCbfqDqgmY+JUBsnqhrg== + dependencies: + jest-diff "^25.1.0" + pretty-format "^25.1.0" + "@types/json-schema@^7.0.3": version "7.0.4" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.4.tgz#38fd73ddfd9b55abb1e1b2ed578cb55bd7b7d339" @@ -864,6 +1260,23 @@ resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.2.tgz#690a1475b84f2a884fd07cd797c00f5f31356ea8" integrity sha512-ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw== +"@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/yargs-parser@*": + version "15.0.0" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-15.0.0.tgz#cb3f9f741869e20cce330ffbeb9271590483882d" + integrity sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw== + +"@types/yargs@^15.0.0": + version "15.0.4" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.4.tgz#7e5d0f8ca25e9d5849f2ea443cf7c402decd8299" + integrity sha512-9T1auFmbPZoxHz0enUFlUuKRy3it01R+hlggyVUMtnCTQRunsQYifnSGb8hET4Xo8yiC0o0r1paW3ud5+rbURg== + dependencies: + "@types/yargs-parser" "*" + "@typescript-eslint/experimental-utils@2.15.0": version "2.15.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-2.15.0.tgz#41e35313bfaef91650ddb5380846d1c78a780070" @@ -979,6 +1392,25 @@ "@vue/babel-plugin-transform-vue-jsx" "^1.1.2" camelcase "^5.0.0" +"@vue/compiler-core@3.0.0-alpha.9": + version "3.0.0-alpha.9" + resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.0.0-alpha.9.tgz#d54cee813bb444afbf347da7f49056e523197b70" + integrity sha512-Hx4yr83DwIS4B6WfEXWJYcD5EjGoBLQKx7EfoKTvp7++ssO574J/BgasJSUbw/DOm3sHumXZtWRDTn/SKSTs7Q== + dependencies: + "@babel/parser" "^7.8.6" + "@babel/types" "^7.8.6" + "@vue/shared" "3.0.0-alpha.9" + estree-walker "^0.8.1" + source-map "^0.6.1" + +"@vue/compiler-dom@3.0.0-alpha.9": + version "3.0.0-alpha.9" + resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.0.0-alpha.9.tgz#cb93b9f25eaabaf084bcbae5518cd91565b09ba3" + integrity sha512-LgYtgKTcjjRWX41EMpjAdcvNTM1mSvV6Z9iXcGQs348PzcbihboFvaVqOkK14f9R1d5WsnCaYvUNuIGSNV0Xig== + dependencies: + "@vue/compiler-core" "3.0.0-alpha.9" + "@vue/shared" "3.0.0-alpha.9" + "@vue/component-compiler-utils@^3.1.0": version "3.1.1" resolved "https://registry.yarnpkg.com/@vue/component-compiler-utils/-/component-compiler-utils-3.1.1.tgz#d4ef8f80292674044ad6211e336a302e4d2a6575" @@ -994,6 +1426,35 @@ source-map "~0.6.1" vue-template-es2015-compiler "^1.9.0" +"@vue/reactivity@3.0.0-alpha.9": + version "3.0.0-alpha.9" + resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.0.0-alpha.9.tgz#e8c8b5ecaad3a60978a503e4fdfd277644c49738" + integrity sha512-Z9jlQ2yjNQIcVBg1SSViUQH8UgVhXHFblw4c6Xrf7vgejjxAqJwk6DKNbAJlneeA3Z84Ul+1Q8JY4zClLagW/A== + dependencies: + "@vue/shared" "3.0.0-alpha.9" + +"@vue/runtime-core@3.0.0-alpha.9": + version "3.0.0-alpha.9" + resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.0.0-alpha.9.tgz#295884f0cbec22be3fbcfce0ff1a2493e33abb67" + integrity sha512-mqTQ2kpKtUKwvMT23VDm6HEIt+8SxvOaL47aLs5uROs7Jamgp0K2oNkGH/MltWpaDkXVSsbSBBgijgYDsKlbZw== + dependencies: + "@vue/reactivity" "3.0.0-alpha.9" + "@vue/shared" "3.0.0-alpha.9" + +"@vue/runtime-dom@3.0.0-alpha.9": + version "3.0.0-alpha.9" + resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.0.0-alpha.9.tgz#dfbfcbd4e3bf69a74736c1c3d79780a31434ad6f" + integrity sha512-zWDW7Lg38PDoW+grQsSPzBauMMeY6A9yw/qaAzzgeN71EXJRInmv1fog/dVuWbD7/ZNc8E4jzDUJL16ryGbSmg== + dependencies: + "@vue/runtime-core" "3.0.0-alpha.9" + "@vue/shared" "3.0.0-alpha.9" + csstype "^2.6.8" + +"@vue/shared@3.0.0-alpha.9": + version "3.0.0-alpha.9" + resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.0.0-alpha.9.tgz#681053df422dea1c8c2f54e860ef7c4b949b9852" + integrity sha512-34jsIMNwXJ6V6qlGx5ATw4YHTRxoKCyKN8MulRrUxo4BDhzEl1T1nsh6A9dsmJ8MGki/4MtYyxStTnPBQCLNfA== + "@vuepress/core@^1.2.0": version "1.2.0" resolved "https://registry.yarnpkg.com/@vuepress/core/-/core-1.2.0.tgz#8e0c636b7f8676202fdd1ecfbe31bfe245dab2a8" @@ -1278,6 +1739,11 @@ resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== +abab@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.3.tgz#623e2075e02eb2d3f2475e49f99c91846467907a" + integrity sha512-tsFzPpcttalNjFBCFMqsKYQcWxxen1pgJR56by//QwvJc4/OUS3kPOOttx2tSIfjsylB0pYu7f5D3K1RCxUnUg== + abbrev@1: version "1.1.1" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" @@ -1291,12 +1757,25 @@ accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7: mime-types "~2.1.24" negotiator "0.6.2" +acorn-globals@^4.3.2: + version "4.3.4" + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.4.tgz#9fa1926addc11c97308c4e66d7add0d40c3272e7" + integrity sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A== + dependencies: + acorn "^6.0.1" + acorn-walk "^6.0.1" + acorn-jsx@^5.0.0, acorn-jsx@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.1.0.tgz#294adb71b57398b0680015f0a38c563ee1db5384" integrity sha512-tMUqwBWfLFbJbizRmEcWSLw6HnFzfdJs2sOJEOwwtVPMoH/0Ay+E703oZz78VSXZiiDcZrQ5XKjPIUQixhmgVw== -acorn@^6.0.2, acorn@^6.2.1: +acorn-walk@^6.0.1: + version "6.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.2.0.tgz#123cb8f3b84c2171f1f7fb252615b1c78a6b1a8c" + integrity sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA== + +acorn@^6.0.1, acorn@^6.0.2, acorn@^6.2.1: version "6.4.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.0.tgz#b659d2ffbafa24baf5db1cdbb2c94a983ecd2784" integrity sha512-gac8OEcQ2Li1dxIEWGZzsp2BitJxwkwcOm0zHAJLcPJaVvm58FRnk6RkuLRpU1EujipU2ZFODv2P9DLMfnV8mw== @@ -1372,11 +1851,6 @@ alphanum-sort@^1.0.0: resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM= -ansi-colors@3.2.3: - version "3.2.3" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.3.tgz#57d35b8686e851e2cc04c403f1c00203976a1813" - integrity sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw== - ansi-colors@^3.0.0: version "3.2.4" resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" @@ -1426,6 +1900,14 @@ ansi-styles@^3.2.0, ansi-styles@^3.2.1: dependencies: color-convert "^1.9.0" +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" + integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA== + dependencies: + "@types/color-name" "^1.1.1" + color-convert "^2.0.1" + anymatch@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" @@ -1434,7 +1916,7 @@ anymatch@^2.0.0: micromatch "^3.1.4" normalize-path "^2.1.1" -anymatch@~3.1.1: +anymatch@^3.0.3: version "3.1.1" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142" integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg== @@ -1477,6 +1959,11 @@ arr-union@^3.1.0: resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= +array-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93" + integrity sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM= + array-flatten@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" @@ -1532,11 +2019,6 @@ assert@^1.1.1: dependencies: util "0.10.3" -assertion-error@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" - integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== - assign-symbols@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" @@ -1626,6 +2108,19 @@ babel-helper-vue-jsx-merge-props@^2.0.3: resolved "https://registry.yarnpkg.com/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-2.0.3.tgz#22aebd3b33902328e513293a8e4992b384f9f1b6" integrity sha512-gsLiKK7Qrb7zYJNgiXKpXblxbV5ffSwR0f5whkPAaBAR4fhi6bwRZxX9wBlIc5M/v8CCkXUbXZL4N/nSE97cqg== +babel-jest@^25.1.0: + version "25.1.0" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-25.1.0.tgz#206093ac380a4b78c4404a05b3277391278f80fb" + integrity sha512-tz0VxUhhOE2y+g8R2oFrO/2VtVjA1lkJeavlhExuRBg3LdNJY9gwQ+Vcvqt9+cqy71MCTJhewvTB7Qtnnr9SWg== + dependencies: + "@jest/transform" "^25.1.0" + "@jest/types" "^25.1.0" + "@types/babel__core" "^7.1.0" + babel-plugin-istanbul "^6.0.0" + babel-preset-jest "^25.1.0" + chalk "^3.0.0" + slash "^3.0.0" + babel-loader@^8.0.4, babel-loader@^8.0.6: version "8.0.6" resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.0.6.tgz#e33bdb6f362b03f4bb141a0c21ab87c501b70dfb" @@ -1643,6 +2138,24 @@ babel-plugin-dynamic-import-node@^2.2.0, babel-plugin-dynamic-import-node@^2.3.0 dependencies: object.assign "^4.1.0" +babel-plugin-istanbul@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz#e159ccdc9af95e0b570c75b4573b7c34d671d765" + integrity sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@istanbuljs/load-nyc-config" "^1.0.0" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-instrument "^4.0.0" + test-exclude "^6.0.0" + +babel-plugin-jest-hoist@^25.1.0: + version "25.1.0" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-25.1.0.tgz#fb62d7b3b53eb36c97d1bc7fec2072f9bd115981" + integrity sha512-oIsopO41vW4YFZ9yNYoLQATnnN46lp+MZ6H4VvPKFkcc2/fkl3CfE/NZZSmnEIEsJRmJAgkVEK0R7Zbl50CpTw== + dependencies: + "@types/babel__traverse" "^7.0.6" + babel-plugin-module-resolver@3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/babel-plugin-module-resolver/-/babel-plugin-module-resolver-3.2.0.tgz#ddfa5e301e3b9aa12d852a9979f18b37881ff5a7" @@ -1661,6 +2174,15 @@ babel-plugin-transform-vue-jsx@^4.0.1: dependencies: esutils "^2.0.2" +babel-preset-jest@^25.1.0: + version "25.1.0" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-25.1.0.tgz#d0aebfebb2177a21cde710996fce8486d34f1d33" + integrity sha512-eCGn64olaqwUMaugXsTtGAM2I0QTahjEtnRu0ql8Ie+gDWAc1N6wqN0k2NilnyTunM69Pad7gJY7LOtwLimoFQ== + dependencies: + "@babel/plugin-syntax-bigint" "^7.0.0" + "@babel/plugin-syntax-object-rest-spread" "^7.0.0" + babel-plugin-jest-hoist "^25.1.0" + balanced-match@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" @@ -1711,11 +2233,6 @@ binary-extensions@^1.0.0: resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.12.0.tgz#c2d780f53d45bba8317a8902d4ceeaf3a6385b14" integrity sha512-DYWGk01lDcxeS/K9IHPGWfT8PsJmbXRtRd2Sx72Tnb8pcYZQFF1oSDb8hJtS1vhp212q1Rzi5dUf9+nq0o9UIg== -binary-extensions@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.0.0.tgz#23c0df14f6a88077f5f986c0d167ec03c3d5537c" - integrity sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow== - bindings@^1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" @@ -1795,7 +2312,7 @@ braces@^2.3.0, braces@^2.3.1, braces@^2.3.2: split-string "^3.0.2" to-regex "^3.0.1" -braces@^3.0.1, braces@~3.0.2: +braces@^3.0.1: version "3.0.2" resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== @@ -1807,10 +2324,17 @@ brorand@^1.0.1: resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= -browser-stdout@1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" - integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== +browser-process-hrtime@^0.1.2: + version "0.1.3" + resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz#616f00faef1df7ec1b5bf9cfe2bdc3170f26c7b4" + integrity sha512-bRFnI4NnjO6cnyLmOV/7PVoDEMJChlcfN0z4s1YMBY989/SvlfMI1lgCnkFUs53e9gQF+w7qu7XdllSTiSl8Aw== + +browser-resolve@^1.11.3: + version "1.11.3" + resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.3.tgz#9b7cbb3d0f510e4cb86bdbd796124d28b5890af6" + integrity sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ== + dependencies: + resolve "1.1.7" browserify-aes@^1.0.0, browserify-aes@^1.0.4: version "1.2.0" @@ -1880,7 +2404,21 @@ browserslist@^4.0.0, browserslist@^4.3.4, browserslist@^4.6.0, browserslist@^4.8 electron-to-chromium "^1.3.322" node-releases "^1.1.44" -buffer-from@^1.0.0: +bs-logger@0.x: + version "0.2.6" + resolved "https://registry.yarnpkg.com/bs-logger/-/bs-logger-0.2.6.tgz#eb7d365307a72cf974cc6cda76b68354ad336bd8" + integrity sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog== + dependencies: + fast-json-stable-stringify "2.x" + +bser@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" + integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== + dependencies: + node-int64 "^0.4.0" + +buffer-from@1.x, buffer-from@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== @@ -2034,24 +2572,19 @@ caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001012, caniuse-lite@^1.0.30001017: resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001020.tgz#3f04c1737500ffda78be9beb0b5c1e2070e15926" integrity sha512-yWIvwA68wRHKanAVS1GjN8vajAv7MBFshullKCeq/eKpK7pJBVDgFFEqvgWTkcP2+wIDeQGYFRXECjKZnLkUjA== +capture-exit@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-2.0.0.tgz#fb953bfaebeb781f62898239dabb426d08a509a4" + integrity sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g== + dependencies: + rsvp "^4.8.4" + caseless@~0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= -chai@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/chai/-/chai-4.2.0.tgz#760aa72cf20e3795e84b12877ce0e83737aa29e5" - integrity sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw== - dependencies: - assertion-error "^1.1.0" - check-error "^1.0.2" - deep-eql "^3.0.1" - get-func-name "^2.0.0" - pathval "^1.1.0" - type-detect "^4.0.5" - -chalk@2.4.2, chalk@^2.0.1, chalk@^2.3.2, chalk@^2.4.1, chalk@^2.4.2: +chalk@2.4.2, chalk@^2.3.2, chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -2080,31 +2613,19 @@ chalk@^2.0.0, chalk@^2.1.0, chalk@^2.3.0: escape-string-regexp "^1.0.5" supports-color "^5.3.0" +chalk@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" + integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + chardet@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== -check-error@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" - integrity sha1-V00xLt2Iu13YkS6Sht1sCu1KrII= - -chokidar@3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.3.0.tgz#12c0714668c55800f659e262d4962a97faf554a6" - integrity sha512-dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A== - dependencies: - anymatch "~3.1.1" - braces "~3.0.2" - glob-parent "~5.1.0" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.2.0" - optionalDependencies: - fsevents "~2.1.1" - chokidar@^2.0.2: version "2.0.4" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.0.4.tgz#356ff4e2b0e8e43e322d18a372460bbcf3accd26" @@ -2166,6 +2687,11 @@ ci-info@^1.6.0: resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497" integrity sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A== +ci-info@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" + integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== + cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" @@ -2230,6 +2756,20 @@ cliui@^5.0.0: strip-ansi "^5.2.0" wrap-ansi "^5.1.0" +cliui@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" + integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^6.2.0" + +co@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= + coa@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3" @@ -2244,6 +2784,11 @@ code-point-at@^1.0.0: resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= +collect-v8-coverage@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.0.tgz#150ee634ac3650b71d9c985eb7f608942334feb1" + integrity sha512-VKIhJgvk8E1W28m5avZ2Gv2Ruv5YiF56ug2oclvaG9md69BuZImMG2sk9g7QNKLUbtYAKQjXjYxbYZVUlMMKmQ== + collection-visit@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" @@ -2259,12 +2804,19 @@ color-convert@^1.9.0, color-convert@^1.9.1: dependencies: color-name "1.1.3" +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + color-name@1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= -color-name@^1.0.0: +color-name@^1.0.0, color-name@~1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== @@ -2403,7 +2955,7 @@ 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== -convert-source-map@^1.7.0: +convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== @@ -2525,6 +3077,15 @@ cross-spawn@6.0.5, cross-spawn@^6.0.0, cross-spawn@^6.0.5: shebang-command "^1.2.0" which "^1.2.9" +cross-spawn@^7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.1.tgz#0ab56286e0f7c24e153d04cc2aa027e43a9a5d14" + integrity sha512-u7v4o84SwFpD32Z8IIcPZ6z1/ie24O6RU3RbtL5Y316l3KuHVPx9ItBgWQ6VlfAFnRnTtMUrsQ9MUUTuEZjogg== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + crypto-browserify@^3.11.0: version "3.12.0" resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" @@ -2740,6 +3301,28 @@ csso@^4.0.2: dependencies: css-tree "1.0.0-alpha.37" +cssom@^0.4.1: + version "0.4.4" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10" + integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw== + +cssom@~0.3.6: + version "0.3.8" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" + integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== + +cssstyle@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.2.0.tgz#e4c44debccd6b7911ed617a4395e5754bba59992" + integrity sha512-sEb3XFPx3jNnCAMtqrXPDeSgQr+jojtCeNf8cvMNMh1cG970+lljssvQDzPq6lmmJu2Vhqood/gtEomBiHOGnA== + dependencies: + cssom "~0.3.6" + +csstype@^2.6.8: + version "2.6.8" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.8.tgz#0fb6fc2417ffd2816a418c9336da74d7f07db431" + integrity sha512-msVS9qTuMT5zwAGCVm4mxfrZ18BNc6Csd0oJAtiFMZ1FAx1CCvy2+5MDmYoix63LM/6NDbNtodCiGYGmFgO0dA== + cyclist@~0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-0.2.2.tgz#1b33792e11e914a2fd6d6ed6447464444e5fa640" @@ -2752,6 +3335,15 @@ dashdash@^1.12.0: dependencies: assert-plus "^1.0.0" +data-urls@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-1.1.0.tgz#15ee0582baa5e22bb59c77140da8f9c76963bbfe" + integrity sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ== + dependencies: + abab "^2.0.0" + whatwg-mimetype "^2.2.0" + whatwg-url "^7.0.0" + date-now@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" @@ -2769,7 +3361,7 @@ debug@2.6.9, debug@^2.1.2, debug@^2.2.0, debug@^2.3.3, debug@^2.6.9: dependencies: ms "2.0.0" -debug@3.2.6, debug@^3.0.0, debug@^3.1.1, debug@^3.2.5: +debug@^3.0.0, debug@^3.1.1, debug@^3.2.5: version "3.2.6" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== @@ -2807,13 +3399,6 @@ decode-uri-component@^0.2.0: resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= -deep-eql@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df" - integrity sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw== - dependencies: - type-detect "^4.0.0" - deep-equal@^1.0.1: version "1.1.1" resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" @@ -2934,6 +3519,11 @@ detect-libc@^1.0.2: resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= +detect-newline@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" + integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== + detect-node@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c" @@ -2944,10 +3534,10 @@ diacritics@^1.3.0: resolved "https://registry.yarnpkg.com/diacritics/-/diacritics-1.3.0.tgz#3efa87323ebb863e6696cebb0082d48ff3d6f7a1" integrity sha1-PvqHMj67hj5mls67AILUj/PW96E= -diff@3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" - integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA== +diff-sequences@^25.1.0: + version "25.1.0" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-25.1.0.tgz#fd29a46f1c913fd66c22645dc75bffbe43051f32" + integrity sha512-nFIfVk5B/NStCsJ+zaPO4vYuLjlzQ6uFvPxzYyHlejNZ/UGa7G/n7peOXVrVNvRuyfstt+mZQYGpjxg9Z6N8Kw== diffie-hellman@^5.0.0: version "5.0.3" @@ -3040,6 +3630,13 @@ domelementtype@^2.0.1: resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.0.1.tgz#1f8bdfe91f5a78063274e803b4bdcedf6e94f94d" integrity sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ== +domexception@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/domexception/-/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90" + integrity sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug== + dependencies: + webidl-conversions "^4.0.2" + domhandler@^2.3.0: version "2.4.2" resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803" @@ -3201,6 +3798,23 @@ es-abstract@^1.17.0-next.1: string.prototype.trimleft "^2.1.1" string.prototype.trimright "^2.1.1" +es-abstract@^1.17.2: + version "1.17.4" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.4.tgz#e3aedf19706b20e7c2594c35fc0d57605a79e184" + integrity sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ== + dependencies: + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" + is-callable "^1.1.5" + is-regex "^1.0.5" + object-inspect "^1.7.0" + object-keys "^1.1.1" + object.assign "^4.1.0" + string.prototype.trimleft "^2.1.1" + string.prototype.trimright "^2.1.1" + es-abstract@^1.5.1: version "1.12.0" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.12.0.tgz#9dbbdd27c6856f0001421ca18782d786bf8a6165" @@ -3240,11 +3854,23 @@ escape-html@^1.0.3, escape-html@~1.0.3: resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= -escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: +escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= +escodegen@^1.11.1: + version "1.14.1" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.1.tgz#ba01d0c8278b5e95a9a45350142026659027a457" + integrity sha512-Bmt7NcRySdIfNPfU2ZoXDrrXsG9ZjvDxcAlMfDUgRBjLOWTuIACXPBFJH7Z+cLb40JeQco5toikyc9t9P8E9SQ== + dependencies: + esprima "^4.0.1" + estraverse "^4.2.0" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.6.1" + eslint-plugin-vue-libs@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/eslint-plugin-vue-libs/-/eslint-plugin-vue-libs-4.0.0.tgz#b1ab44528aa59ce6c2e9fe2fc37cb92e85c2011c" @@ -3357,7 +3983,7 @@ espree@^6.1.2: acorn-jsx "^5.1.0" eslint-visitor-keys "^1.1.0" -esprima@^4.0.0: +esprima@^4.0.0, esprima@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== @@ -3381,11 +4007,21 @@ estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1: resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" integrity sha1-De4/7TH81GlhjOc0IJn8GvoL2xM= +estraverse@^4.2.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + estree-walker@^0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.6.1.tgz#53049143f40c6eb918b23671d1fe3219f3a1b362" integrity sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w== +estree-walker@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.8.1.tgz#6230ce2ec9a5cb03888afcaf295f97d90aa52b79" + integrity sha512-H6cJORkqvrNziu0KX2hqOMAlA2CiuAxHeGJXSIoKA/KLv229Dw806J3II6mKTm5xiDX1At1EXCfsOQPB+tMB+g== + esutils@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" @@ -3426,6 +4062,11 @@ evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: md5.js "^1.3.4" safe-buffer "^5.1.1" +exec-sh@^0.3.2: + version "0.3.4" + resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.4.tgz#3a018ceb526cc6f6df2bb504b2bfe8e3a4934ec5" + integrity sha512-sEFIkc61v75sWeOe72qyrqg2Qg0OuLESziUDk/O/z2qgS15y2gWVFrI6f2Qn/qw/0/NCfCEsmNA4zOjkwEZT1A== + execa@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" @@ -3439,6 +4080,27 @@ execa@^1.0.0: signal-exit "^3.0.0" strip-eof "^1.0.0" +execa@^3.2.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-3.4.0.tgz#c08ed4550ef65d858fac269ffc8572446f37eb89" + integrity sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g== + dependencies: + cross-spawn "^7.0.0" + get-stream "^5.0.0" + human-signals "^1.1.1" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.0" + onetime "^5.1.0" + p-finally "^2.0.0" + signal-exit "^3.0.2" + 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" + integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= + expand-brackets@^2.1.4: version "2.1.4" resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" @@ -3459,6 +4121,18 @@ expand-tilde@^2.0.0, expand-tilde@^2.0.2: dependencies: homedir-polyfill "^1.0.1" +expect@^25.1.0: + version "25.1.0" + resolved "https://registry.yarnpkg.com/expect/-/expect-25.1.0.tgz#7e8d7b06a53f7d66ec927278db3304254ee683ee" + integrity sha512-wqHzuoapQkhc3OKPlrpetsfueuEiMf3iWh0R8+duCu9PIjXoP7HgD5aeypwTnXUAjC8aMsiVDaWwlbJ1RlQ38g== + dependencies: + "@jest/types" "^25.1.0" + ansi-styles "^4.0.0" + jest-get-type "^25.1.0" + jest-matcher-utils "^25.1.0" + jest-message-util "^25.1.0" + jest-regex-util "^25.1.0" + express@^4.17.1: version "4.17.1" resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" @@ -3565,6 +4239,11 @@ fast-glob@^2.2.6: merge2 "^1.2.3" micromatch "^3.1.10" +fast-json-stable-stringify@2.x: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + fast-json-stable-stringify@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" @@ -3589,6 +4268,13 @@ faye-websocket@~0.11.1: dependencies: websocket-driver ">=0.5.1" +fb-watchman@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.1.tgz#fc84fb39d2709cf3ff6d743706157bb5708a8a85" + integrity sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg== + dependencies: + bser "2.1.1" + figgy-pudding@^3.5.1: version "3.5.1" resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.1.tgz#862470112901c727a0e495a80744bd5baa1d6790" @@ -3668,19 +4354,27 @@ find-cache-dir@^2.0.0, find-cache-dir@^2.1.0: make-dir "^2.0.0" pkg-dir "^3.0.0" -find-up@3.0.0, find-up@^3.0.0: +find-up@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" + integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= + dependencies: + locate-path "^2.0.0" + +find-up@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== dependencies: locate-path "^3.0.0" -find-up@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" - integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= +find-up@^4.0.0, find-up@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== dependencies: - locate-path "^2.0.0" + locate-path "^5.0.0" + path-exists "^4.0.0" findup-sync@3.0.0: version "3.0.0" @@ -3701,13 +4395,6 @@ flat-cache@^2.0.1: rimraf "2.6.3" write "1.0.3" -flat@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/flat/-/flat-4.1.0.tgz#090bec8b05e39cba309747f1d588f04dbaf98db2" - integrity sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw== - dependencies: - is-buffer "~2.0.3" - flatted@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.1.tgz#69e57caa8f0eacbc281d2e2cb458d46fdb449e08" @@ -3824,7 +4511,7 @@ fsevents@^1.2.7: bindings "^1.5.0" nan "^2.12.1" -fsevents@~2.1.1: +fsevents@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.2.tgz#4c0a1fb34bc68e543b4b82a9ec392bfbda840805" integrity sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA== @@ -3853,6 +4540,11 @@ gauge@~2.7.3: strip-ansi "^3.0.1" wide-align "^1.1.0" +gensync@^1.0.0-beta.1: + version "1.0.0-beta.1" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.1.tgz#58f4361ff987e5ff6e1e7a210827aa371eaac269" + integrity sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg== + get-caller-file@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" @@ -3863,11 +4555,6 @@ get-caller-file@^2.0.1: resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -get-func-name@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" - integrity sha1-6td0q+5y4gQJQzoGY2YCPdaIekE= - get-stream@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" @@ -3875,6 +4562,13 @@ get-stream@^4.0.0: dependencies: pump "^3.0.0" +get-stream@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.1.0.tgz#01203cdc92597f9b909067c3e656cc1f4d3c4dc9" + integrity sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw== + dependencies: + pump "^3.0.0" + 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" @@ -3895,7 +4589,7 @@ glob-parent@^3.1.0: is-glob "^3.1.0" path-dirname "^1.0.0" -glob-parent@^5.0.0, glob-parent@~5.1.0: +glob-parent@^5.0.0: version "5.1.0" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.0.tgz#5f4c1d1e748d30cd73ad2944b3577a81b081e8c2" integrity sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw== @@ -3907,10 +4601,10 @@ glob-to-regexp@^0.3.0: resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" integrity sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs= -glob@7.1.3, glob@^7.0.5: - version "7.1.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1" - integrity sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ== +glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: + version "7.1.6" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" + integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" @@ -3919,10 +4613,10 @@ glob@7.1.3, glob@^7.0.5: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.0.3, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: - version "7.1.6" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" - integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== +glob@^7.0.5: + version "7.1.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1" + integrity sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" @@ -4036,7 +4730,7 @@ graceful-fs@^4.1.11, graceful-fs@^4.1.2: resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" integrity sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg= -graceful-fs@^4.1.15, graceful-fs@^4.1.6: +graceful-fs@^4.1.15, graceful-fs@^4.1.6, graceful-fs@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423" integrity sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ== @@ -4051,10 +4745,10 @@ gray-matter@^4.0.1: section-matter "^1.0.0" strip-bom-string "^1.0.0" -growl@1.10.5: - version "1.10.5" - resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" - integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA== +growly@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" + integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE= handle-thing@^2.0.0: version "2.0.0" @@ -4066,7 +4760,7 @@ har-schema@^2.0.0: resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= -har-validator@~5.1.0: +har-validator@~5.1.0, har-validator@~5.1.3: version "5.1.3" resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080" integrity sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g== @@ -4086,6 +4780,11 @@ has-flag@^3.0.0: resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + has-symbols@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" @@ -4160,7 +4859,7 @@ hash.js@^1.0.0, hash.js@^1.0.3: inherits "^2.0.3" minimalistic-assert "^1.0.1" -he@1.2.0, he@1.2.x, he@^1.1.0: +he@1.2.x, he@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== @@ -4219,11 +4918,23 @@ html-comment-regex@^1.1.0: resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7" integrity sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ== +html-encoding-sniffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz#e70d84b94da53aa375e11fe3a351be6642ca46f8" + integrity sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw== + dependencies: + whatwg-encoding "^1.0.1" + html-entities@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.2.1.tgz#0df29351f0721163515dfb9e5543e5f6eed5162f" integrity sha1-DfKTUfByEWNRXfueVUPl9u7VFi8= +html-escaper@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.0.tgz#71e87f931de3fe09e56661ab9a29aadec707b491" + integrity sha512-a4u9BeERWGu/S8JiWEAQcdrg9v4QArtP9keViQjGMdff20fBdd8waotXaNmODqBe6uZ3Nafi7K/ho4gCQHV3Ig== + html-minifier@^3.2.3: version "3.5.21" resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-3.5.21.tgz#d0040e054730e354db008463593194015212d20c" @@ -4329,6 +5040,11 @@ https-browserify@^1.0.0: resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= +human-signals@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" + integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== + iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@^0.4.4: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" @@ -4418,6 +5134,14 @@ import-local@2.0.0, import-local@^2.0.0: pkg-dir "^3.0.0" resolve-cwd "^2.0.0" +import-local@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.0.2.tgz#a8cfd0431d1de4a2199703d003e3e62364fa6db6" + integrity sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA== + dependencies: + pkg-dir "^4.2.0" + resolve-cwd "^3.0.0" + imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" @@ -4571,23 +5295,11 @@ is-binary-path@^1.0.0: dependencies: binary-extensions "^1.0.0" -is-binary-path@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" - integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - dependencies: - binary-extensions "^2.0.0" - is-buffer@^1.1.5: version "1.1.6" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== -is-buffer@~2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.4.tgz#3e572f23c8411a5cfd9557c849e3665e0b290623" - integrity sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A== - is-callable@^1.1.3, is-callable@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" @@ -4598,6 +5310,13 @@ is-callable@^1.1.5: resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.5.tgz#f7e46b596890456db74e7f6e976cb3273d06faab" integrity sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q== +is-ci@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" + integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== + dependencies: + ci-info "^2.0.0" + is-color-stop@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345" @@ -4686,6 +5405,11 @@ is-fullwidth-code-point@^3.0.0: resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== +is-generator-fn@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" + integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== + is-glob@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" @@ -4700,7 +5424,7 @@ is-glob@^4.0.0: dependencies: is-extglob "^2.1.1" -is-glob@^4.0.1, is-glob@~4.0.1: +is-glob@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== @@ -4774,11 +5498,6 @@ is-regex@^1.0.5: dependencies: has "^1.0.3" -is-regexp@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" - integrity sha1-/S2INUXEa6xaYz57mgnof6LLUGk= - is-resolvable@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" @@ -4789,6 +5508,11 @@ is-stream@^1.1.0: resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= +is-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" + integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== + is-svg@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-3.0.0.tgz#9321dbd29c212e5ca99c4fa9794c714bcafa2f75" @@ -4803,7 +5527,7 @@ is-symbol@^1.0.2: dependencies: has-symbols "^1.0.0" -is-typedarray@~1.0.0: +is-typedarray@^1.0.0, is-typedarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= @@ -4818,6 +5542,11 @@ is-wsl@^1.1.0: resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= +is-wsl@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.1.1.tgz#4a1c152d429df3d441669498e2486d3596ebaf1d" + integrity sha512-umZHcSrwlDHo2TGMXv0DZ8dIUGunZ2Iv68YZnrmCiBPkZ4aaOhtv7pXJKeki9k3qJ3RJr0cDyitcl5wEH3AYog== + isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" @@ -4850,11 +5579,403 @@ isstream@~0.1.2: resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= +istanbul-lib-coverage@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz#f5944a37c70b550b02a78a5c3b2055b280cec8ec" + integrity sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg== + +istanbul-lib-instrument@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.1.tgz#61f13ac2c96cfefb076fe7131156cc05907874e6" + integrity sha512-imIchxnodll7pvQBYOqUu88EufLCU56LMeFPZZM/fJZ1irYcYdqroaV+ACK1Ila8ls09iEYArp+nqyC6lW1Vfg== + dependencies: + "@babel/core" "^7.7.5" + "@babel/parser" "^7.7.5" + "@babel/template" "^7.7.4" + "@babel/traverse" "^7.7.4" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-coverage "^3.0.0" + semver "^6.3.0" + +istanbul-lib-report@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" + integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== + dependencies: + istanbul-lib-coverage "^3.0.0" + make-dir "^3.0.0" + supports-color "^7.1.0" + +istanbul-lib-source-maps@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz#75743ce6d96bb86dc7ee4352cf6366a23f0b1ad9" + integrity sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg== + dependencies: + debug "^4.1.1" + istanbul-lib-coverage "^3.0.0" + source-map "^0.6.1" + +istanbul-reports@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.0.0.tgz#d4d16d035db99581b6194e119bbf36c963c5eb70" + integrity sha512-2osTcC8zcOSUkImzN2EWQta3Vdi4WjjKw99P2yWx5mLnigAM0Rd5uYFn1cf2i/Ois45GkNjaoTqc5CxgMSX80A== + dependencies: + html-escaper "^2.0.0" + istanbul-lib-report "^3.0.0" + javascript-stringify@^1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/javascript-stringify/-/javascript-stringify-1.6.0.tgz#142d111f3a6e3dae8f4a9afd77d45855b5a9cce3" integrity sha1-FC0RHzpuPa6PSpr9d9RYVbWpzOM= +jest-changed-files@^25.1.0: + version "25.1.0" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-25.1.0.tgz#73dae9a7d9949fdfa5c278438ce8f2ff3ec78131" + integrity sha512-bdL1aHjIVy3HaBO3eEQeemGttsq1BDlHgWcOjEOIAcga7OOEGWHD2WSu8HhL7I1F0mFFyci8VKU4tRNk+qtwDA== + dependencies: + "@jest/types" "^25.1.0" + execa "^3.2.0" + throat "^5.0.0" + +jest-cli@^25.1.0: + version "25.1.0" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-25.1.0.tgz#75f0b09cf6c4f39360906bf78d580be1048e4372" + integrity sha512-p+aOfczzzKdo3AsLJlhs8J5EW6ffVidfSZZxXedJ0mHPBOln1DccqFmGCoO8JWd4xRycfmwy1eoQkMsF8oekPg== + dependencies: + "@jest/core" "^25.1.0" + "@jest/test-result" "^25.1.0" + "@jest/types" "^25.1.0" + chalk "^3.0.0" + exit "^0.1.2" + import-local "^3.0.2" + is-ci "^2.0.0" + jest-config "^25.1.0" + jest-util "^25.1.0" + jest-validate "^25.1.0" + prompts "^2.0.1" + realpath-native "^1.1.0" + yargs "^15.0.0" + +jest-config@^25.1.0: + version "25.1.0" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-25.1.0.tgz#d114e4778c045d3ef239452213b7ad3ec1cbea90" + integrity sha512-tLmsg4SZ5H7tuhBC5bOja0HEblM0coS3Wy5LTCb2C8ZV6eWLewHyK+3qSq9Bi29zmWQ7ojdCd3pxpx4l4d2uGw== + dependencies: + "@babel/core" "^7.1.0" + "@jest/test-sequencer" "^25.1.0" + "@jest/types" "^25.1.0" + babel-jest "^25.1.0" + chalk "^3.0.0" + glob "^7.1.1" + jest-environment-jsdom "^25.1.0" + jest-environment-node "^25.1.0" + jest-get-type "^25.1.0" + jest-jasmine2 "^25.1.0" + jest-regex-util "^25.1.0" + jest-resolve "^25.1.0" + jest-util "^25.1.0" + jest-validate "^25.1.0" + micromatch "^4.0.2" + pretty-format "^25.1.0" + realpath-native "^1.1.0" + +jest-diff@^25.1.0: + version "25.1.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-25.1.0.tgz#58b827e63edea1bc80c1de952b80cec9ac50e1ad" + integrity sha512-nepXgajT+h017APJTreSieh4zCqnSHEJ1iT8HDlewu630lSJ4Kjjr9KNzm+kzGwwcpsDE6Snx1GJGzzsefaEHw== + dependencies: + chalk "^3.0.0" + diff-sequences "^25.1.0" + jest-get-type "^25.1.0" + pretty-format "^25.1.0" + +jest-docblock@^25.1.0: + version "25.1.0" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-25.1.0.tgz#0f44bea3d6ca6dfc38373d465b347c8818eccb64" + integrity sha512-370P/mh1wzoef6hUKiaMcsPtIapY25suP6JqM70V9RJvdKLrV4GaGbfUseUVk4FZJw4oTZ1qSCJNdrClKt5JQA== + dependencies: + detect-newline "^3.0.0" + +jest-each@^25.1.0: + version "25.1.0" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-25.1.0.tgz#a6b260992bdf451c2d64a0ccbb3ac25e9b44c26a" + integrity sha512-R9EL8xWzoPySJ5wa0DXFTj7NrzKpRD40Jy+zQDp3Qr/2QmevJgkN9GqioCGtAJ2bW9P/MQRznQHQQhoeAyra7A== + dependencies: + "@jest/types" "^25.1.0" + chalk "^3.0.0" + jest-get-type "^25.1.0" + jest-util "^25.1.0" + pretty-format "^25.1.0" + +jest-environment-jsdom@^25.1.0: + version "25.1.0" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-25.1.0.tgz#6777ab8b3e90fd076801efd3bff8e98694ab43c3" + integrity sha512-ILb4wdrwPAOHX6W82GGDUiaXSSOE274ciuov0lztOIymTChKFtC02ddyicRRCdZlB5YSrv3vzr1Z5xjpEe1OHQ== + dependencies: + "@jest/environment" "^25.1.0" + "@jest/fake-timers" "^25.1.0" + "@jest/types" "^25.1.0" + jest-mock "^25.1.0" + jest-util "^25.1.0" + jsdom "^15.1.1" + +jest-environment-node@^25.1.0: + version "25.1.0" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-25.1.0.tgz#797bd89b378cf0bd794dc8e3dca6ef21126776db" + integrity sha512-U9kFWTtAPvhgYY5upnH9rq8qZkj6mYLup5l1caAjjx9uNnkLHN2xgZy5mo4SyLdmrh/EtB9UPpKFShvfQHD0Iw== + dependencies: + "@jest/environment" "^25.1.0" + "@jest/fake-timers" "^25.1.0" + "@jest/types" "^25.1.0" + jest-mock "^25.1.0" + jest-util "^25.1.0" + +jest-get-type@^25.1.0: + version "25.1.0" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-25.1.0.tgz#1cfe5fc34f148dc3a8a3b7275f6b9ce9e2e8a876" + integrity sha512-yWkBnT+5tMr8ANB6V+OjmrIJufHtCAqI5ic2H40v+tRqxDmE0PGnIiTyvRWFOMtmVHYpwRqyazDbTnhpjsGvLw== + +jest-haste-map@^25.1.0: + version "25.1.0" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-25.1.0.tgz#ae12163d284f19906260aa51fd405b5b2e5a4ad3" + integrity sha512-/2oYINIdnQZAqyWSn1GTku571aAfs8NxzSErGek65Iu5o8JYb+113bZysRMcC/pjE5v9w0Yz+ldbj9NxrFyPyw== + dependencies: + "@jest/types" "^25.1.0" + anymatch "^3.0.3" + fb-watchman "^2.0.0" + graceful-fs "^4.2.3" + jest-serializer "^25.1.0" + jest-util "^25.1.0" + jest-worker "^25.1.0" + micromatch "^4.0.2" + sane "^4.0.3" + walker "^1.0.7" + optionalDependencies: + fsevents "^2.1.2" + +jest-jasmine2@^25.1.0: + version "25.1.0" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-25.1.0.tgz#681b59158a430f08d5d0c1cce4f01353e4b48137" + integrity sha512-GdncRq7jJ7sNIQ+dnXvpKO2MyP6j3naNK41DTTjEAhLEdpImaDA9zSAZwDhijjSF/D7cf4O5fdyUApGBZleaEg== + dependencies: + "@babel/traverse" "^7.1.0" + "@jest/environment" "^25.1.0" + "@jest/source-map" "^25.1.0" + "@jest/test-result" "^25.1.0" + "@jest/types" "^25.1.0" + chalk "^3.0.0" + co "^4.6.0" + expect "^25.1.0" + is-generator-fn "^2.0.0" + jest-each "^25.1.0" + jest-matcher-utils "^25.1.0" + jest-message-util "^25.1.0" + jest-runtime "^25.1.0" + jest-snapshot "^25.1.0" + jest-util "^25.1.0" + pretty-format "^25.1.0" + throat "^5.0.0" + +jest-leak-detector@^25.1.0: + version "25.1.0" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-25.1.0.tgz#ed6872d15aa1c72c0732d01bd073dacc7c38b5c6" + integrity sha512-3xRI264dnhGaMHRvkFyEKpDeaRzcEBhyNrOG5oT8xPxOyUAblIAQnpiR3QXu4wDor47MDTiHbiFcbypdLcLW5w== + dependencies: + jest-get-type "^25.1.0" + pretty-format "^25.1.0" + +jest-matcher-utils@^25.1.0: + version "25.1.0" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-25.1.0.tgz#fa5996c45c7193a3c24e73066fc14acdee020220" + integrity sha512-KGOAFcSFbclXIFE7bS4C53iYobKI20ZWleAdAFun4W1Wz1Kkej8Ng6RRbhL8leaEvIOjGXhGf/a1JjO8bkxIWQ== + dependencies: + chalk "^3.0.0" + jest-diff "^25.1.0" + jest-get-type "^25.1.0" + pretty-format "^25.1.0" + +jest-message-util@^25.1.0: + version "25.1.0" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-25.1.0.tgz#702a9a5cb05c144b9aa73f06e17faa219389845e" + integrity sha512-Nr/Iwar2COfN22aCqX0kCVbXgn8IBm9nWf4xwGr5Olv/KZh0CZ32RKgZWMVDXGdOahicM10/fgjdimGNX/ttCQ== + dependencies: + "@babel/code-frame" "^7.0.0" + "@jest/test-result" "^25.1.0" + "@jest/types" "^25.1.0" + "@types/stack-utils" "^1.0.1" + chalk "^3.0.0" + micromatch "^4.0.2" + slash "^3.0.0" + stack-utils "^1.0.1" + +jest-mock@^25.1.0: + version "25.1.0" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-25.1.0.tgz#411d549e1b326b7350b2e97303a64715c28615fd" + integrity sha512-28/u0sqS+42vIfcd1mlcg4ZVDmSUYuNvImP4X2lX5hRMLW+CN0BeiKVD4p+ujKKbSPKd3rg/zuhCF+QBLJ4vag== + dependencies: + "@jest/types" "^25.1.0" + +jest-pnp-resolver@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.1.tgz#ecdae604c077a7fbc70defb6d517c3c1c898923a" + integrity sha512-pgFw2tm54fzgYvc/OHrnysABEObZCUNFnhjoRjaVOCN8NYc032/gVjPaHD4Aq6ApkSieWtfKAFQtmDKAmhupnQ== + +jest-regex-util@^25.1.0: + version "25.1.0" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-25.1.0.tgz#efaf75914267741838e01de24da07b2192d16d87" + integrity sha512-9lShaDmDpqwg+xAd73zHydKrBbbrIi08Kk9YryBEBybQFg/lBWR/2BDjjiSE7KIppM9C5+c03XiDaZ+m4Pgs1w== + +jest-resolve-dependencies@^25.1.0: + version "25.1.0" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-25.1.0.tgz#8a1789ec64eb6aaa77fd579a1066a783437e70d2" + integrity sha512-Cu/Je38GSsccNy4I2vL12ZnBlD170x2Oh1devzuM9TLH5rrnLW1x51lN8kpZLYTvzx9j+77Y5pqBaTqfdzVzrw== + dependencies: + "@jest/types" "^25.1.0" + jest-regex-util "^25.1.0" + jest-snapshot "^25.1.0" + +jest-resolve@^25.1.0: + version "25.1.0" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-25.1.0.tgz#23d8b6a4892362baf2662877c66aa241fa2eaea3" + integrity sha512-XkBQaU1SRCHj2Evz2Lu4Czs+uIgJXWypfO57L7JYccmAXv4slXA6hzNblmcRmf7P3cQ1mE7fL3ABV6jAwk4foQ== + dependencies: + "@jest/types" "^25.1.0" + browser-resolve "^1.11.3" + chalk "^3.0.0" + jest-pnp-resolver "^1.2.1" + realpath-native "^1.1.0" + +jest-runner@^25.1.0: + version "25.1.0" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-25.1.0.tgz#fef433a4d42c89ab0a6b6b268e4a4fbe6b26e812" + integrity sha512-su3O5fy0ehwgt+e8Wy7A8CaxxAOCMzL4gUBftSs0Ip32S0epxyZPDov9Znvkl1nhVOJNf4UwAsnqfc3plfQH9w== + dependencies: + "@jest/console" "^25.1.0" + "@jest/environment" "^25.1.0" + "@jest/test-result" "^25.1.0" + "@jest/types" "^25.1.0" + chalk "^3.0.0" + exit "^0.1.2" + graceful-fs "^4.2.3" + jest-config "^25.1.0" + jest-docblock "^25.1.0" + jest-haste-map "^25.1.0" + jest-jasmine2 "^25.1.0" + jest-leak-detector "^25.1.0" + jest-message-util "^25.1.0" + jest-resolve "^25.1.0" + jest-runtime "^25.1.0" + jest-util "^25.1.0" + jest-worker "^25.1.0" + source-map-support "^0.5.6" + throat "^5.0.0" + +jest-runtime@^25.1.0: + version "25.1.0" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-25.1.0.tgz#02683218f2f95aad0f2ec1c9cdb28c1dc0ec0314" + integrity sha512-mpPYYEdbExKBIBB16ryF6FLZTc1Rbk9Nx0ryIpIMiDDkOeGa0jQOKVI/QeGvVGlunKKm62ywcioeFVzIbK03bA== + dependencies: + "@jest/console" "^25.1.0" + "@jest/environment" "^25.1.0" + "@jest/source-map" "^25.1.0" + "@jest/test-result" "^25.1.0" + "@jest/transform" "^25.1.0" + "@jest/types" "^25.1.0" + "@types/yargs" "^15.0.0" + chalk "^3.0.0" + collect-v8-coverage "^1.0.0" + exit "^0.1.2" + glob "^7.1.3" + graceful-fs "^4.2.3" + jest-config "^25.1.0" + jest-haste-map "^25.1.0" + jest-message-util "^25.1.0" + jest-mock "^25.1.0" + jest-regex-util "^25.1.0" + jest-resolve "^25.1.0" + jest-snapshot "^25.1.0" + jest-util "^25.1.0" + jest-validate "^25.1.0" + realpath-native "^1.1.0" + slash "^3.0.0" + strip-bom "^4.0.0" + yargs "^15.0.0" + +jest-serializer@^25.1.0: + version "25.1.0" + resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-25.1.0.tgz#73096ba90e07d19dec4a0c1dd89c355e2f129e5d" + integrity sha512-20Wkq5j7o84kssBwvyuJ7Xhn7hdPeTXndnwIblKDR2/sy1SUm6rWWiG9kSCgJPIfkDScJCIsTtOKdlzfIHOfKA== + +jest-snapshot@^25.1.0: + version "25.1.0" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-25.1.0.tgz#d5880bd4b31faea100454608e15f8d77b9d221d9" + integrity sha512-xZ73dFYN8b/+X2hKLXz4VpBZGIAn7muD/DAg+pXtDzDGw3iIV10jM7WiHqhCcpDZfGiKEj7/2HXAEPtHTj0P2A== + dependencies: + "@babel/types" "^7.0.0" + "@jest/types" "^25.1.0" + chalk "^3.0.0" + expect "^25.1.0" + jest-diff "^25.1.0" + jest-get-type "^25.1.0" + jest-matcher-utils "^25.1.0" + jest-message-util "^25.1.0" + jest-resolve "^25.1.0" + mkdirp "^0.5.1" + natural-compare "^1.4.0" + pretty-format "^25.1.0" + semver "^7.1.1" + +jest-util@^25.1.0: + version "25.1.0" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-25.1.0.tgz#7bc56f7b2abd534910e9fa252692f50624c897d9" + integrity sha512-7did6pLQ++87Qsj26Fs/TIwZMUFBXQ+4XXSodRNy3luch2DnRXsSnmpVtxxQ0Yd6WTipGpbhh2IFP1mq6/fQGw== + dependencies: + "@jest/types" "^25.1.0" + chalk "^3.0.0" + is-ci "^2.0.0" + mkdirp "^0.5.1" + +jest-validate@^25.1.0: + version "25.1.0" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-25.1.0.tgz#1469fa19f627bb0a9a98e289f3e9ab6a668c732a" + integrity sha512-kGbZq1f02/zVO2+t1KQGSVoCTERc5XeObLwITqC6BTRH3Adv7NZdYqCpKIZLUgpLXf2yISzQ465qOZpul8abXA== + dependencies: + "@jest/types" "^25.1.0" + camelcase "^5.3.1" + chalk "^3.0.0" + jest-get-type "^25.1.0" + leven "^3.1.0" + pretty-format "^25.1.0" + +jest-watcher@^25.1.0: + version "25.1.0" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-25.1.0.tgz#97cb4a937f676f64c9fad2d07b824c56808e9806" + integrity sha512-Q9eZ7pyaIr6xfU24OeTg4z1fUqBF/4MP6J801lyQfg7CsnZ/TCzAPvCfckKdL5dlBBEKBeHV0AdyjFZ5eWj4ig== + dependencies: + "@jest/test-result" "^25.1.0" + "@jest/types" "^25.1.0" + ansi-escapes "^4.2.1" + chalk "^3.0.0" + jest-util "^25.1.0" + string-length "^3.1.0" + +jest-worker@^25.1.0: + version "25.1.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-25.1.0.tgz#75d038bad6fdf58eba0d2ec1835856c497e3907a" + integrity sha512-ZHhHtlxOWSxCoNOKHGbiLzXnl42ga9CxDr27H36Qn+15pQZd3R/F24jrmjDelw9j/iHUIWMWs08/u2QN50HHOg== + dependencies: + merge-stream "^2.0.0" + supports-color "^7.0.0" + +jest@^25.1.0: + version "25.1.0" + resolved "https://registry.yarnpkg.com/jest/-/jest-25.1.0.tgz#b85ef1ddba2fdb00d295deebbd13567106d35be9" + integrity sha512-FV6jEruneBhokkt9MQk0WUFoNTwnF76CLXtwNMfsc0um0TlB/LG2yxUd0KqaFjEJ9laQmVWQWS0sG/t2GsuI0w== + dependencies: + "@jest/core" "^25.1.0" + import-local "^3.0.2" + jest-cli "^25.1.0" + js-levenshtein@^1.1.3: version "1.1.4" resolved "https://registry.yarnpkg.com/js-levenshtein/-/js-levenshtein-1.1.4.tgz#3a56e3cbf589ca0081eb22cd9ba0b1290a16d26e" @@ -4865,7 +5986,7 @@ js-levenshtein@^1.1.3: resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-yaml@3.13.1, js-yaml@^3.11.0, js-yaml@^3.13.1: +js-yaml@^3.11.0, js-yaml@^3.13.1: version "3.13.1" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== @@ -4878,6 +5999,38 @@ jsbn@~0.1.0: resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= +jsdom@^15.1.1: + version "15.2.1" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-15.2.1.tgz#d2feb1aef7183f86be521b8c6833ff5296d07ec5" + integrity sha512-fAl1W0/7T2G5vURSyxBzrJ1LSdQn6Tr5UX/xD4PXDx/PDgwygedfW6El/KIj3xJ7FU61TTYnc/l/B7P49Eqt6g== + dependencies: + abab "^2.0.0" + acorn "^7.1.0" + acorn-globals "^4.3.2" + array-equal "^1.0.0" + cssom "^0.4.1" + cssstyle "^2.0.0" + data-urls "^1.1.0" + domexception "^1.0.1" + escodegen "^1.11.1" + html-encoding-sniffer "^1.0.2" + nwsapi "^2.2.0" + parse5 "5.1.0" + pn "^1.1.0" + request "^2.88.0" + request-promise-native "^1.0.7" + saxes "^3.1.9" + symbol-tree "^3.2.2" + tough-cookie "^3.0.1" + w3c-hr-time "^1.0.1" + w3c-xmlserializer "^1.1.2" + webidl-conversions "^4.0.2" + whatwg-encoding "^1.0.5" + whatwg-mimetype "^2.3.0" + whatwg-url "^7.0.0" + ws "^7.0.0" + xml-name-validator "^3.0.0" + jsesc@^2.5.1: version "2.5.1" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.1.tgz#e421a2a8e20d6b0819df28908f782526b96dd1fe" @@ -4918,6 +6071,13 @@ json3@^3.3.2: resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81" integrity sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA== +json5@2.x, json5@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.1.tgz#81b6cb04e9ba496f1c7005d07b4368a2638f90b6" + integrity sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ== + dependencies: + minimist "^1.2.0" + json5@^0.5.0, json5@^0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" @@ -4930,13 +6090,6 @@ json5@^1.0.1: dependencies: minimist "^1.2.0" -json5@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.1.tgz#81b6cb04e9ba496f1c7005d07b4368a2638f90b6" - integrity sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ== - dependencies: - minimist "^1.2.0" - jsonfile@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" @@ -4983,6 +6136,11 @@ kind-of@^6.0.0, kind-of@^6.0.2: resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" integrity sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA== +kleur@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" + integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== + last-call-webpack-plugin@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz#9742df0e10e3cf46e5c0381c2de90d3a7a2d7555" @@ -4998,6 +6156,11 @@ lcid@^2.0.0: dependencies: invert-kv "^2.0.0" +leven@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" + integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== + levn@^0.3.0, levn@~0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" @@ -5067,6 +6230,13 @@ locate-path@^3.0.0: p-locate "^3.0.0" path-exists "^3.0.0" +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + lodash._reinterpolate@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" @@ -5087,11 +6257,16 @@ lodash.kebabcase@^4.1.1: resolved "https://registry.yarnpkg.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz#8489b1cb0d29ff88195cceca448ff6d6cc295c36" integrity sha1-hImxyw0p/4gZXM7KRI/21swpXDY= -lodash.memoize@^4.1.2: +lodash.memoize@4.x, lodash.memoize@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= +lodash.sortby@^4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" + integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= + lodash.template@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.5.0.tgz#f976195cf3f347d0d5f52483569fe8031ccce8ab" @@ -5122,18 +6297,18 @@ lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17 resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== -log-symbols@2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a" - integrity sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg== - dependencies: - chalk "^2.0.1" - loglevel@^1.6.6: version "1.6.6" resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.6.tgz#0ee6300cc058db6b3551fa1c4bf73b83bb771312" integrity sha512-Sgr5lbboAUBo3eXCSPL4/KoVz3ROKquOjcctxmHIt+vol2DrqTQe3SwkKKuYhEiWB5kYa13YyopJ69deJ1irzQ== +lolex@^5.0.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/lolex/-/lolex-5.1.2.tgz#953694d098ce7c07bc5ed6d0e42bc6c0c6d5a367" + integrity sha512-h4hmjAvHTmd+25JSwrtTIuwbKdwg5NzZVRMLn9saij4SZaepCrTCxPr35H/3bjwfMJtN+t3CX8672UIkglz28A== + dependencies: + "@sinonjs/commons" "^1.7.0" + loose-envify@^1.0.0: version "1.4.0" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" @@ -5176,6 +6351,25 @@ make-dir@^2.0.0: pify "^4.0.1" semver "^5.6.0" +make-dir@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.0.2.tgz#04a1acbf22221e1d6ef43559f43e05a90dbb4392" + integrity sha512-rYKABKutXa6vXTXhoV18cBE7PaewPXHe/Bdq4v+ZLMhxbWApkFFplT0LcbMW+6BbjnQXzZ/sAvSE/JdguApG5w== + dependencies: + semver "^6.0.0" + +make-error@1.x: + version "1.3.6" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== + +makeerror@1.0.x: + version "1.0.11" + resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c" + integrity sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw= + dependencies: + tmpl "1.0.x" + mamacro@^0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/mamacro/-/mamacro-0.0.3.tgz#ad2c9576197c9f1abf308d0787865bd975a3f3e4" @@ -5291,6 +6485,11 @@ merge-source-map@^1.1.0: dependencies: source-map "^0.6.1" +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + merge2@^1.2.3: version "1.3.0" resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.3.0.tgz#5b366ee83b2f1582c48f87e47cf1a9352103ca81" @@ -5320,7 +6519,7 @@ micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4: snapdragon "^0.8.1" to-regex "^3.0.2" -micromatch@^4.0.0: +micromatch@^4.0.0, micromatch@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259" integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q== @@ -5395,7 +6594,7 @@ minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= -minimatch@3.0.4, minimatch@^3.0.4: +minimatch@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== @@ -5407,7 +6606,7 @@ minimist@0.0.8: resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= -minimist@^1.2.0: +minimist@^1.1.1, minimist@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= @@ -5456,43 +6655,13 @@ mkdirp@0.3.0: resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.3.0.tgz#1bbf5ab1ba827af23575143490426455f481fe1e" integrity sha1-G79asbqCevI1dRQ0kEJkVfSB/h4= -mkdirp@0.5.1, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.1, mkdirp@~0.5.x: +mkdirp@0.x, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.1, mkdirp@~0.5.x: version "0.5.1" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= dependencies: minimist "0.0.8" -mocha@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-7.0.0.tgz#c60d14bf3de9601f549b3ff5be657eb8381c54bf" - integrity sha512-CirsOPbO3jU86YKjjMzFLcXIb5YiGLUrjrXFHoJ3e2z9vWiaZVCZQ2+gtRGMPWF+nFhN6AWwLM/juzAQ6KRkbA== - dependencies: - ansi-colors "3.2.3" - browser-stdout "1.3.1" - chokidar "3.3.0" - debug "3.2.6" - diff "3.5.0" - escape-string-regexp "1.0.5" - find-up "3.0.0" - glob "7.1.3" - growl "1.10.5" - he "1.2.0" - js-yaml "3.13.1" - log-symbols "2.2.0" - minimatch "3.0.4" - mkdirp "0.5.1" - ms "2.1.1" - node-environment-flags "1.0.6" - object.assign "4.1.0" - strip-json-comments "2.0.1" - supports-color "6.0.0" - which "1.3.1" - wide-align "1.1.3" - yargs "13.3.0" - yargs-parser "13.1.1" - yargs-unparser "1.6.0" - move-concurrently@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" @@ -5601,19 +6770,16 @@ no-case@^2.2.0: dependencies: lower-case "^1.1.1" -node-environment-flags@1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/node-environment-flags/-/node-environment-flags-1.0.6.tgz#a30ac13621f6f7d674260a54dede048c3982c088" - integrity sha512-5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw== - dependencies: - object.getownpropertydescriptors "^2.0.3" - semver "^5.7.0" - node-forge@0.9.0: version "0.9.0" resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.9.0.tgz#d624050edbb44874adca12bb9a52ec63cb782579" integrity sha512-7ASaDa3pD+lJ3WvXFsxekJQelBKRpne+GOVbLbtHYdd7pFspyeuJHnWfLplGf3SwKGbfs/aYl5V/JCIaHVUKKQ== +node-int64@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" + integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= + node-libs-browser@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425" @@ -5643,6 +6809,22 @@ node-libs-browser@^2.2.1: util "^0.11.0" vm-browserify "^1.0.1" +node-modules-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40" + integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA= + +node-notifier@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-6.0.0.tgz#cea319e06baa16deec8ce5cd7f133c4a46b68e12" + integrity sha512-SVfQ/wMw+DesunOm5cKqr6yDcvUTDl/yc97ybGHMrteNEY6oekXpNpS3lZwgLlwz0FLgHoiW28ZpmBHUDg37cw== + dependencies: + growly "^1.3.0" + is-wsl "^2.1.1" + semver "^6.3.0" + shellwords "^0.1.1" + which "^1.3.1" + node-pre-gyp@^0.10.0: version "0.10.3" resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.10.3.tgz#3070040716afdc778747b61b6887bf78880b80fc" @@ -5688,7 +6870,7 @@ normalize-path@^2.1.1: dependencies: remove-trailing-separator "^1.0.1" -normalize-path@^3.0.0, normalize-path@~3.0.0: +normalize-path@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== @@ -5732,6 +6914,13 @@ npm-run-path@^2.0.0: dependencies: path-key "^2.0.0" +npm-run-path@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== + dependencies: + path-key "^3.0.0" + npmlog@^4.0.2: version "4.1.2" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" @@ -5764,6 +6953,11 @@ number-is-nan@^1.0.0: 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" + integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ== + oauth-sign@~0.9.0: version "0.9.0" resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" @@ -5810,7 +7004,7 @@ object-visit@^1.0.0: dependencies: isobject "^3.0.0" -object.assign@4.1.0, object.assign@^4.1.0: +object.assign@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== @@ -5828,6 +7022,14 @@ object.getownpropertydescriptors@^2.0.3: define-properties "^1.1.2" es-abstract "^1.5.1" +object.getownpropertydescriptors@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz#369bf1f9592d8ab89d712dced5cb81c7c5352649" + integrity sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + object.pick@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" @@ -5896,7 +7098,7 @@ optimize-css-assets-webpack-plugin@^5.0.1: cssnano "^4.1.10" last-call-webpack-plugin "^3.0.0" -optionator@^0.8.3: +optionator@^0.8.1, optionator@^0.8.3: version "0.8.3" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== @@ -5952,11 +7154,21 @@ p-defer@^1.0.0: resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww= +p-each-series@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-2.1.0.tgz#961c8dd3f195ea96c747e636b262b800a6b1af48" + integrity sha512-ZuRs1miPT4HrjFa+9fRfOFXxGJfORgelKV9f9nNOWw2gl6gVsRaVDOQP0+MI0G0wGKns1Yacsu0GjOFbTK0JFQ== + p-finally@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= +p-finally@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-2.0.1.tgz#bd6fcaa9c559a096b680806f4d657b3f0f240561" + integrity sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw== + p-is-promise@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-1.1.0.tgz#9c9456989e9f6588017b0434d56097675c3da05e" @@ -5976,7 +7188,7 @@ p-limit@^2.0.0: dependencies: p-try "^2.0.0" -p-limit@^2.2.1: +p-limit@^2.2.0, p-limit@^2.2.1: version "2.2.2" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.2.tgz#61279b67721f5287aa1c13a9a7fbbc48c9291b1e" integrity sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ== @@ -5997,6 +7209,13 @@ p-locate@^3.0.0: dependencies: p-limit "^2.0.0" +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + p-map@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" @@ -6071,6 +7290,11 @@ parse-passwd@^1.0.0: resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= +parse5@5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.0.tgz#c59341c9723f414c452975564c7c00a68d58acd2" + integrity sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ== + parseurl@~1.3.2, parseurl@~1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" @@ -6096,6 +7320,11 @@ path-exists@^3.0.0: resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" @@ -6111,6 +7340,11 @@ path-key@^2.0.0, path-key@^2.0.1: resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= +path-key@^3.0.0, path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + path-parse@^1.0.5, path-parse@^1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" @@ -6128,11 +7362,6 @@ path-type@^3.0.0: dependencies: pify "^3.0.0" -pathval@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.0.tgz#b942e6d4bde653005ef6b71361def8727d0645e0" - integrity sha1-uULm1L3mUwBe9rcTYd74cn0GReA= - pbkdf2@^3.0.3: version "3.0.17" resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6" @@ -6181,6 +7410,13 @@ pinkie@^2.0.0: resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= +pirates@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.1.tgz#643a92caf894566f91b2b986d2c66950a8e2fb87" + integrity sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA== + dependencies: + node-modules-regexp "^1.0.0" + pkg-dir@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" @@ -6188,6 +7424,13 @@ pkg-dir@^3.0.0: dependencies: find-up "^3.0.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== + dependencies: + find-up "^4.0.0" + pkg-up@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-2.0.0.tgz#c819ac728059a461cab1c3889a2be3c49a004d7f" @@ -6195,6 +7438,11 @@ pkg-up@^2.0.0: dependencies: find-up "^2.1.0" +pn@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb" + integrity sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA== + portfinder@^1.0.13, portfinder@^1.0.25: version "1.0.25" resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.25.tgz#254fd337ffba869f4b9d37edc298059cb4d35eca" @@ -6601,6 +7849,16 @@ pretty-error@^2.0.2: renderkid "^2.0.1" utila "~0.4" +pretty-format@^25.1.0: + version "25.1.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-25.1.0.tgz#ed869bdaec1356fc5ae45de045e2c8ec7b07b0c8" + integrity sha512-46zLRSGLd02Rp+Lhad9zzuNZ+swunitn8zIpfD2B4OPCRLXbM87RJT2aBLBWYOznNUML/2l/ReMyWNC80PJBUQ== + dependencies: + "@jest/types" "^25.1.0" + ansi-regex "^5.0.0" + ansi-styles "^4.0.0" + react-is "^16.12.0" + pretty-time@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/pretty-time/-/pretty-time-1.1.0.tgz#ffb7429afabb8535c346a34e41873adf3d74dd0e" @@ -6638,6 +7896,14 @@ promise-inflight@^1.0.1: resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= +prompts@^2.0.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.3.1.tgz#b63a9ce2809f106fa9ae1277c275b167af46ea05" + integrity sha512-qIP2lQyCwYbdzcqHIUi2HAxiWixhoM9OdLCWf8txXsapC/X9YdsCoeyRIXE/GP+Q0J37Q7+XN/MFqbUa7IzXNA== + dependencies: + kleur "^3.0.3" + sisteransi "^1.0.4" + proxy-addr@~2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.5.tgz#34cbd64a2d81f4b1fd21e76f9f06c8a45299ee34" @@ -6656,7 +7922,7 @@ pseudomap@^1.0.2: resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= -psl@^1.1.24: +psl@^1.1.24, psl@^1.1.28: version "1.7.0" resolved "https://registry.yarnpkg.com/psl/-/psl-1.7.0.tgz#f1c4c47a8ef97167dea5d6bbf4816d736e884a3c" integrity sha512-5NsSEDv8zY70ScRnOTn7bK7eanl2MvFrOrS/R6x+dBt5g1ghnj9Zv90kO8GwT8gxcu2ANyFprnFYB85IogIJOQ== @@ -6708,7 +7974,7 @@ punycode@^1.2.4, punycode@^1.4.1: resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= -punycode@^2.1.0: +punycode@^2.1.0, punycode@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== @@ -6752,14 +8018,6 @@ querystringify@^2.1.1: resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.1.1.tgz#60e5a5fd64a7f8bfa4d2ab2ed6fdf4c85bad154e" integrity sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA== -quibble@^0.5.6: - version "0.5.7" - resolved "https://registry.yarnpkg.com/quibble/-/quibble-0.5.7.tgz#34ea5467eee32dfa37968742a5af21b02cd6ebe0" - integrity sha512-QnHxlD12qhGGjvoEW4PIp8tA80tKjh5CxTg5wLTPp/aqvHElBA+Ag3JN0dWlHY96CUaJqSGmLxTLi+7wbysyZw== - dependencies: - lodash "^4.17.14" - resolve "^1.11.1" - randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: version "2.0.6" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.6.tgz#d302c522948588848a8d300c932b44c24231da80" @@ -6800,6 +8058,11 @@ rc@^1.2.7: minimist "^1.2.0" strip-json-comments "~2.0.1" +react-is@^16.12.0: + version "16.13.0" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.0.tgz#0f37c3613c34fe6b37cd7f763a0d6293ab15c527" + integrity sha512-GFMtL0vHkiBv9HluwNZTggSn/sCyEt9n02aM0dSAjGGyqyNlAyftYm4phPxdvCigG15JreC5biwxCgTAJZ7yAA== + "readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6: version "2.3.6" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" @@ -6831,12 +8094,12 @@ readdirp@^2.0.0, readdirp@^2.2.1: micromatch "^3.1.10" readable-stream "^2.0.2" -readdirp@~3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.2.0.tgz#c30c33352b12c96dfb4b895421a49fd5a9593839" - integrity sha512-crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ== +realpath-native@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/realpath-native/-/realpath-native-1.1.0.tgz#2003294fea23fb0672f2476ebe22fcf498a2d65c" + integrity sha512-wlgPA6cCIIg9gKz0fgAPjnzh4yR/LnXovwuo9hvyGvx3h8nX4+/iLZplfUWasXpqD8BdnGnP5njOFjkUwPzvjA== dependencies: - picomatch "^2.0.4" + util.promisify "^1.0.0" reduce@^1.0.1: version "1.0.2" @@ -6950,6 +8213,22 @@ repeat-string@^1.6.1: resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= +request-promise-core@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.3.tgz#e9a3c081b51380dfea677336061fea879a829ee9" + integrity sha512-QIs2+ArIGQVp5ZYbWD5ZLCY29D5CfWizP8eWnm8FoGD1TX61veauETVQbrV60662V0oFBkrDOuaBI8XgtuyYAQ== + dependencies: + lodash "^4.17.15" + +request-promise-native@^1.0.7: + version "1.0.8" + resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.8.tgz#a455b960b826e44e2bf8999af64dff2bfe58cb36" + integrity sha512-dapwLGqkHtwL5AEbfenuzjTYg35Jd6KPytsC2/TLkVMz8rm+tNt72MGUWT1RP/aYawMpN6HqbNGBQaRcBtjQMQ== + dependencies: + request-promise-core "1.1.3" + stealthy-require "^1.1.1" + tough-cookie "^2.3.3" + request@^2.87.0: version "2.88.0" resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef" @@ -6976,6 +8255,32 @@ request@^2.87.0: tunnel-agent "^0.6.0" uuid "^3.3.2" +request@^2.88.0: + version "2.88.2" + resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" + integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.8.0" + caseless "~0.12.0" + combined-stream "~1.0.6" + extend "~3.0.2" + forever-agent "~0.6.1" + form-data "~2.3.2" + har-validator "~5.1.3" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.19" + oauth-sign "~0.9.0" + performance-now "^2.1.0" + qs "~6.5.2" + safe-buffer "^5.1.2" + tough-cookie "~2.5.0" + tunnel-agent "^0.6.0" + uuid "^3.3.2" + require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" @@ -7008,6 +8313,13 @@ resolve-cwd@^2.0.0: dependencies: resolve-from "^3.0.0" +resolve-cwd@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" + integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== + dependencies: + resolve-from "^5.0.0" + resolve-dir@^1.0.0, resolve-dir@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" @@ -7026,12 +8338,29 @@ resolve-from@^4.0.0: resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== +resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== + resolve-url@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= -resolve@^1.11.1, resolve@^1.12.0, resolve@^1.2.0, resolve@^1.4.0, resolve@^1.8.1: +resolve@1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" + integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= + +resolve@1.x: + version "1.15.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.15.1.tgz#27bdcdeffeaf2d6244b95bb0f9f4b4653451f3e8" + integrity sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w== + dependencies: + path-parse "^1.0.6" + +resolve@^1.12.0, resolve@^1.2.0, resolve@^1.4.0, resolve@^1.8.1: version "1.14.2" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.14.2.tgz#dbf31d0fa98b1f29aa5169783b9c290cb865fea2" integrity sha512-EjlOBLBO1kxsUxsKjLt7TAECyKW6fOh1VRkykQkKGzcBbjjPIxBqGh0jf7GJ3k/f5mxMqW3htMD3WdTUVtW8HQ== @@ -7141,6 +8470,11 @@ rollup@^1.29.0: "@types/node" "*" acorn "^7.1.0" +rsvp@^4.8.4: + version "4.8.5" + resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734" + integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA== + run-async@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" @@ -7184,11 +8518,33 @@ safe-regex@^1.1.0: resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== +sane@^4.0.3: + version "4.1.0" + resolved "https://registry.yarnpkg.com/sane/-/sane-4.1.0.tgz#ed881fd922733a6c461bc189dc2b6c006f3ffded" + integrity sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA== + dependencies: + "@cnakazawa/watch" "^1.0.3" + anymatch "^2.0.0" + capture-exit "^2.0.0" + exec-sh "^0.3.2" + execa "^1.0.0" + fb-watchman "^2.0.0" + micromatch "^3.1.4" + minimist "^1.1.1" + walker "~1.0.5" + sax@^1.2.4, sax@~1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== +saxes@^3.1.9: + version "3.1.11" + resolved "https://registry.yarnpkg.com/saxes/-/saxes-3.1.11.tgz#d59d1fd332ec92ad98a2e0b2ee644702384b1c5b" + integrity sha512-Ydydq3zC+WYDJK1+gRxRapLIED9PWeSuuS41wqyoRmzvhhh9nc+QQrVMKJYzJFULazeGhzSV0QleN2wD3boh2g== + dependencies: + xmlchars "^2.1.1" + schema-utils@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" @@ -7236,7 +8592,7 @@ semver@7.0.0: resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== -semver@^5.1.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.0: +semver@^5.1.0, semver@^5.5, semver@^5.5.1, semver@^5.6.0: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== @@ -7251,6 +8607,11 @@ semver@^6.0.0, semver@^6.1.2, semver@^6.3.0: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== +semver@^7.1.1: + version "7.1.3" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.1.3.tgz#e4345ce73071c53f336445cfc19efb1c311df2a6" + integrity sha512-ekM0zfiA9SCBlsKa2X1hxyxiI4L3B6EbVJkkdgQXnSEEaHlGdvyodMruTiulSRWMMB4NeIuYNMC9rTKTz97GxA== + send@0.17.1: version "0.17.1" resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" @@ -7353,11 +8714,28 @@ shebang-command@^1.2.0: dependencies: shebang-regex "^1.0.0" +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + shebang-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +shellwords@^0.1.1: + version "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: version "3.0.2" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" @@ -7370,6 +8748,11 @@ simple-swizzle@^0.2.2: dependencies: is-arrayish "^0.3.1" +sisteransi@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.4.tgz#386713f1ef688c7c0304dc4c0632898941cad2e3" + integrity sha512-/ekMoM4NJ59ivGSfKapeG+FWtrmWvA1p6FBZwXrqojw90vJu8lBmrTxCMuBCydKtkaUe2zt4PlxeTKpjwMbyig== + slash@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" @@ -7380,6 +8763,11 @@ slash@^2.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + slice-ansi@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" @@ -7478,7 +8866,7 @@ source-map-resolve@^0.5.2: source-map-url "^0.4.0" urix "^0.1.0" -source-map-support@~0.5.12: +source-map-support@^0.5.6, source-map-support@~0.5.12: version "0.5.16" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.16.tgz#0ae069e7fe3ba7538c64c98515e35339eac5a042" integrity sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ== @@ -7603,6 +8991,11 @@ std-env@^2.2.1: dependencies: ci-info "^1.6.0" +stealthy-require@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" + integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks= + stream-browserify@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.1.tgz#66266ee5f9bdb9940a4e4514cafb43bb71e5c9db" @@ -7640,6 +9033,14 @@ strict-uri-encode@^1.0.0: resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM= +string-length@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/string-length/-/string-length-3.1.0.tgz#107ef8c23456e187a8abd4a61162ff4ac6e25837" + integrity sha512-Ttp5YvkGm5v9Ijagtaz1BnN+k9ObpvS0eIBblPMp2YWL8FBmi9qblQ9fexc2k/CXFgrTIteU3jAw3payCnwSTA== + dependencies: + astral-regex "^1.0.0" + strip-ansi "^5.2.0" + string-width@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" @@ -7666,7 +9067,7 @@ string-width@^3.0.0, string-width@^3.1.0: is-fullwidth-code-point "^2.0.0" strip-ansi "^5.1.0" -string-width@^4.1.0: +string-width@^4.1.0, string-width@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== @@ -7705,14 +9106,6 @@ string_decoder@^1.1.1: dependencies: safe-buffer "~5.2.0" -stringify-object-es5@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/stringify-object-es5/-/stringify-object-es5-2.5.0.tgz#057c3c9a90a127339bb9d1704a290bb7bd0a1ec5" - integrity sha1-BXw8mpChJzObudFwSikLt70KHsU= - dependencies: - is-plain-obj "^1.0.0" - is-regexp "^1.0.0" - strip-ansi@^3.0.0, strip-ansi@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" @@ -7746,21 +9139,31 @@ strip-bom-string@^1.0.0: resolved "https://registry.yarnpkg.com/strip-bom-string/-/strip-bom-string-1.0.0.tgz#e5211e9224369fbb81d633a2f00044dc8cedad92" integrity sha1-5SEekiQ2n7uB1jOi8ABE3IztrZI= +strip-bom@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" + integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== + strip-eof@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= -strip-json-comments@2.0.1, strip-json-comments@~2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== strip-json-comments@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.0.1.tgz#85713975a91fb87bf1b305cca77395e40d2a64a7" integrity sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw== +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= + stylehacks@^4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5" @@ -7793,13 +9196,6 @@ stylus@^0.54.5: semver "^6.0.0" source-map "^0.7.3" -supports-color@6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.0.0.tgz#76cfe742cf1f41bb9b1c29ad03068c05b4c0e40a" - integrity sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg== - dependencies: - has-flag "^3.0.0" - supports-color@6.1.0, supports-color@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" @@ -7819,6 +9215,21 @@ supports-color@^5.3.0: dependencies: has-flag "^3.0.0" +supports-color@^7.0.0, supports-color@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1" + integrity sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g== + dependencies: + has-flag "^4.0.0" + +supports-hyperlinks@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.1.0.tgz#f663df252af5f37c5d49bbd7eeefa9e0b9e59e47" + integrity sha512-zoE5/e+dnEijk6ASB6/qrK+oYdm2do1hjoLWrqUC/8WEIW1gbxFcKuBof7sW8ArN6e+AYvsE8HBGiVRWL/F5CA== + dependencies: + has-flag "^4.0.0" + supports-color "^7.0.0" + svg-tags@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/svg-tags/-/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764" @@ -7843,6 +9254,11 @@ svgo@^1.0.0: unquote "~1.1.1" util.promisify "~1.0.0" +symbol-tree@^3.2.2: + version "3.2.4" + resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" + integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== + table@^5.2.3: version "5.4.6" resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" @@ -7876,6 +9292,14 @@ tar@^4: safe-buffer "^5.1.2" yallist "^3.0.2" +terminal-link@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994" + integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ== + dependencies: + ansi-escapes "^4.2.1" + supports-hyperlinks "^2.0.0" + terser-webpack-plugin@^1.4.3: version "1.4.3" resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz#5ecaf2dbdc5fb99745fd06791f46fc9ddb1c9a7c" @@ -7900,25 +9324,24 @@ terser@^4.1.2: source-map "~0.6.1" source-map-support "~0.5.12" -testdouble@^3.12.5: - version "3.12.5" - resolved "https://registry.yarnpkg.com/testdouble/-/testdouble-3.12.5.tgz#fbc3a1a178a8251621e77dfa9f64a8e194b0175a" - integrity sha512-HxATrZ9Olip3bl/oW56uINeMAGDKjy2Q5CdoaCVTxcixN+BIOuPbiLDZ3OaE3d8vKsb4IZZr5Km5fTLZ5ha26g== +test-exclude@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" + integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== dependencies: - lodash "^4.17.15" - quibble "^0.5.6" - stringify-object-es5 "^2.5.0" - theredoc "^1.0.0" + "@istanbuljs/schema" "^0.1.2" + glob "^7.1.4" + minimatch "^3.0.4" text-table@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= -theredoc@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/theredoc/-/theredoc-1.0.0.tgz#bcace376af6feb1873efbdd0f91ed026570ff062" - integrity sha512-KU3SA3TjRRM932jpNfD3u4Ec3bSvedyo5ITPI7zgWYnKep7BwQQaxlhI9qbO+lKJoRnoAbEVfMcAHRuKVYikDA== +throat@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/throat/-/throat-5.0.0.tgz#c5199235803aad18754a667d659b5e72ce16764b" + integrity sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA== through2@^2.0.0: version "2.0.3" @@ -7962,6 +9385,11 @@ tmp@^0.0.33: dependencies: 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= + to-arraybuffer@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" @@ -8024,6 +9452,23 @@ toposort@^1.0.0: resolved "https://registry.yarnpkg.com/toposort/-/toposort-1.0.7.tgz#2e68442d9f64ec720b8cc89e6443ac6caa950029" integrity sha1-LmhELZ9k7HILjMieZEOsbKqVACk= +tough-cookie@^2.3.3, tough-cookie@~2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" + integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== + dependencies: + psl "^1.1.28" + punycode "^2.1.1" + +tough-cookie@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-3.0.1.tgz#9df4f57e739c26930a018184887f4adb7dca73b2" + integrity sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg== + dependencies: + ip-regex "^2.1.0" + psl "^1.1.28" + punycode "^2.1.1" + tough-cookie@~2.4.3: version "2.4.3" resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781" @@ -8032,6 +9477,29 @@ tough-cookie@~2.4.3: psl "^1.1.24" punycode "^1.4.1" +tr46@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" + integrity sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk= + dependencies: + punycode "^2.1.0" + +ts-jest@^25.2.1: + version "25.2.1" + resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-25.2.1.tgz#49bf05da26a8b7fbfbc36b4ae2fcdc2fef35c85d" + integrity sha512-TnntkEEjuXq/Gxpw7xToarmHbAafgCaAzOpnajnFC6jI7oo1trMzAHA04eWpc3MhV6+yvhE8uUBAmN+teRJh0A== + dependencies: + bs-logger "0.x" + buffer-from "1.x" + fast-json-stable-stringify "2.x" + json5 "2.x" + lodash.memoize "4.x" + make-error "1.x" + mkdirp "0.x" + resolve "1.x" + semver "^5.5" + yargs-parser "^16.1.0" + ts-loader@^6.2.1: version "6.2.1" resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-6.2.1.tgz#67939d5772e8a8c6bdaf6277ca023a4812da02ef" @@ -8084,7 +9552,7 @@ type-check@~0.3.2: dependencies: prelude-ls "~1.1.2" -type-detect@^4.0.0, type-detect@^4.0.5: +type-detect@4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== @@ -8102,6 +9570,13 @@ type-is@~1.6.17, type-is@~1.6.18: media-typer "0.3.0" mime-types "~2.1.24" +typedarray-to-buffer@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" + integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== + dependencies: + is-typedarray "^1.0.0" + typedarray@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" @@ -8283,6 +9758,16 @@ util.promisify@1.0.0, util.promisify@~1.0.0: define-properties "^1.1.2" object.getownpropertydescriptors "^2.0.3" +util.promisify@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.1.tgz#6baf7774b80eeb0f7520d8b81d07982a59abbaee" + integrity sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.2" + has-symbols "^1.0.1" + object.getownpropertydescriptors "^2.1.0" + util@0.10.3: version "0.10.3" resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" @@ -8322,6 +9807,15 @@ v8-compile-cache@^2.0.3: resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz#e14de37b31a6d194f5690d67efc4e7f6fc6ab30e" integrity sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g== +v8-to-istanbul@^4.0.1: + version "4.1.2" + resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-4.1.2.tgz#387d173be5383dbec209d21af033dcb892e3ac82" + integrity sha512-G9R+Hpw0ITAmPSr47lSlc5A1uekSYzXxTMlFxso2xoffwo4jQnzbv1p9yXIinO8UMZKfAFewaCHwWvnH4Jb4Ug== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.1" + convert-source-map "^1.6.0" + source-map "^0.7.3" + vary@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" @@ -8401,7 +9895,7 @@ vue-style-loader@^4.1.0: hash-sum "^1.0.2" loader-utils "^1.0.2" -vue-template-compiler@^2.6.10, vue-template-compiler@^2.6.11: +vue-template-compiler@^2.6.10: version "2.6.11" resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.6.11.tgz#c04704ef8f498b153130018993e56309d4698080" integrity sha512-KIq15bvQDrcCjpGjrAhx4mUlyyHfdmTaoNfeoATHLAiWB+MU3cx4lOzMwrnUh9cCxy0Lt1T11hAFY6TQgroUAA== @@ -8414,11 +9908,20 @@ vue-template-es2015-compiler@^1.9.0: resolved "https://registry.yarnpkg.com/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz#1ee3bc9a16ecbf5118be334bb15f9c46f82f5825" integrity sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw== -vue@^2.6.10, vue@^2.6.11: +vue@^2.6.10: version "2.6.11" resolved "https://registry.yarnpkg.com/vue/-/vue-2.6.11.tgz#76594d877d4b12234406e84e35275c6d514125c5" integrity sha512-VfPwgcGABbGAue9+sfrD4PuwFar7gPb1yl1UK1MwXoQPAw0BKSqWfoYCT/ThFrdEVWoI51dBuyCoiNU9bZDZxQ== +vue@^3.0.0-alpha.9: + version "3.0.0-alpha.9" + resolved "https://registry.yarnpkg.com/vue/-/vue-3.0.0-alpha.9.tgz#f84b6b52caf6753a8cefda370bd6bbd298b5b06a" + integrity sha512-zZrfbchyCQXF/+9B5fD4djlqzZ2XB39MxDzTaJKfuMjs/CgD2CTDiEVrOcP9HwMjr48cpARiFH13vvl4/F73RA== + dependencies: + "@vue/compiler-dom" "3.0.0-alpha.9" + "@vue/runtime-dom" "3.0.0-alpha.9" + "@vue/shared" "3.0.0-alpha.9" + vuepress-html-webpack-plugin@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/vuepress-html-webpack-plugin/-/vuepress-html-webpack-plugin-3.2.0.tgz#219be272ad510faa8750d2d4e70fd028bfd1c16e" @@ -8462,6 +9965,29 @@ vuex@^3.1.2: resolved "https://registry.yarnpkg.com/vuex/-/vuex-3.1.2.tgz#a2863f4005aa73f2587e55c3fadf3f01f69c7d4d" integrity sha512-ha3jNLJqNhhrAemDXcmMJMKf1Zu4sybMPr9KxJIuOpVcsDQlTBYLLladav2U+g1AvdYDG5Gs0xBTb0M5pXXYFQ== +w3c-hr-time@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz#82ac2bff63d950ea9e3189a58a65625fedf19045" + integrity sha1-gqwr/2PZUOqeMYmlimViX+3xkEU= + dependencies: + browser-process-hrtime "^0.1.2" + +w3c-xmlserializer@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-1.1.2.tgz#30485ca7d70a6fd052420a3d12fd90e6339ce794" + integrity sha512-p10l/ayESzrBMYWRID6xbuCKh2Fp77+sA0doRuGn4tTIMrrZVeqfpKjXHY+oDh3K4nLdPgNwMTVP6Vp4pvqbNg== + dependencies: + domexception "^1.0.1" + webidl-conversions "^4.0.2" + xml-name-validator "^3.0.0" + +walker@^1.0.7, walker@~1.0.5: + version "1.0.7" + resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" + integrity sha1-L3+bj9ENZ3JisYqITijRlhjgKPs= + dependencies: + makeerror "1.0.x" + watchpack@^1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.0.tgz#4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00" @@ -8478,6 +10004,11 @@ wbuf@^1.1.0, wbuf@^1.7.3: dependencies: minimalistic-assert "^1.0.0" +webidl-conversions@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" + integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== + webpack-chain@^4.6.0, webpack-chain@^4.9.0: version "4.12.1" resolved "https://registry.yarnpkg.com/webpack-chain/-/webpack-chain-4.12.1.tgz#6c8439bbb2ab550952d60e1ea9319141906c02a6" @@ -8633,6 +10164,27 @@ websocket-extensions@>=0.1.1: resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.3.tgz#5d2ff22977003ec687a4b87073dfbbac146ccf29" integrity sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg== +whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" + integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== + dependencies: + iconv-lite "0.4.24" + +whatwg-mimetype@^2.2.0, whatwg-mimetype@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" + integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== + +whatwg-url@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06" + integrity sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg== + dependencies: + lodash.sortby "^4.7.0" + tr46 "^1.0.1" + webidl-conversions "^4.0.2" + when@~3.6.x: version "3.6.4" resolved "https://registry.yarnpkg.com/when/-/when-3.6.4.tgz#473b517ec159e2b85005497a13983f095412e34e" @@ -8643,14 +10195,21 @@ which-module@^2.0.0: resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= -which@1.3.1, which@^1.2.14, which@^1.2.9, which@^1.3.1: +which@^1.2.14, which@^1.2.9, which@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== dependencies: isexe "^2.0.0" -wide-align@1.1.3, wide-align@^1.1.0: +which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +wide-align@^1.1.0: version "1.1.3" resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== @@ -8686,11 +10245,30 @@ wrap-ansi@^5.1.0: string-width "^3.0.0" strip-ansi "^5.0.0" +wrap-ansi@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" + integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= +write-file-atomic@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" + integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== + dependencies: + imurmurhash "^0.1.4" + is-typedarray "^1.0.0" + signal-exit "^3.0.2" + typedarray-to-buffer "^3.1.5" + write@1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3" @@ -8705,6 +10283,21 @@ ws@^6.2.1: dependencies: async-limiter "~1.0.0" +ws@^7.0.0: + version "7.2.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.2.1.tgz#03ed52423cd744084b2cf42ed197c8b65a936b8e" + integrity sha512-sucePNSafamSKoOqoNfBd8V0StlkzJKL2ZAhGQinCfNQ+oacw+Pk7lcdAElecBF2VkLNZRiIb5Oi1Q5lVUVt2A== + +xml-name-validator@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" + integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== + +xmlchars@^2.1.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" + integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== + xtend@^4.0.0, xtend@~4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" @@ -8725,7 +10318,15 @@ yallist@^3.0.0, yallist@^3.0.2: resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.2.tgz#8452b4bb7e83c7c188d8041c1a837c773d6d8bb9" integrity sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k= -yargs-parser@13.1.1, yargs-parser@^13.1.0, yargs-parser@^13.1.1: +yargs-parser@^11.1.1: + version "11.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4" + integrity sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs-parser@^13.1.0: version "13.1.1" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.1.tgz#d26058532aa06d365fe091f6a1fc06b2f7e5eca0" integrity sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ== @@ -8733,23 +10334,14 @@ yargs-parser@13.1.1, yargs-parser@^13.1.0, yargs-parser@^13.1.1: camelcase "^5.0.0" decamelize "^1.2.0" -yargs-parser@^11.1.1: - version "11.1.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4" - integrity sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ== +yargs-parser@^16.1.0: + version "16.1.0" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-16.1.0.tgz#73747d53ae187e7b8dbe333f95714c76ea00ecf1" + integrity sha512-H/V41UNZQPkUMIT5h5hiwg4QKIY1RPvoBV4XcjUbRM8Bk2oKqqyZ0DIEbTFZB0XjbtSPG8SAa/0DxCQmiRgzKg== dependencies: camelcase "^5.0.0" decamelize "^1.2.0" -yargs-unparser@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-1.6.0.tgz#ef25c2c769ff6bd09e4b0f9d7c605fb27846ea9f" - integrity sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw== - dependencies: - flat "^4.1.0" - lodash "^4.17.15" - yargs "^13.3.0" - yargs@12.0.5: version "12.0.5" resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13" @@ -8785,21 +10377,22 @@ yargs@13.2.4: y18n "^4.0.0" yargs-parser "^13.1.0" -yargs@13.3.0, yargs@^13.3.0: - version "13.3.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.0.tgz#4c657a55e07e5f2cf947f8a366567c04a0dedc83" - integrity sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA== +yargs@^15.0.0: + version "15.1.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.1.0.tgz#e111381f5830e863a89550bd4b136bb6a5f37219" + integrity sha512-T39FNN1b6hCW4SOIk1XyTOWxtXdcen0t+XYrysQmChzSipvhBO8Bj0nK1ozAasdk24dNWuMZvr4k24nz+8HHLg== dependencies: - cliui "^5.0.0" - find-up "^3.0.0" + cliui "^6.0.0" + decamelize "^1.2.0" + find-up "^4.1.0" get-caller-file "^2.0.1" require-directory "^2.1.1" require-main-filename "^2.0.0" set-blocking "^2.0.0" - string-width "^3.0.0" + string-width "^4.2.0" which-module "^2.0.0" y18n "^4.0.0" - yargs-parser "^13.1.1" + yargs-parser "^16.1.0" zepto@^1.2.0: version "1.2.0" From e3f7c4d1edda05b64413281f1e2e696bdb777317 Mon Sep 17 00:00:00 2001 From: ktsn Date: Sun, 15 Mar 2020 15:18:30 +0800 Subject: [PATCH 02/69] chore!: remove obsolate individual hooks type --- hooks.d.ts | 20 -------------------- hooks.js | 1 - 2 files changed, 21 deletions(-) delete mode 100644 hooks.d.ts delete mode 100644 hooks.js diff --git a/hooks.d.ts b/hooks.d.ts deleted file mode 100644 index afc0986..0000000 --- a/hooks.d.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { VNode } from 'vue' - -declare module 'vue/types/vue' { - interface Vue { - data?(): object - beforeCreate?(): void - created?(): void - beforeMount?(): void - mounted?(): void - beforeDestroy?(): void - destroyed?(): void - beforeUpdate?(): void - updated?(): void - activated?(): void - deactivated?(): void - render?(createElement: CreateElement): VNode - errorCaptured?(err: Error, vm: Vue, info: string): boolean | undefined - serverPrefetch?(): Promise - } -} diff --git a/hooks.js b/hooks.js deleted file mode 100644 index b0f0b98..0000000 --- a/hooks.js +++ /dev/null @@ -1 +0,0 @@ -// Dummy empty file to avoid import error when using hooks.d.ts From 1bfb002d8a3c0347d0a9d1cdb987a27d7f0c2374 Mon Sep 17 00:00:00 2001 From: ktsn Date: Sun, 15 Mar 2020 16:00:49 +0800 Subject: [PATCH 03/69] test: combine babel and ts test files --- .eslintignore | 6 - jest.config.js | 26 +++- package.json | 5 +- src/vue.ts | 2 + test/.babelrc | 7 - test/.eslintrc.js | 2 +- test/babel.config.js | 8 + test/specs/test-babel.spec.js | 154 ------------------- test/specs/{test-ts.spec.ts => test.spec.ts} | 109 +++++++++---- yarn.lock | 62 +++++++- 10 files changed, 169 insertions(+), 212 deletions(-) delete mode 100644 test/.babelrc create mode 100644 test/babel.config.js delete mode 100644 test/specs/test-babel.spec.js rename test/specs/{test-ts.spec.ts => test.spec.ts} (81%) diff --git a/.eslintignore b/.eslintignore index 21d28b2..b0fd861 100644 --- a/.eslintignore +++ b/.eslintignore @@ -2,10 +2,4 @@ /lib/ node_modules/ -/test/test.build.js /example/build.js - -# TOOD: remove after fixed decorator indent issue -# https://github.com/eslint/typescript-eslint-parser/issues/438 -/example -/test \ No newline at end of file diff --git a/jest.config.js b/jest.config.js index a06e253..4634a34 100644 --- a/jest.config.js +++ b/jest.config.js @@ -1,5 +1,22 @@ +const isBabel = !!process.env.BABEL_TEST + +const tsJestConfig = { + preset: 'ts-jest', + globals: { + 'ts-jest': { + tsConfig: 'test/tsconfig.json' + } + } +} + +const babelJestConfig = { + transform: { + '^.+\\.[t|j]sx?$': ['babel-jest', { configFile: './test/babel.config.js' }] + } +} + module.exports = { - preset: 'ts-jest/presets/js-with-babel', + ...(isBabel ? babelJestConfig : tsJestConfig), testMatch: [ '**/test/**/?(*.)+(spec|test).[jt]s?(x)' @@ -7,12 +24,5 @@ module.exports = { moduleNameMapper: { '^vue$': 'vue/dist/vue.cjs.prod.js' - }, - - globals: { - 'ts-jest': { - tsConfig: 'test/tsconfig.json', - babelConfig: 'test/.babelrc' - } } } diff --git a/package.json b/package.json index d82089e..b0cbe21 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,9 @@ "example": "npm run build && webpack --config example/webpack.config.js", "dev": "webpack --config example/webpack.config.js --watch", "lint": "eslint --ext js,jsx,ts,tsx,vue .", - "test": "jest", + "test": "yarn test:ts && yarn test:babel", + "test:ts": "jest", + "test:babel": "BABEL_TEST=1 jest", "docs:dev": "vuepress dev docs", "docs:build": "vuepress build docs", "release": "bash build/release.sh" @@ -50,6 +52,7 @@ "@babel/plugin-proposal-decorators": "^7.7.4", "@babel/plugin-syntax-jsx": "^7.7.4", "@babel/preset-env": "^7.7.7", + "@babel/preset-typescript": "^7.8.3", "@types/chai": "^4.2.7", "@types/jest": "^25.1.3", "@types/mocha": "^5.2.7", diff --git a/src/vue.ts b/src/vue.ts index 8c639f7..0c5f0ae 100644 --- a/src/vue.ts +++ b/src/vue.ts @@ -200,6 +200,8 @@ export class Vue implements ComponentPublicInstance<{}, {}, {}, Object.keys(props).forEach(key => { Object.defineProperty(this, key, { enumerable: false, + configurable: true, + writable: true, value: (props as any)[key] }) }) diff --git a/test/.babelrc b/test/.babelrc deleted file mode 100644 index cb59e88..0000000 --- a/test/.babelrc +++ /dev/null @@ -1,7 +0,0 @@ -{ - "presets": ["@babel/env"], - "plugins": [ - ["@babel/proposal-decorators", { "legacy": true }], - ["@babel/proposal-class-properties", { "loose": true }] - ] -} \ No newline at end of file diff --git a/test/.eslintrc.js b/test/.eslintrc.js index c00d243..013a195 100644 --- a/test/.eslintrc.js +++ b/test/.eslintrc.js @@ -1,5 +1,5 @@ module.exports = { env: { - mocha: true + jest: true } } \ No newline at end of file diff --git a/test/babel.config.js b/test/babel.config.js new file mode 100644 index 0000000..d74f939 --- /dev/null +++ b/test/babel.config.js @@ -0,0 +1,8 @@ +module.exports = { + sourceMaps: true, + presets: ['@babel/env', '@babel/typescript'], + plugins: [ + ['@babel/proposal-decorators', { legacy: true }], + ['@babel/proposal-class-properties', { loose: true }] + ] +} diff --git a/test/specs/test-babel.spec.js b/test/specs/test-babel.spec.js deleted file mode 100644 index f68cdee..0000000 --- a/test/specs/test-babel.spec.js +++ /dev/null @@ -1,154 +0,0 @@ -import 'reflect-metadata' -import { Options, createDecorator, mixins, Vue } from '../../src' -import { createApp } from 'vue' - -describe('vue-class-component with Babel', () => { - const root = document.createElement('div') - - it('should be instantiated without any errors', () => { - class MyComp extends Vue { - render() {} - } - expect(() => createApp(MyComp).mount(root)).not.toThrow() - }) - - it('should collect class properties as data', () => { - @Options({ - props: ['propValue'] - }) - class MyComp extends Vue { - foo = 'hello' - bar = 1 + this.propValue - - render() {} - } - const c = createApp(MyComp, { propValue: 1 }).mount(root) - expect(c.foo).toBe('hello') - expect(c.propValue).toBe(1) - expect(c.bar).toBe(2) - }) - - it('should not collect uninitialized class properties', () => { - const Prop = createDecorator((options, key) => { - if (!options.props) { - options.props = {} - } - options.props[key] = { - type: null - } - }) - - class MyComp extends Vue { - foo - @Prop bar - - render() {} - } - const c = createApp(MyComp).mount(root) - expect('foo' in c.$data).toBe(false) - expect('bar' in c.$data).toBe(false) - }) - - // #155 - it('createDecrator: create a class decorator', () => { - const DataMixin = createDecorator(options => { - options.data = function () { - return { - test: 'foo' - } - } - }) - - @DataMixin - class MyComp extends Vue { - render() {} - } - - const vm = createApp(MyComp).mount(root) - expect(vm.test).toBe('foo') - }) - - it('should not throw if property decorator declare some methods', () => { - const Test = createDecorator((options, key) => { - if (!options.methods) { - options.methods = {} - } - options.methods[key] = () => 'test' - }) - - class MyComp extends Vue { - @Test test - - render() {} - } - - const vm = createApp(MyComp).mount(root) - expect(vm.test()).toBe('test') - }) - - it('should forward static members', () => { - class MyComp extends Vue { - static foo = 'foo' - - static bar () { - return 'bar' - } - } - - expect(MyComp.foo).toBe('foo') - expect(MyComp.bar()).toBe('bar') - }) - - it('mixin helper', function () { - class MixinA extends Vue { - valueA = 'hello' - } - - class MixinB extends Vue { - valueB = 123 - } - - class MyComp extends mixins(MixinA, MixinB) { - test () { - this.valueA = 'hi' - this.valueB = 456 - } - - render() {} - } - - const vm = createApp(MyComp).mount(root) - expect(vm.valueA).toBe('hello') - expect(vm.valueB).toBe(123) - vm.test() - expect(vm.valueA).toBe('hi') - expect(vm.valueB).toBe(456) - }) - - it('copies reflection metadata', function () { - @Reflect.metadata('worksConstructor', true) - class Test extends Vue { - @Reflect.metadata('worksStatic', true) - static staticValue = 'staticValue' - - _test = false - - @Reflect.metadata('worksMethod', true) - test () { - void 0 - } - - @Reflect.metadata('worksAccessor', true) - get testAccessor () { - return this._test - } - - render() {} - } - - expect(Reflect.getOwnMetadata('worksConstructor', Test)).toBe(true) - expect(Reflect.getOwnMetadata('worksStatic', Test, 'staticValue')).toBe(true) - expect(Reflect.getOwnMetadata('worksMethod', Test.prototype, 'test')).toBe(true) - expect(Reflect.getOwnMetadata('worksAccessor', Test.prototype, 'testAccessor')).toBe(true) - }) -}) diff --git a/test/specs/test-ts.spec.ts b/test/specs/test.spec.ts similarity index 81% rename from test/specs/test-ts.spec.ts rename to test/specs/test.spec.ts index 3b8bf94..452e767 100644 --- a/test/specs/test-ts.spec.ts +++ b/test/specs/test.spec.ts @@ -17,7 +17,7 @@ describe('vue-class-component', () => { unmounted = true } - render() {} + render () {} } const app = createApp(MyComp) @@ -39,30 +39,32 @@ describe('vue-class-component', () => { return 'beforeRouteEnter' } - render() {} + render () {} } const app = createApp(MyComp).mount(root) expect((app.$options as any).beforeRouteEnter()).toBe('beforeRouteEnter') }) - it('data: should collect from class properties', () => { - @Options({ - props: ['foo'] - }) - class MyComp extends Vue { - foo!: number - a: string = 'hello' - b: number = this.foo + 1 + if (!process.env.BABEL_TEST) { + it('data: should collect from class properties', () => { + @Options({ + props: ['foo'] + }) + class MyComp extends Vue { + foo!: number + a: string = 'hello' + b: number = this.foo + 1 - render() {} - } + render () {} + } - const app = createApp(MyComp, { foo: 1 }).mount(root) as MyComp + const app = createApp(MyComp, { foo: 1 }).mount(root) as MyComp - expect(app.a).toBe('hello') - expect(app.b).toBe(2) - }) + expect(app.a).toBe('hello') + expect(app.b).toBe(2) + }) + } it('data: $props should be available', () => { interface Props { @@ -72,13 +74,34 @@ describe('vue-class-component', () => { class MyComp extends Vue { message = 'answer is ' + this.$props.foo - render() {} + render () {} } const app = createApp(MyComp, { foo: 42 }).mount(root) as MyComp expect(app.message).toBe('answer is 42') }) + it('data: should not collect uninitialized class properties', () => { + const Prop = createDecorator((options, key) => { + if (!options.props) { + (options as any).props = {} + } + (options.props as any)[key] = { + type: null + } + }) + + class MyComp extends Vue { + foo: any + @Prop bar: any + + render () {} + } + const c = createApp(MyComp).mount(root) + expect('foo' in c.$data).toBe(false) + expect('bar' in c.$data).toBe(false) + }) + xit('data: should collect custom property defined on beforeCreate', () => { class MyComp extends Vue { $store: any @@ -92,7 +115,7 @@ describe('vue-class-component', () => { } } - render() {} + render () {} } const app = createApp(MyComp).mount(root) as MyComp @@ -107,7 +130,7 @@ describe('vue-class-component', () => { msg = 'hi' } - render() {} + render () {} } const app = createApp(MyComp).mount(root) as MyComp @@ -127,7 +150,7 @@ describe('vue-class-component', () => { return this.a + 1 } - render() {} + render () {} } const app = createApp(MyComp).mount(root) as MyComp @@ -141,7 +164,7 @@ describe('vue-class-component', () => { it('via name option', () => { @Options({ name: 'test' }) class MyComp extends Vue { - render() {} + render () {} } const app = createApp(MyComp).mount(root) @@ -150,7 +173,7 @@ describe('vue-class-component', () => { it('via class name', () => { class MyComp extends Vue { - render() {} + render () {} } const app = createApp(MyComp).mount(root) @@ -163,7 +186,7 @@ describe('vue-class-component', () => { @Options({ watch: { - a: val => v = val + a: val => { v = val } } }) class MyComp extends Vue { @@ -172,7 +195,7 @@ describe('vue-class-component', () => { return { a: 1 } } - render() {} + render () {} } const app = createApp(MyComp).mount(root) as MyComp @@ -197,7 +220,7 @@ describe('vue-class-component', () => { return { b: 2 } } - render() {} + render () {} } const app = createApp(A).mount(root) as A @@ -226,7 +249,7 @@ describe('vue-class-component', () => { } class A extends Base { - render() {} + render () {} } const app = createApp(A).mount(root) as A @@ -254,7 +277,7 @@ describe('vue-class-component', () => { // that specified by class property accessors and methods const computedOption = (options.computed as any)[key] const originalGet = computedOption.get - computedOption.get = function() { + computedOption.get = function () { return '(' + originalGet() + ')' } }) @@ -265,7 +288,7 @@ describe('vue-class-component', () => { return 'world' } - render() {} + render () {} } const app = createApp(MyComp, { foo: 'hello' }).mount(root) as MyComp @@ -291,7 +314,7 @@ describe('vue-class-component', () => { @Value('child') value!: string - render() { + render () { return h('div') } } @@ -307,7 +330,7 @@ describe('vue-class-component', () => { @Value('parent') value!: string - render() { + render () { const child = resolveComponent('Child') as any return h(child, { ref: 'child' }) } @@ -331,14 +354,32 @@ describe('vue-class-component', () => { @DataMixin class MyComp extends Vue { - render() {} + render () {} } const app: any = createApp(MyComp).mount(root) expect(app.test).toBe('foo') }) - it('forwardStatics', function () { + it('should not throw if property decorator declare some methods', () => { + const Test = createDecorator((options, key) => { + if (!options.methods) { + options.methods = {} + } + (options.methods as any)[key] = () => 'test' + }) + + class MyComp extends Vue { + @Test test!: () => string + + render () {} + } + + const vm = createApp(MyComp).mount(root) as MyComp + expect(vm.test()).toBe('test') + }) + + it('should keep static members available', function () { class MyComp extends Vue { static myValue = 52 @@ -366,7 +407,7 @@ describe('vue-class-component', () => { this.valueB = 456 } - render() {} + render () {} } const app = createApp(MyComp).mount(root) as MyComp @@ -377,7 +418,7 @@ describe('vue-class-component', () => { expect(app.valueB).toBe(456) }) - it('copies reflection metadata', function () { + it('keeps reflection metadata available', function () { @Reflect.metadata('worksConstructor', true) class Test extends Vue { @Reflect.metadata('worksStatic', true) diff --git a/yarn.lock b/yarn.lock index 360855d..fc2ea65 100644 --- a/yarn.lock +++ b/yarn.lock @@ -120,6 +120,18 @@ "@babel/helper-replace-supers" "^7.7.4" "@babel/helper-split-export-declaration" "^7.7.4" +"@babel/helper-create-class-features-plugin@^7.8.3": + version "7.8.6" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.8.6.tgz#243a5b46e2f8f0f674dc1387631eb6b28b851de0" + integrity sha512-klTBDdsr+VFFqaDHm5rR69OpEQtO2Qv8ECxHS1mNhJJvaHArR6a1xTf5K/eZW7eZpJbhCx3NW1Yt/sKsLXLblg== + dependencies: + "@babel/helper-function-name" "^7.8.3" + "@babel/helper-member-expression-to-functions" "^7.8.3" + "@babel/helper-optimise-call-expression" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-replace-supers" "^7.8.6" + "@babel/helper-split-export-declaration" "^7.8.3" + "@babel/helper-create-regexp-features-plugin@^7.7.4": version "7.7.4" resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.7.4.tgz#6d5762359fd34f4da1500e4cff9955b5299aaf59" @@ -191,6 +203,13 @@ dependencies: "@babel/types" "^7.7.4" +"@babel/helper-member-expression-to-functions@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.3.tgz#659b710498ea6c1d9907e0c73f206eee7dadc24c" + integrity sha512-fO4Egq88utkQFjbPrSHGmGLFqmrshs11d46WI+WZDESt7Wu7wN2G2Iu+NMMZJFDOVRHAMIkB5SNh30NtwCA7RA== + dependencies: + "@babel/types" "^7.8.3" + "@babel/helper-module-imports@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz#96081b7111e486da4d2cd971ad1a4fe216cc2e3d" @@ -224,12 +243,19 @@ dependencies: "@babel/types" "^7.7.4" +"@babel/helper-optimise-call-expression@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.3.tgz#7ed071813d09c75298ef4f208956006b6111ecb9" + integrity sha512-Kag20n86cbO2AvHca6EJsvqAd82gc6VMGule4HwebwMlwkpXuVqrNRj6CkCV2sKxgi9MyAUnZVnZ6lJ1/vKhHQ== + dependencies: + "@babel/types" "^7.8.3" + "@babel/helper-plugin-utils@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz#bbb3fbee98661c569034237cc03967ba99b4f250" integrity sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA== -"@babel/helper-plugin-utils@^7.8.0": +"@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz#9ea293be19babc0f52ff8ca88b34c3611b208670" integrity sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ== @@ -269,6 +295,16 @@ "@babel/traverse" "^7.7.4" "@babel/types" "^7.7.4" +"@babel/helper-replace-supers@^7.8.6": + version "7.8.6" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.8.6.tgz#5ada744fd5ad73203bf1d67459a27dcba67effc8" + integrity sha512-PeMArdA4Sv/Wf4zXwBKPqVj7n9UF/xg6slNRtZW84FM7JpE1CbG8B612FyM4cxrf4fMAMGO0kR7voy1ForHHFA== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.8.3" + "@babel/helper-optimise-call-expression" "^7.8.3" + "@babel/traverse" "^7.8.6" + "@babel/types" "^7.8.6" + "@babel/helper-simple-access@^7.7.4": version "7.7.4" resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.7.4.tgz#a169a0adb1b5f418cfc19f22586b2ebf58a9a294" @@ -483,6 +519,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" +"@babel/plugin-syntax-typescript@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.8.3.tgz#c1f659dda97711a569cef75275f7e15dcaa6cabc" + integrity sha512-GO1MQ/SGGGoiEXY0e0bSpHimJvxqB7lktLLIq2pv8xG7WZ8IMEle74jIe1FhprHBWjwjZtXHkycDLZXIWM5Wfg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-transform-arrow-functions@^7.2.0", "@babel/plugin-transform-arrow-functions@^7.7.4": version "7.7.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.7.4.tgz#76309bd578addd8aee3b379d809c802305a98a12" @@ -729,6 +772,15 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" +"@babel/plugin-transform-typescript@^7.8.3": + version "7.8.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.8.7.tgz#48bccff331108a7b3a28c3a4adc89e036dc3efda" + integrity sha512-7O0UsPQVNKqpHeHLpfvOG4uXmlw+MOxYvUv6Otc9uH5SYMIxvF6eBdjkWvC3f9G+VXe0RsNExyAQBeTRug/wqQ== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-typescript" "^7.8.3" + "@babel/plugin-transform-unicode-regex@^7.2.0", "@babel/plugin-transform-unicode-regex@^7.7.4": version "7.7.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.7.4.tgz#a3c0f65b117c4c81c5b6484f2a5e7b95346b83ae" @@ -843,6 +895,14 @@ js-levenshtein "^1.1.3" semver "^5.5.0" +"@babel/preset-typescript@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.8.3.tgz#90af8690121beecd9a75d0cc26c6be39d1595d13" + integrity sha512-qee5LgPGui9zQ0jR1TeU5/fP9L+ovoArklEqY12ek8P/wV5ZeM/VYSQYwICeoT6FfpJTekG9Ilay5PhwsOpMHA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-transform-typescript" "^7.8.3" + "@babel/runtime-corejs2@^7.2.0": version "7.7.7" resolved "https://registry.yarnpkg.com/@babel/runtime-corejs2/-/runtime-corejs2-7.7.7.tgz#44885957b275a5fd70413142eda9cff4662847ac" From 73269a91975f4b0cd945556a2fba4ea432bc009d Mon Sep 17 00:00:00 2001 From: ktsn Date: Sun, 12 Apr 2020 19:36:57 +0800 Subject: [PATCH 04/69] chore: bump vue-next --- package.json | 2 +- src/vue.ts | 6 +++--- test/specs/test.spec.ts | 3 +++ 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index b0cbe21..bf8adda 100644 --- a/package.json +++ b/package.json @@ -75,7 +75,7 @@ "ts-loader": "^6.2.1", "typescript": "^3.7.4", "uglify-es": "^3.3.9", - "vue": "^3.0.0-alpha.9", + "vue": "^3.0.0-alpha.12", "vue-loader": "^15.8.3", "vuepress": "^1.2.0", "vuex": "^3.1.2", diff --git a/src/vue.ts b/src/vue.ts index 0c5f0ae..8429c61 100644 --- a/src/vue.ts +++ b/src/vue.ts @@ -30,7 +30,7 @@ export type VueMixin = VueStatic & { prototype: V } export type VueBase = VueMixin & (new (...args: any[]) => V) -export class Vue implements ComponentPublicInstance<{}, {}, {}, {}, {}, Props>, ClassComponentHooks { +export class Vue implements ComponentPublicInstance<{}, {}, {}, {}, {}, {}, Props>, ClassComponentHooks { /** @internal */ static __vccCache?: ComponentOptions @@ -128,9 +128,9 @@ export class Vue implements ComponentPublicInstance<{}, {}, {}, // Class properties -> reactive data const hookDataOption = options.data - options.data = function () { + options.data = function (this: ComponentPublicInstance) { const hookData = isFunction(hookDataOption) - ? hookDataOption.call(this) + ? hookDataOption.call(this, this) : hookDataOption // should be acquired class property values diff --git a/test/specs/test.spec.ts b/test/specs/test.spec.ts index 452e767..98db202 100644 --- a/test/specs/test.spec.ts +++ b/test/specs/test.spec.ts @@ -71,6 +71,9 @@ describe('vue-class-component', () => { foo: number } + @Options({ + props: ['foo'] + }) class MyComp extends Vue { message = 'answer is ' + this.$props.foo From 63ec47525b9a8d3b9b992c484b0ed666c612e919 Mon Sep 17 00:00:00 2001 From: ktsn Date: Sun, 12 Apr 2020 20:29:18 +0800 Subject: [PATCH 05/69] docs: update readme and example --- README.md | 12 ++-- example/.babelrc | 4 -- example/src/App.vue | 51 ++------------- example/src/components/Hello.vue | 18 ------ example/src/components/World.tsx | 9 --- example/src/main.ts | 12 +--- example/src/shims-tsx.d.ts | 11 ---- example/src/shims-vue.d.ts | 5 +- example/src/store.ts | 23 ------- package.json | 6 -- yarn.lock | 107 ++++++++++++------------------- 11 files changed, 57 insertions(+), 201 deletions(-) delete mode 100644 example/src/components/Hello.vue delete mode 100644 example/src/components/World.tsx delete mode 100644 example/src/shims-tsx.d.ts delete mode 100644 example/src/store.ts diff --git a/README.md b/README.md index 32ffe39..55d469a 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,14 @@ -# Vue Class Component +# Vue Class Component v8 -ECMAScript / TypeScript decorator for class-style Vue components. +The next Vue Class Component for Vue v3. -[![npm](https://img.shields.io/npm/v/vue-class-component.svg)](https://www.npmjs.com/package/vue-class-component) +## Status -## Document +Alpha -See [https://class-component.vuejs.org](https://class-component.vuejs.org) +## Documentation + +The documentation is not ready yet. But you can see [v8 proposals in the issue list](https://github.com/vuejs/vue-class-component/issues?q=is%3Aopen+is%3Aissue+label%3Av8). ## Questions diff --git a/example/.babelrc b/example/.babelrc index 9ab1113..3edcd10 100644 --- a/example/.babelrc +++ b/example/.babelrc @@ -1,9 +1,5 @@ { "presets": [ ["@babel/env", { "modules": false }] - ], - "plugins": [ - "@babel/syntax-jsx", - "transform-vue-jsx" ] } diff --git a/example/src/App.vue b/example/src/App.vue index aa312b6..b86609a 100644 --- a/example/src/App.vue +++ b/example/src/App.vue @@ -5,66 +5,29 @@

msg: {{ msg }}

helloMsg: {{ helloMsg }}

computed msg: {{ computedMsg }}

- - -

- -

- Clicked: {{ count }} times - -

diff --git a/example/src/components/Hello.vue b/example/src/components/Hello.vue deleted file mode 100644 index fcd5d44..0000000 --- a/example/src/components/Hello.vue +++ /dev/null @@ -1,18 +0,0 @@ - - - - diff --git a/example/src/components/World.tsx b/example/src/components/World.tsx deleted file mode 100644 index a2f7de5..0000000 --- a/example/src/components/World.tsx +++ /dev/null @@ -1,9 +0,0 @@ -import Vue, { CreateElement } from 'vue' -import Component from '../../../lib/index' - -@Component -export default class World extends Vue { - render (h: CreateElement) { - return

This is rendered via TSX

- } -} diff --git a/example/src/main.ts b/example/src/main.ts index f9913ff..9bd3df6 100644 --- a/example/src/main.ts +++ b/example/src/main.ts @@ -1,11 +1,5 @@ -import Vue from 'vue' +import { createApp } from 'vue' import App from './App.vue' -import store from './store' -new Vue({ - el: '#app', - store, - render: h => h(App, { - props: { propMessage: 'World' } - }) -}) +createApp(App, { propMessage: 'World' }).mount('#app') + diff --git a/example/src/shims-tsx.d.ts b/example/src/shims-tsx.d.ts deleted file mode 100644 index 64fc0a8..0000000 --- a/example/src/shims-tsx.d.ts +++ /dev/null @@ -1,11 +0,0 @@ -import Vue, { VNode } from 'vue' - -declare global { - namespace JSX { - interface Element extends VNode {} - interface ElementClass extends Vue {} - interface IntrinsicElements { - [elem: string]: any - } - } -} diff --git a/example/src/shims-vue.d.ts b/example/src/shims-vue.d.ts index d9f24fa..de1defd 100644 --- a/example/src/shims-vue.d.ts +++ b/example/src/shims-vue.d.ts @@ -1,4 +1,5 @@ declare module '*.vue' { - import Vue from 'vue' - export default Vue + import { Component } from 'vue' + const _default: Component + export default _default } diff --git a/example/src/store.ts b/example/src/store.ts deleted file mode 100644 index e37ffe4..0000000 --- a/example/src/store.ts +++ /dev/null @@ -1,23 +0,0 @@ -import Vue from 'vue' -import Vuex from 'vuex' - -interface CounterState { - count: number -} - -Vue.use(Vuex) - -const state = { - count: 0 -} - -const mutations = { - increment (state: CounterState) { - state.count++ - } -} - -export default new Vuex.Store({ - state, - mutations -}) diff --git a/package.json b/package.json index bf8adda..5f3034f 100644 --- a/package.json +++ b/package.json @@ -50,18 +50,13 @@ "@babel/core": "^7.7.7", "@babel/plugin-proposal-class-properties": "^7.7.4", "@babel/plugin-proposal-decorators": "^7.7.4", - "@babel/plugin-syntax-jsx": "^7.7.4", "@babel/preset-env": "^7.7.7", "@babel/preset-typescript": "^7.8.3", - "@types/chai": "^4.2.7", "@types/jest": "^25.1.3", - "@types/mocha": "^5.2.7", "@types/node": "^13.1.6", "@typescript-eslint/parser": "^2.15.0", - "babel-helper-vue-jsx-merge-props": "^2.0.3", "babel-jest": "^25.1.0", "babel-loader": "^8.0.6", - "babel-plugin-transform-vue-jsx": "^4.0.1", "css-loader": "^3.4.2", "eslint": "^6.8.0", "eslint-plugin-vue-libs": "^4.0.0", @@ -78,7 +73,6 @@ "vue": "^3.0.0-alpha.12", "vue-loader": "^15.8.3", "vuepress": "^1.2.0", - "vuex": "^3.1.2", "webpack": "^4.41.5", "webpack-cli": "^3.3.10" } diff --git a/yarn.lock b/yarn.lock index fc2ea65..9693fee 100644 --- a/yarn.lock +++ b/yarn.lock @@ -484,7 +484,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-syntax-jsx@^7.0.0", "@babel/plugin-syntax-jsx@^7.2.0", "@babel/plugin-syntax-jsx@^7.7.4": +"@babel/plugin-syntax-jsx@^7.0.0", "@babel/plugin-syntax-jsx@^7.2.0": version "7.7.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.7.4.tgz#dab2b56a36fb6c3c222a1fbc71f7bf97f327a9ec" integrity sha512-wuy6fiMe9y7HeZBWXYCGt2RGxZOj0BImZ9EyXJVnVGBKO/Br592rbR3rtIQn0eQhAk9vqaKP5n8tVqEFBQMfLg== @@ -1233,11 +1233,6 @@ dependencies: "@babel/types" "^7.3.0" -"@types/chai@^4.2.7": - version "4.2.7" - resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.2.7.tgz#1c8c25cbf6e59ffa7d6b9652c78e547d9a41692d" - integrity sha512-luq8meHGYwvky0O7u0eQZdA7B4Wd9owUCqvbw2m3XCrCU8mplYOujMBbvyS547AxJkC+pGnd0Cm15eNxEUNU8g== - "@types/color-name@^1.1.1": version "1.1.1" resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" @@ -1305,11 +1300,6 @@ resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== -"@types/mocha@^5.2.7": - version "5.2.7" - resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-5.2.7.tgz#315d570ccb56c53452ff8638738df60726d5b6ea" - integrity sha512-NYrtPht0wGzhwe9+/idPaBB+TqkY9AhTvOLMkThm0IoEfLaiVQZwBwyJ5puCkO3AUCWrmcoePjp2mbFocKy4SQ== - "@types/node@*", "@types/node@^13.1.6": version "13.1.6" resolved "https://registry.yarnpkg.com/@types/node/-/node-13.1.6.tgz#076028d0b0400be8105b89a0a55550c86684ffec" @@ -1452,24 +1442,24 @@ "@vue/babel-plugin-transform-vue-jsx" "^1.1.2" camelcase "^5.0.0" -"@vue/compiler-core@3.0.0-alpha.9": - version "3.0.0-alpha.9" - resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.0.0-alpha.9.tgz#d54cee813bb444afbf347da7f49056e523197b70" - integrity sha512-Hx4yr83DwIS4B6WfEXWJYcD5EjGoBLQKx7EfoKTvp7++ssO574J/BgasJSUbw/DOm3sHumXZtWRDTn/SKSTs7Q== +"@vue/compiler-core@3.0.0-alpha.12": + version "3.0.0-alpha.12" + resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.0.0-alpha.12.tgz#f125bdfd637d6bcc95edb2c55483a242932c5d2e" + integrity sha512-0aDhUP9SS+O1psH2xm08oxQQV+5p5ig/zhSNL8fOreSQabIzfSuNfZqrJ8e2Ffa+zoJkZ0Z0SKJ1+UuzHXm0zA== dependencies: "@babel/parser" "^7.8.6" "@babel/types" "^7.8.6" - "@vue/shared" "3.0.0-alpha.9" + "@vue/shared" "3.0.0-alpha.12" estree-walker "^0.8.1" source-map "^0.6.1" -"@vue/compiler-dom@3.0.0-alpha.9": - version "3.0.0-alpha.9" - resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.0.0-alpha.9.tgz#cb93b9f25eaabaf084bcbae5518cd91565b09ba3" - integrity sha512-LgYtgKTcjjRWX41EMpjAdcvNTM1mSvV6Z9iXcGQs348PzcbihboFvaVqOkK14f9R1d5WsnCaYvUNuIGSNV0Xig== +"@vue/compiler-dom@3.0.0-alpha.12": + version "3.0.0-alpha.12" + resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.0.0-alpha.12.tgz#3f5b856007d5201c477540299bd89e0989e83543" + integrity sha512-MpdGAFmS8Pc945Kgo0FbAQVObi+aTBGpDCz4f1UwBBR8z/TVgENTd8DXzksOnu82RrW1hV5Lbn3uUW/RuHFJlQ== dependencies: - "@vue/compiler-core" "3.0.0-alpha.9" - "@vue/shared" "3.0.0-alpha.9" + "@vue/compiler-core" "3.0.0-alpha.12" + "@vue/shared" "3.0.0-alpha.12" "@vue/component-compiler-utils@^3.1.0": version "3.1.1" @@ -1486,34 +1476,34 @@ source-map "~0.6.1" vue-template-es2015-compiler "^1.9.0" -"@vue/reactivity@3.0.0-alpha.9": - version "3.0.0-alpha.9" - resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.0.0-alpha.9.tgz#e8c8b5ecaad3a60978a503e4fdfd277644c49738" - integrity sha512-Z9jlQ2yjNQIcVBg1SSViUQH8UgVhXHFblw4c6Xrf7vgejjxAqJwk6DKNbAJlneeA3Z84Ul+1Q8JY4zClLagW/A== +"@vue/reactivity@3.0.0-alpha.12": + version "3.0.0-alpha.12" + resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.0.0-alpha.12.tgz#35cb74dd08ee8f8929166b54cbaa0c30c959a865" + integrity sha512-9lSysYh00p1lkZehwjUf6r4aZIgp+rRKIWfxlffnnEwH1rloOV0RkYJrix4NTOcxHHqIYYcoGBVJ3AK64pCJoQ== dependencies: - "@vue/shared" "3.0.0-alpha.9" + "@vue/shared" "3.0.0-alpha.12" -"@vue/runtime-core@3.0.0-alpha.9": - version "3.0.0-alpha.9" - resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.0.0-alpha.9.tgz#295884f0cbec22be3fbcfce0ff1a2493e33abb67" - integrity sha512-mqTQ2kpKtUKwvMT23VDm6HEIt+8SxvOaL47aLs5uROs7Jamgp0K2oNkGH/MltWpaDkXVSsbSBBgijgYDsKlbZw== +"@vue/runtime-core@3.0.0-alpha.12": + version "3.0.0-alpha.12" + resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.0.0-alpha.12.tgz#790c4a9743d2999d1886b6da1a193f90aaf5fa9a" + integrity sha512-eVhd4bbVNd25FulwR9B6QD5+TeADlwSUm1ktRA0zvO3Sy+QAABPXXI147R/i18tr2v51tVWsUTIWz5f7H7Uang== dependencies: - "@vue/reactivity" "3.0.0-alpha.9" - "@vue/shared" "3.0.0-alpha.9" + "@vue/reactivity" "3.0.0-alpha.12" + "@vue/shared" "3.0.0-alpha.12" -"@vue/runtime-dom@3.0.0-alpha.9": - version "3.0.0-alpha.9" - resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.0.0-alpha.9.tgz#dfbfcbd4e3bf69a74736c1c3d79780a31434ad6f" - integrity sha512-zWDW7Lg38PDoW+grQsSPzBauMMeY6A9yw/qaAzzgeN71EXJRInmv1fog/dVuWbD7/ZNc8E4jzDUJL16ryGbSmg== +"@vue/runtime-dom@3.0.0-alpha.12": + version "3.0.0-alpha.12" + resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.0.0-alpha.12.tgz#70044b72db2ec184b49baaa6e36fc7ac6f7b2fbd" + integrity sha512-G5JHfJfm/NX0hsoI/x3PNYqzv99B4Dryz9WU++WAIwM+VZLyTat0H6Q3jWdVeGm5h9tY/zr6UD7NokGRKuwsUw== dependencies: - "@vue/runtime-core" "3.0.0-alpha.9" - "@vue/shared" "3.0.0-alpha.9" + "@vue/runtime-core" "3.0.0-alpha.12" + "@vue/shared" "3.0.0-alpha.12" csstype "^2.6.8" -"@vue/shared@3.0.0-alpha.9": - version "3.0.0-alpha.9" - resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.0.0-alpha.9.tgz#681053df422dea1c8c2f54e860ef7c4b949b9852" - integrity sha512-34jsIMNwXJ6V6qlGx5ATw4YHTRxoKCyKN8MulRrUxo4BDhzEl1T1nsh6A9dsmJ8MGki/4MtYyxStTnPBQCLNfA== +"@vue/shared@3.0.0-alpha.12": + version "3.0.0-alpha.12" + resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.0.0-alpha.12.tgz#36855f95e2855f0099980aebf63edf51e0bad471" + integrity sha512-SVXQd0fJ7Fod7J8WBFDPLp0rNobnixo11E+OevC9cBs5Y0fZklAr+8i5XaJJ/fdPr9qDWFHweXDwIvVzpoZMOA== "@vuepress/core@^1.2.0": version "1.2.0" @@ -2163,11 +2153,6 @@ babel-eslint@^10.0.1: eslint-visitor-keys "^1.0.0" resolve "^1.12.0" -babel-helper-vue-jsx-merge-props@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-2.0.3.tgz#22aebd3b33902328e513293a8e4992b384f9f1b6" - integrity sha512-gsLiKK7Qrb7zYJNgiXKpXblxbV5ffSwR0f5whkPAaBAR4fhi6bwRZxX9wBlIc5M/v8CCkXUbXZL4N/nSE97cqg== - babel-jest@^25.1.0: version "25.1.0" resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-25.1.0.tgz#206093ac380a4b78c4404a05b3277391278f80fb" @@ -2227,13 +2212,6 @@ babel-plugin-module-resolver@3.2.0: reselect "^3.0.1" resolve "^1.4.0" -babel-plugin-transform-vue-jsx@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-vue-jsx/-/babel-plugin-transform-vue-jsx-4.0.1.tgz#2c8bddce87a6ef09eaa59869ff1bfbeeafc5f88d" - integrity sha512-wbOz7ITB5cloLSjKUU1hWn8zhR+Dwah/RZiTiJY/CQliCwhowmzu6m7NEF+y5EJX/blDzGjRtZvC10Vdb3Q7vw== - dependencies: - esutils "^2.0.2" - babel-preset-jest@^25.1.0: version "25.1.0" resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-25.1.0.tgz#d0aebfebb2177a21cde710996fce8486d34f1d33" @@ -9973,14 +9951,14 @@ vue@^2.6.10: resolved "https://registry.yarnpkg.com/vue/-/vue-2.6.11.tgz#76594d877d4b12234406e84e35275c6d514125c5" integrity sha512-VfPwgcGABbGAue9+sfrD4PuwFar7gPb1yl1UK1MwXoQPAw0BKSqWfoYCT/ThFrdEVWoI51dBuyCoiNU9bZDZxQ== -vue@^3.0.0-alpha.9: - version "3.0.0-alpha.9" - resolved "https://registry.yarnpkg.com/vue/-/vue-3.0.0-alpha.9.tgz#f84b6b52caf6753a8cefda370bd6bbd298b5b06a" - integrity sha512-zZrfbchyCQXF/+9B5fD4djlqzZ2XB39MxDzTaJKfuMjs/CgD2CTDiEVrOcP9HwMjr48cpARiFH13vvl4/F73RA== +vue@^3.0.0-alpha.12: + version "3.0.0-alpha.12" + resolved "https://registry.yarnpkg.com/vue/-/vue-3.0.0-alpha.12.tgz#b8eb8dd47822e8d4479bd2d4155a28f7b2c72689" + integrity sha512-EKMdt7MOSXLo6F6h8UHLI8GzW58qDyyKPLt4NV6GOzyjtSPdlx2j+ZsCe6C9d+NRXSvvf4RtUwpWqOZ/jGmZwg== dependencies: - "@vue/compiler-dom" "3.0.0-alpha.9" - "@vue/runtime-dom" "3.0.0-alpha.9" - "@vue/shared" "3.0.0-alpha.9" + "@vue/compiler-dom" "3.0.0-alpha.12" + "@vue/runtime-dom" "3.0.0-alpha.12" + "@vue/shared" "3.0.0-alpha.12" vuepress-html-webpack-plugin@^3.2.0: version "3.2.0" @@ -10020,11 +9998,6 @@ vuepress@^1.2.0: envinfo "^7.2.0" opencollective-postinstall "^2.0.2" -vuex@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/vuex/-/vuex-3.1.2.tgz#a2863f4005aa73f2587e55c3fadf3f01f69c7d4d" - integrity sha512-ha3jNLJqNhhrAemDXcmMJMKf1Zu4sybMPr9KxJIuOpVcsDQlTBYLLladav2U+g1AvdYDG5Gs0xBTb0M5pXXYFQ== - w3c-hr-time@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz#82ac2bff63d950ea9e3189a58a65625fedf19045" From a577a263024c03fa81f9d52709a5d25335c296c2 Mon Sep 17 00:00:00 2001 From: ktsn Date: Sun, 12 Apr 2020 20:31:51 +0800 Subject: [PATCH 06/69] chore: update release script --- build/release.sh | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/build/release.sh b/build/release.sh index 46f2690..edc1ae8 100755 --- a/build/release.sh +++ b/build/release.sh @@ -1,8 +1,11 @@ #!/bin/bash set -e read -p "Enter release version: " VERSION +read -p "Enter release tag (latest): " TAG -read -p "Releasing $VERSION - are you sure? (y/N) " -n 1 -r +TAG=${TAG:-latest} + +read -p "Releasing $VERSION for the tag '$TAG' - are you sure? (y/n)" -n 1 -r echo # (optional) move to a new line if [[ $REPLY =~ ^[Yy]$ ]] then @@ -19,5 +22,5 @@ then # publish git push origin refs/tags/v$VERSION git push - npm publish + npm publish --tag $TAG fi \ No newline at end of file From a9de2025bf95acf32afef635ad6159dd59761fa3 Mon Sep 17 00:00:00 2001 From: ktsn Date: Sun, 12 Apr 2020 20:33:08 +0800 Subject: [PATCH 07/69] [build] 8.0.0-alpha.1 --- dist/vue-class-component.common.js | 469 +++++++++---------- dist/vue-class-component.esm.browser.js | 359 ++++++--------- dist/vue-class-component.esm.browser.min.js | 4 +- dist/vue-class-component.esm.js | 467 +++++++++---------- dist/vue-class-component.js | 479 ++++++++++---------- dist/vue-class-component.min.js | 4 +- 6 files changed, 869 insertions(+), 913 deletions(-) diff --git a/dist/vue-class-component.common.js b/dist/vue-class-component.common.js index e85b1c4..43e8f8e 100644 --- a/dist/vue-class-component.common.js +++ b/dist/vue-class-component.common.js @@ -1,5 +1,5 @@ /** - * vue-class-component v7.2.3 + * vue-class-component v8.0.0-alpha.1 * (c) 2015-present Evan You * @license MIT */ @@ -7,22 +7,26 @@ Object.defineProperty(exports, '__esModule', { value: true }); -function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } - -var Vue = _interopDefault(require('vue')); +function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } +} -function _typeof(obj) { - if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { - _typeof = function (obj) { - return typeof obj; - }; - } else { - _typeof = function (obj) { - return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }; +function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); } +} - return _typeof(obj); +function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + return Constructor; } function _defineProperty(obj, key, value) { @@ -40,6 +44,87 @@ function _defineProperty(obj, key, value) { return obj; } +function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + if (enumerableOnly) symbols = symbols.filter(function (sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + }); + keys.push.apply(keys, symbols); + } + + return keys; +} + +function _objectSpread2(target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i] != null ? arguments[i] : {}; + + if (i % 2) { + ownKeys(Object(source), true).forEach(function (key) { + _defineProperty(target, key, source[key]); + }); + } else if (Object.getOwnPropertyDescriptors) { + Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); + } else { + ownKeys(Object(source)).forEach(function (key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + }); + } + } + + return target; +} + +function _inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function"); + } + + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + writable: true, + configurable: true + } + }); + if (superClass) _setPrototypeOf(subClass, superClass); +} + +function _getPrototypeOf(o) { + _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { + return o.__proto__ || Object.getPrototypeOf(o); + }; + return _getPrototypeOf(o); +} + +function _setPrototypeOf(o, p) { + _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + + return _setPrototypeOf(o, p); +} + +function _assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + + return self; +} + +function _possibleConstructorReturn(self, call) { + if (call && (typeof call === "object" || typeof call === "function")) { + return call; + } + + return _assertThisInitialized(self); +} + function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); } @@ -60,270 +145,190 @@ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); } -// The rational behind the verbose Reflect-feature check below is the fact that there are polyfills -// which add an implementation for Reflect.defineMetadata but not for Reflect.getOwnMetadataKeys. -// Without this check consumers will encounter hard to track down runtime errors. -function reflectionIsSupported() { - return typeof Reflect !== 'undefined' && Reflect.defineMetadata && Reflect.getOwnMetadataKeys; -} -function copyReflectionMetadata(to, from) { - forwardMetadata(to, from); - Object.getOwnPropertyNames(from.prototype).forEach(function (key) { - forwardMetadata(to.prototype, from.prototype, key); - }); - Object.getOwnPropertyNames(from).forEach(function (key) { - forwardMetadata(to, from, key); - }); +function isFunction(value) { + return typeof value === 'function'; } -function forwardMetadata(to, from, propertyKey) { - var metaKeys = propertyKey ? Reflect.getOwnMetadataKeys(from, propertyKey) : Reflect.getOwnMetadataKeys(from); - metaKeys.forEach(function (metaKey) { - var metadata = propertyKey ? Reflect.getOwnMetadata(metaKey, from, propertyKey) : Reflect.getOwnMetadata(metaKey, from); +function getSuperOptions(Ctor) { + var superProto = Object.getPrototypeOf(Ctor.prototype); - if (propertyKey) { - Reflect.defineMetadata(metaKey, metadata, to, propertyKey); - } else { - Reflect.defineMetadata(metaKey, metadata, to); - } - }); -} + if (!superProto) { + return undefined; + } -var fakeArray = { - __proto__: [] -}; -var hasProto = fakeArray instanceof Array; -function createDecorator(factory) { - return function (target, key, index) { - var Ctor = typeof target === 'function' ? target : target.constructor; + var Super = superProto.constructor; + return Super.__vccOpts; +} - if (!Ctor.__decorators__) { - Ctor.__decorators__ = []; - } +var Vue = +/*#__PURE__*/ +function () { + function Vue(props) { + var _this = this; - if (typeof index !== 'number') { - index = undefined; - } + _classCallCheck(this, Vue); - Ctor.__decorators__.push(function (options) { - return factory(options, key, index); + this.$props = props; + Object.keys(props).forEach(function (key) { + Object.defineProperty(_this, key, { + enumerable: false, + configurable: true, + writable: true, + value: props[key] + }); }); - }; -} -function mixins() { - for (var _len = arguments.length, Ctors = new Array(_len), _key = 0; _key < _len; _key++) { - Ctors[_key] = arguments[_key]; } + /** @internal */ - return Vue.extend({ - mixins: Ctors - }); -} -function isPrimitive(value) { - var type = _typeof(value); - - return value == null || type !== 'object' && type !== 'function'; -} -function warn(message) { - if (typeof console !== 'undefined') { - console.warn('[vue-class-component] ' + message); - } -} -function collectDataFromConstructor(vm, Component) { - // override _init to prevent to init as Vue instance - var originalInit = Component.prototype._init; + _createClass(Vue, null, [{ + key: "registerHooks", + value: function registerHooks(keys) { + var _this$__vccHooks; - Component.prototype._init = function () { - var _this = this; + (_this$__vccHooks = this.__vccHooks).push.apply(_this$__vccHooks, _toConsumableArray(keys)); + } + }, { + key: "__vccOpts", + get: function get() { + // Early return if `this` is base class as it does not have any options + if (this === Vue) { + return {}; + } - // proxy to actual vm - var keys = Object.getOwnPropertyNames(vm); // 2.2.0 compat (props are no longer exposed as self properties) + var cache = this.hasOwnProperty('__vccCache') && this.__vccCache; - if (vm.$options.props) { - for (var key in vm.$options.props) { - if (!vm.hasOwnProperty(key)) { - keys.push(key); - } + if (cache) { + return cache; } - } - keys.forEach(function (key) { - if (key.charAt(0) !== '_') { - Object.defineProperty(_this, key, { - get: function get() { - return vm[key]; - }, - set: function set(value) { - vm[key] = value; - }, - configurable: true - }); - } - }); - }; // should be acquired class property values + var Ctor = this; // If the options are provided via decorator use it as a base + var options = this.__vccCache = this.hasOwnProperty('__vccBase') ? _objectSpread2({}, this.__vccBase) : {}; // Handle super class options - var data = new Component(); // restore original _init to avoid memory leak (#209) + options["extends"] = getSuperOptions(Ctor); // Handle mixins - Component.prototype._init = originalInit; // create plain data object + var mixins = this.hasOwnProperty('__vccMixins') && this.__vccMixins; - var plainData = {}; - Object.keys(data).forEach(function (key) { - if (data[key] !== undefined) { - plainData[key] = data[key]; - } - }); + if (mixins) { + options.mixins = options.mixins ? options.mixins.concat(mixins) : mixins; + } // Class name -> component name - if (process.env.NODE_ENV !== 'production') { - if (!(Component.prototype instanceof Vue) && Object.keys(plainData).length > 0) { - warn('Component class must inherit Vue or its descendant class ' + 'when class property is used.'); - } - } - return plainData; -} + options.name = options.name || Ctor.name; + options.methods = _objectSpread2({}, options.methods); + options.computed = _objectSpread2({}, options.computed); + var proto = Ctor.prototype; + Object.getOwnPropertyNames(proto).forEach(function (key) { + if (key === 'constructor') { + return; + } // hooks -var $internalHooks = ['data', 'beforeCreate', 'created', 'beforeMount', 'mounted', 'beforeDestroy', 'destroyed', 'beforeUpdate', 'updated', 'activated', 'deactivated', 'render', 'errorCaptured', 'serverPrefetch' // 2.6 -]; -function componentFactory(Component) { - var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - options.name = options.name || Component._componentTag || Component.name; // prototype props. - var proto = Component.prototype; - Object.getOwnPropertyNames(proto).forEach(function (key) { - if (key === 'constructor') { - return; - } // hooks + if (Ctor.__vccHooks.indexOf(key) > -1) { + options[key] = proto[key]; + return; + } + var descriptor = Object.getOwnPropertyDescriptor(proto, key); // methods - if ($internalHooks.indexOf(key) > -1) { - options[key] = proto[key]; - return; - } + if (typeof descriptor.value === 'function') { + options.methods[key] = descriptor.value; + return; + } // computed properties - var descriptor = Object.getOwnPropertyDescriptor(proto, key); - - if (descriptor.value !== void 0) { - // methods - if (typeof descriptor.value === 'function') { - (options.methods || (options.methods = {}))[key] = descriptor.value; - } else { - // typescript decorated data - (options.mixins || (options.mixins = [])).push({ - data: function data() { - return _defineProperty({}, key, descriptor.value); - } - }); - } - } else if (descriptor.get || descriptor.set) { - // computed properties - (options.computed || (options.computed = {}))[key] = { - get: descriptor.get, - set: descriptor.set - }; - } - }); - (options.mixins || (options.mixins = [])).push({ - data: function data() { - return collectDataFromConstructor(this, Component); - } - }); // decorate options - var decorators = Component.__decorators__; + if (descriptor.get || descriptor.set) { + options.computed[key] = { + get: descriptor.get, + set: descriptor.set + }; + return; + } + }); // Class properties -> reactive data - if (decorators) { - decorators.forEach(function (fn) { - return fn(options); - }); - delete Component.__decorators__; - } // find super + var hookDataOption = options.data; + options.data = function () { + var hookData = isFunction(hookDataOption) ? hookDataOption.call(this, this) : hookDataOption; // should be acquired class property values - var superProto = Object.getPrototypeOf(Component.prototype); - var Super = superProto instanceof Vue ? superProto.constructor : Vue; - var Extended = Super.extend(options); - forwardStaticMembers(Extended, Component, Super); + var data = new Ctor(this.$props); // create plain data object - if (reflectionIsSupported()) { - copyReflectionMetadata(Extended, Component); - } + var plainData = {}; + Object.keys(data).forEach(function (key) { + if (data[key] !== undefined && key !== '$props') { + plainData[key] = data[key]; + } + }); + return _objectSpread2({}, hookData, {}, plainData); + }; - return Extended; -} -var reservedPropertyNames = [// Unique id -'cid', // Super Vue constructor -'super', // Component options that will be used by the component -'options', 'superOptions', 'extendOptions', 'sealedOptions', // Private assets -'component', 'directive', 'filter']; -var shouldIgnore = { - prototype: true, - arguments: true, - callee: true, - caller: true -}; - -function forwardStaticMembers(Extended, Original, Super) { - // We have to use getOwnPropertyNames since Babel registers methods as non-enumerable - Object.getOwnPropertyNames(Original).forEach(function (key) { - // Skip the properties that should not be overwritten - if (shouldIgnore[key]) { - return; - } // Some browsers does not allow reconfigure built-in properties - - - var extendedDescriptor = Object.getOwnPropertyDescriptor(Extended, key); - - if (extendedDescriptor && !extendedDescriptor.configurable) { - return; - } + var decorators = this.hasOwnProperty('__vccDecorators') && this.__vccDecorators; - var descriptor = Object.getOwnPropertyDescriptor(Original, key); // If the user agent does not support `__proto__` or its family (IE <= 10), - // the sub class properties may be inherited properties from the super class in TypeScript. - // We need to exclude such properties to prevent to overwrite - // the component options object which stored on the extended constructor (See #192). - // If the value is a referenced value (object or function), - // we can check equality of them and exclude it if they have the same reference. - // If it is a primitive value, it will be forwarded for safety. - - if (!hasProto) { - // Only `cid` is explicitly exluded from property forwarding - // because we cannot detect whether it is a inherited property or not - // on the no `__proto__` environment even though the property is reserved. - if (key === 'cid') { - return; + if (decorators) { + decorators.forEach(function (fn) { + return fn(options); + }); } - var superDescriptor = Object.getOwnPropertyDescriptor(Super, key); + return options; + } + }]); - if (!isPrimitive(descriptor.value) && superDescriptor && superDescriptor.value === descriptor.value) { - return; - } - } // Warn if the users manually declare reserved properties + return Vue; +}(); +/** @internal */ +Vue.__vccHooks = ['data', 'beforeCreate', 'created', 'beforeMount', 'mounted', 'beforeUnmount', 'unmounted', 'beforeUpdate', 'updated', 'activated', 'deactivated', 'render', 'errorCaptured', 'serverPrefetch']; + +function Options(options) { + return function (Component) { + Component.__vccBase = options; + return Component; + }; +} +function createDecorator(factory) { + return function (target, key, index) { + var Ctor = typeof target === 'function' ? target : target.constructor; - if (process.env.NODE_ENV !== 'production' && reservedPropertyNames.indexOf(key) >= 0) { - warn("Static property name '".concat(key, "' declared on class '").concat(Original.name, "' ") + 'conflicts with reserved property name of Vue internal. ' + 'It may cause unexpected behavior of the component. Consider renaming the property.'); + if (!Ctor.__vccDecorators) { + Ctor.__vccDecorators = []; } - Object.defineProperty(Extended, key, descriptor); - }); + if (typeof index !== 'number') { + index = undefined; + } + + Ctor.__vccDecorators.push(function (options) { + return factory(options, key, index); + }); + }; } +function mixins() { + var _a; -function Component(options) { - if (typeof options === 'function') { - return componentFactory(options); + for (var _len = arguments.length, Ctors = new Array(_len), _key = 0; _key < _len; _key++) { + Ctors[_key] = arguments[_key]; } - return function (Component) { - return componentFactory(Component, options); - }; -} + return _a = + /*#__PURE__*/ + function (_Vue) { + _inherits(MixedVue, _Vue); + + function MixedVue() { + _classCallCheck(this, MixedVue); -Component.registerHooks = function registerHooks(keys) { - $internalHooks.push.apply($internalHooks, _toConsumableArray(keys)); -}; + return _possibleConstructorReturn(this, _getPrototypeOf(MixedVue).apply(this, arguments)); + } + + return MixedVue; + }(Vue), _a.__vccMixins = Ctors.map(function (Ctor) { + return Ctor.__vccOpts; + }), _a; +} +exports.Options = Options; +exports.Vue = Vue; exports.createDecorator = createDecorator; -exports.default = Component; exports.mixins = mixins; diff --git a/dist/vue-class-component.esm.browser.js b/dist/vue-class-component.esm.browser.js index 6df468a..2ce44ff 100644 --- a/dist/vue-class-component.esm.browser.js +++ b/dist/vue-class-component.esm.browser.js @@ -1,268 +1,207 @@ /** - * vue-class-component v7.2.3 + * vue-class-component v8.0.0-alpha.1 * (c) 2015-present Evan You * @license MIT */ -import Vue from 'vue'; +function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } -// The rational behind the verbose Reflect-feature check below is the fact that there are polyfills -// which add an implementation for Reflect.defineMetadata but not for Reflect.getOwnMetadataKeys. -// Without this check consumers will encounter hard to track down runtime errors. -function reflectionIsSupported() { - return typeof Reflect !== 'undefined' && Reflect.defineMetadata && Reflect.getOwnMetadataKeys; -} -function copyReflectionMetadata(to, from) { - forwardMetadata(to, from); - Object.getOwnPropertyNames(from.prototype).forEach(key => { - forwardMetadata(to.prototype, from.prototype, key); - }); - Object.getOwnPropertyNames(from).forEach(key => { - forwardMetadata(to, from, key); - }); + return obj; } -function forwardMetadata(to, from, propertyKey) { - var metaKeys = propertyKey ? Reflect.getOwnMetadataKeys(from, propertyKey) : Reflect.getOwnMetadataKeys(from); - metaKeys.forEach(metaKey => { - var metadata = propertyKey ? Reflect.getOwnMetadata(metaKey, from, propertyKey) : Reflect.getOwnMetadata(metaKey, from); +function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); - if (propertyKey) { - Reflect.defineMetadata(metaKey, metadata, to, propertyKey); - } else { - Reflect.defineMetadata(metaKey, metadata, to); - } - }); -} + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + if (enumerableOnly) symbols = symbols.filter(function (sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + }); + keys.push.apply(keys, symbols); + } -var fakeArray = { - __proto__: [] -}; -var hasProto = fakeArray instanceof Array; -function createDecorator(factory) { - return (target, key, index) => { - var Ctor = typeof target === 'function' ? target : target.constructor; + return keys; +} - if (!Ctor.__decorators__) { - Ctor.__decorators__ = []; - } +function _objectSpread2(target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i] != null ? arguments[i] : {}; - if (typeof index !== 'number') { - index = undefined; + if (i % 2) { + ownKeys(Object(source), true).forEach(function (key) { + _defineProperty(target, key, source[key]); + }); + } else if (Object.getOwnPropertyDescriptors) { + Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); + } else { + ownKeys(Object(source)).forEach(function (key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + }); } - - Ctor.__decorators__.push(options => factory(options, key, index)); - }; -} -function mixins() { - for (var _len = arguments.length, Ctors = new Array(_len), _key = 0; _key < _len; _key++) { - Ctors[_key] = arguments[_key]; } - return Vue.extend({ - mixins: Ctors - }); + return target; } -function isPrimitive(value) { - var type = typeof value; - return value == null || type !== 'object' && type !== 'function'; + +function isFunction(value) { + return typeof value === 'function'; } -function warn(message) { - if (typeof console !== 'undefined') { - console.warn('[vue-class-component] ' + message); + +function getSuperOptions(Ctor) { + var superProto = Object.getPrototypeOf(Ctor.prototype); + + if (!superProto) { + return undefined; } + + var Super = superProto.constructor; + return Super.__vccOpts; } -function collectDataFromConstructor(vm, Component) { - // override _init to prevent to init as Vue instance - var originalInit = Component.prototype._init; +class Vue { + constructor(props) { + this.$props = props; + Object.keys(props).forEach(key => { + Object.defineProperty(this, key, { + enumerable: false, + configurable: true, + writable: true, + value: props[key] + }); + }); + } + /** @internal */ - Component.prototype._init = function () { - // proxy to actual vm - var keys = Object.getOwnPropertyNames(vm); // 2.2.0 compat (props are no longer exposed as self properties) - if (vm.$options.props) { - for (var key in vm.$options.props) { - if (!vm.hasOwnProperty(key)) { - keys.push(key); - } - } + static get __vccOpts() { + // Early return if `this` is base class as it does not have any options + if (this === Vue) { + return {}; } - keys.forEach(key => { - if (key.charAt(0) !== '_') { - Object.defineProperty(this, key, { - get: () => vm[key], - set: value => { - vm[key] = value; - }, - configurable: true - }); - } - }); - }; // should be acquired class property values + var cache = this.hasOwnProperty('__vccCache') && this.__vccCache; + if (cache) { + return cache; + } - var data = new Component(); // restore original _init to avoid memory leak (#209) + var Ctor = this; // If the options are provided via decorator use it as a base - Component.prototype._init = originalInit; // create plain data object + var options = this.__vccCache = this.hasOwnProperty('__vccBase') ? _objectSpread2({}, this.__vccBase) : {}; // Handle super class options - var plainData = {}; - Object.keys(data).forEach(key => { - if (data[key] !== undefined) { - plainData[key] = data[key]; - } - }); + options.extends = getSuperOptions(Ctor); // Handle mixins - { - if (!(Component.prototype instanceof Vue) && Object.keys(plainData).length > 0) { - warn('Component class must inherit Vue or its descendant class ' + 'when class property is used.'); - } - } + var mixins = this.hasOwnProperty('__vccMixins') && this.__vccMixins; - return plainData; -} + if (mixins) { + options.mixins = options.mixins ? options.mixins.concat(mixins) : mixins; + } // Class name -> component name -var $internalHooks = ['data', 'beforeCreate', 'created', 'beforeMount', 'mounted', 'beforeDestroy', 'destroyed', 'beforeUpdate', 'updated', 'activated', 'deactivated', 'render', 'errorCaptured', 'serverPrefetch' // 2.6 -]; -function componentFactory(Component) { - var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - options.name = options.name || Component._componentTag || Component.name; // prototype props. - var proto = Component.prototype; - Object.getOwnPropertyNames(proto).forEach(function (key) { - if (key === 'constructor') { - return; - } // hooks + options.name = options.name || Ctor.name; + options.methods = _objectSpread2({}, options.methods); + options.computed = _objectSpread2({}, options.computed); + var proto = Ctor.prototype; + Object.getOwnPropertyNames(proto).forEach(key => { + if (key === 'constructor') { + return; + } // hooks - if ($internalHooks.indexOf(key) > -1) { - options[key] = proto[key]; - return; - } + if (Ctor.__vccHooks.indexOf(key) > -1) { + options[key] = proto[key]; + return; + } - var descriptor = Object.getOwnPropertyDescriptor(proto, key); + var descriptor = Object.getOwnPropertyDescriptor(proto, key); // methods - if (descriptor.value !== void 0) { - // methods if (typeof descriptor.value === 'function') { - (options.methods || (options.methods = {}))[key] = descriptor.value; - } else { - // typescript decorated data - (options.mixins || (options.mixins = [])).push({ - data() { - return { - [key]: descriptor.value - }; - } - - }); + options.methods[key] = descriptor.value; + return; + } // computed properties + + + if (descriptor.get || descriptor.set) { + options.computed[key] = { + get: descriptor.get, + set: descriptor.set + }; + return; } - } else if (descriptor.get || descriptor.set) { - // computed properties - (options.computed || (options.computed = {}))[key] = { - get: descriptor.get, - set: descriptor.set - }; - } - }); - (options.mixins || (options.mixins = [])).push({ - data() { - return collectDataFromConstructor(this, Component); - } + }); // Class properties -> reactive data - }); // decorate options + var hookDataOption = options.data; - var decorators = Component.__decorators__; + options.data = function () { + var hookData = isFunction(hookDataOption) ? hookDataOption.call(this, this) : hookDataOption; // should be acquired class property values - if (decorators) { - decorators.forEach(fn => fn(options)); - delete Component.__decorators__; - } // find super + var data = new Ctor(this.$props); // create plain data object + var plainData = {}; + Object.keys(data).forEach(key => { + if (data[key] !== undefined && key !== '$props') { + plainData[key] = data[key]; + } + }); + return _objectSpread2({}, hookData, {}, plainData); + }; - var superProto = Object.getPrototypeOf(Component.prototype); - var Super = superProto instanceof Vue ? superProto.constructor : Vue; - var Extended = Super.extend(options); - forwardStaticMembers(Extended, Component, Super); + var decorators = this.hasOwnProperty('__vccDecorators') && this.__vccDecorators; + + if (decorators) { + decorators.forEach(fn => fn(options)); + } - if (reflectionIsSupported()) { - copyReflectionMetadata(Extended, Component); + return options; } - return Extended; -} -var reservedPropertyNames = [// Unique id -'cid', // Super Vue constructor -'super', // Component options that will be used by the component -'options', 'superOptions', 'extendOptions', 'sealedOptions', // Private assets -'component', 'directive', 'filter']; -var shouldIgnore = { - prototype: true, - arguments: true, - callee: true, - caller: true -}; - -function forwardStaticMembers(Extended, Original, Super) { - // We have to use getOwnPropertyNames since Babel registers methods as non-enumerable - Object.getOwnPropertyNames(Original).forEach(key => { - // Skip the properties that should not be overwritten - if (shouldIgnore[key]) { - return; - } // Some browsers does not allow reconfigure built-in properties - - - var extendedDescriptor = Object.getOwnPropertyDescriptor(Extended, key); - - if (extendedDescriptor && !extendedDescriptor.configurable) { - return; - } + static registerHooks(keys) { + this.__vccHooks.push(...keys); + } - var descriptor = Object.getOwnPropertyDescriptor(Original, key); // If the user agent does not support `__proto__` or its family (IE <= 10), - // the sub class properties may be inherited properties from the super class in TypeScript. - // We need to exclude such properties to prevent to overwrite - // the component options object which stored on the extended constructor (See #192). - // If the value is a referenced value (object or function), - // we can check equality of them and exclude it if they have the same reference. - // If it is a primitive value, it will be forwarded for safety. - - if (!hasProto) { - // Only `cid` is explicitly exluded from property forwarding - // because we cannot detect whether it is a inherited property or not - // on the no `__proto__` environment even though the property is reserved. - if (key === 'cid') { - return; - } +} +/** @internal */ - var superDescriptor = Object.getOwnPropertyDescriptor(Super, key); +Vue.__vccHooks = ['data', 'beforeCreate', 'created', 'beforeMount', 'mounted', 'beforeUnmount', 'unmounted', 'beforeUpdate', 'updated', 'activated', 'deactivated', 'render', 'errorCaptured', 'serverPrefetch']; - if (!isPrimitive(descriptor.value) && superDescriptor && superDescriptor.value === descriptor.value) { - return; - } - } // Warn if the users manually declare reserved properties +function Options(options) { + return Component => { + Component.__vccBase = options; + return Component; + }; +} +function createDecorator(factory) { + return (target, key, index) => { + var Ctor = typeof target === 'function' ? target : target.constructor; + if (!Ctor.__vccDecorators) { + Ctor.__vccDecorators = []; + } - if ( reservedPropertyNames.indexOf(key) >= 0) { - warn("Static property name '".concat(key, "' declared on class '").concat(Original.name, "' ") + 'conflicts with reserved property name of Vue internal. ' + 'It may cause unexpected behavior of the component. Consider renaming the property.'); + if (typeof index !== 'number') { + index = undefined; } - Object.defineProperty(Extended, key, descriptor); - }); + Ctor.__vccDecorators.push(options => factory(options, key, index)); + }; } +function mixins() { + var _a; -function Component(options) { - if (typeof options === 'function') { - return componentFactory(options); + for (var _len = arguments.length, Ctors = new Array(_len), _key = 0; _key < _len; _key++) { + Ctors[_key] = arguments[_key]; } - return function (Component) { - return componentFactory(Component, options); - }; + return _a = class MixedVue extends Vue {}, _a.__vccMixins = Ctors.map(Ctor => Ctor.__vccOpts), _a; } -Component.registerHooks = function registerHooks(keys) { - $internalHooks.push(...keys); -}; - -export default Component; -export { createDecorator, mixins }; +export { Options, Vue, createDecorator, mixins }; diff --git a/dist/vue-class-component.esm.browser.min.js b/dist/vue-class-component.esm.browser.min.js index 4191e57..c11a5a8 100644 --- a/dist/vue-class-component.esm.browser.min.js +++ b/dist/vue-class-component.esm.browser.min.js @@ -1,6 +1,6 @@ /** - * vue-class-component v7.2.3 + * vue-class-component v8.0.0-alpha.1 * (c) 2015-present Evan You * @license MIT */ -import Vue from"vue";function reflectionIsSupported(){return"undefined"!=typeof Reflect&&Reflect.defineMetadata&&Reflect.getOwnMetadataKeys}function copyReflectionMetadata(e,t){forwardMetadata(e,t),Object.getOwnPropertyNames(t.prototype).forEach(r=>{forwardMetadata(e.prototype,t.prototype,r)}),Object.getOwnPropertyNames(t).forEach(r=>{forwardMetadata(e,t,r)})}function forwardMetadata(e,t,r){(r?Reflect.getOwnMetadataKeys(t,r):Reflect.getOwnMetadataKeys(t)).forEach(o=>{var a=r?Reflect.getOwnMetadata(o,t,r):Reflect.getOwnMetadata(o,t);r?Reflect.defineMetadata(o,a,e,r):Reflect.defineMetadata(o,a,e)})}var fakeArray={__proto__:[]},hasProto=fakeArray instanceof Array;function createDecorator(e){return(t,r,o)=>{var a="function"==typeof t?t:t.constructor;a.__decorators__||(a.__decorators__=[]),"number"!=typeof o&&(o=void 0),a.__decorators__.push(t=>e(t,r,o))}}function mixins(){for(var e=arguments.length,t=new Array(e),r=0;r{"_"!==t.charAt(0)&&Object.defineProperty(this,t,{get:()=>e[t],set:r=>{e[t]=r},configurable:!0})})};var o=new t;t.prototype._init=r;var a={};return Object.keys(o).forEach(e=>{void 0!==o[e]&&(a[e]=o[e])}),a}var $internalHooks=["data","beforeCreate","created","beforeMount","mounted","beforeDestroy","destroyed","beforeUpdate","updated","activated","deactivated","render","errorCaptured","serverPrefetch"];function componentFactory(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};t.name=t.name||e._componentTag||e.name;var r=e.prototype;Object.getOwnPropertyNames(r).forEach(function(e){if("constructor"!==e)if($internalHooks.indexOf(e)>-1)t[e]=r[e];else{var o=Object.getOwnPropertyDescriptor(r,e);void 0!==o.value?"function"==typeof o.value?(t.methods||(t.methods={}))[e]=o.value:(t.mixins||(t.mixins=[])).push({data:()=>({[e]:o.value})}):(o.get||o.set)&&((t.computed||(t.computed={}))[e]={get:o.get,set:o.set})}}),(t.mixins||(t.mixins=[])).push({data(){return collectDataFromConstructor(this,e)}});var o=e.__decorators__;o&&(o.forEach(e=>e(t)),delete e.__decorators__);var a=Object.getPrototypeOf(e.prototype),n=a instanceof Vue?a.constructor:Vue,c=n.extend(t);return forwardStaticMembers(c,e,n),reflectionIsSupported()&©ReflectionMetadata(c,e),c}var shouldIgnore={prototype:!0,arguments:!0,callee:!0,caller:!0};function forwardStaticMembers(e,t,r){Object.getOwnPropertyNames(t).forEach(o=>{if(!shouldIgnore[o]){var a=Object.getOwnPropertyDescriptor(e,o);if(!a||a.configurable){var n=Object.getOwnPropertyDescriptor(t,o);if(!hasProto){if("cid"===o)return;var c=Object.getOwnPropertyDescriptor(r,o);if(!isPrimitive(n.value)&&c&&c.value===n.value)return}Object.defineProperty(e,o,n)}}})}function Component(e){return"function"==typeof e?componentFactory(e):function(t){return componentFactory(t,e)}}Component.registerHooks=function(e){$internalHooks.push(...e)};export default Component;export{createDecorator,mixins}; \ No newline at end of file +function _defineProperty(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);t&&(c=c.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,c)}return r}function _objectSpread2(e){for(var t=1;t{Object.defineProperty(this,t,{enumerable:!1,configurable:!0,writable:!0,value:e[t]})})}static get __vccOpts(){if(this===Vue)return{};var e=this.hasOwnProperty("__vccCache")&&this.__vccCache;if(e)return e;var t=this,r=this.__vccCache=this.hasOwnProperty("__vccBase")?_objectSpread2({},this.__vccBase):{};r.extends=getSuperOptions(t);var c=this.hasOwnProperty("__vccMixins")&&this.__vccMixins;c&&(r.mixins=r.mixins?r.mixins.concat(c):c),r.name=r.name||t.name,r.methods=_objectSpread2({},r.methods),r.computed=_objectSpread2({},r.computed);var o=t.prototype;Object.getOwnPropertyNames(o).forEach(e=>{if("constructor"!==e)if(t.__vccHooks.indexOf(e)>-1)r[e]=o[e];else{var c=Object.getOwnPropertyDescriptor(o,e);"function"!=typeof c.value?(c.get||c.set)&&(r.computed[e]={get:c.get,set:c.set}):r.methods[e]=c.value}});var n=r.data;r.data=function(){var e=isFunction(n)?n.call(this,this):n,r=new t(this.$props),c={};return Object.keys(r).forEach(e=>{void 0!==r[e]&&"$props"!==e&&(c[e]=r[e])}),_objectSpread2({},e,{},c)};var s=this.hasOwnProperty("__vccDecorators")&&this.__vccDecorators;return s&&s.forEach(e=>e(r)),r}static registerHooks(e){this.__vccHooks.push(...e)}}function Options(e){return t=>(t.__vccBase=e,t)}function createDecorator(e){return(t,r,c)=>{var o="function"==typeof t?t:t.constructor;o.__vccDecorators||(o.__vccDecorators=[]),"number"!=typeof c&&(c=void 0),o.__vccDecorators.push(t=>e(t,r,c))}}function mixins(){for(var e,t=arguments.length,r=new Array(t),c=0;ce.__vccOpts),e}Vue.__vccHooks=["data","beforeCreate","created","beforeMount","mounted","beforeUnmount","unmounted","beforeUpdate","updated","activated","deactivated","render","errorCaptured","serverPrefetch"];export{Options,Vue,createDecorator,mixins}; \ No newline at end of file diff --git a/dist/vue-class-component.esm.js b/dist/vue-class-component.esm.js index 511bc43..b503331 100644 --- a/dist/vue-class-component.esm.js +++ b/dist/vue-class-component.esm.js @@ -1,22 +1,28 @@ /** - * vue-class-component v7.2.3 + * vue-class-component v8.0.0-alpha.1 * (c) 2015-present Evan You * @license MIT */ -import Vue from 'vue'; +function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } +} -function _typeof(obj) { - if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { - _typeof = function (obj) { - return typeof obj; - }; - } else { - _typeof = function (obj) { - return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }; +function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); } +} - return _typeof(obj); +function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + return Constructor; } function _defineProperty(obj, key, value) { @@ -34,6 +40,87 @@ function _defineProperty(obj, key, value) { return obj; } +function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + if (enumerableOnly) symbols = symbols.filter(function (sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + }); + keys.push.apply(keys, symbols); + } + + return keys; +} + +function _objectSpread2(target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i] != null ? arguments[i] : {}; + + if (i % 2) { + ownKeys(Object(source), true).forEach(function (key) { + _defineProperty(target, key, source[key]); + }); + } else if (Object.getOwnPropertyDescriptors) { + Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); + } else { + ownKeys(Object(source)).forEach(function (key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + }); + } + } + + return target; +} + +function _inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function"); + } + + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + writable: true, + configurable: true + } + }); + if (superClass) _setPrototypeOf(subClass, superClass); +} + +function _getPrototypeOf(o) { + _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { + return o.__proto__ || Object.getPrototypeOf(o); + }; + return _getPrototypeOf(o); +} + +function _setPrototypeOf(o, p) { + _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + + return _setPrototypeOf(o, p); +} + +function _assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + + return self; +} + +function _possibleConstructorReturn(self, call) { + if (call && (typeof call === "object" || typeof call === "function")) { + return call; + } + + return _assertThisInitialized(self); +} + function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); } @@ -54,269 +141,187 @@ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); } -// The rational behind the verbose Reflect-feature check below is the fact that there are polyfills -// which add an implementation for Reflect.defineMetadata but not for Reflect.getOwnMetadataKeys. -// Without this check consumers will encounter hard to track down runtime errors. -function reflectionIsSupported() { - return typeof Reflect !== 'undefined' && Reflect.defineMetadata && Reflect.getOwnMetadataKeys; -} -function copyReflectionMetadata(to, from) { - forwardMetadata(to, from); - Object.getOwnPropertyNames(from.prototype).forEach(function (key) { - forwardMetadata(to.prototype, from.prototype, key); - }); - Object.getOwnPropertyNames(from).forEach(function (key) { - forwardMetadata(to, from, key); - }); +function isFunction(value) { + return typeof value === 'function'; } -function forwardMetadata(to, from, propertyKey) { - var metaKeys = propertyKey ? Reflect.getOwnMetadataKeys(from, propertyKey) : Reflect.getOwnMetadataKeys(from); - metaKeys.forEach(function (metaKey) { - var metadata = propertyKey ? Reflect.getOwnMetadata(metaKey, from, propertyKey) : Reflect.getOwnMetadata(metaKey, from); +function getSuperOptions(Ctor) { + var superProto = Object.getPrototypeOf(Ctor.prototype); - if (propertyKey) { - Reflect.defineMetadata(metaKey, metadata, to, propertyKey); - } else { - Reflect.defineMetadata(metaKey, metadata, to); - } - }); -} + if (!superProto) { + return undefined; + } -var fakeArray = { - __proto__: [] -}; -var hasProto = fakeArray instanceof Array; -function createDecorator(factory) { - return function (target, key, index) { - var Ctor = typeof target === 'function' ? target : target.constructor; + var Super = superProto.constructor; + return Super.__vccOpts; +} - if (!Ctor.__decorators__) { - Ctor.__decorators__ = []; - } +var Vue = +/*#__PURE__*/ +function () { + function Vue(props) { + var _this = this; - if (typeof index !== 'number') { - index = undefined; - } + _classCallCheck(this, Vue); - Ctor.__decorators__.push(function (options) { - return factory(options, key, index); + this.$props = props; + Object.keys(props).forEach(function (key) { + Object.defineProperty(_this, key, { + enumerable: false, + configurable: true, + writable: true, + value: props[key] + }); }); - }; -} -function mixins() { - for (var _len = arguments.length, Ctors = new Array(_len), _key = 0; _key < _len; _key++) { - Ctors[_key] = arguments[_key]; } + /** @internal */ - return Vue.extend({ - mixins: Ctors - }); -} -function isPrimitive(value) { - var type = _typeof(value); - return value == null || type !== 'object' && type !== 'function'; -} -function warn(message) { - if (typeof console !== 'undefined') { - console.warn('[vue-class-component] ' + message); - } -} - -function collectDataFromConstructor(vm, Component) { - // override _init to prevent to init as Vue instance - var originalInit = Component.prototype._init; + _createClass(Vue, null, [{ + key: "registerHooks", + value: function registerHooks(keys) { + var _this$__vccHooks; - Component.prototype._init = function () { - var _this = this; + (_this$__vccHooks = this.__vccHooks).push.apply(_this$__vccHooks, _toConsumableArray(keys)); + } + }, { + key: "__vccOpts", + get: function get() { + // Early return if `this` is base class as it does not have any options + if (this === Vue) { + return {}; + } - // proxy to actual vm - var keys = Object.getOwnPropertyNames(vm); // 2.2.0 compat (props are no longer exposed as self properties) + var cache = this.hasOwnProperty('__vccCache') && this.__vccCache; - if (vm.$options.props) { - for (var key in vm.$options.props) { - if (!vm.hasOwnProperty(key)) { - keys.push(key); - } + if (cache) { + return cache; } - } - keys.forEach(function (key) { - if (key.charAt(0) !== '_') { - Object.defineProperty(_this, key, { - get: function get() { - return vm[key]; - }, - set: function set(value) { - vm[key] = value; - }, - configurable: true - }); - } - }); - }; // should be acquired class property values + var Ctor = this; // If the options are provided via decorator use it as a base + var options = this.__vccCache = this.hasOwnProperty('__vccBase') ? _objectSpread2({}, this.__vccBase) : {}; // Handle super class options - var data = new Component(); // restore original _init to avoid memory leak (#209) + options["extends"] = getSuperOptions(Ctor); // Handle mixins - Component.prototype._init = originalInit; // create plain data object + var mixins = this.hasOwnProperty('__vccMixins') && this.__vccMixins; - var plainData = {}; - Object.keys(data).forEach(function (key) { - if (data[key] !== undefined) { - plainData[key] = data[key]; - } - }); + if (mixins) { + options.mixins = options.mixins ? options.mixins.concat(mixins) : mixins; + } // Class name -> component name - if (process.env.NODE_ENV !== 'production') { - if (!(Component.prototype instanceof Vue) && Object.keys(plainData).length > 0) { - warn('Component class must inherit Vue or its descendant class ' + 'when class property is used.'); - } - } - return plainData; -} + options.name = options.name || Ctor.name; + options.methods = _objectSpread2({}, options.methods); + options.computed = _objectSpread2({}, options.computed); + var proto = Ctor.prototype; + Object.getOwnPropertyNames(proto).forEach(function (key) { + if (key === 'constructor') { + return; + } // hooks -var $internalHooks = ['data', 'beforeCreate', 'created', 'beforeMount', 'mounted', 'beforeDestroy', 'destroyed', 'beforeUpdate', 'updated', 'activated', 'deactivated', 'render', 'errorCaptured', 'serverPrefetch' // 2.6 -]; -function componentFactory(Component) { - var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - options.name = options.name || Component._componentTag || Component.name; // prototype props. - var proto = Component.prototype; - Object.getOwnPropertyNames(proto).forEach(function (key) { - if (key === 'constructor') { - return; - } // hooks + if (Ctor.__vccHooks.indexOf(key) > -1) { + options[key] = proto[key]; + return; + } + var descriptor = Object.getOwnPropertyDescriptor(proto, key); // methods - if ($internalHooks.indexOf(key) > -1) { - options[key] = proto[key]; - return; - } + if (typeof descriptor.value === 'function') { + options.methods[key] = descriptor.value; + return; + } // computed properties - var descriptor = Object.getOwnPropertyDescriptor(proto, key); - - if (descriptor.value !== void 0) { - // methods - if (typeof descriptor.value === 'function') { - (options.methods || (options.methods = {}))[key] = descriptor.value; - } else { - // typescript decorated data - (options.mixins || (options.mixins = [])).push({ - data: function data() { - return _defineProperty({}, key, descriptor.value); - } - }); - } - } else if (descriptor.get || descriptor.set) { - // computed properties - (options.computed || (options.computed = {}))[key] = { - get: descriptor.get, - set: descriptor.set - }; - } - }); - (options.mixins || (options.mixins = [])).push({ - data: function data() { - return collectDataFromConstructor(this, Component); - } - }); // decorate options - var decorators = Component.__decorators__; + if (descriptor.get || descriptor.set) { + options.computed[key] = { + get: descriptor.get, + set: descriptor.set + }; + return; + } + }); // Class properties -> reactive data - if (decorators) { - decorators.forEach(function (fn) { - return fn(options); - }); - delete Component.__decorators__; - } // find super + var hookDataOption = options.data; + options.data = function () { + var hookData = isFunction(hookDataOption) ? hookDataOption.call(this, this) : hookDataOption; // should be acquired class property values - var superProto = Object.getPrototypeOf(Component.prototype); - var Super = superProto instanceof Vue ? superProto.constructor : Vue; - var Extended = Super.extend(options); - forwardStaticMembers(Extended, Component, Super); + var data = new Ctor(this.$props); // create plain data object - if (reflectionIsSupported()) { - copyReflectionMetadata(Extended, Component); - } + var plainData = {}; + Object.keys(data).forEach(function (key) { + if (data[key] !== undefined && key !== '$props') { + plainData[key] = data[key]; + } + }); + return _objectSpread2({}, hookData, {}, plainData); + }; - return Extended; -} -var reservedPropertyNames = [// Unique id -'cid', // Super Vue constructor -'super', // Component options that will be used by the component -'options', 'superOptions', 'extendOptions', 'sealedOptions', // Private assets -'component', 'directive', 'filter']; -var shouldIgnore = { - prototype: true, - arguments: true, - callee: true, - caller: true -}; - -function forwardStaticMembers(Extended, Original, Super) { - // We have to use getOwnPropertyNames since Babel registers methods as non-enumerable - Object.getOwnPropertyNames(Original).forEach(function (key) { - // Skip the properties that should not be overwritten - if (shouldIgnore[key]) { - return; - } // Some browsers does not allow reconfigure built-in properties - - - var extendedDescriptor = Object.getOwnPropertyDescriptor(Extended, key); - - if (extendedDescriptor && !extendedDescriptor.configurable) { - return; - } + var decorators = this.hasOwnProperty('__vccDecorators') && this.__vccDecorators; - var descriptor = Object.getOwnPropertyDescriptor(Original, key); // If the user agent does not support `__proto__` or its family (IE <= 10), - // the sub class properties may be inherited properties from the super class in TypeScript. - // We need to exclude such properties to prevent to overwrite - // the component options object which stored on the extended constructor (See #192). - // If the value is a referenced value (object or function), - // we can check equality of them and exclude it if they have the same reference. - // If it is a primitive value, it will be forwarded for safety. - - if (!hasProto) { - // Only `cid` is explicitly exluded from property forwarding - // because we cannot detect whether it is a inherited property or not - // on the no `__proto__` environment even though the property is reserved. - if (key === 'cid') { - return; + if (decorators) { + decorators.forEach(function (fn) { + return fn(options); + }); } - var superDescriptor = Object.getOwnPropertyDescriptor(Super, key); + return options; + } + }]); - if (!isPrimitive(descriptor.value) && superDescriptor && superDescriptor.value === descriptor.value) { - return; - } - } // Warn if the users manually declare reserved properties + return Vue; +}(); +/** @internal */ +Vue.__vccHooks = ['data', 'beforeCreate', 'created', 'beforeMount', 'mounted', 'beforeUnmount', 'unmounted', 'beforeUpdate', 'updated', 'activated', 'deactivated', 'render', 'errorCaptured', 'serverPrefetch']; + +function Options(options) { + return function (Component) { + Component.__vccBase = options; + return Component; + }; +} +function createDecorator(factory) { + return function (target, key, index) { + var Ctor = typeof target === 'function' ? target : target.constructor; - if (process.env.NODE_ENV !== 'production' && reservedPropertyNames.indexOf(key) >= 0) { - warn("Static property name '".concat(key, "' declared on class '").concat(Original.name, "' ") + 'conflicts with reserved property name of Vue internal. ' + 'It may cause unexpected behavior of the component. Consider renaming the property.'); + if (!Ctor.__vccDecorators) { + Ctor.__vccDecorators = []; } - Object.defineProperty(Extended, key, descriptor); - }); + if (typeof index !== 'number') { + index = undefined; + } + + Ctor.__vccDecorators.push(function (options) { + return factory(options, key, index); + }); + }; } +function mixins() { + var _a; -function Component(options) { - if (typeof options === 'function') { - return componentFactory(options); + for (var _len = arguments.length, Ctors = new Array(_len), _key = 0; _key < _len; _key++) { + Ctors[_key] = arguments[_key]; } - return function (Component) { - return componentFactory(Component, options); - }; -} + return _a = + /*#__PURE__*/ + function (_Vue) { + _inherits(MixedVue, _Vue); + + function MixedVue() { + _classCallCheck(this, MixedVue); -Component.registerHooks = function registerHooks(keys) { - $internalHooks.push.apply($internalHooks, _toConsumableArray(keys)); -}; + return _possibleConstructorReturn(this, _getPrototypeOf(MixedVue).apply(this, arguments)); + } + + return MixedVue; + }(Vue), _a.__vccMixins = Ctors.map(function (Ctor) { + return Ctor.__vccOpts; + }), _a; +} -export default Component; -export { createDecorator, mixins }; +export { Options, Vue, createDecorator, mixins }; diff --git a/dist/vue-class-component.js b/dist/vue-class-component.js index d095fed..a0d0586 100644 --- a/dist/vue-class-component.js +++ b/dist/vue-class-component.js @@ -1,28 +1,34 @@ /** - * vue-class-component v7.2.3 + * vue-class-component v8.0.0-alpha.1 * (c) 2015-present Evan You * @license MIT */ (function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('vue')) : - typeof define === 'function' && define.amd ? define(['exports', 'vue'], factory) : - (global = global || self, factory(global.VueClassComponent = {}, global.Vue)); -}(this, (function (exports, Vue) { 'use strict'; - - Vue = Vue && Vue.hasOwnProperty('default') ? Vue['default'] : Vue; - - function _typeof(obj) { - if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { - _typeof = function (obj) { - return typeof obj; - }; - } else { - _typeof = function (obj) { - return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }; + typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : + typeof define === 'function' && define.amd ? define(['exports'], factory) : + (global = global || self, factory(global.VueClassComponent = {})); +}(this, (function (exports) { 'use strict'; + + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); } + } - return _typeof(obj); + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + return Constructor; } function _defineProperty(obj, key, value) { @@ -40,6 +46,87 @@ return obj; } + function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + if (enumerableOnly) symbols = symbols.filter(function (sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + }); + keys.push.apply(keys, symbols); + } + + return keys; + } + + function _objectSpread2(target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i] != null ? arguments[i] : {}; + + if (i % 2) { + ownKeys(Object(source), true).forEach(function (key) { + _defineProperty(target, key, source[key]); + }); + } else if (Object.getOwnPropertyDescriptors) { + Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); + } else { + ownKeys(Object(source)).forEach(function (key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + }); + } + } + + return target; + } + + function _inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function"); + } + + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + writable: true, + configurable: true + } + }); + if (superClass) _setPrototypeOf(subClass, superClass); + } + + function _getPrototypeOf(o) { + _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { + return o.__proto__ || Object.getPrototypeOf(o); + }; + return _getPrototypeOf(o); + } + + function _setPrototypeOf(o, p) { + _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + + return _setPrototypeOf(o, p); + } + + function _assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + + return self; + } + + function _possibleConstructorReturn(self, call) { + if (call && (typeof call === "object" || typeof call === "function")) { + return call; + } + + return _assertThisInitialized(self); + } + function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); } @@ -60,272 +147,192 @@ throw new TypeError("Invalid attempt to spread non-iterable instance"); } - // The rational behind the verbose Reflect-feature check below is the fact that there are polyfills - // which add an implementation for Reflect.defineMetadata but not for Reflect.getOwnMetadataKeys. - // Without this check consumers will encounter hard to track down runtime errors. - function reflectionIsSupported() { - return typeof Reflect !== 'undefined' && Reflect.defineMetadata && Reflect.getOwnMetadataKeys; - } - function copyReflectionMetadata(to, from) { - forwardMetadata(to, from); - Object.getOwnPropertyNames(from.prototype).forEach(function (key) { - forwardMetadata(to.prototype, from.prototype, key); - }); - Object.getOwnPropertyNames(from).forEach(function (key) { - forwardMetadata(to, from, key); - }); + function isFunction(value) { + return typeof value === 'function'; } - function forwardMetadata(to, from, propertyKey) { - var metaKeys = propertyKey ? Reflect.getOwnMetadataKeys(from, propertyKey) : Reflect.getOwnMetadataKeys(from); - metaKeys.forEach(function (metaKey) { - var metadata = propertyKey ? Reflect.getOwnMetadata(metaKey, from, propertyKey) : Reflect.getOwnMetadata(metaKey, from); + function getSuperOptions(Ctor) { + var superProto = Object.getPrototypeOf(Ctor.prototype); - if (propertyKey) { - Reflect.defineMetadata(metaKey, metadata, to, propertyKey); - } else { - Reflect.defineMetadata(metaKey, metadata, to); - } - }); - } + if (!superProto) { + return undefined; + } - var fakeArray = { - __proto__: [] - }; - var hasProto = fakeArray instanceof Array; - function createDecorator(factory) { - return function (target, key, index) { - var Ctor = typeof target === 'function' ? target : target.constructor; + var Super = superProto.constructor; + return Super.__vccOpts; + } - if (!Ctor.__decorators__) { - Ctor.__decorators__ = []; - } + var Vue = + /*#__PURE__*/ + function () { + function Vue(props) { + var _this = this; - if (typeof index !== 'number') { - index = undefined; - } + _classCallCheck(this, Vue); - Ctor.__decorators__.push(function (options) { - return factory(options, key, index); + this.$props = props; + Object.keys(props).forEach(function (key) { + Object.defineProperty(_this, key, { + enumerable: false, + configurable: true, + writable: true, + value: props[key] + }); }); - }; - } - function mixins() { - for (var _len = arguments.length, Ctors = new Array(_len), _key = 0; _key < _len; _key++) { - Ctors[_key] = arguments[_key]; } + /** @internal */ - return Vue.extend({ - mixins: Ctors - }); - } - function isPrimitive(value) { - var type = _typeof(value); - - return value == null || type !== 'object' && type !== 'function'; - } - function warn(message) { - if (typeof console !== 'undefined') { - console.warn('[vue-class-component] ' + message); - } - } - function collectDataFromConstructor(vm, Component) { - // override _init to prevent to init as Vue instance - var originalInit = Component.prototype._init; + _createClass(Vue, null, [{ + key: "registerHooks", + value: function registerHooks(keys) { + var _this$__vccHooks; - Component.prototype._init = function () { - var _this = this; + (_this$__vccHooks = this.__vccHooks).push.apply(_this$__vccHooks, _toConsumableArray(keys)); + } + }, { + key: "__vccOpts", + get: function get() { + // Early return if `this` is base class as it does not have any options + if (this === Vue) { + return {}; + } - // proxy to actual vm - var keys = Object.getOwnPropertyNames(vm); // 2.2.0 compat (props are no longer exposed as self properties) + var cache = this.hasOwnProperty('__vccCache') && this.__vccCache; - if (vm.$options.props) { - for (var key in vm.$options.props) { - if (!vm.hasOwnProperty(key)) { - keys.push(key); - } + if (cache) { + return cache; } - } - keys.forEach(function (key) { - if (key.charAt(0) !== '_') { - Object.defineProperty(_this, key, { - get: function get() { - return vm[key]; - }, - set: function set(value) { - vm[key] = value; - }, - configurable: true - }); - } - }); - }; // should be acquired class property values + var Ctor = this; // If the options are provided via decorator use it as a base + var options = this.__vccCache = this.hasOwnProperty('__vccBase') ? _objectSpread2({}, this.__vccBase) : {}; // Handle super class options - var data = new Component(); // restore original _init to avoid memory leak (#209) + options["extends"] = getSuperOptions(Ctor); // Handle mixins - Component.prototype._init = originalInit; // create plain data object + var mixins = this.hasOwnProperty('__vccMixins') && this.__vccMixins; - var plainData = {}; - Object.keys(data).forEach(function (key) { - if (data[key] !== undefined) { - plainData[key] = data[key]; - } - }); + if (mixins) { + options.mixins = options.mixins ? options.mixins.concat(mixins) : mixins; + } // Class name -> component name - { - if (!(Component.prototype instanceof Vue) && Object.keys(plainData).length > 0) { - warn('Component class must inherit Vue or its descendant class ' + 'when class property is used.'); - } - } - return plainData; - } + options.name = options.name || Ctor.name; + options.methods = _objectSpread2({}, options.methods); + options.computed = _objectSpread2({}, options.computed); + var proto = Ctor.prototype; + Object.getOwnPropertyNames(proto).forEach(function (key) { + if (key === 'constructor') { + return; + } // hooks - var $internalHooks = ['data', 'beforeCreate', 'created', 'beforeMount', 'mounted', 'beforeDestroy', 'destroyed', 'beforeUpdate', 'updated', 'activated', 'deactivated', 'render', 'errorCaptured', 'serverPrefetch' // 2.6 - ]; - function componentFactory(Component) { - var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - options.name = options.name || Component._componentTag || Component.name; // prototype props. - var proto = Component.prototype; - Object.getOwnPropertyNames(proto).forEach(function (key) { - if (key === 'constructor') { - return; - } // hooks + if (Ctor.__vccHooks.indexOf(key) > -1) { + options[key] = proto[key]; + return; + } + var descriptor = Object.getOwnPropertyDescriptor(proto, key); // methods - if ($internalHooks.indexOf(key) > -1) { - options[key] = proto[key]; - return; - } + if (typeof descriptor.value === 'function') { + options.methods[key] = descriptor.value; + return; + } // computed properties - var descriptor = Object.getOwnPropertyDescriptor(proto, key); - - if (descriptor.value !== void 0) { - // methods - if (typeof descriptor.value === 'function') { - (options.methods || (options.methods = {}))[key] = descriptor.value; - } else { - // typescript decorated data - (options.mixins || (options.mixins = [])).push({ - data: function data() { - return _defineProperty({}, key, descriptor.value); - } - }); - } - } else if (descriptor.get || descriptor.set) { - // computed properties - (options.computed || (options.computed = {}))[key] = { - get: descriptor.get, - set: descriptor.set - }; - } - }); - (options.mixins || (options.mixins = [])).push({ - data: function data() { - return collectDataFromConstructor(this, Component); - } - }); // decorate options - var decorators = Component.__decorators__; + if (descriptor.get || descriptor.set) { + options.computed[key] = { + get: descriptor.get, + set: descriptor.set + }; + return; + } + }); // Class properties -> reactive data - if (decorators) { - decorators.forEach(function (fn) { - return fn(options); - }); - delete Component.__decorators__; - } // find super + var hookDataOption = options.data; + options.data = function () { + var hookData = isFunction(hookDataOption) ? hookDataOption.call(this, this) : hookDataOption; // should be acquired class property values - var superProto = Object.getPrototypeOf(Component.prototype); - var Super = superProto instanceof Vue ? superProto.constructor : Vue; - var Extended = Super.extend(options); - forwardStaticMembers(Extended, Component, Super); + var data = new Ctor(this.$props); // create plain data object - if (reflectionIsSupported()) { - copyReflectionMetadata(Extended, Component); - } + var plainData = {}; + Object.keys(data).forEach(function (key) { + if (data[key] !== undefined && key !== '$props') { + plainData[key] = data[key]; + } + }); + return _objectSpread2({}, hookData, {}, plainData); + }; - return Extended; - } - var reservedPropertyNames = [// Unique id - 'cid', // Super Vue constructor - 'super', // Component options that will be used by the component - 'options', 'superOptions', 'extendOptions', 'sealedOptions', // Private assets - 'component', 'directive', 'filter']; - var shouldIgnore = { - prototype: true, - arguments: true, - callee: true, - caller: true - }; - - function forwardStaticMembers(Extended, Original, Super) { - // We have to use getOwnPropertyNames since Babel registers methods as non-enumerable - Object.getOwnPropertyNames(Original).forEach(function (key) { - // Skip the properties that should not be overwritten - if (shouldIgnore[key]) { - return; - } // Some browsers does not allow reconfigure built-in properties - - - var extendedDescriptor = Object.getOwnPropertyDescriptor(Extended, key); - - if (extendedDescriptor && !extendedDescriptor.configurable) { - return; - } + var decorators = this.hasOwnProperty('__vccDecorators') && this.__vccDecorators; - var descriptor = Object.getOwnPropertyDescriptor(Original, key); // If the user agent does not support `__proto__` or its family (IE <= 10), - // the sub class properties may be inherited properties from the super class in TypeScript. - // We need to exclude such properties to prevent to overwrite - // the component options object which stored on the extended constructor (See #192). - // If the value is a referenced value (object or function), - // we can check equality of them and exclude it if they have the same reference. - // If it is a primitive value, it will be forwarded for safety. - - if (!hasProto) { - // Only `cid` is explicitly exluded from property forwarding - // because we cannot detect whether it is a inherited property or not - // on the no `__proto__` environment even though the property is reserved. - if (key === 'cid') { - return; + if (decorators) { + decorators.forEach(function (fn) { + return fn(options); + }); } - var superDescriptor = Object.getOwnPropertyDescriptor(Super, key); + return options; + } + }]); - if (!isPrimitive(descriptor.value) && superDescriptor && superDescriptor.value === descriptor.value) { - return; - } - } // Warn if the users manually declare reserved properties + return Vue; + }(); + /** @internal */ + Vue.__vccHooks = ['data', 'beforeCreate', 'created', 'beforeMount', 'mounted', 'beforeUnmount', 'unmounted', 'beforeUpdate', 'updated', 'activated', 'deactivated', 'render', 'errorCaptured', 'serverPrefetch']; + + function Options(options) { + return function (Component) { + Component.__vccBase = options; + return Component; + }; + } + function createDecorator(factory) { + return function (target, key, index) { + var Ctor = typeof target === 'function' ? target : target.constructor; - if ( reservedPropertyNames.indexOf(key) >= 0) { - warn("Static property name '".concat(key, "' declared on class '").concat(Original.name, "' ") + 'conflicts with reserved property name of Vue internal. ' + 'It may cause unexpected behavior of the component. Consider renaming the property.'); + if (!Ctor.__vccDecorators) { + Ctor.__vccDecorators = []; } - Object.defineProperty(Extended, key, descriptor); - }); + if (typeof index !== 'number') { + index = undefined; + } + + Ctor.__vccDecorators.push(function (options) { + return factory(options, key, index); + }); + }; } + function mixins() { + var _a; - function Component(options) { - if (typeof options === 'function') { - return componentFactory(options); + for (var _len = arguments.length, Ctors = new Array(_len), _key = 0; _key < _len; _key++) { + Ctors[_key] = arguments[_key]; } - return function (Component) { - return componentFactory(Component, options); - }; - } + return _a = + /*#__PURE__*/ + function (_Vue) { + _inherits(MixedVue, _Vue); + + function MixedVue() { + _classCallCheck(this, MixedVue); - Component.registerHooks = function registerHooks(keys) { - $internalHooks.push.apply($internalHooks, _toConsumableArray(keys)); - }; + return _possibleConstructorReturn(this, _getPrototypeOf(MixedVue).apply(this, arguments)); + } + + return MixedVue; + }(Vue), _a.__vccMixins = Ctors.map(function (Ctor) { + return Ctor.__vccOpts; + }), _a; + } + exports.Options = Options; + exports.Vue = Vue; exports.createDecorator = createDecorator; - exports.default = Component; exports.mixins = mixins; Object.defineProperty(exports, '__esModule', { value: true }); diff --git a/dist/vue-class-component.min.js b/dist/vue-class-component.min.js index 36e7c46..52b5e9f 100644 --- a/dist/vue-class-component.min.js +++ b/dist/vue-class-component.min.js @@ -1,6 +1,6 @@ /** - * vue-class-component v7.2.3 + * vue-class-component v8.0.0-alpha.1 * (c) 2015-present Evan You * @license MIT */ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("vue")):"function"==typeof define&&define.amd?define(["exports","vue"],t):t((e=e||self).VueClassComponent={},e.Vue)}(this,function(e,t){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function n(e){return function(e){if(Array.isArray(e)){for(var t=0,r=new Array(e.length);t1&&void 0!==arguments[1]?arguments[1]:{};n.name=n.name||e._componentTag||e.name;var c=e.prototype;Object.getOwnPropertyNames(c).forEach(function(e){if("constructor"!==e)if(i.indexOf(e)>-1)n[e]=c[e];else{var t=Object.getOwnPropertyDescriptor(c,e);void 0!==t.value?"function"==typeof t.value?(n.methods||(n.methods={}))[e]=t.value:(n.mixins||(n.mixins=[])).push({data:function(){return function(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}({},e,t.value)}}):(t.get||t.set)&&((n.computed||(n.computed={}))[e]={get:t.get,set:t.set})}}),(n.mixins||(n.mixins=[])).push({data:function(){return function(e,t){var r=t.prototype._init;t.prototype._init=function(){var t=this,r=Object.getOwnPropertyNames(e);if(e.$options.props)for(var n in e.$options.props)e.hasOwnProperty(n)||r.push(n);r.forEach(function(r){"_"!==r.charAt(0)&&Object.defineProperty(t,r,{get:function(){return e[r]},set:function(t){e[r]=t},configurable:!0})})};var n=new t;t.prototype._init=r;var o={};return Object.keys(n).forEach(function(e){void 0!==n[e]&&(o[e]=n[e])}),o}(this,e)}});var u=e.__decorators__;u&&(u.forEach(function(e){return e(n)}),delete e.__decorators__);var p,s,d=Object.getPrototypeOf(e.prototype),y=d instanceof t?d.constructor:t,l=y.extend(n);return function(e,t,n){Object.getOwnPropertyNames(t).forEach(function(o){if(!f[o]){var i=Object.getOwnPropertyDescriptor(e,o);if(!i||i.configurable){var c,u,p=Object.getOwnPropertyDescriptor(t,o);if(!a){if("cid"===o)return;var s=Object.getOwnPropertyDescriptor(n,o);if(c=p.value,u=r(c),null!=c&&("object"===u||"function"===u)&&s&&s.value===p.value)return}Object.defineProperty(e,o,p)}}})}(l,e,y),"undefined"!=typeof Reflect&&Reflect.defineMetadata&&Reflect.getOwnMetadataKeys&&(o(p=l,s=e),Object.getOwnPropertyNames(s.prototype).forEach(function(e){o(p.prototype,s.prototype,e)}),Object.getOwnPropertyNames(s).forEach(function(e){o(p,s,e)})),l}var f={prototype:!0,arguments:!0,callee:!0,caller:!0};function u(e){return"function"==typeof e?c(e):function(t){return c(t,e)}}u.registerHooks=function(e){i.push.apply(i,n(e))},e.createDecorator=function(e){return function(t,r,n){var o="function"==typeof t?t:t.constructor;o.__decorators__||(o.__decorators__=[]),"number"!=typeof n&&(n=void 0),o.__decorators__.push(function(t){return e(t,r,n)})}},e.default=u,e.mixins=function(){for(var e=arguments.length,r=new Array(e),n=0;n-1)n[e]=i[e];else{var t=Object.getOwnPropertyDescriptor(i,e);"function"!=typeof t.value?(t.get||t.set)&&(n.computed[e]={get:t.get,set:t.set}):n.methods[e]=t.value}});var u=n.data;n.data=function(){var e="function"==typeof u?u.call(this,this):u,t=new r(this.$props),n={};return Object.keys(t).forEach(function(e){void 0!==t[e]&&"$props"!==e&&(n[e]=t[e])}),c({},e,{},n)};var a=this.hasOwnProperty("__vccDecorators")&&this.__vccDecorators;return a&&a.forEach(function(e){return e(n)}),n}}],(o=null)&&r(n.prototype,o),i&&r(n,i),e}();f.__vccHooks=["data","beforeCreate","created","beforeMount","mounted","beforeUnmount","unmounted","beforeUpdate","updated","activated","deactivated","render","errorCaptured","serverPrefetch"],e.Options=function(e){return function(t){return t.__vccBase=e,t}},e.Vue=f,e.createDecorator=function(e){return function(t,r,n){var o="function"==typeof t?t:t.constructor;o.__vccDecorators||(o.__vccDecorators=[]),"number"!=typeof n&&(n=void 0),o.__vccDecorators.push(function(t){return e(t,r,n)})}},e.mixins=function(){for(var e,r=arguments.length,n=new Array(r),o=0;o Date: Sun, 12 Apr 2020 20:33:09 +0800 Subject: [PATCH 08/69] [release] 8.0.0-alpha.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 5f3034f..c87924a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "vue-class-component", - "version": "7.2.3", + "version": "8.0.0-alpha.1", "description": "ES201X/TypeScript class decorator for Vue components", "main": "dist/vue-class-component.common.js", "module": "dist/vue-class-component.esm.js", From 0d75c99d8760445bd4f295f41542ada63e1722e0 Mon Sep 17 00:00:00 2001 From: Katashin Date: Sun, 12 Apr 2020 20:36:55 +0800 Subject: [PATCH 09/69] ci: update node version --- .circleci/config.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index c3539bc..18c95db 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -3,7 +3,7 @@ version: 2 defaults: &defaults working_directory: ~/repo docker: - - image: circleci/node:8-browsers + - image: circleci/node:12-browsers jobs: install: @@ -69,4 +69,4 @@ workflows: - install - test: requires: - - install \ No newline at end of file + - install From 5bfebad9af02f81a3076b49e8616c1481dc7cce5 Mon Sep 17 00:00:00 2001 From: ktsn Date: Sun, 12 Apr 2020 21:27:15 +0800 Subject: [PATCH 10/69] feat: make it work with vue-loader --- src/vue.ts | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/vue.ts b/src/vue.ts index 8429c61..484b976 100644 --- a/src/vue.ts +++ b/src/vue.ts @@ -155,6 +155,23 @@ export class Vue implements ComponentPublicInstance<{}, {}, {}, decorators.forEach(fn => fn(options)) } + // from Vue Loader + if (Ctor.render) { + options.render = Ctor.render + } + + if (Ctor.__file) { + options.__file = Ctor.__file + } + + if (Ctor.__cssModules) { + options.__cssModules = Ctor.__cssModules + } + + if (Ctor.__scopeId) { + options.__scopeId = Ctor.__scopeId + } + return options } @@ -194,6 +211,12 @@ export class Vue implements ComponentPublicInstance<{}, {}, {}, errorCaptured?(err: Error, vm: Vue, info: string): boolean | undefined serverPrefetch?(): Promise + // Vue Loader injections + static render?: () => VNode | void + static __file?: string + static __cssModules?: Record + static __scopeId?: string + constructor (props: Props) { this.$props = props From 06a47fef4b3f0104a7cc0b7e59fa340e7e677787 Mon Sep 17 00:00:00 2001 From: ktsn Date: Sun, 12 Apr 2020 21:28:27 +0800 Subject: [PATCH 11/69] docs: make example working --- example/.babelrc | 5 - example/babel.config.js | 5 + example/src/App.vue | 2 +- example/tsconfig.json | 6 +- example/webpack.config.js | 2 +- package.json | 6 +- yarn.lock | 3697 ++----------------------------------- 7 files changed, 194 insertions(+), 3529 deletions(-) delete mode 100644 example/.babelrc create mode 100644 example/babel.config.js diff --git a/example/.babelrc b/example/.babelrc deleted file mode 100644 index 3edcd10..0000000 --- a/example/.babelrc +++ /dev/null @@ -1,5 +0,0 @@ -{ - "presets": [ - ["@babel/env", { "modules": false }] - ] -} diff --git a/example/babel.config.js b/example/babel.config.js new file mode 100644 index 0000000..1eebbca --- /dev/null +++ b/example/babel.config.js @@ -0,0 +1,5 @@ +module.exports = { + presets: [ + ['@babel/env', { modules: false }] + ] +} diff --git a/example/src/App.vue b/example/src/App.vue index b86609a..c261024 100644 --- a/example/src/App.vue +++ b/example/src/App.vue @@ -12,7 +12,7 @@