diff --git a/.gitignore b/.gitignore index 801f9cf..dc583c1 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ .vscode/ +dist/ .rpt2_cache/ coverage/ -node_modules/ \ No newline at end of file +node_modules/ diff --git a/dist/index.d.ts b/dist/index.d.ts deleted file mode 100644 index 9d160f7..0000000 --- a/dist/index.d.ts +++ /dev/null @@ -1,132 +0,0 @@ -import { Context } from "react"; - -type ClassDecorator = (target: T) => T; -type Constructor = new (...args: any[]) => T; -type Token = Function | Object | string | symbol; -type Definition = Function | [Function] | [Token, Function]; -type Provider = { - /** - * Register dependency injection bindings in scope of decorated class - * @param definitions Dependency injection configuration - * @returns Decorated constructor - */ - register(...definitions: Definition[]): void; -}; -type ProviderMixin = T & - Provider & { - contextType: typeof InjectorContext; - WrappedComponent: T; - }; - -declare module "react" { - namespace Component { - function register(...definitions: Definition[]): void; - } -} - -export declare const InjectorContext: Context; - -/** - * Decorator or HOC that register dependency injection bindings - * in scope of decorated class - * @param definitions Dependency injection configuration - * @returns Decorator or HOC - */ -export declare function provider( - ...definitions: Definition[] -): (target: T) => ProviderMixin; - -/** - * Decorator that lazily registers class in scope of specified Provider. - * @param getProvider Lambda function that returns Provider - * @param biding Dependency injection binding - * @returns Decorator - */ -export declare function registerIn( - getProvider: () => Provider, - biding?: Function -): (target: T) => T; - -/** - * Property decorator that resolves a class instance - * which registered by some Provider in hierarchy. - * Instance is cached in Provider that registers it's class. - * @param token Dependency injection token - * @returns Property decorator - */ -export declare function inject(token?: Token): PropertyDecorator; -/** - * Property decorator that resolves a class instance - * which registered by some Provider in hierarchy. - * Instance is cached in Provider that registers it's class. - */ -export declare function inject(target: Object, key: string | symbol): void; -/** - * Create a class instance that registered by some Provider in hierarchy. - * Instance is cached in Provider that registers it's class. - * @param target The object in which we inject class instance - * @param token Dependency injection token - * @returns Resolved class instance - */ -export declare function inject( - target: Object, - token: Constructor | Token -): T; - -/** - * React hook for resolving a class instance that registered by some Provider in hierarchy. - * Instance is cached in Provider that registers it's class. - * @param token Dependency injection token - * @returns Resolved class instance - */ -export declare function useInstance(token: Constructor | Token): T; - -/** - * React hook for resolving a class instances that registered by some Provider in hierarchy. - * Instances are cached in Provider that registers it's classes. - * @param tokens Dependency injection tokens - * @returns Resolved class instances - */ -export declare function useInstances( - ...tokens: { [K in keyof T]: Constructor | Token } -): T; - -/** - * Bind dependency to specified class. - * @param cosntructor Constructor - * @returns Dependency resolver - */ -export declare function toClass(cosntructor: Constructor): Function; - -/** - * Bind dependency to specified value. - * @param value Any value - * @returns Dependency resolver - */ -export declare function toValue(value: any): Function; - -/** - * Bind dependency to specified factory funciton. - * @param factory Factory - * @returns Dependency resolver - */ -export declare function toFactory(factory: () => any): Function; -/** - * Bind dependency to specified factory funciton. - * @param deps Factory dependencies - * @param factory Factory - * @returns Dependency resolver - */ -export declare function toFactory( - deps: { [K in keyof T]: Constructor | Token }, - factory: (...args: T) => any -): Function; - -/** - * Bind dependency to existing instance located by token. - * @param token Dependency injection token - * @returns Dependency resolver - */ -export declare function toExisting(token: Token): Function; - -export { inject as Inject, provider as Provider, registerIn as RegisterIn }; diff --git a/dist/index.esm.js b/dist/index.esm.js deleted file mode 100644 index 3778a39..0000000 --- a/dist/index.esm.js +++ /dev/null @@ -1,583 +0,0 @@ -import "reflect-metadata"; -import { __extends } from "tslib"; -import hoistNonReactStatics from "hoist-non-react-statics"; -import { - Component, - createContext, - createElement, - useContext, - useRef -} from "react"; - -function isFunction(arg) { - return typeof arg === "function"; -} -function isObject(arg) { - return arg && typeof arg === "object"; -} -function isString(arg) { - return typeof arg === "string"; -} -function isSymbol(arg) { - return typeof arg === "symbol"; -} -function isToken(arg) { - return isFunction(arg) || isObject(arg) || isString(arg) || isSymbol(arg); -} -function isReactComponent(prototype) { - return isObject(prototype) && isObject(prototype.isReactComponent); -} -function isValidMetadata(arg) { - return ( - isFunction(arg) && - [Object, Function, Number, String, Boolean].indexOf(arg) === -1 - ); -} - -function getDebugName(value) { - if (isFunction(value)) { - return String(value.displayName || value.name); - } - if (isObject(value) && isFunction(value.constructor)) { - return String(value.constructor.name); - } - return String(value); -} -function logError(message) { - try { - throw new Error(message); - } catch (e) { - console.error(e); - } -} -function logIncorrectBinding(token, binding) { - var tokenName = getDebugName(token); - var bindingName = getDebugName(binding); - logError("Binding [" + tokenName + ", " + bindingName + "] is incorrect."); -} -function logNotFoundDependency(token) { - var name = getDebugName(token); - logError( - "Dependency " + - name + - " is not found.\nPlease register " + - name + - " in some Provider e.g.\n@provider([" + - name + - ", " + - name + - "])\nclass App extends React.Component { /*...*/ }" - ); -} -function logNotFoundProvider(target) { - if (isReactComponent(target)) { - var name_1 = getDebugName(target); - logError( - "Provider is not found.\n Please define Provider and set " + - name_1 + - ".contextType = InjectorContext e.g.\n @provider([MyService, MyService])\n class App extends React.Component { /*...*/ }\n class " + - name_1 + - " extends React.Component {\n static contextType = InjectorContext;\n }" - ); - } else { - logError( - "Provider is not found.\n Please define Provider e.g.\n @provider([MyService, MyService])\n class App extends React.Component { /*...*/ }" - ); - } -} -function logInvalidMetadata(target, token) { - var tokenName = getDebugName(token); - var targetName = getDebugName(target); - logError( - tokenName + - " is not a valid dependency.\nPlease specify ES6 class as property type e.g.\nclass MyService {}\nclass " + - targetName + - " {\n @inject myService: MyService;\n}" - ); -} - -/** @typedef {import("./types").Token} Token */ -/** React Context for Injector */ -var InjectorContext = createContext(null); -/** - * Dependency injection container - * @internal - */ -var Injector = /** @class */ (function(_super) { - __extends(Injector, _super); - function Injector() { - return (_super !== null && _super.apply(this, arguments)) || this; - } - return Injector; -})(Component); -/** - * Find Injector for passed object and cache it inside this object - * @internal - * @param {Object} target The object in which we inject value - * @returns {Injector} - */ -function getInjector(target) { - var injector = target[INJECTOR]; - if (injector) { - return injector; - } - injector = currentInjector || target.context; - if (injector instanceof Injector) { - target[INJECTOR] = injector; - return injector; - } - return null; -} -/** @type {Injector} */ -var currentInjector = null; -/* istanbul ignore next */ -var INJECTOR = typeof Symbol === "function" ? Symbol() : "__injector__"; -/** - * Resolve a class instance that registered by some Provider in hierarchy. - * Instance is cached in Provider that registers it's class. - * @internal - * @param {Injector} injector Injector instance - * @param {Token} token Dependency injection token - * @returns {Object} Resolved class instance - */ -function getInstance(injector, token) { - if (registrationQueue.length > 0) { - registrationQueue.forEach(function(registration) { - registration(); - }); - registrationQueue.length = 0; - } - while (injector) { - var instance = injector._instanceMap.get(token); - if (instance !== undefined) { - return instance; - } - var binding = injector._bindingMap.get(token); - if (binding) { - var prevInjector = currentInjector; - currentInjector = injector; - try { - instance = binding(injector); - } finally { - currentInjector = prevInjector; - } - injector._instanceMap.set(token, instance); - return instance; - } - injector = injector._parent; - } - if (process.env.NODE_ENV !== "production") { - logNotFoundDependency(token); - } - return undefined; -} -/** @type {Function[]} */ -var registrationQueue = []; - -/** @typedef {import("./types").Token} Token */ -/** - * Property decorator that resolves a class instance - * which registered by some Provider in hierarchy. - * Instance is cached in Provider that registers it's class. - * @param {Token | Object} [targetOrToken] Object or Class prototype or dependency injection token - * @param {string | symbol | Function} [keyOrToken] Property key or dependency injection token - */ -function inject(targetOrToken, keyOrToken) { - if (isFunction(keyOrToken)) { - return injectFunction(targetOrToken, keyOrToken); - } - /** @type {Token} */ - var token; - if (!keyOrToken) { - token = targetOrToken; - return injectDecorator; - } - return injectDecorator(targetOrToken, keyOrToken); - function injectDecorator(prototype, key) { - if (process.env.NODE_ENV !== "production") { - defineContextType(prototype); - } else { - prototype.constructor.contextType = InjectorContext; - } - if (!token) { - token = Reflect.getMetadata("design:type", prototype, key); - if (process.env.NODE_ENV !== "production") { - if (!isValidMetadata(token)) { - logInvalidMetadata(targetOrToken, token); - } - } - } - var descriptor = { - configurable: true, - enumerable: true, - get: function() { - var instance = injectFunction(this, token); - Object.defineProperty(this, key, { - enumerable: true, - writable: true, - value: instance - }); - return instance; - }, - set: function(instance) { - Object.defineProperty(this, key, { - enumerable: true, - writable: true, - value: instance - }); - } - }; - Object.defineProperty(prototype, key, descriptor); - return descriptor; - } -} -/** - * Resolve a class instance that registered by some Provider in hierarchy. - * Instance is cached in Provider that registers it's class. - * @internal - * @param {Object} target The object in which we inject class instance - * @param {Token} token Dependency injection token - * @returns {Object} Resolved class instance - */ -function injectFunction(target, token) { - var injector = getInjector(target); - if (process.env.NODE_ENV !== "production") { - if (!injector) { - logNotFoundProvider(target); - } - } - return getInstance(injector, token); -} -/** - * Set Class.contextType = InjectorContext - * @internal - * @param {Object} prototype React Component prototype - */ -function defineContextType(prototype) { - if (isReactComponent(prototype)) { - var constructor = prototype.constructor; - var className_1 = getDebugName(constructor); - if (constructor.contextType !== InjectorContext) { - if (constructor.contextType) { - logError( - "Decorator tries to overwrite existing " + - className_1 + - ".contextType" - ); - } else { - Object.defineProperty(constructor, "contextType", { - get: function() { - return InjectorContext; - }, - set: function() { - logError( - "You are trying to overwrite " + - className_1 + - ".contextType = InjectorContext" - ); - } - }); - } - } - } -} - -/** @typedef {import("./types").Definition} Definition */ -/** @typedef {import("./types").Token} Token */ -/** - * Bind type to specified class. - * @param {new (...args) => any} constructor - * @return {Function} - */ -function toClass(constructor) { - if (process.env.NODE_ENV !== "production") { - if (!isFunction(constructor)) { - logError( - "Class " + getDebugName(constructor) + " is not a valid dependency" - ); - } - } - return asBinding(function(injector) { - var instance = new constructor(); - if (!instance[INJECTOR]) { - instance[INJECTOR] = injector; - } - return instance; - }); -} -/** - * Bind type to specified factory funciton. - * @param {any} depsOrFactory Dependencies or factory - * @param {Function} [factory] Factory - * @return {Function} - */ -function toFactory(depsOrFactory, factory) { - if (process.env.NODE_ENV !== "production") { - if (factory) { - if (!Array.isArray(depsOrFactory)) { - logError( - "Dependency array " + getDebugName(depsOrFactory) + " is invalid" - ); - } - if (!isFunction(factory)) { - logError( - "Factory " + getDebugName(factory) + " is not a valid dependency" - ); - } - } else if (!isFunction(depsOrFactory)) { - logError( - "Factory " + getDebugName(depsOrFactory) + " is not a valid dependency" - ); - } - } - return asBinding( - factory - ? function(injector) { - return factory.apply( - void 0, - depsOrFactory.map(function(token) { - return getInstance(injector, token); - }) - ); - } - : depsOrFactory - ); -} -/** - * Bind type to specified value. - * @param {any} value - * @return {Function} - */ -function toValue(value) { - if (process.env.NODE_ENV !== "production") { - if (value === undefined) { - logError("Please specify some value"); - } - } - return asBinding(function() { - return value; - }); -} -/** - * Bind type to existing instance located by token. - * @param {Token} token - * @return {Function} - */ -function toExisting(token) { - if (process.env.NODE_ENV !== "production") { - if (!isFunction(token)) { - logError( - "Token " + - getDebugName(token) + - " is not a valid dependency injection token" - ); - } - } - return asBinding(function(injector) { - return getInstance(injector, token); - }); -} -/* istanbul ignore next */ -var IS_BINDING = typeof Symbol === "function" ? Symbol() : "__binding__"; -/** - * Mark function as binding function. - * @internal - * @param {Function} binding - * @returns {Function} - */ -function asBinding(binding) { - binding[IS_BINDING] = true; - return binding; -} -/** - * Add bindings to bindings Map - * @internal - * @param {Map} bindingMap - * @param {Definition[]} definitions - */ -function addBindings(bindingMap, definitions) { - definitions.forEach(function(definition) { - var _a; - var token, binding; - if (Array.isArray(definition)) { - (token = definition[0]), - (_a = definition[1]), - (binding = _a === void 0 ? token : _a); - } else { - token = binding = definition; - } - if (process.env.NODE_ENV !== "production") { - if (!isToken(token) || !isFunction(binding)) { - logIncorrectBinding(token, binding); - } - } - // @ts-ignore - bindingMap.set(token, binding[IS_BINDING] ? binding : toClass(binding)); - }); -} - -/** @typedef {import("./types").Definition} Definition */ -/** @typedef {import("./types").Token} Token */ -/** - * HOC that registers dependency injection bindings in scope of decorated component - * @param {...Definition} definitions Dependency injection configuration - */ -var provider = function() { - var definitions = []; - for (var _i = 0; _i < arguments.length; _i++) { - definitions[_i] = arguments[_i]; - } - return function(Wrapped) { - /** @type {Map} */ - var bindingMap = new Map(); - addBindings(bindingMap, definitions); - var Provider = /** @class */ (function(_super) { - __extends(Provider, _super); - function Provider() { - var _this = (_super !== null && _super.apply(this, arguments)) || this; - _this._parent = _this.context; - _this._bindingMap = bindingMap; - _this._instanceMap = new Map(); - return _this; - } - Provider.prototype.componentWillUnmount = function() { - this._instanceMap.forEach(function(instance) { - if (isObject(instance) && isFunction(instance.dispose)) { - instance.dispose(); - } - }); - }; - Provider.prototype.render = function() { - return createElement( - InjectorContext.Provider, - { value: this }, - createElement(Wrapped, this.props) - ); - }; - /** - * Register dependency injection bindings in scope of decorated class - * @param {...Definition} definitions Dependency injection configuration - */ - Provider.register = function() { - var definitions = []; - for (var _i = 0; _i < arguments.length; _i++) { - definitions[_i] = arguments[_i]; - } - addBindings(bindingMap, definitions); - }; - Provider.WrappedComponent = Wrapped; - return Provider; - })(Injector); - if (process.env.NODE_ENV !== "production") { - Provider.displayName = - "Provider(" + (Wrapped.displayName || Wrapped.name) + ")"; - Object.defineProperty(Provider, "contextType", { - get: function() { - return InjectorContext; - }, - set: function() { - logError( - "You are trying to overwrite " + - Provider.displayName + - ".contextType = InjectorContext" - ); - } - }); - } else { - Provider.contextType = InjectorContext; - } - // static fields from component should be visible on the generated Consumer - return hoistNonReactStatics(Provider, Wrapped); - }; -}; -/** - * Register class in specified provider. - * @typedef {{ register(constructor: Function): void }} Provider - * @param {() => Provider} getProvider Function that returns some provider - * @param {Function} [binding] Dependency injection binding - */ -var registerIn = function(getProvider, binding) { - return function(constructor) { - registrationQueue.push(function() { - if (process.env.NODE_ENV !== "production") { - var provider_1 = getProvider(); - if ( - !isFunction(provider_1) || - !(provider_1.prototype instanceof Injector) - ) { - logError( - getDebugName(provider_1) + - " is not a valid Provider. Please use:\n" + - "@registerIn(() => MyProvider)\n" + - ("class " + getDebugName(constructor) + " {}\n") - ); - } else { - provider_1.register(binding ? [constructor, binding] : constructor); - } - } else { - getProvider().register(binding ? [constructor, binding] : constructor); - } - }); - return constructor; - }; -}; - -/** @typedef {import("./types").Token} Token */ -/** - * React hook for resolving a class instance that registered by some Provider in hierarchy. - * Instance is cached in Provider that registers it's class. - * @param {Token} token Dependency injection token - * @returns {Object} Resolved class instance - */ -function useInstance(token) { - var ref = useRef(null); - var injector = useContext(InjectorContext); - if (process.env.NODE_ENV !== "production") { - if (!injector) { - logNotFoundProvider(); - } - } - return ref.current || (ref.current = getInstance(injector, token)); -} -/** - * React hook for resolving a class instances that registered by some Provider in hierarchy. - * Instances are cached in Provider that registers it's classes. - * @param {...Token} tokens Dependency injection tokens - * @returns {Object[]} Resolved class instances - */ -function useInstances() { - var tokens = []; - for (var _i = 0; _i < arguments.length; _i++) { - tokens[_i] = arguments[_i]; - } - var ref = useRef(null); - var injector = useContext(InjectorContext); - if (process.env.NODE_ENV !== "production") { - if (!injector) { - logNotFoundProvider(); - } - } - return ( - ref.current || - (ref.current = tokens.map(function(token) { - return getInstance(injector, token); - })) - ); -} - -export { - inject, - provider, - registerIn, - inject as Inject, - provider as Provider, - registerIn as RegisterIn, - InjectorContext, - toClass, - toFactory, - toExisting, - toValue, - useInstance, - useInstances -}; -//# sourceMappingURL=index.esm.js.map diff --git a/dist/index.esm.js.map b/dist/index.esm.js.map deleted file mode 100644 index 7bc846c..0000000 --- a/dist/index.esm.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.esm.js","sources":["../src/types.ts","../src/errors.js","../src/injector.js","../src/inject.js","../src/bindings.js","../src/provider.js","../src/hooks.js"],"sourcesContent":["export type Token = Function | Object | string | symbol;\r\nexport type Definition = Function | [Function] | [Token, Function];\r\n\r\nexport function isFunction(arg): arg is Function {\r\n return typeof arg === \"function\";\r\n}\r\n\r\nexport function isObject(arg): arg is Object {\r\n return arg && typeof arg === \"object\";\r\n}\r\n\r\nexport function isString(arg): arg is string {\r\n return typeof arg === \"string\";\r\n}\r\n\r\nexport function isSymbol(arg): arg is symbol {\r\n return typeof arg === \"symbol\";\r\n}\r\n\r\nexport function isToken(arg): arg is Token {\r\n return isFunction(arg) || isObject(arg) || isString(arg) || isSymbol(arg);\r\n}\r\n\r\nexport function isReactComponent(prototype) {\r\n return isObject(prototype) && isObject(prototype.isReactComponent);\r\n}\r\n\r\nexport function isValidMetadata(arg): arg is Function {\r\n return (\r\n isFunction(arg) &&\r\n [Object, Function, Number, String, Boolean].indexOf(arg) === -1\r\n );\r\n}\r\n","import { isFunction, isObject, isReactComponent } from \"./types\";\r\n\r\nexport function getDebugName(value) {\r\n if (isFunction(value)) {\r\n return String(value.displayName || value.name);\r\n }\r\n if (isObject(value) && isFunction(value.constructor)) {\r\n return String(value.constructor.name);\r\n }\r\n return String(value);\r\n}\r\n\r\nexport function logError(message) {\r\n try {\r\n throw new Error(message);\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n}\r\n\r\nexport function logIncorrectBinding(token, binding) {\r\n const tokenName = getDebugName(token);\r\n const bindingName = getDebugName(binding);\r\n logError(`Binding [${tokenName}, ${bindingName}] is incorrect.`);\r\n}\r\n\r\nexport function logNotFoundDependency(token) {\r\n const name = getDebugName(token);\r\n logError(\r\n `Dependency ${name} is not found.\r\nPlease register ${name} in some Provider e.g.\r\n@provider([${name}, ${name}])\r\nclass App extends React.Component { /*...*/ }`\r\n );\r\n}\r\n\r\nexport function logNotFoundProvider(target) {\r\n if (isReactComponent(target)) {\r\n const name = getDebugName(target);\r\n logError(\r\n `Provider is not found.\r\n Please define Provider and set ${name}.contextType = InjectorContext e.g.\r\n @provider([MyService, MyService])\r\n class App extends React.Component { /*...*/ }\r\n class ${name} extends React.Component {\r\n static contextType = InjectorContext;\r\n }`\r\n );\r\n } else {\r\n logError(\r\n `Provider is not found.\r\n Please define Provider e.g.\r\n @provider([MyService, MyService])\r\n class App extends React.Component { /*...*/ }`\r\n );\r\n }\r\n}\r\n\r\nexport function logInvalidMetadata(target, token) {\r\n const tokenName = getDebugName(token);\r\n const targetName = getDebugName(target);\r\n logError(\r\n `${tokenName} is not a valid dependency.\r\nPlease specify ES6 class as property type e.g.\r\nclass MyService {}\r\nclass ${targetName} {\r\n @inject myService: MyService;\r\n}`\r\n );\r\n}\r\n","import { Component, createContext } from \"react\";\r\nimport { logNotFoundDependency } from \"./errors\";\r\n/** @typedef {import(\"./types\").Token} Token */\r\n\r\n/** React Context for Injector */\r\nexport const InjectorContext = createContext(null);\r\n\r\n/**\r\n * Dependency injection container\r\n * @internal\r\n */\r\nexport class Injector extends Component {\r\n /** @type {Injector} */\r\n _parent;\r\n /** @type {Map} */\r\n _bindingMap;\r\n /** @type {Map} */\r\n _instanceMap;\r\n}\r\n\r\n/**\r\n * Find Injector for passed object and cache it inside this object\r\n * @internal\r\n * @param {Object} target The object in which we inject value\r\n * @returns {Injector}\r\n */\r\nexport function getInjector(target) {\r\n let injector = target[INJECTOR];\r\n if (injector) {\r\n return injector;\r\n }\r\n injector = currentInjector || target.context;\r\n if (injector instanceof Injector) {\r\n target[INJECTOR] = injector;\r\n return injector;\r\n }\r\n return null;\r\n}\r\n\r\n/** @type {Injector} */\r\nlet currentInjector = null;\r\n\r\n/* istanbul ignore next */\r\nexport const INJECTOR =\r\n typeof Symbol === \"function\" ? Symbol() : \"__injector__\";\r\n\r\n/**\r\n * Resolve a class instance that registered by some Provider in hierarchy.\r\n * Instance is cached in Provider that registers it's class.\r\n * @internal\r\n * @param {Injector} injector Injector instance\r\n * @param {Token} token Dependency injection token\r\n * @returns {Object} Resolved class instance\r\n */\r\nexport function getInstance(injector, token) {\r\n if (registrationQueue.length > 0) {\r\n registrationQueue.forEach(registration => {\r\n registration();\r\n });\r\n registrationQueue.length = 0;\r\n }\r\n while (injector) {\r\n let instance = injector._instanceMap.get(token);\r\n if (instance !== undefined) {\r\n return instance;\r\n }\r\n const binding = injector._bindingMap.get(token);\r\n if (binding) {\r\n const prevInjector = currentInjector;\r\n currentInjector = injector;\r\n try {\r\n instance = binding(injector);\r\n } finally {\r\n currentInjector = prevInjector;\r\n }\r\n injector._instanceMap.set(token, instance);\r\n return instance;\r\n }\r\n injector = injector._parent;\r\n }\r\n if (__DEV__) {\r\n logNotFoundDependency(token);\r\n }\r\n return undefined;\r\n}\r\n\r\n/** @type {Function[]} */\r\nexport const registrationQueue = [];\r\n","import \"reflect-metadata\";\r\nimport { InjectorContext, getInjector, getInstance } from \"./injector\";\r\nimport { isValidMetadata, isReactComponent, isFunction } from \"./types\";\r\nimport {\r\n getDebugName,\r\n logInvalidMetadata,\r\n logNotFoundProvider,\r\n logError\r\n} from \"./errors\";\r\n/** @typedef {import(\"./types\").Token} Token */\r\n\r\n/**\r\n * Property decorator that resolves a class instance\r\n * which registered by some Provider in hierarchy.\r\n * Instance is cached in Provider that registers it's class.\r\n * @param {Token | Object} [targetOrToken] Object or Class prototype or dependency injection token\r\n * @param {string | symbol | Function} [keyOrToken] Property key or dependency injection token\r\n */\r\nexport function inject(targetOrToken, keyOrToken) {\r\n if (isFunction(keyOrToken)) {\r\n return injectFunction(targetOrToken, keyOrToken);\r\n }\r\n /** @type {Token} */\r\n let token;\r\n if (!keyOrToken) {\r\n token = targetOrToken;\r\n return injectDecorator;\r\n }\r\n return injectDecorator(targetOrToken, keyOrToken);\r\n\r\n function injectDecorator(prototype, key) {\r\n if (__DEV__) {\r\n defineContextType(prototype);\r\n } else {\r\n prototype.constructor.contextType = InjectorContext;\r\n }\r\n\r\n if (!token) {\r\n token = Reflect.getMetadata(\"design:type\", prototype, key);\r\n if (__DEV__) {\r\n if (!isValidMetadata(token)) {\r\n logInvalidMetadata(targetOrToken, token);\r\n }\r\n }\r\n }\r\n\r\n const descriptor = {\r\n configurable: true,\r\n enumerable: true,\r\n get() {\r\n const instance = injectFunction(this, token);\r\n Object.defineProperty(this, key, {\r\n enumerable: true,\r\n writable: true,\r\n value: instance\r\n });\r\n return instance;\r\n },\r\n set(instance) {\r\n Object.defineProperty(this, key, {\r\n enumerable: true,\r\n writable: true,\r\n value: instance\r\n });\r\n }\r\n };\r\n\r\n Object.defineProperty(prototype, key, descriptor);\r\n\r\n return descriptor;\r\n }\r\n}\r\n\r\n/**\r\n * Resolve a class instance that registered by some Provider in hierarchy.\r\n * Instance is cached in Provider that registers it's class.\r\n * @internal\r\n * @param {Object} target The object in which we inject class instance\r\n * @param {Token} token Dependency injection token\r\n * @returns {Object} Resolved class instance\r\n */\r\nfunction injectFunction(target, token) {\r\n const injector = getInjector(target);\r\n if (__DEV__) {\r\n if (!injector) {\r\n logNotFoundProvider(target);\r\n }\r\n }\r\n return getInstance(injector, token);\r\n}\r\n\r\n/**\r\n * Set Class.contextType = InjectorContext\r\n * @internal\r\n * @param {Object} prototype React Component prototype\r\n */\r\nfunction defineContextType(prototype) {\r\n if (isReactComponent(prototype)) {\r\n const { constructor } = prototype;\r\n const className = getDebugName(constructor);\r\n if (constructor.contextType !== InjectorContext) {\r\n if (constructor.contextType) {\r\n logError(\r\n `Decorator tries to overwrite existing ${className}.contextType`\r\n );\r\n } else {\r\n Object.defineProperty(constructor, \"contextType\", {\r\n get() {\r\n return InjectorContext;\r\n },\r\n set() {\r\n logError(\r\n `You are trying to overwrite ${className}.contextType = InjectorContext`\r\n );\r\n }\r\n });\r\n }\r\n }\r\n }\r\n}\r\n","import { INJECTOR, getInstance } from \"./injector\";\r\nimport { isFunction, isToken } from \"./types\";\r\nimport { logIncorrectBinding, logError, getDebugName } from \"./errors\";\r\n/** @typedef {import(\"./types\").Definition} Definition */\r\n/** @typedef {import(\"./types\").Token} Token */\r\n\r\n/**\r\n * Bind type to specified class.\r\n * @param {new (...args) => any} constructor\r\n * @return {Function}\r\n */\r\nexport function toClass(constructor) {\r\n if (__DEV__) {\r\n if (!isFunction(constructor)) {\r\n logError(`Class ${getDebugName(constructor)} is not a valid dependency`);\r\n }\r\n }\r\n return asBinding(injector => {\r\n const instance = new constructor();\r\n if (!instance[INJECTOR]) {\r\n instance[INJECTOR] = injector;\r\n }\r\n return instance;\r\n });\r\n}\r\n\r\n/**\r\n * Bind type to specified factory funciton.\r\n * @param {any} depsOrFactory Dependencies or factory\r\n * @param {Function} [factory] Factory\r\n * @return {Function}\r\n */\r\nexport function toFactory(depsOrFactory, factory) {\r\n if (__DEV__) {\r\n if (factory) {\r\n if (!Array.isArray(depsOrFactory)) {\r\n logError(`Dependency array ${getDebugName(depsOrFactory)} is invalid`);\r\n }\r\n if (!isFunction(factory)) {\r\n logError(`Factory ${getDebugName(factory)} is not a valid dependency`);\r\n }\r\n } else if (!isFunction(depsOrFactory)) {\r\n logError(\r\n `Factory ${getDebugName(depsOrFactory)} is not a valid dependency`\r\n );\r\n }\r\n }\r\n return asBinding(\r\n factory\r\n ? injector =>\r\n factory(...depsOrFactory.map(token => getInstance(injector, token)))\r\n : depsOrFactory\r\n );\r\n}\r\n\r\n/**\r\n * Bind type to specified value.\r\n * @param {any} value\r\n * @return {Function}\r\n */\r\nexport function toValue(value) {\r\n if (__DEV__) {\r\n if (value === undefined) {\r\n logError(`Please specify some value`);\r\n }\r\n }\r\n return asBinding(() => value);\r\n}\r\n\r\n/**\r\n * Bind type to existing instance located by token.\r\n * @param {Token} token\r\n * @return {Function}\r\n */\r\nexport function toExisting(token) {\r\n if (__DEV__) {\r\n if (!isFunction(token)) {\r\n logError(\r\n `Token ${getDebugName(token)} is not a valid dependency injection token`\r\n );\r\n }\r\n }\r\n return asBinding(injector => getInstance(injector, token));\r\n}\r\n\r\n/* istanbul ignore next */\r\nconst IS_BINDING = typeof Symbol === \"function\" ? Symbol() : \"__binding__\";\r\n\r\n/**\r\n * Mark function as binding function.\r\n * @internal\r\n * @param {Function} binding\r\n * @returns {Function}\r\n */\r\nfunction asBinding(binding) {\r\n binding[IS_BINDING] = true;\r\n return binding;\r\n}\r\n\r\n/**\r\n * Add bindings to bindings Map\r\n * @internal\r\n * @param {Map} bindingMap\r\n * @param {Definition[]} definitions\r\n */\r\nexport function addBindings(bindingMap, definitions) {\r\n definitions.forEach(definition => {\r\n let token, binding;\r\n if (Array.isArray(definition)) {\r\n [token, binding = token] = definition;\r\n } else {\r\n token = binding = definition;\r\n }\r\n if (__DEV__) {\r\n if (!isToken(token) || !isFunction(binding)) {\r\n logIncorrectBinding(token, binding);\r\n }\r\n }\r\n // @ts-ignore\r\n bindingMap.set(token, binding[IS_BINDING] ? binding : toClass(binding));\r\n });\r\n}\r\n","import { createElement } from \"react\";\r\nimport hoistNonReactStatics from \"hoist-non-react-statics\";\r\nimport { Injector, InjectorContext, registrationQueue } from \"./injector\";\r\nimport { addBindings } from \"./bindings\";\r\nimport { isObject, isFunction } from \"./types\";\r\nimport { logError, getDebugName } from \"./errors\";\r\n/** @typedef {import(\"./types\").Definition} Definition */\r\n/** @typedef {import(\"./types\").Token} Token */\r\n\r\n/**\r\n * HOC that registers dependency injection bindings in scope of decorated component\r\n * @param {...Definition} definitions Dependency injection configuration\r\n */\r\nexport const provider = (...definitions) => Wrapped => {\r\n /** @type {Map} */\r\n const bindingMap = new Map();\r\n\r\n addBindings(bindingMap, definitions);\r\n\r\n class Provider extends Injector {\r\n _parent = this.context;\r\n _bindingMap = bindingMap;\r\n _instanceMap = new Map();\r\n\r\n componentWillUnmount() {\r\n this._instanceMap.forEach(instance => {\r\n if (isObject(instance) && isFunction(instance.dispose)) {\r\n instance.dispose();\r\n }\r\n });\r\n }\r\n\r\n render() {\r\n return createElement(\r\n InjectorContext.Provider,\r\n { value: this },\r\n createElement(Wrapped, this.props)\r\n );\r\n }\r\n\r\n static WrappedComponent = Wrapped;\r\n\r\n /**\r\n * Register dependency injection bindings in scope of decorated class\r\n * @param {...Definition} definitions Dependency injection configuration\r\n */\r\n static register(...definitions) {\r\n addBindings(bindingMap, definitions);\r\n }\r\n }\r\n\r\n if (__DEV__) {\r\n Provider.displayName = `Provider(${Wrapped.displayName || Wrapped.name})`;\r\n\r\n Object.defineProperty(Provider, \"contextType\", {\r\n get() {\r\n return InjectorContext;\r\n },\r\n set() {\r\n logError(\r\n `You are trying to overwrite ${\r\n Provider.displayName\r\n }.contextType = InjectorContext`\r\n );\r\n }\r\n });\r\n } else {\r\n Provider.contextType = InjectorContext;\r\n }\r\n\r\n // static fields from component should be visible on the generated Consumer\r\n return hoistNonReactStatics(Provider, Wrapped);\r\n};\r\n\r\n/**\r\n * Register class in specified provider.\r\n * @typedef {{ register(constructor: Function): void }} Provider\r\n * @param {() => Provider} getProvider Function that returns some provider\r\n * @param {Function} [binding] Dependency injection binding\r\n */\r\nexport const registerIn = (getProvider, binding) => constructor => {\r\n registrationQueue.push(() => {\r\n if (__DEV__) {\r\n const provider = getProvider();\r\n if (!isFunction(provider) || !(provider.prototype instanceof Injector)) {\r\n logError(\r\n `${getDebugName(provider)} is not a valid Provider. Please use:\\n` +\r\n `@registerIn(() => MyProvider)\\n` +\r\n `class ${getDebugName(constructor)} {}\\n`\r\n );\r\n } else {\r\n provider.register(binding ? [constructor, binding] : constructor);\r\n }\r\n } else {\r\n getProvider().register(binding ? [constructor, binding] : constructor);\r\n }\r\n });\r\n return constructor;\r\n};\r\n","import { useContext, useRef } from \"react\";\r\nimport { InjectorContext, getInstance } from \"./injector\";\r\nimport { logNotFoundProvider } from \"./errors\";\r\n/** @typedef {import(\"./types\").Token} Token */\r\n\r\n/**\r\n * React hook for resolving a class instance that registered by some Provider in hierarchy.\r\n * Instance is cached in Provider that registers it's class.\r\n * @param {Token} token Dependency injection token\r\n * @returns {Object} Resolved class instance\r\n */\r\nexport function useInstance(token) {\r\n const ref = useRef(null);\r\n const injector = useContext(InjectorContext);\r\n if (__DEV__) {\r\n if (!injector) {\r\n logNotFoundProvider();\r\n }\r\n }\r\n return ref.current || (ref.current = getInstance(injector, token));\r\n}\r\n\r\n/**\r\n * React hook for resolving a class instances that registered by some Provider in hierarchy.\r\n * Instances are cached in Provider that registers it's classes.\r\n * @param {...Token} tokens Dependency injection tokens\r\n * @returns {Object[]} Resolved class instances\r\n */\r\nexport function useInstances(...tokens) {\r\n const ref = useRef(null);\r\n const injector = useContext(InjectorContext);\r\n if (__DEV__) {\r\n if (!injector) {\r\n logNotFoundProvider();\r\n }\r\n }\r\n return (\r\n ref.current ||\r\n (ref.current = tokens.map(token => getInstance(injector, token)))\r\n );\r\n}\r\n"],"names":["tslib_1.__extends"],"mappings":"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"} \ No newline at end of file diff --git a/dist/index.esm.min.js b/dist/index.esm.min.js deleted file mode 100644 index 643b815..0000000 --- a/dist/index.esm.min.js +++ /dev/null @@ -1,2 +0,0 @@ -import"reflect-metadata";import{__extends as n}from"tslib";import t from"hoist-non-react-statics";import{Component as r,createContext as u,createElement as e,useContext as i,useRef as o}from"react";function f(n){return"function"==typeof n}function c(n){return n&&"object"==typeof n}var a=u(null),l=function(t){function r(){return null!==t&&t.apply(this,arguments)||this}return n(r,t),r}(r);function v(n){var t=n[b];return t||((t=s||n.context)instanceof l?(n[b]=t,t):null)}var s=null,b="function"==typeof Symbol?Symbol():"__injector__";function m(n,t){for(p.length>0&&(p.forEach(function(n){n()}),p.length=0);n;){var r=n.n.get(t);if(void 0!==r)return r;var u=n.t.get(t);if(u){var e=s;s=n;try{r=u(n)}finally{s=e}return n.n.set(t,r),r}n=n.r}}var p=[];function y(n,t){return f(t)?h(n,t):t?u(n,t):(r=n,u);var r;function u(n,t){n.constructor.contextType=a,r||(r=Reflect.getMetadata("design:type",n,t));var u={configurable:!0,enumerable:!0,get:function(){var n=h(this,r);return Object.defineProperty(this,t,{enumerable:!0,writable:!0,value:n}),n},set:function(n){Object.defineProperty(this,t,{enumerable:!0,writable:!0,value:n})}};return Object.defineProperty(n,t,u),u}}function h(n,t){return m(v(n),t)}function _(n){return S(function(t){var r=new n;return r[b]||(r[b]=t),r})}function d(n,t){return S(t?function(r){return t.apply(void 0,n.map(function(n){return m(r,n)}))}:n)}function j(n){return S(function(){return n})}function g(n){return S(function(t){return m(t,n)})}var w="function"==typeof Symbol?Symbol():"__binding__";function S(n){return n[w]=!0,n}function O(n,t){t.forEach(function(t){var r,u,e;Array.isArray(t)?(u=t[0],e=void 0===(r=t[1])?u:r):u=e=t,n.set(u,e[w]?e:_(e))})}var I=function(){for(var r=[],u=0;u} */\r\n _bindingMap;\r\n /** @type {Map} */\r\n _instanceMap;\r\n}\r\n\r\n/**\r\n * Find Injector for passed object and cache it inside this object\r\n * @internal\r\n * @param {Object} target The object in which we inject value\r\n * @returns {Injector}\r\n */\r\nexport function getInjector(target) {\r\n let injector = target[INJECTOR];\r\n if (injector) {\r\n return injector;\r\n }\r\n injector = currentInjector || target.context;\r\n if (injector instanceof Injector) {\r\n target[INJECTOR] = injector;\r\n return injector;\r\n }\r\n return null;\r\n}\r\n\r\n/** @type {Injector} */\r\nlet currentInjector = null;\r\n\r\n/* istanbul ignore next */\r\nexport const INJECTOR =\r\n typeof Symbol === \"function\" ? Symbol() : \"__injector__\";\r\n\r\n/**\r\n * Resolve a class instance that registered by some Provider in hierarchy.\r\n * Instance is cached in Provider that registers it's class.\r\n * @internal\r\n * @param {Injector} injector Injector instance\r\n * @param {Token} token Dependency injection token\r\n * @returns {Object} Resolved class instance\r\n */\r\nexport function getInstance(injector, token) {\r\n if (registrationQueue.length > 0) {\r\n registrationQueue.forEach(registration => {\r\n registration();\r\n });\r\n registrationQueue.length = 0;\r\n }\r\n while (injector) {\r\n let instance = injector._instanceMap.get(token);\r\n if (instance !== undefined) {\r\n return instance;\r\n }\r\n const binding = injector._bindingMap.get(token);\r\n if (binding) {\r\n const prevInjector = currentInjector;\r\n currentInjector = injector;\r\n try {\r\n instance = binding(injector);\r\n } finally {\r\n currentInjector = prevInjector;\r\n }\r\n injector._instanceMap.set(token, instance);\r\n return instance;\r\n }\r\n injector = injector._parent;\r\n }\r\n if (__DEV__) {\r\n logNotFoundDependency(token);\r\n }\r\n return undefined;\r\n}\r\n\r\n/** @type {Function[]} */\r\nexport const registrationQueue = [];\r\n","import \"reflect-metadata\";\r\nimport { InjectorContext, getInjector, getInstance } from \"./injector\";\r\nimport { isValidMetadata, isReactComponent, isFunction } from \"./types\";\r\nimport {\r\n getDebugName,\r\n logInvalidMetadata,\r\n logNotFoundProvider,\r\n logError\r\n} from \"./errors\";\r\n/** @typedef {import(\"./types\").Token} Token */\r\n\r\n/**\r\n * Property decorator that resolves a class instance\r\n * which registered by some Provider in hierarchy.\r\n * Instance is cached in Provider that registers it's class.\r\n * @param {Token | Object} [targetOrToken] Object or Class prototype or dependency injection token\r\n * @param {string | symbol | Function} [keyOrToken] Property key or dependency injection token\r\n */\r\nexport function inject(targetOrToken, keyOrToken) {\r\n if (isFunction(keyOrToken)) {\r\n return injectFunction(targetOrToken, keyOrToken);\r\n }\r\n /** @type {Token} */\r\n let token;\r\n if (!keyOrToken) {\r\n token = targetOrToken;\r\n return injectDecorator;\r\n }\r\n return injectDecorator(targetOrToken, keyOrToken);\r\n\r\n function injectDecorator(prototype, key) {\r\n if (__DEV__) {\r\n defineContextType(prototype);\r\n } else {\r\n prototype.constructor.contextType = InjectorContext;\r\n }\r\n\r\n if (!token) {\r\n token = Reflect.getMetadata(\"design:type\", prototype, key);\r\n if (__DEV__) {\r\n if (!isValidMetadata(token)) {\r\n logInvalidMetadata(targetOrToken, token);\r\n }\r\n }\r\n }\r\n\r\n const descriptor = {\r\n configurable: true,\r\n enumerable: true,\r\n get() {\r\n const instance = injectFunction(this, token);\r\n Object.defineProperty(this, key, {\r\n enumerable: true,\r\n writable: true,\r\n value: instance\r\n });\r\n return instance;\r\n },\r\n set(instance) {\r\n Object.defineProperty(this, key, {\r\n enumerable: true,\r\n writable: true,\r\n value: instance\r\n });\r\n }\r\n };\r\n\r\n Object.defineProperty(prototype, key, descriptor);\r\n\r\n return descriptor;\r\n }\r\n}\r\n\r\n/**\r\n * Resolve a class instance that registered by some Provider in hierarchy.\r\n * Instance is cached in Provider that registers it's class.\r\n * @internal\r\n * @param {Object} target The object in which we inject class instance\r\n * @param {Token} token Dependency injection token\r\n * @returns {Object} Resolved class instance\r\n */\r\nfunction injectFunction(target, token) {\r\n const injector = getInjector(target);\r\n if (__DEV__) {\r\n if (!injector) {\r\n logNotFoundProvider(target);\r\n }\r\n }\r\n return getInstance(injector, token);\r\n}\r\n\r\n/**\r\n * Set Class.contextType = InjectorContext\r\n * @internal\r\n * @param {Object} prototype React Component prototype\r\n */\r\nfunction defineContextType(prototype) {\r\n if (isReactComponent(prototype)) {\r\n const { constructor } = prototype;\r\n const className = getDebugName(constructor);\r\n if (constructor.contextType !== InjectorContext) {\r\n if (constructor.contextType) {\r\n logError(\r\n `Decorator tries to overwrite existing ${className}.contextType`\r\n );\r\n } else {\r\n Object.defineProperty(constructor, \"contextType\", {\r\n get() {\r\n return InjectorContext;\r\n },\r\n set() {\r\n logError(\r\n `You are trying to overwrite ${className}.contextType = InjectorContext`\r\n );\r\n }\r\n });\r\n }\r\n }\r\n }\r\n}\r\n","import { INJECTOR, getInstance } from \"./injector\";\r\nimport { isFunction, isToken } from \"./types\";\r\nimport { logIncorrectBinding, logError, getDebugName } from \"./errors\";\r\n/** @typedef {import(\"./types\").Definition} Definition */\r\n/** @typedef {import(\"./types\").Token} Token */\r\n\r\n/**\r\n * Bind type to specified class.\r\n * @param {new (...args) => any} constructor\r\n * @return {Function}\r\n */\r\nexport function toClass(constructor) {\r\n if (__DEV__) {\r\n if (!isFunction(constructor)) {\r\n logError(`Class ${getDebugName(constructor)} is not a valid dependency`);\r\n }\r\n }\r\n return asBinding(injector => {\r\n const instance = new constructor();\r\n if (!instance[INJECTOR]) {\r\n instance[INJECTOR] = injector;\r\n }\r\n return instance;\r\n });\r\n}\r\n\r\n/**\r\n * Bind type to specified factory funciton.\r\n * @param {any} depsOrFactory Dependencies or factory\r\n * @param {Function} [factory] Factory\r\n * @return {Function}\r\n */\r\nexport function toFactory(depsOrFactory, factory) {\r\n if (__DEV__) {\r\n if (factory) {\r\n if (!Array.isArray(depsOrFactory)) {\r\n logError(`Dependency array ${getDebugName(depsOrFactory)} is invalid`);\r\n }\r\n if (!isFunction(factory)) {\r\n logError(`Factory ${getDebugName(factory)} is not a valid dependency`);\r\n }\r\n } else if (!isFunction(depsOrFactory)) {\r\n logError(\r\n `Factory ${getDebugName(depsOrFactory)} is not a valid dependency`\r\n );\r\n }\r\n }\r\n return asBinding(\r\n factory\r\n ? injector =>\r\n factory(...depsOrFactory.map(token => getInstance(injector, token)))\r\n : depsOrFactory\r\n );\r\n}\r\n\r\n/**\r\n * Bind type to specified value.\r\n * @param {any} value\r\n * @return {Function}\r\n */\r\nexport function toValue(value) {\r\n if (__DEV__) {\r\n if (value === undefined) {\r\n logError(`Please specify some value`);\r\n }\r\n }\r\n return asBinding(() => value);\r\n}\r\n\r\n/**\r\n * Bind type to existing instance located by token.\r\n * @param {Token} token\r\n * @return {Function}\r\n */\r\nexport function toExisting(token) {\r\n if (__DEV__) {\r\n if (!isFunction(token)) {\r\n logError(\r\n `Token ${getDebugName(token)} is not a valid dependency injection token`\r\n );\r\n }\r\n }\r\n return asBinding(injector => getInstance(injector, token));\r\n}\r\n\r\n/* istanbul ignore next */\r\nconst IS_BINDING = typeof Symbol === \"function\" ? Symbol() : \"__binding__\";\r\n\r\n/**\r\n * Mark function as binding function.\r\n * @internal\r\n * @param {Function} binding\r\n * @returns {Function}\r\n */\r\nfunction asBinding(binding) {\r\n binding[IS_BINDING] = true;\r\n return binding;\r\n}\r\n\r\n/**\r\n * Add bindings to bindings Map\r\n * @internal\r\n * @param {Map} bindingMap\r\n * @param {Definition[]} definitions\r\n */\r\nexport function addBindings(bindingMap, definitions) {\r\n definitions.forEach(definition => {\r\n let token, binding;\r\n if (Array.isArray(definition)) {\r\n [token, binding = token] = definition;\r\n } else {\r\n token = binding = definition;\r\n }\r\n if (__DEV__) {\r\n if (!isToken(token) || !isFunction(binding)) {\r\n logIncorrectBinding(token, binding);\r\n }\r\n }\r\n // @ts-ignore\r\n bindingMap.set(token, binding[IS_BINDING] ? binding : toClass(binding));\r\n });\r\n}\r\n","import { createElement } from \"react\";\r\nimport hoistNonReactStatics from \"hoist-non-react-statics\";\r\nimport { Injector, InjectorContext, registrationQueue } from \"./injector\";\r\nimport { addBindings } from \"./bindings\";\r\nimport { isObject, isFunction } from \"./types\";\r\nimport { logError, getDebugName } from \"./errors\";\r\n/** @typedef {import(\"./types\").Definition} Definition */\r\n/** @typedef {import(\"./types\").Token} Token */\r\n\r\n/**\r\n * HOC that registers dependency injection bindings in scope of decorated component\r\n * @param {...Definition} definitions Dependency injection configuration\r\n */\r\nexport const provider = (...definitions) => Wrapped => {\r\n /** @type {Map} */\r\n const bindingMap = new Map();\r\n\r\n addBindings(bindingMap, definitions);\r\n\r\n class Provider extends Injector {\r\n _parent = this.context;\r\n _bindingMap = bindingMap;\r\n _instanceMap = new Map();\r\n\r\n componentWillUnmount() {\r\n this._instanceMap.forEach(instance => {\r\n if (isObject(instance) && isFunction(instance.dispose)) {\r\n instance.dispose();\r\n }\r\n });\r\n }\r\n\r\n render() {\r\n return createElement(\r\n InjectorContext.Provider,\r\n { value: this },\r\n createElement(Wrapped, this.props)\r\n );\r\n }\r\n\r\n static WrappedComponent = Wrapped;\r\n\r\n /**\r\n * Register dependency injection bindings in scope of decorated class\r\n * @param {...Definition} definitions Dependency injection configuration\r\n */\r\n static register(...definitions) {\r\n addBindings(bindingMap, definitions);\r\n }\r\n }\r\n\r\n if (__DEV__) {\r\n Provider.displayName = `Provider(${Wrapped.displayName || Wrapped.name})`;\r\n\r\n Object.defineProperty(Provider, \"contextType\", {\r\n get() {\r\n return InjectorContext;\r\n },\r\n set() {\r\n logError(\r\n `You are trying to overwrite ${\r\n Provider.displayName\r\n }.contextType = InjectorContext`\r\n );\r\n }\r\n });\r\n } else {\r\n Provider.contextType = InjectorContext;\r\n }\r\n\r\n // static fields from component should be visible on the generated Consumer\r\n return hoistNonReactStatics(Provider, Wrapped);\r\n};\r\n\r\n/**\r\n * Register class in specified provider.\r\n * @typedef {{ register(constructor: Function): void }} Provider\r\n * @param {() => Provider} getProvider Function that returns some provider\r\n * @param {Function} [binding] Dependency injection binding\r\n */\r\nexport const registerIn = (getProvider, binding) => constructor => {\r\n registrationQueue.push(() => {\r\n if (__DEV__) {\r\n const provider = getProvider();\r\n if (!isFunction(provider) || !(provider.prototype instanceof Injector)) {\r\n logError(\r\n `${getDebugName(provider)} is not a valid Provider. Please use:\\n` +\r\n `@registerIn(() => MyProvider)\\n` +\r\n `class ${getDebugName(constructor)} {}\\n`\r\n );\r\n } else {\r\n provider.register(binding ? [constructor, binding] : constructor);\r\n }\r\n } else {\r\n getProvider().register(binding ? [constructor, binding] : constructor);\r\n }\r\n });\r\n return constructor;\r\n};\r\n","import { useContext, useRef } from \"react\";\r\nimport { InjectorContext, getInstance } from \"./injector\";\r\nimport { logNotFoundProvider } from \"./errors\";\r\n/** @typedef {import(\"./types\").Token} Token */\r\n\r\n/**\r\n * React hook for resolving a class instance that registered by some Provider in hierarchy.\r\n * Instance is cached in Provider that registers it's class.\r\n * @param {Token} token Dependency injection token\r\n * @returns {Object} Resolved class instance\r\n */\r\nexport function useInstance(token) {\r\n const ref = useRef(null);\r\n const injector = useContext(InjectorContext);\r\n if (__DEV__) {\r\n if (!injector) {\r\n logNotFoundProvider();\r\n }\r\n }\r\n return ref.current || (ref.current = getInstance(injector, token));\r\n}\r\n\r\n/**\r\n * React hook for resolving a class instances that registered by some Provider in hierarchy.\r\n * Instances are cached in Provider that registers it's classes.\r\n * @param {...Token} tokens Dependency injection tokens\r\n * @returns {Object[]} Resolved class instances\r\n */\r\nexport function useInstances(...tokens) {\r\n const ref = useRef(null);\r\n const injector = useContext(InjectorContext);\r\n if (__DEV__) {\r\n if (!injector) {\r\n logNotFoundProvider();\r\n }\r\n }\r\n return (\r\n ref.current ||\r\n (ref.current = tokens.map(token => getInstance(injector, token)))\r\n );\r\n}\r\n"],"names":["isFunction","arg","isObject","InjectorContext","createContext","tslib_1.__extends","Component","getInjector","target","injector","INJECTOR","currentInjector","context","Injector","Symbol","getInstance","token","registrationQueue","length","forEach","registration","instance","_instanceMap","get","undefined","binding","_bindingMap","prevInjector","set","_parent","inject","targetOrToken","keyOrToken","injectFunction","injectDecorator","prototype","key","constructor","contextType","Reflect","getMetadata","descriptor","configurable","enumerable","this","Object","defineProperty","writable","value","toClass","asBinding","toFactory","depsOrFactory","factory","map","toValue","toExisting","IS_BINDING","addBindings","bindingMap","definitions","definition","Array","isArray","_a","provider","_i","Wrapped","Map","_this","Provider","dispose","createElement","props","hoistNonReactStatics","registerIn","getProvider","push","register","useInstance","ref","useRef","useContext","current","useInstances","tokens"],"mappings":"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"} \ No newline at end of file diff --git a/dist/index.js b/dist/index.js deleted file mode 100644 index b30450e..0000000 --- a/dist/index.js +++ /dev/null @@ -1,583 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { value: true }); - -function _interopDefault(ex) { - return ex && typeof ex === "object" && "default" in ex ? ex["default"] : ex; -} - -require("reflect-metadata"); -var tslib_1 = require("tslib"); -var hoistNonReactStatics = _interopDefault(require("hoist-non-react-statics")); -var react = require("react"); - -function isFunction(arg) { - return typeof arg === "function"; -} -function isObject(arg) { - return arg && typeof arg === "object"; -} -function isString(arg) { - return typeof arg === "string"; -} -function isSymbol(arg) { - return typeof arg === "symbol"; -} -function isToken(arg) { - return isFunction(arg) || isObject(arg) || isString(arg) || isSymbol(arg); -} -function isReactComponent(prototype) { - return isObject(prototype) && isObject(prototype.isReactComponent); -} -function isValidMetadata(arg) { - return ( - isFunction(arg) && - [Object, Function, Number, String, Boolean].indexOf(arg) === -1 - ); -} - -function getDebugName(value) { - if (isFunction(value)) { - return String(value.displayName || value.name); - } - if (isObject(value) && isFunction(value.constructor)) { - return String(value.constructor.name); - } - return String(value); -} -function logError(message) { - try { - throw new Error(message); - } catch (e) { - console.error(e); - } -} -function logIncorrectBinding(token, binding) { - var tokenName = getDebugName(token); - var bindingName = getDebugName(binding); - logError("Binding [" + tokenName + ", " + bindingName + "] is incorrect."); -} -function logNotFoundDependency(token) { - var name = getDebugName(token); - logError( - "Dependency " + - name + - " is not found.\nPlease register " + - name + - " in some Provider e.g.\n@provider([" + - name + - ", " + - name + - "])\nclass App extends React.Component { /*...*/ }" - ); -} -function logNotFoundProvider(target) { - if (isReactComponent(target)) { - var name_1 = getDebugName(target); - logError( - "Provider is not found.\n Please define Provider and set " + - name_1 + - ".contextType = InjectorContext e.g.\n @provider([MyService, MyService])\n class App extends React.Component { /*...*/ }\n class " + - name_1 + - " extends React.Component {\n static contextType = InjectorContext;\n }" - ); - } else { - logError( - "Provider is not found.\n Please define Provider e.g.\n @provider([MyService, MyService])\n class App extends React.Component { /*...*/ }" - ); - } -} -function logInvalidMetadata(target, token) { - var tokenName = getDebugName(token); - var targetName = getDebugName(target); - logError( - tokenName + - " is not a valid dependency.\nPlease specify ES6 class as property type e.g.\nclass MyService {}\nclass " + - targetName + - " {\n @inject myService: MyService;\n}" - ); -} - -/** @typedef {import("./types").Token} Token */ -/** React Context for Injector */ -var InjectorContext = react.createContext(null); -/** - * Dependency injection container - * @internal - */ -var Injector = /** @class */ (function(_super) { - tslib_1.__extends(Injector, _super); - function Injector() { - return (_super !== null && _super.apply(this, arguments)) || this; - } - return Injector; -})(react.Component); -/** - * Find Injector for passed object and cache it inside this object - * @internal - * @param {Object} target The object in which we inject value - * @returns {Injector} - */ -function getInjector(target) { - var injector = target[INJECTOR]; - if (injector) { - return injector; - } - injector = currentInjector || target.context; - if (injector instanceof Injector) { - target[INJECTOR] = injector; - return injector; - } - return null; -} -/** @type {Injector} */ -var currentInjector = null; -/* istanbul ignore next */ -var INJECTOR = typeof Symbol === "function" ? Symbol() : "__injector__"; -/** - * Resolve a class instance that registered by some Provider in hierarchy. - * Instance is cached in Provider that registers it's class. - * @internal - * @param {Injector} injector Injector instance - * @param {Token} token Dependency injection token - * @returns {Object} Resolved class instance - */ -function getInstance(injector, token) { - if (registrationQueue.length > 0) { - registrationQueue.forEach(function(registration) { - registration(); - }); - registrationQueue.length = 0; - } - while (injector) { - var instance = injector._instanceMap.get(token); - if (instance !== undefined) { - return instance; - } - var binding = injector._bindingMap.get(token); - if (binding) { - var prevInjector = currentInjector; - currentInjector = injector; - try { - instance = binding(injector); - } finally { - currentInjector = prevInjector; - } - injector._instanceMap.set(token, instance); - return instance; - } - injector = injector._parent; - } - if (process.env.NODE_ENV !== "production") { - logNotFoundDependency(token); - } - return undefined; -} -/** @type {Function[]} */ -var registrationQueue = []; - -/** @typedef {import("./types").Token} Token */ -/** - * Property decorator that resolves a class instance - * which registered by some Provider in hierarchy. - * Instance is cached in Provider that registers it's class. - * @param {Token | Object} [targetOrToken] Object or Class prototype or dependency injection token - * @param {string | symbol | Function} [keyOrToken] Property key or dependency injection token - */ -function inject(targetOrToken, keyOrToken) { - if (isFunction(keyOrToken)) { - return injectFunction(targetOrToken, keyOrToken); - } - /** @type {Token} */ - var token; - if (!keyOrToken) { - token = targetOrToken; - return injectDecorator; - } - return injectDecorator(targetOrToken, keyOrToken); - function injectDecorator(prototype, key) { - if (process.env.NODE_ENV !== "production") { - defineContextType(prototype); - } else { - prototype.constructor.contextType = InjectorContext; - } - if (!token) { - token = Reflect.getMetadata("design:type", prototype, key); - if (process.env.NODE_ENV !== "production") { - if (!isValidMetadata(token)) { - logInvalidMetadata(targetOrToken, token); - } - } - } - var descriptor = { - configurable: true, - enumerable: true, - get: function() { - var instance = injectFunction(this, token); - Object.defineProperty(this, key, { - enumerable: true, - writable: true, - value: instance - }); - return instance; - }, - set: function(instance) { - Object.defineProperty(this, key, { - enumerable: true, - writable: true, - value: instance - }); - } - }; - Object.defineProperty(prototype, key, descriptor); - return descriptor; - } -} -/** - * Resolve a class instance that registered by some Provider in hierarchy. - * Instance is cached in Provider that registers it's class. - * @internal - * @param {Object} target The object in which we inject class instance - * @param {Token} token Dependency injection token - * @returns {Object} Resolved class instance - */ -function injectFunction(target, token) { - var injector = getInjector(target); - if (process.env.NODE_ENV !== "production") { - if (!injector) { - logNotFoundProvider(target); - } - } - return getInstance(injector, token); -} -/** - * Set Class.contextType = InjectorContext - * @internal - * @param {Object} prototype React Component prototype - */ -function defineContextType(prototype) { - if (isReactComponent(prototype)) { - var constructor = prototype.constructor; - var className_1 = getDebugName(constructor); - if (constructor.contextType !== InjectorContext) { - if (constructor.contextType) { - logError( - "Decorator tries to overwrite existing " + - className_1 + - ".contextType" - ); - } else { - Object.defineProperty(constructor, "contextType", { - get: function() { - return InjectorContext; - }, - set: function() { - logError( - "You are trying to overwrite " + - className_1 + - ".contextType = InjectorContext" - ); - } - }); - } - } - } -} - -/** @typedef {import("./types").Definition} Definition */ -/** @typedef {import("./types").Token} Token */ -/** - * Bind type to specified class. - * @param {new (...args) => any} constructor - * @return {Function} - */ -function toClass(constructor) { - if (process.env.NODE_ENV !== "production") { - if (!isFunction(constructor)) { - logError( - "Class " + getDebugName(constructor) + " is not a valid dependency" - ); - } - } - return asBinding(function(injector) { - var instance = new constructor(); - if (!instance[INJECTOR]) { - instance[INJECTOR] = injector; - } - return instance; - }); -} -/** - * Bind type to specified factory funciton. - * @param {any} depsOrFactory Dependencies or factory - * @param {Function} [factory] Factory - * @return {Function} - */ -function toFactory(depsOrFactory, factory) { - if (process.env.NODE_ENV !== "production") { - if (factory) { - if (!Array.isArray(depsOrFactory)) { - logError( - "Dependency array " + getDebugName(depsOrFactory) + " is invalid" - ); - } - if (!isFunction(factory)) { - logError( - "Factory " + getDebugName(factory) + " is not a valid dependency" - ); - } - } else if (!isFunction(depsOrFactory)) { - logError( - "Factory " + getDebugName(depsOrFactory) + " is not a valid dependency" - ); - } - } - return asBinding( - factory - ? function(injector) { - return factory.apply( - void 0, - depsOrFactory.map(function(token) { - return getInstance(injector, token); - }) - ); - } - : depsOrFactory - ); -} -/** - * Bind type to specified value. - * @param {any} value - * @return {Function} - */ -function toValue(value) { - if (process.env.NODE_ENV !== "production") { - if (value === undefined) { - logError("Please specify some value"); - } - } - return asBinding(function() { - return value; - }); -} -/** - * Bind type to existing instance located by token. - * @param {Token} token - * @return {Function} - */ -function toExisting(token) { - if (process.env.NODE_ENV !== "production") { - if (!isFunction(token)) { - logError( - "Token " + - getDebugName(token) + - " is not a valid dependency injection token" - ); - } - } - return asBinding(function(injector) { - return getInstance(injector, token); - }); -} -/* istanbul ignore next */ -var IS_BINDING = typeof Symbol === "function" ? Symbol() : "__binding__"; -/** - * Mark function as binding function. - * @internal - * @param {Function} binding - * @returns {Function} - */ -function asBinding(binding) { - binding[IS_BINDING] = true; - return binding; -} -/** - * Add bindings to bindings Map - * @internal - * @param {Map} bindingMap - * @param {Definition[]} definitions - */ -function addBindings(bindingMap, definitions) { - definitions.forEach(function(definition) { - var _a; - var token, binding; - if (Array.isArray(definition)) { - (token = definition[0]), - (_a = definition[1]), - (binding = _a === void 0 ? token : _a); - } else { - token = binding = definition; - } - if (process.env.NODE_ENV !== "production") { - if (!isToken(token) || !isFunction(binding)) { - logIncorrectBinding(token, binding); - } - } - // @ts-ignore - bindingMap.set(token, binding[IS_BINDING] ? binding : toClass(binding)); - }); -} - -/** @typedef {import("./types").Definition} Definition */ -/** @typedef {import("./types").Token} Token */ -/** - * HOC that registers dependency injection bindings in scope of decorated component - * @param {...Definition} definitions Dependency injection configuration - */ -var provider = function() { - var definitions = []; - for (var _i = 0; _i < arguments.length; _i++) { - definitions[_i] = arguments[_i]; - } - return function(Wrapped) { - /** @type {Map} */ - var bindingMap = new Map(); - addBindings(bindingMap, definitions); - var Provider = /** @class */ (function(_super) { - tslib_1.__extends(Provider, _super); - function Provider() { - var _this = (_super !== null && _super.apply(this, arguments)) || this; - _this._parent = _this.context; - _this._bindingMap = bindingMap; - _this._instanceMap = new Map(); - return _this; - } - Provider.prototype.componentWillUnmount = function() { - this._instanceMap.forEach(function(instance) { - if (isObject(instance) && isFunction(instance.dispose)) { - instance.dispose(); - } - }); - }; - Provider.prototype.render = function() { - return react.createElement( - InjectorContext.Provider, - { value: this }, - react.createElement(Wrapped, this.props) - ); - }; - /** - * Register dependency injection bindings in scope of decorated class - * @param {...Definition} definitions Dependency injection configuration - */ - Provider.register = function() { - var definitions = []; - for (var _i = 0; _i < arguments.length; _i++) { - definitions[_i] = arguments[_i]; - } - addBindings(bindingMap, definitions); - }; - Provider.WrappedComponent = Wrapped; - return Provider; - })(Injector); - if (process.env.NODE_ENV !== "production") { - Provider.displayName = - "Provider(" + (Wrapped.displayName || Wrapped.name) + ")"; - Object.defineProperty(Provider, "contextType", { - get: function() { - return InjectorContext; - }, - set: function() { - logError( - "You are trying to overwrite " + - Provider.displayName + - ".contextType = InjectorContext" - ); - } - }); - } else { - Provider.contextType = InjectorContext; - } - // static fields from component should be visible on the generated Consumer - return hoistNonReactStatics(Provider, Wrapped); - }; -}; -/** - * Register class in specified provider. - * @typedef {{ register(constructor: Function): void }} Provider - * @param {() => Provider} getProvider Function that returns some provider - * @param {Function} [binding] Dependency injection binding - */ -var registerIn = function(getProvider, binding) { - return function(constructor) { - registrationQueue.push(function() { - if (process.env.NODE_ENV !== "production") { - var provider_1 = getProvider(); - if ( - !isFunction(provider_1) || - !(provider_1.prototype instanceof Injector) - ) { - logError( - getDebugName(provider_1) + - " is not a valid Provider. Please use:\n" + - "@registerIn(() => MyProvider)\n" + - ("class " + getDebugName(constructor) + " {}\n") - ); - } else { - provider_1.register(binding ? [constructor, binding] : constructor); - } - } else { - getProvider().register(binding ? [constructor, binding] : constructor); - } - }); - return constructor; - }; -}; - -/** @typedef {import("./types").Token} Token */ -/** - * React hook for resolving a class instance that registered by some Provider in hierarchy. - * Instance is cached in Provider that registers it's class. - * @param {Token} token Dependency injection token - * @returns {Object} Resolved class instance - */ -function useInstance(token) { - var ref = react.useRef(null); - var injector = react.useContext(InjectorContext); - if (process.env.NODE_ENV !== "production") { - if (!injector) { - logNotFoundProvider(); - } - } - return ref.current || (ref.current = getInstance(injector, token)); -} -/** - * React hook for resolving a class instances that registered by some Provider in hierarchy. - * Instances are cached in Provider that registers it's classes. - * @param {...Token} tokens Dependency injection tokens - * @returns {Object[]} Resolved class instances - */ -function useInstances() { - var tokens = []; - for (var _i = 0; _i < arguments.length; _i++) { - tokens[_i] = arguments[_i]; - } - var ref = react.useRef(null); - var injector = react.useContext(InjectorContext); - if (process.env.NODE_ENV !== "production") { - if (!injector) { - logNotFoundProvider(); - } - } - return ( - ref.current || - (ref.current = tokens.map(function(token) { - return getInstance(injector, token); - })) - ); -} - -exports.inject = inject; -exports.provider = provider; -exports.registerIn = registerIn; -exports.Inject = inject; -exports.Provider = provider; -exports.RegisterIn = registerIn; -exports.InjectorContext = InjectorContext; -exports.toClass = toClass; -exports.toFactory = toFactory; -exports.toExisting = toExisting; -exports.toValue = toValue; -exports.useInstance = useInstance; -exports.useInstances = useInstances; -//# sourceMappingURL=index.js.map diff --git a/dist/index.js.flow b/dist/index.js.flow deleted file mode 100644 index 80640fb..0000000 --- a/dist/index.js.flow +++ /dev/null @@ -1,131 +0,0 @@ -/* @flow */ - -type ClassDecorator = (target: T) => T; -type PropertyDecorator = (target: Object, propertyKey: string) => void; -type MethodDecorator = ( - target: Object, - key: string, - descriptor: Object -) => Object | void; -type Token = Function | Object | string; -type Definition = Function | [Function] | [Token, Function]; -type Provider = { - /** - * Register dependency injection bindings in scope of decorated class - * @param definitions Dependency injection configuration - * @returns Decorated constructor - */ - register(...definitions: Definition[]): void; -}; -type ProviderMixin = T & - Provider & { - contextType: typeof InjectorContext; - WrappedComponent: T; - }; - -declare export var InjectorContext: any; - -/** - * Decorator or HOC that register dependency injection bindings - * in scope of decorated class - * @param definitions Dependency injection configuration - * @returns Decorator or HOC - */ -declare export function provider( - ...definitions: Definition[] -): (target: T) => ProviderMixin; - -/** - * Decorator that lazily registers class in scope of specified Provider. - * @param getProvider Lambda function that returns Provider - * @param biding Dependency injection binding - * @returns Decorator - */ -declare export function registerIn( - getProvider: () => Provider, - biding?: Function -): (target: T) => T; - -/** - * Property decorator that resolves a class instance - * which registered by some Provider in hierarchy. - * Instance is cached in Provider that registers it's class. - * @param token Dependency injection token - * @returns Property decorator - */ -declare export function inject(token?: Token): PropertyDecorator; -/** - * Property decorator that resolves a class instance - * which registered by some Provider in hierarchy. - * Instance is cached in Provider that registers it's class. - */ -declare export function inject(target: Object, key: string): void; -/** - * Create a class instance that registered by some Provider in hierarchy. - * Instance is cached in Provider that registers it's class. - * @param target The object in which we inject class instance - * @param token Dependency injection token - * @returns Resolved class instance - */ -declare export function inject( - target: Object, - token: Class | Token -): T; - -/** - * React hook for resolving a class instance that registered by some Provider in hierarchy. - * Instance is cached in Provider that registers it's class. - * @param token Dependency injection token - * @returns Resolved class instance - */ -declare export function useInstance(token: Class | Token): T; - -/** - * React hook for resolving a class instances that registered by some Provider in hierarchy. - * Instances are cached in Provider that registers it's classes. - * @param tokens Dependency injection tokens - * @returns Resolved class instances - */ -declare export function useInstances( - ...tokens: $TupleMap(V) => Class | Token> -): T; - -/** - * Bind dependency to specified class. - * @param cosntructor Constructor - * @returns Dependency resolver - */ -declare export function toClass(cosntructor: Class): Function; - -/** - * Bind dependency to specified value. - * @param value Any value - * @returns Dependency resolver - */ -declare export function toValue(value: any): Function; - -/** - * Bind dependency to specified factory funciton. - * @param factory Factory - * @returns Dependency resolver - */ -declare export function toFactory(factory: () => any): Function; -/** - * Bind dependency to specified factory funciton. - * @param deps Factory dependencies - * @param factory Factory - * @returns Dependency resolver - */ -declare export function toFactory( - deps: $TupleMap(V) => Class | Token>, - factory: (...args: T) => any -): Function; - -/** - * Bind dependency to existing instance located by token. - * @param token Dependency injection token - * @returns Dependency resolver - */ -declare export function toExisting(token: Token): Function; - -export { inject as Inject, provider as Provider, registerIn as RegisterIn }; \ No newline at end of file diff --git a/dist/index.js.map b/dist/index.js.map deleted file mode 100644 index e0d1501..0000000 --- a/dist/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sources":["../src/types.ts","../src/errors.js","../src/injector.js","../src/inject.js","../src/bindings.js","../src/provider.js","../src/hooks.js"],"sourcesContent":["export type Token = Function | Object | string | symbol;\r\nexport type Definition = Function | [Function] | [Token, Function];\r\n\r\nexport function isFunction(arg): arg is Function {\r\n return typeof arg === \"function\";\r\n}\r\n\r\nexport function isObject(arg): arg is Object {\r\n return arg && typeof arg === \"object\";\r\n}\r\n\r\nexport function isString(arg): arg is string {\r\n return typeof arg === \"string\";\r\n}\r\n\r\nexport function isSymbol(arg): arg is symbol {\r\n return typeof arg === \"symbol\";\r\n}\r\n\r\nexport function isToken(arg): arg is Token {\r\n return isFunction(arg) || isObject(arg) || isString(arg) || isSymbol(arg);\r\n}\r\n\r\nexport function isReactComponent(prototype) {\r\n return isObject(prototype) && isObject(prototype.isReactComponent);\r\n}\r\n\r\nexport function isValidMetadata(arg): arg is Function {\r\n return (\r\n isFunction(arg) &&\r\n [Object, Function, Number, String, Boolean].indexOf(arg) === -1\r\n );\r\n}\r\n","import { isFunction, isObject, isReactComponent } from \"./types\";\r\n\r\nexport function getDebugName(value) {\r\n if (isFunction(value)) {\r\n return String(value.displayName || value.name);\r\n }\r\n if (isObject(value) && isFunction(value.constructor)) {\r\n return String(value.constructor.name);\r\n }\r\n return String(value);\r\n}\r\n\r\nexport function logError(message) {\r\n try {\r\n throw new Error(message);\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n}\r\n\r\nexport function logIncorrectBinding(token, binding) {\r\n const tokenName = getDebugName(token);\r\n const bindingName = getDebugName(binding);\r\n logError(`Binding [${tokenName}, ${bindingName}] is incorrect.`);\r\n}\r\n\r\nexport function logNotFoundDependency(token) {\r\n const name = getDebugName(token);\r\n logError(\r\n `Dependency ${name} is not found.\r\nPlease register ${name} in some Provider e.g.\r\n@provider([${name}, ${name}])\r\nclass App extends React.Component { /*...*/ }`\r\n );\r\n}\r\n\r\nexport function logNotFoundProvider(target) {\r\n if (isReactComponent(target)) {\r\n const name = getDebugName(target);\r\n logError(\r\n `Provider is not found.\r\n Please define Provider and set ${name}.contextType = InjectorContext e.g.\r\n @provider([MyService, MyService])\r\n class App extends React.Component { /*...*/ }\r\n class ${name} extends React.Component {\r\n static contextType = InjectorContext;\r\n }`\r\n );\r\n } else {\r\n logError(\r\n `Provider is not found.\r\n Please define Provider e.g.\r\n @provider([MyService, MyService])\r\n class App extends React.Component { /*...*/ }`\r\n );\r\n }\r\n}\r\n\r\nexport function logInvalidMetadata(target, token) {\r\n const tokenName = getDebugName(token);\r\n const targetName = getDebugName(target);\r\n logError(\r\n `${tokenName} is not a valid dependency.\r\nPlease specify ES6 class as property type e.g.\r\nclass MyService {}\r\nclass ${targetName} {\r\n @inject myService: MyService;\r\n}`\r\n );\r\n}\r\n","import { Component, createContext } from \"react\";\r\nimport { logNotFoundDependency } from \"./errors\";\r\n/** @typedef {import(\"./types\").Token} Token */\r\n\r\n/** React Context for Injector */\r\nexport const InjectorContext = createContext(null);\r\n\r\n/**\r\n * Dependency injection container\r\n * @internal\r\n */\r\nexport class Injector extends Component {\r\n /** @type {Injector} */\r\n _parent;\r\n /** @type {Map} */\r\n _bindingMap;\r\n /** @type {Map} */\r\n _instanceMap;\r\n}\r\n\r\n/**\r\n * Find Injector for passed object and cache it inside this object\r\n * @internal\r\n * @param {Object} target The object in which we inject value\r\n * @returns {Injector}\r\n */\r\nexport function getInjector(target) {\r\n let injector = target[INJECTOR];\r\n if (injector) {\r\n return injector;\r\n }\r\n injector = currentInjector || target.context;\r\n if (injector instanceof Injector) {\r\n target[INJECTOR] = injector;\r\n return injector;\r\n }\r\n return null;\r\n}\r\n\r\n/** @type {Injector} */\r\nlet currentInjector = null;\r\n\r\n/* istanbul ignore next */\r\nexport const INJECTOR =\r\n typeof Symbol === \"function\" ? Symbol() : \"__injector__\";\r\n\r\n/**\r\n * Resolve a class instance that registered by some Provider in hierarchy.\r\n * Instance is cached in Provider that registers it's class.\r\n * @internal\r\n * @param {Injector} injector Injector instance\r\n * @param {Token} token Dependency injection token\r\n * @returns {Object} Resolved class instance\r\n */\r\nexport function getInstance(injector, token) {\r\n if (registrationQueue.length > 0) {\r\n registrationQueue.forEach(registration => {\r\n registration();\r\n });\r\n registrationQueue.length = 0;\r\n }\r\n while (injector) {\r\n let instance = injector._instanceMap.get(token);\r\n if (instance !== undefined) {\r\n return instance;\r\n }\r\n const binding = injector._bindingMap.get(token);\r\n if (binding) {\r\n const prevInjector = currentInjector;\r\n currentInjector = injector;\r\n try {\r\n instance = binding(injector);\r\n } finally {\r\n currentInjector = prevInjector;\r\n }\r\n injector._instanceMap.set(token, instance);\r\n return instance;\r\n }\r\n injector = injector._parent;\r\n }\r\n if (__DEV__) {\r\n logNotFoundDependency(token);\r\n }\r\n return undefined;\r\n}\r\n\r\n/** @type {Function[]} */\r\nexport const registrationQueue = [];\r\n","import \"reflect-metadata\";\r\nimport { InjectorContext, getInjector, getInstance } from \"./injector\";\r\nimport { isValidMetadata, isReactComponent, isFunction } from \"./types\";\r\nimport {\r\n getDebugName,\r\n logInvalidMetadata,\r\n logNotFoundProvider,\r\n logError\r\n} from \"./errors\";\r\n/** @typedef {import(\"./types\").Token} Token */\r\n\r\n/**\r\n * Property decorator that resolves a class instance\r\n * which registered by some Provider in hierarchy.\r\n * Instance is cached in Provider that registers it's class.\r\n * @param {Token | Object} [targetOrToken] Object or Class prototype or dependency injection token\r\n * @param {string | symbol | Function} [keyOrToken] Property key or dependency injection token\r\n */\r\nexport function inject(targetOrToken, keyOrToken) {\r\n if (isFunction(keyOrToken)) {\r\n return injectFunction(targetOrToken, keyOrToken);\r\n }\r\n /** @type {Token} */\r\n let token;\r\n if (!keyOrToken) {\r\n token = targetOrToken;\r\n return injectDecorator;\r\n }\r\n return injectDecorator(targetOrToken, keyOrToken);\r\n\r\n function injectDecorator(prototype, key) {\r\n if (__DEV__) {\r\n defineContextType(prototype);\r\n } else {\r\n prototype.constructor.contextType = InjectorContext;\r\n }\r\n\r\n if (!token) {\r\n token = Reflect.getMetadata(\"design:type\", prototype, key);\r\n if (__DEV__) {\r\n if (!isValidMetadata(token)) {\r\n logInvalidMetadata(targetOrToken, token);\r\n }\r\n }\r\n }\r\n\r\n const descriptor = {\r\n configurable: true,\r\n enumerable: true,\r\n get() {\r\n const instance = injectFunction(this, token);\r\n Object.defineProperty(this, key, {\r\n enumerable: true,\r\n writable: true,\r\n value: instance\r\n });\r\n return instance;\r\n },\r\n set(instance) {\r\n Object.defineProperty(this, key, {\r\n enumerable: true,\r\n writable: true,\r\n value: instance\r\n });\r\n }\r\n };\r\n\r\n Object.defineProperty(prototype, key, descriptor);\r\n\r\n return descriptor;\r\n }\r\n}\r\n\r\n/**\r\n * Resolve a class instance that registered by some Provider in hierarchy.\r\n * Instance is cached in Provider that registers it's class.\r\n * @internal\r\n * @param {Object} target The object in which we inject class instance\r\n * @param {Token} token Dependency injection token\r\n * @returns {Object} Resolved class instance\r\n */\r\nfunction injectFunction(target, token) {\r\n const injector = getInjector(target);\r\n if (__DEV__) {\r\n if (!injector) {\r\n logNotFoundProvider(target);\r\n }\r\n }\r\n return getInstance(injector, token);\r\n}\r\n\r\n/**\r\n * Set Class.contextType = InjectorContext\r\n * @internal\r\n * @param {Object} prototype React Component prototype\r\n */\r\nfunction defineContextType(prototype) {\r\n if (isReactComponent(prototype)) {\r\n const { constructor } = prototype;\r\n const className = getDebugName(constructor);\r\n if (constructor.contextType !== InjectorContext) {\r\n if (constructor.contextType) {\r\n logError(\r\n `Decorator tries to overwrite existing ${className}.contextType`\r\n );\r\n } else {\r\n Object.defineProperty(constructor, \"contextType\", {\r\n get() {\r\n return InjectorContext;\r\n },\r\n set() {\r\n logError(\r\n `You are trying to overwrite ${className}.contextType = InjectorContext`\r\n );\r\n }\r\n });\r\n }\r\n }\r\n }\r\n}\r\n","import { INJECTOR, getInstance } from \"./injector\";\r\nimport { isFunction, isToken } from \"./types\";\r\nimport { logIncorrectBinding, logError, getDebugName } from \"./errors\";\r\n/** @typedef {import(\"./types\").Definition} Definition */\r\n/** @typedef {import(\"./types\").Token} Token */\r\n\r\n/**\r\n * Bind type to specified class.\r\n * @param {new (...args) => any} constructor\r\n * @return {Function}\r\n */\r\nexport function toClass(constructor) {\r\n if (__DEV__) {\r\n if (!isFunction(constructor)) {\r\n logError(`Class ${getDebugName(constructor)} is not a valid dependency`);\r\n }\r\n }\r\n return asBinding(injector => {\r\n const instance = new constructor();\r\n if (!instance[INJECTOR]) {\r\n instance[INJECTOR] = injector;\r\n }\r\n return instance;\r\n });\r\n}\r\n\r\n/**\r\n * Bind type to specified factory funciton.\r\n * @param {any} depsOrFactory Dependencies or factory\r\n * @param {Function} [factory] Factory\r\n * @return {Function}\r\n */\r\nexport function toFactory(depsOrFactory, factory) {\r\n if (__DEV__) {\r\n if (factory) {\r\n if (!Array.isArray(depsOrFactory)) {\r\n logError(`Dependency array ${getDebugName(depsOrFactory)} is invalid`);\r\n }\r\n if (!isFunction(factory)) {\r\n logError(`Factory ${getDebugName(factory)} is not a valid dependency`);\r\n }\r\n } else if (!isFunction(depsOrFactory)) {\r\n logError(\r\n `Factory ${getDebugName(depsOrFactory)} is not a valid dependency`\r\n );\r\n }\r\n }\r\n return asBinding(\r\n factory\r\n ? injector =>\r\n factory(...depsOrFactory.map(token => getInstance(injector, token)))\r\n : depsOrFactory\r\n );\r\n}\r\n\r\n/**\r\n * Bind type to specified value.\r\n * @param {any} value\r\n * @return {Function}\r\n */\r\nexport function toValue(value) {\r\n if (__DEV__) {\r\n if (value === undefined) {\r\n logError(`Please specify some value`);\r\n }\r\n }\r\n return asBinding(() => value);\r\n}\r\n\r\n/**\r\n * Bind type to existing instance located by token.\r\n * @param {Token} token\r\n * @return {Function}\r\n */\r\nexport function toExisting(token) {\r\n if (__DEV__) {\r\n if (!isFunction(token)) {\r\n logError(\r\n `Token ${getDebugName(token)} is not a valid dependency injection token`\r\n );\r\n }\r\n }\r\n return asBinding(injector => getInstance(injector, token));\r\n}\r\n\r\n/* istanbul ignore next */\r\nconst IS_BINDING = typeof Symbol === \"function\" ? Symbol() : \"__binding__\";\r\n\r\n/**\r\n * Mark function as binding function.\r\n * @internal\r\n * @param {Function} binding\r\n * @returns {Function}\r\n */\r\nfunction asBinding(binding) {\r\n binding[IS_BINDING] = true;\r\n return binding;\r\n}\r\n\r\n/**\r\n * Add bindings to bindings Map\r\n * @internal\r\n * @param {Map} bindingMap\r\n * @param {Definition[]} definitions\r\n */\r\nexport function addBindings(bindingMap, definitions) {\r\n definitions.forEach(definition => {\r\n let token, binding;\r\n if (Array.isArray(definition)) {\r\n [token, binding = token] = definition;\r\n } else {\r\n token = binding = definition;\r\n }\r\n if (__DEV__) {\r\n if (!isToken(token) || !isFunction(binding)) {\r\n logIncorrectBinding(token, binding);\r\n }\r\n }\r\n // @ts-ignore\r\n bindingMap.set(token, binding[IS_BINDING] ? binding : toClass(binding));\r\n });\r\n}\r\n","import { createElement } from \"react\";\r\nimport hoistNonReactStatics from \"hoist-non-react-statics\";\r\nimport { Injector, InjectorContext, registrationQueue } from \"./injector\";\r\nimport { addBindings } from \"./bindings\";\r\nimport { isObject, isFunction } from \"./types\";\r\nimport { logError, getDebugName } from \"./errors\";\r\n/** @typedef {import(\"./types\").Definition} Definition */\r\n/** @typedef {import(\"./types\").Token} Token */\r\n\r\n/**\r\n * HOC that registers dependency injection bindings in scope of decorated component\r\n * @param {...Definition} definitions Dependency injection configuration\r\n */\r\nexport const provider = (...definitions) => Wrapped => {\r\n /** @type {Map} */\r\n const bindingMap = new Map();\r\n\r\n addBindings(bindingMap, definitions);\r\n\r\n class Provider extends Injector {\r\n _parent = this.context;\r\n _bindingMap = bindingMap;\r\n _instanceMap = new Map();\r\n\r\n componentWillUnmount() {\r\n this._instanceMap.forEach(instance => {\r\n if (isObject(instance) && isFunction(instance.dispose)) {\r\n instance.dispose();\r\n }\r\n });\r\n }\r\n\r\n render() {\r\n return createElement(\r\n InjectorContext.Provider,\r\n { value: this },\r\n createElement(Wrapped, this.props)\r\n );\r\n }\r\n\r\n static WrappedComponent = Wrapped;\r\n\r\n /**\r\n * Register dependency injection bindings in scope of decorated class\r\n * @param {...Definition} definitions Dependency injection configuration\r\n */\r\n static register(...definitions) {\r\n addBindings(bindingMap, definitions);\r\n }\r\n }\r\n\r\n if (__DEV__) {\r\n Provider.displayName = `Provider(${Wrapped.displayName || Wrapped.name})`;\r\n\r\n Object.defineProperty(Provider, \"contextType\", {\r\n get() {\r\n return InjectorContext;\r\n },\r\n set() {\r\n logError(\r\n `You are trying to overwrite ${\r\n Provider.displayName\r\n }.contextType = InjectorContext`\r\n );\r\n }\r\n });\r\n } else {\r\n Provider.contextType = InjectorContext;\r\n }\r\n\r\n // static fields from component should be visible on the generated Consumer\r\n return hoistNonReactStatics(Provider, Wrapped);\r\n};\r\n\r\n/**\r\n * Register class in specified provider.\r\n * @typedef {{ register(constructor: Function): void }} Provider\r\n * @param {() => Provider} getProvider Function that returns some provider\r\n * @param {Function} [binding] Dependency injection binding\r\n */\r\nexport const registerIn = (getProvider, binding) => constructor => {\r\n registrationQueue.push(() => {\r\n if (__DEV__) {\r\n const provider = getProvider();\r\n if (!isFunction(provider) || !(provider.prototype instanceof Injector)) {\r\n logError(\r\n `${getDebugName(provider)} is not a valid Provider. Please use:\\n` +\r\n `@registerIn(() => MyProvider)\\n` +\r\n `class ${getDebugName(constructor)} {}\\n`\r\n );\r\n } else {\r\n provider.register(binding ? [constructor, binding] : constructor);\r\n }\r\n } else {\r\n getProvider().register(binding ? [constructor, binding] : constructor);\r\n }\r\n });\r\n return constructor;\r\n};\r\n","import { useContext, useRef } from \"react\";\r\nimport { InjectorContext, getInstance } from \"./injector\";\r\nimport { logNotFoundProvider } from \"./errors\";\r\n/** @typedef {import(\"./types\").Token} Token */\r\n\r\n/**\r\n * React hook for resolving a class instance that registered by some Provider in hierarchy.\r\n * Instance is cached in Provider that registers it's class.\r\n * @param {Token} token Dependency injection token\r\n * @returns {Object} Resolved class instance\r\n */\r\nexport function useInstance(token) {\r\n const ref = useRef(null);\r\n const injector = useContext(InjectorContext);\r\n if (__DEV__) {\r\n if (!injector) {\r\n logNotFoundProvider();\r\n }\r\n }\r\n return ref.current || (ref.current = getInstance(injector, token));\r\n}\r\n\r\n/**\r\n * React hook for resolving a class instances that registered by some Provider in hierarchy.\r\n * Instances are cached in Provider that registers it's classes.\r\n * @param {...Token} tokens Dependency injection tokens\r\n * @returns {Object[]} Resolved class instances\r\n */\r\nexport function useInstances(...tokens) {\r\n const ref = useRef(null);\r\n const injector = useContext(InjectorContext);\r\n if (__DEV__) {\r\n if (!injector) {\r\n logNotFoundProvider();\r\n }\r\n }\r\n return (\r\n ref.current ||\r\n (ref.current = tokens.map(token => getInstance(injector, token)))\r\n );\r\n}\r\n"],"names":["createContext","tslib_1.__extends","Component","createElement","useRef","useContext"],"mappings":"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"} \ No newline at end of file diff --git a/dist/index.min.js b/dist/index.min.js deleted file mode 100644 index f0532ea..0000000 --- a/dist/index.min.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";function n(n){return n&&"object"==typeof n&&"default"in n?n.default:n}Object.defineProperty(exports,"__esModule",{value:!0}),require("reflect-metadata");var t=require("tslib"),r=n(require("hoist-non-react-statics")),e=require("react");function u(n){return"function"==typeof n}function o(n){return n&&"object"==typeof n}var i=e.createContext(null),f=function(n){function r(){return null!==n&&n.apply(this,arguments)||this}return t.__extends(r,n),r}(e.Component);function c(n){var t=n[l];return t||((t=a||n.context)instanceof f?(n[l]=t,t):null)}var a=null,l="function"==typeof Symbol?Symbol():"__injector__";function s(n,t){for(v.length>0&&(v.forEach(function(n){n()}),v.length=0);n;){var r=n.n.get(t);if(void 0!==r)return r;var e=n.t.get(t);if(e){var u=a;a=n;try{r=e(n)}finally{a=u}return n.n.set(t,r),r}n=n.r}}var v=[];function p(n,t){return u(t)?b(n,t):t?e(n,t):(r=n,e);var r;function e(n,t){n.constructor.contextType=i,r||(r=Reflect.getMetadata("design:type",n,t));var e={configurable:!0,enumerable:!0,get:function(){var n=b(this,r);return Object.defineProperty(this,t,{enumerable:!0,writable:!0,value:n}),n},set:function(n){Object.defineProperty(this,t,{enumerable:!0,writable:!0,value:n})}};return Object.defineProperty(n,t,e),e}}function b(n,t){return s(c(n),t)}function x(n){return m(function(t){var r=new n;return r[l]||(r[l]=t),r})}function y(n,t){return m(t?function(r){return t.apply(void 0,n.map(function(n){return s(r,n)}))}:n)}function h(n){return m(function(){return n})}function _(n){return m(function(t){return s(t,n)})}var d="function"==typeof Symbol?Symbol():"__binding__";function m(n){return n[d]=!0,n}function j(n,t){t.forEach(function(t){var r,e,u;Array.isArray(t)?(e=t[0],u=void 0===(r=t[1])?e:r):e=u=t,n.set(e,u[d]?u:x(u))})}var w=function(){for(var n=[],c=0;c} */\r\n _bindingMap;\r\n /** @type {Map} */\r\n _instanceMap;\r\n}\r\n\r\n/**\r\n * Find Injector for passed object and cache it inside this object\r\n * @internal\r\n * @param {Object} target The object in which we inject value\r\n * @returns {Injector}\r\n */\r\nexport function getInjector(target) {\r\n let injector = target[INJECTOR];\r\n if (injector) {\r\n return injector;\r\n }\r\n injector = currentInjector || target.context;\r\n if (injector instanceof Injector) {\r\n target[INJECTOR] = injector;\r\n return injector;\r\n }\r\n return null;\r\n}\r\n\r\n/** @type {Injector} */\r\nlet currentInjector = null;\r\n\r\n/* istanbul ignore next */\r\nexport const INJECTOR =\r\n typeof Symbol === \"function\" ? Symbol() : \"__injector__\";\r\n\r\n/**\r\n * Resolve a class instance that registered by some Provider in hierarchy.\r\n * Instance is cached in Provider that registers it's class.\r\n * @internal\r\n * @param {Injector} injector Injector instance\r\n * @param {Token} token Dependency injection token\r\n * @returns {Object} Resolved class instance\r\n */\r\nexport function getInstance(injector, token) {\r\n if (registrationQueue.length > 0) {\r\n registrationQueue.forEach(registration => {\r\n registration();\r\n });\r\n registrationQueue.length = 0;\r\n }\r\n while (injector) {\r\n let instance = injector._instanceMap.get(token);\r\n if (instance !== undefined) {\r\n return instance;\r\n }\r\n const binding = injector._bindingMap.get(token);\r\n if (binding) {\r\n const prevInjector = currentInjector;\r\n currentInjector = injector;\r\n try {\r\n instance = binding(injector);\r\n } finally {\r\n currentInjector = prevInjector;\r\n }\r\n injector._instanceMap.set(token, instance);\r\n return instance;\r\n }\r\n injector = injector._parent;\r\n }\r\n if (__DEV__) {\r\n logNotFoundDependency(token);\r\n }\r\n return undefined;\r\n}\r\n\r\n/** @type {Function[]} */\r\nexport const registrationQueue = [];\r\n","import \"reflect-metadata\";\r\nimport { InjectorContext, getInjector, getInstance } from \"./injector\";\r\nimport { isValidMetadata, isReactComponent, isFunction } from \"./types\";\r\nimport {\r\n getDebugName,\r\n logInvalidMetadata,\r\n logNotFoundProvider,\r\n logError\r\n} from \"./errors\";\r\n/** @typedef {import(\"./types\").Token} Token */\r\n\r\n/**\r\n * Property decorator that resolves a class instance\r\n * which registered by some Provider in hierarchy.\r\n * Instance is cached in Provider that registers it's class.\r\n * @param {Token | Object} [targetOrToken] Object or Class prototype or dependency injection token\r\n * @param {string | symbol | Function} [keyOrToken] Property key or dependency injection token\r\n */\r\nexport function inject(targetOrToken, keyOrToken) {\r\n if (isFunction(keyOrToken)) {\r\n return injectFunction(targetOrToken, keyOrToken);\r\n }\r\n /** @type {Token} */\r\n let token;\r\n if (!keyOrToken) {\r\n token = targetOrToken;\r\n return injectDecorator;\r\n }\r\n return injectDecorator(targetOrToken, keyOrToken);\r\n\r\n function injectDecorator(prototype, key) {\r\n if (__DEV__) {\r\n defineContextType(prototype);\r\n } else {\r\n prototype.constructor.contextType = InjectorContext;\r\n }\r\n\r\n if (!token) {\r\n token = Reflect.getMetadata(\"design:type\", prototype, key);\r\n if (__DEV__) {\r\n if (!isValidMetadata(token)) {\r\n logInvalidMetadata(targetOrToken, token);\r\n }\r\n }\r\n }\r\n\r\n const descriptor = {\r\n configurable: true,\r\n enumerable: true,\r\n get() {\r\n const instance = injectFunction(this, token);\r\n Object.defineProperty(this, key, {\r\n enumerable: true,\r\n writable: true,\r\n value: instance\r\n });\r\n return instance;\r\n },\r\n set(instance) {\r\n Object.defineProperty(this, key, {\r\n enumerable: true,\r\n writable: true,\r\n value: instance\r\n });\r\n }\r\n };\r\n\r\n Object.defineProperty(prototype, key, descriptor);\r\n\r\n return descriptor;\r\n }\r\n}\r\n\r\n/**\r\n * Resolve a class instance that registered by some Provider in hierarchy.\r\n * Instance is cached in Provider that registers it's class.\r\n * @internal\r\n * @param {Object} target The object in which we inject class instance\r\n * @param {Token} token Dependency injection token\r\n * @returns {Object} Resolved class instance\r\n */\r\nfunction injectFunction(target, token) {\r\n const injector = getInjector(target);\r\n if (__DEV__) {\r\n if (!injector) {\r\n logNotFoundProvider(target);\r\n }\r\n }\r\n return getInstance(injector, token);\r\n}\r\n\r\n/**\r\n * Set Class.contextType = InjectorContext\r\n * @internal\r\n * @param {Object} prototype React Component prototype\r\n */\r\nfunction defineContextType(prototype) {\r\n if (isReactComponent(prototype)) {\r\n const { constructor } = prototype;\r\n const className = getDebugName(constructor);\r\n if (constructor.contextType !== InjectorContext) {\r\n if (constructor.contextType) {\r\n logError(\r\n `Decorator tries to overwrite existing ${className}.contextType`\r\n );\r\n } else {\r\n Object.defineProperty(constructor, \"contextType\", {\r\n get() {\r\n return InjectorContext;\r\n },\r\n set() {\r\n logError(\r\n `You are trying to overwrite ${className}.contextType = InjectorContext`\r\n );\r\n }\r\n });\r\n }\r\n }\r\n }\r\n}\r\n","import { INJECTOR, getInstance } from \"./injector\";\r\nimport { isFunction, isToken } from \"./types\";\r\nimport { logIncorrectBinding, logError, getDebugName } from \"./errors\";\r\n/** @typedef {import(\"./types\").Definition} Definition */\r\n/** @typedef {import(\"./types\").Token} Token */\r\n\r\n/**\r\n * Bind type to specified class.\r\n * @param {new (...args) => any} constructor\r\n * @return {Function}\r\n */\r\nexport function toClass(constructor) {\r\n if (__DEV__) {\r\n if (!isFunction(constructor)) {\r\n logError(`Class ${getDebugName(constructor)} is not a valid dependency`);\r\n }\r\n }\r\n return asBinding(injector => {\r\n const instance = new constructor();\r\n if (!instance[INJECTOR]) {\r\n instance[INJECTOR] = injector;\r\n }\r\n return instance;\r\n });\r\n}\r\n\r\n/**\r\n * Bind type to specified factory funciton.\r\n * @param {any} depsOrFactory Dependencies or factory\r\n * @param {Function} [factory] Factory\r\n * @return {Function}\r\n */\r\nexport function toFactory(depsOrFactory, factory) {\r\n if (__DEV__) {\r\n if (factory) {\r\n if (!Array.isArray(depsOrFactory)) {\r\n logError(`Dependency array ${getDebugName(depsOrFactory)} is invalid`);\r\n }\r\n if (!isFunction(factory)) {\r\n logError(`Factory ${getDebugName(factory)} is not a valid dependency`);\r\n }\r\n } else if (!isFunction(depsOrFactory)) {\r\n logError(\r\n `Factory ${getDebugName(depsOrFactory)} is not a valid dependency`\r\n );\r\n }\r\n }\r\n return asBinding(\r\n factory\r\n ? injector =>\r\n factory(...depsOrFactory.map(token => getInstance(injector, token)))\r\n : depsOrFactory\r\n );\r\n}\r\n\r\n/**\r\n * Bind type to specified value.\r\n * @param {any} value\r\n * @return {Function}\r\n */\r\nexport function toValue(value) {\r\n if (__DEV__) {\r\n if (value === undefined) {\r\n logError(`Please specify some value`);\r\n }\r\n }\r\n return asBinding(() => value);\r\n}\r\n\r\n/**\r\n * Bind type to existing instance located by token.\r\n * @param {Token} token\r\n * @return {Function}\r\n */\r\nexport function toExisting(token) {\r\n if (__DEV__) {\r\n if (!isFunction(token)) {\r\n logError(\r\n `Token ${getDebugName(token)} is not a valid dependency injection token`\r\n );\r\n }\r\n }\r\n return asBinding(injector => getInstance(injector, token));\r\n}\r\n\r\n/* istanbul ignore next */\r\nconst IS_BINDING = typeof Symbol === \"function\" ? Symbol() : \"__binding__\";\r\n\r\n/**\r\n * Mark function as binding function.\r\n * @internal\r\n * @param {Function} binding\r\n * @returns {Function}\r\n */\r\nfunction asBinding(binding) {\r\n binding[IS_BINDING] = true;\r\n return binding;\r\n}\r\n\r\n/**\r\n * Add bindings to bindings Map\r\n * @internal\r\n * @param {Map} bindingMap\r\n * @param {Definition[]} definitions\r\n */\r\nexport function addBindings(bindingMap, definitions) {\r\n definitions.forEach(definition => {\r\n let token, binding;\r\n if (Array.isArray(definition)) {\r\n [token, binding = token] = definition;\r\n } else {\r\n token = binding = definition;\r\n }\r\n if (__DEV__) {\r\n if (!isToken(token) || !isFunction(binding)) {\r\n logIncorrectBinding(token, binding);\r\n }\r\n }\r\n // @ts-ignore\r\n bindingMap.set(token, binding[IS_BINDING] ? binding : toClass(binding));\r\n });\r\n}\r\n","import { createElement } from \"react\";\r\nimport hoistNonReactStatics from \"hoist-non-react-statics\";\r\nimport { Injector, InjectorContext, registrationQueue } from \"./injector\";\r\nimport { addBindings } from \"./bindings\";\r\nimport { isObject, isFunction } from \"./types\";\r\nimport { logError, getDebugName } from \"./errors\";\r\n/** @typedef {import(\"./types\").Definition} Definition */\r\n/** @typedef {import(\"./types\").Token} Token */\r\n\r\n/**\r\n * HOC that registers dependency injection bindings in scope of decorated component\r\n * @param {...Definition} definitions Dependency injection configuration\r\n */\r\nexport const provider = (...definitions) => Wrapped => {\r\n /** @type {Map} */\r\n const bindingMap = new Map();\r\n\r\n addBindings(bindingMap, definitions);\r\n\r\n class Provider extends Injector {\r\n _parent = this.context;\r\n _bindingMap = bindingMap;\r\n _instanceMap = new Map();\r\n\r\n componentWillUnmount() {\r\n this._instanceMap.forEach(instance => {\r\n if (isObject(instance) && isFunction(instance.dispose)) {\r\n instance.dispose();\r\n }\r\n });\r\n }\r\n\r\n render() {\r\n return createElement(\r\n InjectorContext.Provider,\r\n { value: this },\r\n createElement(Wrapped, this.props)\r\n );\r\n }\r\n\r\n static WrappedComponent = Wrapped;\r\n\r\n /**\r\n * Register dependency injection bindings in scope of decorated class\r\n * @param {...Definition} definitions Dependency injection configuration\r\n */\r\n static register(...definitions) {\r\n addBindings(bindingMap, definitions);\r\n }\r\n }\r\n\r\n if (__DEV__) {\r\n Provider.displayName = `Provider(${Wrapped.displayName || Wrapped.name})`;\r\n\r\n Object.defineProperty(Provider, \"contextType\", {\r\n get() {\r\n return InjectorContext;\r\n },\r\n set() {\r\n logError(\r\n `You are trying to overwrite ${\r\n Provider.displayName\r\n }.contextType = InjectorContext`\r\n );\r\n }\r\n });\r\n } else {\r\n Provider.contextType = InjectorContext;\r\n }\r\n\r\n // static fields from component should be visible on the generated Consumer\r\n return hoistNonReactStatics(Provider, Wrapped);\r\n};\r\n\r\n/**\r\n * Register class in specified provider.\r\n * @typedef {{ register(constructor: Function): void }} Provider\r\n * @param {() => Provider} getProvider Function that returns some provider\r\n * @param {Function} [binding] Dependency injection binding\r\n */\r\nexport const registerIn = (getProvider, binding) => constructor => {\r\n registrationQueue.push(() => {\r\n if (__DEV__) {\r\n const provider = getProvider();\r\n if (!isFunction(provider) || !(provider.prototype instanceof Injector)) {\r\n logError(\r\n `${getDebugName(provider)} is not a valid Provider. Please use:\\n` +\r\n `@registerIn(() => MyProvider)\\n` +\r\n `class ${getDebugName(constructor)} {}\\n`\r\n );\r\n } else {\r\n provider.register(binding ? [constructor, binding] : constructor);\r\n }\r\n } else {\r\n getProvider().register(binding ? [constructor, binding] : constructor);\r\n }\r\n });\r\n return constructor;\r\n};\r\n","import { useContext, useRef } from \"react\";\r\nimport { InjectorContext, getInstance } from \"./injector\";\r\nimport { logNotFoundProvider } from \"./errors\";\r\n/** @typedef {import(\"./types\").Token} Token */\r\n\r\n/**\r\n * React hook for resolving a class instance that registered by some Provider in hierarchy.\r\n * Instance is cached in Provider that registers it's class.\r\n * @param {Token} token Dependency injection token\r\n * @returns {Object} Resolved class instance\r\n */\r\nexport function useInstance(token) {\r\n const ref = useRef(null);\r\n const injector = useContext(InjectorContext);\r\n if (__DEV__) {\r\n if (!injector) {\r\n logNotFoundProvider();\r\n }\r\n }\r\n return ref.current || (ref.current = getInstance(injector, token));\r\n}\r\n\r\n/**\r\n * React hook for resolving a class instances that registered by some Provider in hierarchy.\r\n * Instances are cached in Provider that registers it's classes.\r\n * @param {...Token} tokens Dependency injection tokens\r\n * @returns {Object[]} Resolved class instances\r\n */\r\nexport function useInstances(...tokens) {\r\n const ref = useRef(null);\r\n const injector = useContext(InjectorContext);\r\n if (__DEV__) {\r\n if (!injector) {\r\n logNotFoundProvider();\r\n }\r\n }\r\n return (\r\n ref.current ||\r\n (ref.current = tokens.map(token => getInstance(injector, token)))\r\n );\r\n}\r\n"],"names":["isFunction","arg","isObject","InjectorContext","createContext","tslib_1.__extends","Component","getInjector","target","injector","INJECTOR","currentInjector","context","Injector","Symbol","getInstance","token","registrationQueue","length","forEach","registration","instance","_instanceMap","get","undefined","binding","_bindingMap","prevInjector","set","_parent","inject","targetOrToken","keyOrToken","injectFunction","injectDecorator","prototype","key","constructor","contextType","Reflect","getMetadata","descriptor","configurable","enumerable","this","Object","defineProperty","writable","value","toClass","asBinding","toFactory","depsOrFactory","factory","map","toValue","toExisting","IS_BINDING","addBindings","bindingMap","definitions","definition","Array","isArray","_a","provider","_i","Wrapped","Map","_this","Provider","dispose","createElement","props","hoistNonReactStatics","registerIn","getProvider","push","register","useInstance","ref","useRef","useContext","current","useInstances","tokens"],"mappings":"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"} \ No newline at end of file diff --git a/dist/index.umd.js b/dist/index.umd.js deleted file mode 100644 index e9cc1d1..0000000 --- a/dist/index.umd.js +++ /dev/null @@ -1,2023 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('react')) : - typeof define === 'function' && define.amd ? define(['exports', 'react'], factory) : - (factory((global.ReactIoC = {}),global.React)); -}(this, (function (exports,react) { 'use strict'; - - var commonjsGlobal = typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; - - function unwrapExports (x) { - return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x.default : x; - } - - function createCommonjsModule(fn, module) { - return module = { exports: {} }, fn(module, module.exports), module.exports; - } - - /*! ***************************************************************************** - Copyright (C) Microsoft. All rights reserved. - Licensed under the Apache License, Version 2.0 (the "License"); you may not use - this file except in compliance with the License. You may obtain a copy of the - License at http://www.apache.org/licenses/LICENSE-2.0 - - THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED - WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, - MERCHANTABLITY OR NON-INFRINGEMENT. - - See the Apache Version 2.0 License for specific language governing permissions - and limitations under the License. - ***************************************************************************** */ - var Reflect$1; - (function (Reflect) { - // Metadata Proposal - // https://rbuckton.github.io/reflect-metadata/ - (function (factory) { - var root = typeof commonjsGlobal === "object" ? commonjsGlobal : - typeof self === "object" ? self : - typeof this === "object" ? this : - Function("return this;")(); - var exporter = makeExporter(Reflect); - if (typeof root.Reflect === "undefined") { - root.Reflect = Reflect; - } - else { - exporter = makeExporter(root.Reflect, exporter); - } - factory(exporter); - function makeExporter(target, previous) { - return function (key, value) { - if (typeof target[key] !== "function") { - Object.defineProperty(target, key, { configurable: true, writable: true, value: value }); - } - if (previous) - previous(key, value); - }; - } - })(function (exporter) { - var hasOwn = Object.prototype.hasOwnProperty; - // feature test for Symbol support - var supportsSymbol = typeof Symbol === "function"; - var toPrimitiveSymbol = supportsSymbol && typeof Symbol.toPrimitive !== "undefined" ? Symbol.toPrimitive : "@@toPrimitive"; - var iteratorSymbol = supportsSymbol && typeof Symbol.iterator !== "undefined" ? Symbol.iterator : "@@iterator"; - var supportsCreate = typeof Object.create === "function"; // feature test for Object.create support - var supportsProto = { __proto__: [] } instanceof Array; // feature test for __proto__ support - var downLevel = !supportsCreate && !supportsProto; - var HashMap = { - // create an object in dictionary mode (a.k.a. "slow" mode in v8) - create: supportsCreate - ? function () { return MakeDictionary(Object.create(null)); } - : supportsProto - ? function () { return MakeDictionary({ __proto__: null }); } - : function () { return MakeDictionary({}); }, - has: downLevel - ? function (map, key) { return hasOwn.call(map, key); } - : function (map, key) { return key in map; }, - get: downLevel - ? function (map, key) { return hasOwn.call(map, key) ? map[key] : undefined; } - : function (map, key) { return map[key]; }, - }; - // Load global or shim versions of Map, Set, and WeakMap - var functionPrototype = Object.getPrototypeOf(Function); - var usePolyfill = typeof process === "object" && process.env && process.env["REFLECT_METADATA_USE_MAP_POLYFILL"] === "true"; - var _Map = !usePolyfill && typeof Map === "function" && typeof Map.prototype.entries === "function" ? Map : CreateMapPolyfill(); - var _Set = !usePolyfill && typeof Set === "function" && typeof Set.prototype.entries === "function" ? Set : CreateSetPolyfill(); - var _WeakMap = !usePolyfill && typeof WeakMap === "function" ? WeakMap : CreateWeakMapPolyfill(); - // [[Metadata]] internal slot - // https://rbuckton.github.io/reflect-metadata/#ordinary-object-internal-methods-and-internal-slots - var Metadata = new _WeakMap(); - /** - * Applies a set of decorators to a property of a target object. - * @param decorators An array of decorators. - * @param target The target object. - * @param propertyKey (Optional) The property key to decorate. - * @param attributes (Optional) The property descriptor for the target key. - * @remarks Decorators are applied in reverse order. - * @example - * - * class Example { - * // property declarations are not part of ES6, though they are valid in TypeScript: - * // static staticProperty; - * // property; - * - * constructor(p) { } - * static staticMethod(p) { } - * method(p) { } - * } - * - * // constructor - * Example = Reflect.decorate(decoratorsArray, Example); - * - * // property (on constructor) - * Reflect.decorate(decoratorsArray, Example, "staticProperty"); - * - * // property (on prototype) - * Reflect.decorate(decoratorsArray, Example.prototype, "property"); - * - * // method (on constructor) - * Object.defineProperty(Example, "staticMethod", - * Reflect.decorate(decoratorsArray, Example, "staticMethod", - * Object.getOwnPropertyDescriptor(Example, "staticMethod"))); - * - * // method (on prototype) - * Object.defineProperty(Example.prototype, "method", - * Reflect.decorate(decoratorsArray, Example.prototype, "method", - * Object.getOwnPropertyDescriptor(Example.prototype, "method"))); - * - */ - function decorate(decorators, target, propertyKey, attributes) { - if (!IsUndefined(propertyKey)) { - if (!IsArray(decorators)) - throw new TypeError(); - if (!IsObject(target)) - throw new TypeError(); - if (!IsObject(attributes) && !IsUndefined(attributes) && !IsNull(attributes)) - throw new TypeError(); - if (IsNull(attributes)) - attributes = undefined; - propertyKey = ToPropertyKey(propertyKey); - return DecorateProperty(decorators, target, propertyKey, attributes); - } - else { - if (!IsArray(decorators)) - throw new TypeError(); - if (!IsConstructor(target)) - throw new TypeError(); - return DecorateConstructor(decorators, target); - } - } - exporter("decorate", decorate); - // 4.1.2 Reflect.metadata(metadataKey, metadataValue) - // https://rbuckton.github.io/reflect-metadata/#reflect.metadata - /** - * A default metadata decorator factory that can be used on a class, class member, or parameter. - * @param metadataKey The key for the metadata entry. - * @param metadataValue The value for the metadata entry. - * @returns A decorator function. - * @remarks - * If `metadataKey` is already defined for the target and target key, the - * metadataValue for that key will be overwritten. - * @example - * - * // constructor - * @Reflect.metadata(key, value) - * class Example { - * } - * - * // property (on constructor, TypeScript only) - * class Example { - * @Reflect.metadata(key, value) - * static staticProperty; - * } - * - * // property (on prototype, TypeScript only) - * class Example { - * @Reflect.metadata(key, value) - * property; - * } - * - * // method (on constructor) - * class Example { - * @Reflect.metadata(key, value) - * static staticMethod() { } - * } - * - * // method (on prototype) - * class Example { - * @Reflect.metadata(key, value) - * method() { } - * } - * - */ - function metadata(metadataKey, metadataValue) { - function decorator(target, propertyKey) { - if (!IsObject(target)) - throw new TypeError(); - if (!IsUndefined(propertyKey) && !IsPropertyKey(propertyKey)) - throw new TypeError(); - OrdinaryDefineOwnMetadata(metadataKey, metadataValue, target, propertyKey); - } - return decorator; - } - exporter("metadata", metadata); - /** - * Define a unique metadata entry on the target. - * @param metadataKey A key used to store and retrieve metadata. - * @param metadataValue A value that contains attached metadata. - * @param target The target object on which to define metadata. - * @param propertyKey (Optional) The property key for the target. - * @example - * - * class Example { - * // property declarations are not part of ES6, though they are valid in TypeScript: - * // static staticProperty; - * // property; - * - * constructor(p) { } - * static staticMethod(p) { } - * method(p) { } - * } - * - * // constructor - * Reflect.defineMetadata("custom:annotation", options, Example); - * - * // property (on constructor) - * Reflect.defineMetadata("custom:annotation", options, Example, "staticProperty"); - * - * // property (on prototype) - * Reflect.defineMetadata("custom:annotation", options, Example.prototype, "property"); - * - * // method (on constructor) - * Reflect.defineMetadata("custom:annotation", options, Example, "staticMethod"); - * - * // method (on prototype) - * Reflect.defineMetadata("custom:annotation", options, Example.prototype, "method"); - * - * // decorator factory as metadata-producing annotation. - * function MyAnnotation(options): Decorator { - * return (target, key?) => Reflect.defineMetadata("custom:annotation", options, target, key); - * } - * - */ - function defineMetadata(metadataKey, metadataValue, target, propertyKey) { - if (!IsObject(target)) - throw new TypeError(); - if (!IsUndefined(propertyKey)) - propertyKey = ToPropertyKey(propertyKey); - return OrdinaryDefineOwnMetadata(metadataKey, metadataValue, target, propertyKey); - } - exporter("defineMetadata", defineMetadata); - /** - * Gets a value indicating whether the target object or its prototype chain has the provided metadata key defined. - * @param metadataKey A key used to store and retrieve metadata. - * @param target The target object on which the metadata is defined. - * @param propertyKey (Optional) The property key for the target. - * @returns `true` if the metadata key was defined on the target object or its prototype chain; otherwise, `false`. - * @example - * - * class Example { - * // property declarations are not part of ES6, though they are valid in TypeScript: - * // static staticProperty; - * // property; - * - * constructor(p) { } - * static staticMethod(p) { } - * method(p) { } - * } - * - * // constructor - * result = Reflect.hasMetadata("custom:annotation", Example); - * - * // property (on constructor) - * result = Reflect.hasMetadata("custom:annotation", Example, "staticProperty"); - * - * // property (on prototype) - * result = Reflect.hasMetadata("custom:annotation", Example.prototype, "property"); - * - * // method (on constructor) - * result = Reflect.hasMetadata("custom:annotation", Example, "staticMethod"); - * - * // method (on prototype) - * result = Reflect.hasMetadata("custom:annotation", Example.prototype, "method"); - * - */ - function hasMetadata(metadataKey, target, propertyKey) { - if (!IsObject(target)) - throw new TypeError(); - if (!IsUndefined(propertyKey)) - propertyKey = ToPropertyKey(propertyKey); - return OrdinaryHasMetadata(metadataKey, target, propertyKey); - } - exporter("hasMetadata", hasMetadata); - /** - * Gets a value indicating whether the target object has the provided metadata key defined. - * @param metadataKey A key used to store and retrieve metadata. - * @param target The target object on which the metadata is defined. - * @param propertyKey (Optional) The property key for the target. - * @returns `true` if the metadata key was defined on the target object; otherwise, `false`. - * @example - * - * class Example { - * // property declarations are not part of ES6, though they are valid in TypeScript: - * // static staticProperty; - * // property; - * - * constructor(p) { } - * static staticMethod(p) { } - * method(p) { } - * } - * - * // constructor - * result = Reflect.hasOwnMetadata("custom:annotation", Example); - * - * // property (on constructor) - * result = Reflect.hasOwnMetadata("custom:annotation", Example, "staticProperty"); - * - * // property (on prototype) - * result = Reflect.hasOwnMetadata("custom:annotation", Example.prototype, "property"); - * - * // method (on constructor) - * result = Reflect.hasOwnMetadata("custom:annotation", Example, "staticMethod"); - * - * // method (on prototype) - * result = Reflect.hasOwnMetadata("custom:annotation", Example.prototype, "method"); - * - */ - function hasOwnMetadata(metadataKey, target, propertyKey) { - if (!IsObject(target)) - throw new TypeError(); - if (!IsUndefined(propertyKey)) - propertyKey = ToPropertyKey(propertyKey); - return OrdinaryHasOwnMetadata(metadataKey, target, propertyKey); - } - exporter("hasOwnMetadata", hasOwnMetadata); - /** - * Gets the metadata value for the provided metadata key on the target object or its prototype chain. - * @param metadataKey A key used to store and retrieve metadata. - * @param target The target object on which the metadata is defined. - * @param propertyKey (Optional) The property key for the target. - * @returns The metadata value for the metadata key if found; otherwise, `undefined`. - * @example - * - * class Example { - * // property declarations are not part of ES6, though they are valid in TypeScript: - * // static staticProperty; - * // property; - * - * constructor(p) { } - * static staticMethod(p) { } - * method(p) { } - * } - * - * // constructor - * result = Reflect.getMetadata("custom:annotation", Example); - * - * // property (on constructor) - * result = Reflect.getMetadata("custom:annotation", Example, "staticProperty"); - * - * // property (on prototype) - * result = Reflect.getMetadata("custom:annotation", Example.prototype, "property"); - * - * // method (on constructor) - * result = Reflect.getMetadata("custom:annotation", Example, "staticMethod"); - * - * // method (on prototype) - * result = Reflect.getMetadata("custom:annotation", Example.prototype, "method"); - * - */ - function getMetadata(metadataKey, target, propertyKey) { - if (!IsObject(target)) - throw new TypeError(); - if (!IsUndefined(propertyKey)) - propertyKey = ToPropertyKey(propertyKey); - return OrdinaryGetMetadata(metadataKey, target, propertyKey); - } - exporter("getMetadata", getMetadata); - /** - * Gets the metadata value for the provided metadata key on the target object. - * @param metadataKey A key used to store and retrieve metadata. - * @param target The target object on which the metadata is defined. - * @param propertyKey (Optional) The property key for the target. - * @returns The metadata value for the metadata key if found; otherwise, `undefined`. - * @example - * - * class Example { - * // property declarations are not part of ES6, though they are valid in TypeScript: - * // static staticProperty; - * // property; - * - * constructor(p) { } - * static staticMethod(p) { } - * method(p) { } - * } - * - * // constructor - * result = Reflect.getOwnMetadata("custom:annotation", Example); - * - * // property (on constructor) - * result = Reflect.getOwnMetadata("custom:annotation", Example, "staticProperty"); - * - * // property (on prototype) - * result = Reflect.getOwnMetadata("custom:annotation", Example.prototype, "property"); - * - * // method (on constructor) - * result = Reflect.getOwnMetadata("custom:annotation", Example, "staticMethod"); - * - * // method (on prototype) - * result = Reflect.getOwnMetadata("custom:annotation", Example.prototype, "method"); - * - */ - function getOwnMetadata(metadataKey, target, propertyKey) { - if (!IsObject(target)) - throw new TypeError(); - if (!IsUndefined(propertyKey)) - propertyKey = ToPropertyKey(propertyKey); - return OrdinaryGetOwnMetadata(metadataKey, target, propertyKey); - } - exporter("getOwnMetadata", getOwnMetadata); - /** - * Gets the metadata keys defined on the target object or its prototype chain. - * @param target The target object on which the metadata is defined. - * @param propertyKey (Optional) The property key for the target. - * @returns An array of unique metadata keys. - * @example - * - * class Example { - * // property declarations are not part of ES6, though they are valid in TypeScript: - * // static staticProperty; - * // property; - * - * constructor(p) { } - * static staticMethod(p) { } - * method(p) { } - * } - * - * // constructor - * result = Reflect.getMetadataKeys(Example); - * - * // property (on constructor) - * result = Reflect.getMetadataKeys(Example, "staticProperty"); - * - * // property (on prototype) - * result = Reflect.getMetadataKeys(Example.prototype, "property"); - * - * // method (on constructor) - * result = Reflect.getMetadataKeys(Example, "staticMethod"); - * - * // method (on prototype) - * result = Reflect.getMetadataKeys(Example.prototype, "method"); - * - */ - function getMetadataKeys(target, propertyKey) { - if (!IsObject(target)) - throw new TypeError(); - if (!IsUndefined(propertyKey)) - propertyKey = ToPropertyKey(propertyKey); - return OrdinaryMetadataKeys(target, propertyKey); - } - exporter("getMetadataKeys", getMetadataKeys); - /** - * Gets the unique metadata keys defined on the target object. - * @param target The target object on which the metadata is defined. - * @param propertyKey (Optional) The property key for the target. - * @returns An array of unique metadata keys. - * @example - * - * class Example { - * // property declarations are not part of ES6, though they are valid in TypeScript: - * // static staticProperty; - * // property; - * - * constructor(p) { } - * static staticMethod(p) { } - * method(p) { } - * } - * - * // constructor - * result = Reflect.getOwnMetadataKeys(Example); - * - * // property (on constructor) - * result = Reflect.getOwnMetadataKeys(Example, "staticProperty"); - * - * // property (on prototype) - * result = Reflect.getOwnMetadataKeys(Example.prototype, "property"); - * - * // method (on constructor) - * result = Reflect.getOwnMetadataKeys(Example, "staticMethod"); - * - * // method (on prototype) - * result = Reflect.getOwnMetadataKeys(Example.prototype, "method"); - * - */ - function getOwnMetadataKeys(target, propertyKey) { - if (!IsObject(target)) - throw new TypeError(); - if (!IsUndefined(propertyKey)) - propertyKey = ToPropertyKey(propertyKey); - return OrdinaryOwnMetadataKeys(target, propertyKey); - } - exporter("getOwnMetadataKeys", getOwnMetadataKeys); - /** - * Deletes the metadata entry from the target object with the provided key. - * @param metadataKey A key used to store and retrieve metadata. - * @param target The target object on which the metadata is defined. - * @param propertyKey (Optional) The property key for the target. - * @returns `true` if the metadata entry was found and deleted; otherwise, false. - * @example - * - * class Example { - * // property declarations are not part of ES6, though they are valid in TypeScript: - * // static staticProperty; - * // property; - * - * constructor(p) { } - * static staticMethod(p) { } - * method(p) { } - * } - * - * // constructor - * result = Reflect.deleteMetadata("custom:annotation", Example); - * - * // property (on constructor) - * result = Reflect.deleteMetadata("custom:annotation", Example, "staticProperty"); - * - * // property (on prototype) - * result = Reflect.deleteMetadata("custom:annotation", Example.prototype, "property"); - * - * // method (on constructor) - * result = Reflect.deleteMetadata("custom:annotation", Example, "staticMethod"); - * - * // method (on prototype) - * result = Reflect.deleteMetadata("custom:annotation", Example.prototype, "method"); - * - */ - function deleteMetadata(metadataKey, target, propertyKey) { - if (!IsObject(target)) - throw new TypeError(); - if (!IsUndefined(propertyKey)) - propertyKey = ToPropertyKey(propertyKey); - var metadataMap = GetOrCreateMetadataMap(target, propertyKey, /*Create*/ false); - if (IsUndefined(metadataMap)) - return false; - if (!metadataMap.delete(metadataKey)) - return false; - if (metadataMap.size > 0) - return true; - var targetMetadata = Metadata.get(target); - targetMetadata.delete(propertyKey); - if (targetMetadata.size > 0) - return true; - Metadata.delete(target); - return true; - } - exporter("deleteMetadata", deleteMetadata); - function DecorateConstructor(decorators, target) { - for (var i = decorators.length - 1; i >= 0; --i) { - var decorator = decorators[i]; - var decorated = decorator(target); - if (!IsUndefined(decorated) && !IsNull(decorated)) { - if (!IsConstructor(decorated)) - throw new TypeError(); - target = decorated; - } - } - return target; - } - function DecorateProperty(decorators, target, propertyKey, descriptor) { - for (var i = decorators.length - 1; i >= 0; --i) { - var decorator = decorators[i]; - var decorated = decorator(target, propertyKey, descriptor); - if (!IsUndefined(decorated) && !IsNull(decorated)) { - if (!IsObject(decorated)) - throw new TypeError(); - descriptor = decorated; - } - } - return descriptor; - } - function GetOrCreateMetadataMap(O, P, Create) { - var targetMetadata = Metadata.get(O); - if (IsUndefined(targetMetadata)) { - if (!Create) - return undefined; - targetMetadata = new _Map(); - Metadata.set(O, targetMetadata); - } - var metadataMap = targetMetadata.get(P); - if (IsUndefined(metadataMap)) { - if (!Create) - return undefined; - metadataMap = new _Map(); - targetMetadata.set(P, metadataMap); - } - return metadataMap; - } - // 3.1.1.1 OrdinaryHasMetadata(MetadataKey, O, P) - // https://rbuckton.github.io/reflect-metadata/#ordinaryhasmetadata - function OrdinaryHasMetadata(MetadataKey, O, P) { - var hasOwn = OrdinaryHasOwnMetadata(MetadataKey, O, P); - if (hasOwn) - return true; - var parent = OrdinaryGetPrototypeOf(O); - if (!IsNull(parent)) - return OrdinaryHasMetadata(MetadataKey, parent, P); - return false; - } - // 3.1.2.1 OrdinaryHasOwnMetadata(MetadataKey, O, P) - // https://rbuckton.github.io/reflect-metadata/#ordinaryhasownmetadata - function OrdinaryHasOwnMetadata(MetadataKey, O, P) { - var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ false); - if (IsUndefined(metadataMap)) - return false; - return ToBoolean(metadataMap.has(MetadataKey)); - } - // 3.1.3.1 OrdinaryGetMetadata(MetadataKey, O, P) - // https://rbuckton.github.io/reflect-metadata/#ordinarygetmetadata - function OrdinaryGetMetadata(MetadataKey, O, P) { - var hasOwn = OrdinaryHasOwnMetadata(MetadataKey, O, P); - if (hasOwn) - return OrdinaryGetOwnMetadata(MetadataKey, O, P); - var parent = OrdinaryGetPrototypeOf(O); - if (!IsNull(parent)) - return OrdinaryGetMetadata(MetadataKey, parent, P); - return undefined; - } - // 3.1.4.1 OrdinaryGetOwnMetadata(MetadataKey, O, P) - // https://rbuckton.github.io/reflect-metadata/#ordinarygetownmetadata - function OrdinaryGetOwnMetadata(MetadataKey, O, P) { - var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ false); - if (IsUndefined(metadataMap)) - return undefined; - return metadataMap.get(MetadataKey); - } - // 3.1.5.1 OrdinaryDefineOwnMetadata(MetadataKey, MetadataValue, O, P) - // https://rbuckton.github.io/reflect-metadata/#ordinarydefineownmetadata - function OrdinaryDefineOwnMetadata(MetadataKey, MetadataValue, O, P) { - var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ true); - metadataMap.set(MetadataKey, MetadataValue); - } - // 3.1.6.1 OrdinaryMetadataKeys(O, P) - // https://rbuckton.github.io/reflect-metadata/#ordinarymetadatakeys - function OrdinaryMetadataKeys(O, P) { - var ownKeys = OrdinaryOwnMetadataKeys(O, P); - var parent = OrdinaryGetPrototypeOf(O); - if (parent === null) - return ownKeys; - var parentKeys = OrdinaryMetadataKeys(parent, P); - if (parentKeys.length <= 0) - return ownKeys; - if (ownKeys.length <= 0) - return parentKeys; - var set = new _Set(); - var keys = []; - for (var _i = 0, ownKeys_1 = ownKeys; _i < ownKeys_1.length; _i++) { - var key = ownKeys_1[_i]; - var hasKey = set.has(key); - if (!hasKey) { - set.add(key); - keys.push(key); - } - } - for (var _a = 0, parentKeys_1 = parentKeys; _a < parentKeys_1.length; _a++) { - var key = parentKeys_1[_a]; - var hasKey = set.has(key); - if (!hasKey) { - set.add(key); - keys.push(key); - } - } - return keys; - } - // 3.1.7.1 OrdinaryOwnMetadataKeys(O, P) - // https://rbuckton.github.io/reflect-metadata/#ordinaryownmetadatakeys - function OrdinaryOwnMetadataKeys(O, P) { - var keys = []; - var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ false); - if (IsUndefined(metadataMap)) - return keys; - var keysObj = metadataMap.keys(); - var iterator = GetIterator(keysObj); - var k = 0; - while (true) { - var next = IteratorStep(iterator); - if (!next) { - keys.length = k; - return keys; - } - var nextValue = IteratorValue(next); - try { - keys[k] = nextValue; - } - catch (e) { - try { - IteratorClose(iterator); - } - finally { - throw e; - } - } - k++; - } - } - // 6 ECMAScript Data Typ0es and Values - // https://tc39.github.io/ecma262/#sec-ecmascript-data-types-and-values - function Type(x) { - if (x === null) - return 1 /* Null */; - switch (typeof x) { - case "undefined": return 0 /* Undefined */; - case "boolean": return 2 /* Boolean */; - case "string": return 3 /* String */; - case "symbol": return 4 /* Symbol */; - case "number": return 5 /* Number */; - case "object": return x === null ? 1 /* Null */ : 6 /* Object */; - default: return 6 /* Object */; - } - } - // 6.1.1 The Undefined Type - // https://tc39.github.io/ecma262/#sec-ecmascript-language-types-undefined-type - function IsUndefined(x) { - return x === undefined; - } - // 6.1.2 The Null Type - // https://tc39.github.io/ecma262/#sec-ecmascript-language-types-null-type - function IsNull(x) { - return x === null; - } - // 6.1.5 The Symbol Type - // https://tc39.github.io/ecma262/#sec-ecmascript-language-types-symbol-type - function IsSymbol(x) { - return typeof x === "symbol"; - } - // 6.1.7 The Object Type - // https://tc39.github.io/ecma262/#sec-object-type - function IsObject(x) { - return typeof x === "object" ? x !== null : typeof x === "function"; - } - // 7.1 Type Conversion - // https://tc39.github.io/ecma262/#sec-type-conversion - // 7.1.1 ToPrimitive(input [, PreferredType]) - // https://tc39.github.io/ecma262/#sec-toprimitive - function ToPrimitive(input, PreferredType) { - switch (Type(input)) { - case 0 /* Undefined */: return input; - case 1 /* Null */: return input; - case 2 /* Boolean */: return input; - case 3 /* String */: return input; - case 4 /* Symbol */: return input; - case 5 /* Number */: return input; - } - var hint = PreferredType === 3 /* String */ ? "string" : PreferredType === 5 /* Number */ ? "number" : "default"; - var exoticToPrim = GetMethod(input, toPrimitiveSymbol); - if (exoticToPrim !== undefined) { - var result = exoticToPrim.call(input, hint); - if (IsObject(result)) - throw new TypeError(); - return result; - } - return OrdinaryToPrimitive(input, hint === "default" ? "number" : hint); - } - // 7.1.1.1 OrdinaryToPrimitive(O, hint) - // https://tc39.github.io/ecma262/#sec-ordinarytoprimitive - function OrdinaryToPrimitive(O, hint) { - if (hint === "string") { - var toString_1 = O.toString; - if (IsCallable(toString_1)) { - var result = toString_1.call(O); - if (!IsObject(result)) - return result; - } - var valueOf = O.valueOf; - if (IsCallable(valueOf)) { - var result = valueOf.call(O); - if (!IsObject(result)) - return result; - } - } - else { - var valueOf = O.valueOf; - if (IsCallable(valueOf)) { - var result = valueOf.call(O); - if (!IsObject(result)) - return result; - } - var toString_2 = O.toString; - if (IsCallable(toString_2)) { - var result = toString_2.call(O); - if (!IsObject(result)) - return result; - } - } - throw new TypeError(); - } - // 7.1.2 ToBoolean(argument) - // https://tc39.github.io/ecma262/2016/#sec-toboolean - function ToBoolean(argument) { - return !!argument; - } - // 7.1.12 ToString(argument) - // https://tc39.github.io/ecma262/#sec-tostring - function ToString(argument) { - return "" + argument; - } - // 7.1.14 ToPropertyKey(argument) - // https://tc39.github.io/ecma262/#sec-topropertykey - function ToPropertyKey(argument) { - var key = ToPrimitive(argument, 3 /* String */); - if (IsSymbol(key)) - return key; - return ToString(key); - } - // 7.2 Testing and Comparison Operations - // https://tc39.github.io/ecma262/#sec-testing-and-comparison-operations - // 7.2.2 IsArray(argument) - // https://tc39.github.io/ecma262/#sec-isarray - function IsArray(argument) { - return Array.isArray - ? Array.isArray(argument) - : argument instanceof Object - ? argument instanceof Array - : Object.prototype.toString.call(argument) === "[object Array]"; - } - // 7.2.3 IsCallable(argument) - // https://tc39.github.io/ecma262/#sec-iscallable - function IsCallable(argument) { - // NOTE: This is an approximation as we cannot check for [[Call]] internal method. - return typeof argument === "function"; - } - // 7.2.4 IsConstructor(argument) - // https://tc39.github.io/ecma262/#sec-isconstructor - function IsConstructor(argument) { - // NOTE: This is an approximation as we cannot check for [[Construct]] internal method. - return typeof argument === "function"; - } - // 7.2.7 IsPropertyKey(argument) - // https://tc39.github.io/ecma262/#sec-ispropertykey - function IsPropertyKey(argument) { - switch (Type(argument)) { - case 3 /* String */: return true; - case 4 /* Symbol */: return true; - default: return false; - } - } - // 7.3 Operations on Objects - // https://tc39.github.io/ecma262/#sec-operations-on-objects - // 7.3.9 GetMethod(V, P) - // https://tc39.github.io/ecma262/#sec-getmethod - function GetMethod(V, P) { - var func = V[P]; - if (func === undefined || func === null) - return undefined; - if (!IsCallable(func)) - throw new TypeError(); - return func; - } - // 7.4 Operations on Iterator Objects - // https://tc39.github.io/ecma262/#sec-operations-on-iterator-objects - function GetIterator(obj) { - var method = GetMethod(obj, iteratorSymbol); - if (!IsCallable(method)) - throw new TypeError(); // from Call - var iterator = method.call(obj); - if (!IsObject(iterator)) - throw new TypeError(); - return iterator; - } - // 7.4.4 IteratorValue(iterResult) - // https://tc39.github.io/ecma262/2016/#sec-iteratorvalue - function IteratorValue(iterResult) { - return iterResult.value; - } - // 7.4.5 IteratorStep(iterator) - // https://tc39.github.io/ecma262/#sec-iteratorstep - function IteratorStep(iterator) { - var result = iterator.next(); - return result.done ? false : result; - } - // 7.4.6 IteratorClose(iterator, completion) - // https://tc39.github.io/ecma262/#sec-iteratorclose - function IteratorClose(iterator) { - var f = iterator["return"]; - if (f) - f.call(iterator); - } - // 9.1 Ordinary Object Internal Methods and Internal Slots - // https://tc39.github.io/ecma262/#sec-ordinary-object-internal-methods-and-internal-slots - // 9.1.1.1 OrdinaryGetPrototypeOf(O) - // https://tc39.github.io/ecma262/#sec-ordinarygetprototypeof - function OrdinaryGetPrototypeOf(O) { - var proto = Object.getPrototypeOf(O); - if (typeof O !== "function" || O === functionPrototype) - return proto; - // TypeScript doesn't set __proto__ in ES5, as it's non-standard. - // Try to determine the superclass constructor. Compatible implementations - // must either set __proto__ on a subclass constructor to the superclass constructor, - // or ensure each class has a valid `constructor` property on its prototype that - // points back to the constructor. - // If this is not the same as Function.[[Prototype]], then this is definately inherited. - // This is the case when in ES6 or when using __proto__ in a compatible browser. - if (proto !== functionPrototype) - return proto; - // If the super prototype is Object.prototype, null, or undefined, then we cannot determine the heritage. - var prototype = O.prototype; - var prototypeProto = prototype && Object.getPrototypeOf(prototype); - if (prototypeProto == null || prototypeProto === Object.prototype) - return proto; - // If the constructor was not a function, then we cannot determine the heritage. - var constructor = prototypeProto.constructor; - if (typeof constructor !== "function") - return proto; - // If we have some kind of self-reference, then we cannot determine the heritage. - if (constructor === O) - return proto; - // we have a pretty good guess at the heritage. - return constructor; - } - // naive Map shim - function CreateMapPolyfill() { - var cacheSentinel = {}; - var arraySentinel = []; - var MapIterator = (function () { - function MapIterator(keys, values, selector) { - this._index = 0; - this._keys = keys; - this._values = values; - this._selector = selector; - } - MapIterator.prototype["@@iterator"] = function () { return this; }; - MapIterator.prototype[iteratorSymbol] = function () { return this; }; - MapIterator.prototype.next = function () { - var index = this._index; - if (index >= 0 && index < this._keys.length) { - var result = this._selector(this._keys[index], this._values[index]); - if (index + 1 >= this._keys.length) { - this._index = -1; - this._keys = arraySentinel; - this._values = arraySentinel; - } - else { - this._index++; - } - return { value: result, done: false }; - } - return { value: undefined, done: true }; - }; - MapIterator.prototype.throw = function (error) { - if (this._index >= 0) { - this._index = -1; - this._keys = arraySentinel; - this._values = arraySentinel; - } - throw error; - }; - MapIterator.prototype.return = function (value) { - if (this._index >= 0) { - this._index = -1; - this._keys = arraySentinel; - this._values = arraySentinel; - } - return { value: value, done: true }; - }; - return MapIterator; - }()); - return (function () { - function Map() { - this._keys = []; - this._values = []; - this._cacheKey = cacheSentinel; - this._cacheIndex = -2; - } - Object.defineProperty(Map.prototype, "size", { - get: function () { return this._keys.length; }, - enumerable: true, - configurable: true - }); - Map.prototype.has = function (key) { return this._find(key, /*insert*/ false) >= 0; }; - Map.prototype.get = function (key) { - var index = this._find(key, /*insert*/ false); - return index >= 0 ? this._values[index] : undefined; - }; - Map.prototype.set = function (key, value) { - var index = this._find(key, /*insert*/ true); - this._values[index] = value; - return this; - }; - Map.prototype.delete = function (key) { - var index = this._find(key, /*insert*/ false); - if (index >= 0) { - var size = this._keys.length; - for (var i = index + 1; i < size; i++) { - this._keys[i - 1] = this._keys[i]; - this._values[i - 1] = this._values[i]; - } - this._keys.length--; - this._values.length--; - if (key === this._cacheKey) { - this._cacheKey = cacheSentinel; - this._cacheIndex = -2; - } - return true; - } - return false; - }; - Map.prototype.clear = function () { - this._keys.length = 0; - this._values.length = 0; - this._cacheKey = cacheSentinel; - this._cacheIndex = -2; - }; - Map.prototype.keys = function () { return new MapIterator(this._keys, this._values, getKey); }; - Map.prototype.values = function () { return new MapIterator(this._keys, this._values, getValue); }; - Map.prototype.entries = function () { return new MapIterator(this._keys, this._values, getEntry); }; - Map.prototype["@@iterator"] = function () { return this.entries(); }; - Map.prototype[iteratorSymbol] = function () { return this.entries(); }; - Map.prototype._find = function (key, insert) { - if (this._cacheKey !== key) { - this._cacheIndex = this._keys.indexOf(this._cacheKey = key); - } - if (this._cacheIndex < 0 && insert) { - this._cacheIndex = this._keys.length; - this._keys.push(key); - this._values.push(undefined); - } - return this._cacheIndex; - }; - return Map; - }()); - function getKey(key, _) { - return key; - } - function getValue(_, value) { - return value; - } - function getEntry(key, value) { - return [key, value]; - } - } - // naive Set shim - function CreateSetPolyfill() { - return (function () { - function Set() { - this._map = new _Map(); - } - Object.defineProperty(Set.prototype, "size", { - get: function () { return this._map.size; }, - enumerable: true, - configurable: true - }); - Set.prototype.has = function (value) { return this._map.has(value); }; - Set.prototype.add = function (value) { return this._map.set(value, value), this; }; - Set.prototype.delete = function (value) { return this._map.delete(value); }; - Set.prototype.clear = function () { this._map.clear(); }; - Set.prototype.keys = function () { return this._map.keys(); }; - Set.prototype.values = function () { return this._map.values(); }; - Set.prototype.entries = function () { return this._map.entries(); }; - Set.prototype["@@iterator"] = function () { return this.keys(); }; - Set.prototype[iteratorSymbol] = function () { return this.keys(); }; - return Set; - }()); - } - // naive WeakMap shim - function CreateWeakMapPolyfill() { - var UUID_SIZE = 16; - var keys = HashMap.create(); - var rootKey = CreateUniqueKey(); - return (function () { - function WeakMap() { - this._key = CreateUniqueKey(); - } - WeakMap.prototype.has = function (target) { - var table = GetOrCreateWeakMapTable(target, /*create*/ false); - return table !== undefined ? HashMap.has(table, this._key) : false; - }; - WeakMap.prototype.get = function (target) { - var table = GetOrCreateWeakMapTable(target, /*create*/ false); - return table !== undefined ? HashMap.get(table, this._key) : undefined; - }; - WeakMap.prototype.set = function (target, value) { - var table = GetOrCreateWeakMapTable(target, /*create*/ true); - table[this._key] = value; - return this; - }; - WeakMap.prototype.delete = function (target) { - var table = GetOrCreateWeakMapTable(target, /*create*/ false); - return table !== undefined ? delete table[this._key] : false; - }; - WeakMap.prototype.clear = function () { - // NOTE: not a real clear, just makes the previous data unreachable - this._key = CreateUniqueKey(); - }; - return WeakMap; - }()); - function CreateUniqueKey() { - var key; - do - key = "@@WeakMap@@" + CreateUUID(); - while (HashMap.has(keys, key)); - keys[key] = true; - return key; - } - function GetOrCreateWeakMapTable(target, create) { - if (!hasOwn.call(target, rootKey)) { - if (!create) - return undefined; - Object.defineProperty(target, rootKey, { value: HashMap.create() }); - } - return target[rootKey]; - } - function FillRandomBytes(buffer, size) { - for (var i = 0; i < size; ++i) - buffer[i] = Math.random() * 0xff | 0; - return buffer; - } - function GenRandomBytes(size) { - if (typeof Uint8Array === "function") { - if (typeof crypto !== "undefined") - return crypto.getRandomValues(new Uint8Array(size)); - if (typeof msCrypto !== "undefined") - return msCrypto.getRandomValues(new Uint8Array(size)); - return FillRandomBytes(new Uint8Array(size), size); - } - return FillRandomBytes(new Array(size), size); - } - function CreateUUID() { - var data = GenRandomBytes(UUID_SIZE); - // mark as random - RFC 4122 § 4.4 - data[6] = data[6] & 0x4f | 0x40; - data[8] = data[8] & 0xbf | 0x80; - var result = ""; - for (var offset = 0; offset < UUID_SIZE; ++offset) { - var byte = data[offset]; - if (offset === 4 || offset === 6 || offset === 8) - result += "-"; - if (byte < 16) - result += "0"; - result += byte.toString(16).toLowerCase(); - } - return result; - } - } - // uses a heuristic used by v8 and chakra to force an object into dictionary mode. - function MakeDictionary(obj) { - obj.__ = undefined; - delete obj.__; - return obj; - } - }); - })(Reflect$1 || (Reflect$1 = {})); - - /*! ***************************************************************************** - Copyright (c) Microsoft Corporation. All rights reserved. - Licensed under the Apache License, Version 2.0 (the "License"); you may not use - this file except in compliance with the License. You may obtain a copy of the - License at http://www.apache.org/licenses/LICENSE-2.0 - - THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED - WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, - MERCHANTABLITY OR NON-INFRINGEMENT. - - See the Apache Version 2.0 License for specific language governing permissions - and limitations under the License. - ***************************************************************************** */ - /* global Reflect, Promise */ - - var extendStatics = function(d, b) { - extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return extendStatics(d, b); - }; - - function __extends(d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - } - - function isFunction(arg) { - return typeof arg === "function"; - } - function isObject(arg) { - return arg && typeof arg === "object"; - } - function isString(arg) { - return typeof arg === "string"; - } - function isSymbol(arg) { - return typeof arg === "symbol"; - } - function isToken(arg) { - return isFunction(arg) || isObject(arg) || isString(arg) || isSymbol(arg); - } - function isReactComponent(prototype) { - return isObject(prototype) && isObject(prototype.isReactComponent); - } - function isValidMetadata(arg) { - return (isFunction(arg) && - [Object, Function, Number, String, Boolean].indexOf(arg) === -1); - } - - function getDebugName(value) { - if (isFunction(value)) { - return String(value.displayName || value.name); - } - if (isObject(value) && isFunction(value.constructor)) { - return String(value.constructor.name); - } - return String(value); - } - function logError(message) { - try { - throw new Error(message); - } - catch (e) { - console.error(e); - } - } - function logIncorrectBinding(token, binding) { - var tokenName = getDebugName(token); - var bindingName = getDebugName(binding); - logError("Binding [" + tokenName + ", " + bindingName + "] is incorrect."); - } - function logNotFoundDependency(token) { - var name = getDebugName(token); - logError("Dependency " + name + " is not found.\nPlease register " + name + " in some Provider e.g.\n@provider([" + name + ", " + name + "])\nclass App extends React.Component { /*...*/ }"); - } - function logNotFoundProvider(target) { - if (isReactComponent(target)) { - var name_1 = getDebugName(target); - logError("Provider is not found.\n Please define Provider and set " + name_1 + ".contextType = InjectorContext e.g.\n @provider([MyService, MyService])\n class App extends React.Component { /*...*/ }\n class " + name_1 + " extends React.Component {\n static contextType = InjectorContext;\n }"); - } - else { - logError("Provider is not found.\n Please define Provider e.g.\n @provider([MyService, MyService])\n class App extends React.Component { /*...*/ }"); - } - } - function logInvalidMetadata(target, token) { - var tokenName = getDebugName(token); - var targetName = getDebugName(target); - logError(tokenName + " is not a valid dependency.\nPlease specify ES6 class as property type e.g.\nclass MyService {}\nclass " + targetName + " {\n @inject myService: MyService;\n}"); - } - - /** @typedef {import("./types").Token} Token */ - /** React Context for Injector */ - var InjectorContext = react.createContext(null); - /** - * Dependency injection container - * @internal - */ - var Injector = /** @class */ (function (_super) { - __extends(Injector, _super); - function Injector() { - return _super !== null && _super.apply(this, arguments) || this; - } - return Injector; - }(react.Component)); - /** - * Find Injector for passed object and cache it inside this object - * @internal - * @param {Object} target The object in which we inject value - * @returns {Injector} - */ - function getInjector(target) { - var injector = target[INJECTOR]; - if (injector) { - return injector; - } - injector = currentInjector || target.context; - if (injector instanceof Injector) { - target[INJECTOR] = injector; - return injector; - } - return null; - } - /** @type {Injector} */ - var currentInjector = null; - /* istanbul ignore next */ - var INJECTOR = typeof Symbol === "function" ? Symbol() : "__injector__"; - /** - * Resolve a class instance that registered by some Provider in hierarchy. - * Instance is cached in Provider that registers it's class. - * @internal - * @param {Injector} injector Injector instance - * @param {Token} token Dependency injection token - * @returns {Object} Resolved class instance - */ - function getInstance(injector, token) { - if (registrationQueue.length > 0) { - registrationQueue.forEach(function (registration) { - registration(); - }); - registrationQueue.length = 0; - } - while (injector) { - var instance = injector._instanceMap.get(token); - if (instance !== undefined) { - return instance; - } - var binding = injector._bindingMap.get(token); - if (binding) { - var prevInjector = currentInjector; - currentInjector = injector; - try { - instance = binding(injector); - } - finally { - currentInjector = prevInjector; - } - injector._instanceMap.set(token, instance); - return instance; - } - injector = injector._parent; - } - { - logNotFoundDependency(token); - } - return undefined; - } - /** @type {Function[]} */ - var registrationQueue = []; - - /** @typedef {import("./types").Token} Token */ - /** - * Property decorator that resolves a class instance - * which registered by some Provider in hierarchy. - * Instance is cached in Provider that registers it's class. - * @param {Token | Object} [targetOrToken] Object or Class prototype or dependency injection token - * @param {string | symbol | Function} [keyOrToken] Property key or dependency injection token - */ - function inject(targetOrToken, keyOrToken) { - if (isFunction(keyOrToken)) { - return injectFunction(targetOrToken, keyOrToken); - } - /** @type {Token} */ - var token; - if (!keyOrToken) { - token = targetOrToken; - return injectDecorator; - } - return injectDecorator(targetOrToken, keyOrToken); - function injectDecorator(prototype, key) { - { - defineContextType(prototype); - } - if (!token) { - token = Reflect.getMetadata("design:type", prototype, key); - { - if (!isValidMetadata(token)) { - logInvalidMetadata(targetOrToken, token); - } - } - } - var descriptor = { - configurable: true, - enumerable: true, - get: function () { - var instance = injectFunction(this, token); - Object.defineProperty(this, key, { - enumerable: true, - writable: true, - value: instance - }); - return instance; - }, - set: function (instance) { - Object.defineProperty(this, key, { - enumerable: true, - writable: true, - value: instance - }); - } - }; - Object.defineProperty(prototype, key, descriptor); - return descriptor; - } - } - /** - * Resolve a class instance that registered by some Provider in hierarchy. - * Instance is cached in Provider that registers it's class. - * @internal - * @param {Object} target The object in which we inject class instance - * @param {Token} token Dependency injection token - * @returns {Object} Resolved class instance - */ - function injectFunction(target, token) { - var injector = getInjector(target); - { - if (!injector) { - logNotFoundProvider(target); - } - } - return getInstance(injector, token); - } - /** - * Set Class.contextType = InjectorContext - * @internal - * @param {Object} prototype React Component prototype - */ - function defineContextType(prototype) { - if (isReactComponent(prototype)) { - var constructor = prototype.constructor; - var className_1 = getDebugName(constructor); - if (constructor.contextType !== InjectorContext) { - if (constructor.contextType) { - logError("Decorator tries to overwrite existing " + className_1 + ".contextType"); - } - else { - Object.defineProperty(constructor, "contextType", { - get: function () { - return InjectorContext; - }, - set: function () { - logError("You are trying to overwrite " + className_1 + ".contextType = InjectorContext"); - } - }); - } - } - } - } - - var reactIs_production_min = createCommonjsModule(function (module, exports) { - Object.defineProperty(exports,"__esModule",{value:!0}); - var b="function"===typeof Symbol&&Symbol.for,c=b?Symbol.for("react.element"):60103,d=b?Symbol.for("react.portal"):60106,e=b?Symbol.for("react.fragment"):60107,f=b?Symbol.for("react.strict_mode"):60108,g=b?Symbol.for("react.profiler"):60114,h=b?Symbol.for("react.provider"):60109,k=b?Symbol.for("react.context"):60110,l=b?Symbol.for("react.async_mode"):60111,m=b?Symbol.for("react.concurrent_mode"):60111,n=b?Symbol.for("react.forward_ref"):60112,p=b?Symbol.for("react.suspense"):60113,r=b?Symbol.for("react.memo"): - 60115,t=b?Symbol.for("react.lazy"):60116;function u(a){if("object"===typeof a&&null!==a){var q=a.$$typeof;switch(q){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case h:return a;default:return q}}case d:return q}}}function v(a){return u(a)===m}exports.typeOf=u;exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e; - exports.Profiler=g;exports.Portal=d;exports.StrictMode=f;exports.isValidElementType=function(a){return "string"===typeof a||"function"===typeof a||a===e||a===m||a===g||a===f||a===p||"object"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n)};exports.isAsyncMode=function(a){return v(a)||u(a)===l};exports.isConcurrentMode=v;exports.isContextConsumer=function(a){return u(a)===k};exports.isContextProvider=function(a){return u(a)===h}; - exports.isElement=function(a){return "object"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return u(a)===n};exports.isFragment=function(a){return u(a)===e};exports.isProfiler=function(a){return u(a)===g};exports.isPortal=function(a){return u(a)===d};exports.isStrictMode=function(a){return u(a)===f}; - }); - - unwrapExports(reactIs_production_min); - var reactIs_production_min_1 = reactIs_production_min.typeOf; - var reactIs_production_min_2 = reactIs_production_min.AsyncMode; - var reactIs_production_min_3 = reactIs_production_min.ConcurrentMode; - var reactIs_production_min_4 = reactIs_production_min.ContextConsumer; - var reactIs_production_min_5 = reactIs_production_min.ContextProvider; - var reactIs_production_min_6 = reactIs_production_min.Element; - var reactIs_production_min_7 = reactIs_production_min.ForwardRef; - var reactIs_production_min_8 = reactIs_production_min.Fragment; - var reactIs_production_min_9 = reactIs_production_min.Profiler; - var reactIs_production_min_10 = reactIs_production_min.Portal; - var reactIs_production_min_11 = reactIs_production_min.StrictMode; - var reactIs_production_min_12 = reactIs_production_min.isValidElementType; - var reactIs_production_min_13 = reactIs_production_min.isAsyncMode; - var reactIs_production_min_14 = reactIs_production_min.isConcurrentMode; - var reactIs_production_min_15 = reactIs_production_min.isContextConsumer; - var reactIs_production_min_16 = reactIs_production_min.isContextProvider; - var reactIs_production_min_17 = reactIs_production_min.isElement; - var reactIs_production_min_18 = reactIs_production_min.isForwardRef; - var reactIs_production_min_19 = reactIs_production_min.isFragment; - var reactIs_production_min_20 = reactIs_production_min.isProfiler; - var reactIs_production_min_21 = reactIs_production_min.isPortal; - var reactIs_production_min_22 = reactIs_production_min.isStrictMode; - - var reactIs_development = createCommonjsModule(function (module, exports) { - - - - if (process.env.NODE_ENV !== "production") { - (function() { - - Object.defineProperty(exports, '__esModule', { value: true }); - - // The Symbol used to tag the ReactElement-like types. If there is no native Symbol - // nor polyfill, then a plain number is used for performance. - var hasSymbol = typeof Symbol === 'function' && Symbol.for; - - var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7; - var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca; - var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb; - var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc; - var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2; - var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd; - var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; - var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf; - var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf; - var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0; - var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1; - var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3; - var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4; - - function isValidElementType(type) { - return typeof type === 'string' || typeof type === 'function' || - // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill. - type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE); - } - - /** - * Forked from fbjs/warning: - * https://github.com/facebook/fbjs/blob/e66ba20ad5be433eb54423f2b097d829324d9de6/packages/fbjs/src/__forks__/warning.js - * - * Only change is we use console.warn instead of console.error, - * and do nothing when 'console' is not supported. - * This really simplifies the code. - * --- - * Similar to invariant but only logs a warning if the condition is not met. - * This can be used to log issues in development environments in critical - * paths. Removing the logging code for production environments will keep the - * same logic and follow the same code paths. - */ - - var lowPriorityWarning = function () {}; - - { - var printWarning = function (format) { - for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - args[_key - 1] = arguments[_key]; - } - - var argIndex = 0; - var message = 'Warning: ' + format.replace(/%s/g, function () { - return args[argIndex++]; - }); - if (typeof console !== 'undefined') { - console.warn(message); - } - try { - // --- Welcome to debugging React --- - // This error was thrown as a convenience so that you can use this stack - // to find the callsite that caused this warning to fire. - throw new Error(message); - } catch (x) {} - }; - - lowPriorityWarning = function (condition, format) { - if (format === undefined) { - throw new Error('`lowPriorityWarning(condition, format, ...args)` requires a warning ' + 'message argument'); - } - if (!condition) { - for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) { - args[_key2 - 2] = arguments[_key2]; - } - - printWarning.apply(undefined, [format].concat(args)); - } - }; - } - - var lowPriorityWarning$1 = lowPriorityWarning; - - function typeOf(object) { - if (typeof object === 'object' && object !== null) { - var $$typeof = object.$$typeof; - - switch ($$typeof) { - case REACT_ELEMENT_TYPE: - var type = object.type; - - switch (type) { - case REACT_ASYNC_MODE_TYPE: - case REACT_CONCURRENT_MODE_TYPE: - case REACT_FRAGMENT_TYPE: - case REACT_PROFILER_TYPE: - case REACT_STRICT_MODE_TYPE: - return type; - default: - var $$typeofType = type && type.$$typeof; - - switch ($$typeofType) { - case REACT_CONTEXT_TYPE: - case REACT_FORWARD_REF_TYPE: - case REACT_PROVIDER_TYPE: - return $$typeofType; - default: - return $$typeof; - } - } - case REACT_PORTAL_TYPE: - return $$typeof; - } - } - - return undefined; - } - - // AsyncMode is deprecated along with isAsyncMode - var AsyncMode = REACT_ASYNC_MODE_TYPE; - var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE; - var ContextConsumer = REACT_CONTEXT_TYPE; - var ContextProvider = REACT_PROVIDER_TYPE; - var Element = REACT_ELEMENT_TYPE; - var ForwardRef = REACT_FORWARD_REF_TYPE; - var Fragment = REACT_FRAGMENT_TYPE; - var Profiler = REACT_PROFILER_TYPE; - var Portal = REACT_PORTAL_TYPE; - var StrictMode = REACT_STRICT_MODE_TYPE; - - var hasWarnedAboutDeprecatedIsAsyncMode = false; - - // AsyncMode should be deprecated - function isAsyncMode(object) { - { - if (!hasWarnedAboutDeprecatedIsAsyncMode) { - hasWarnedAboutDeprecatedIsAsyncMode = true; - lowPriorityWarning$1(false, 'The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.'); - } - } - return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE; - } - function isConcurrentMode(object) { - return typeOf(object) === REACT_CONCURRENT_MODE_TYPE; - } - function isContextConsumer(object) { - return typeOf(object) === REACT_CONTEXT_TYPE; - } - function isContextProvider(object) { - return typeOf(object) === REACT_PROVIDER_TYPE; - } - function isElement(object) { - return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE; - } - function isForwardRef(object) { - return typeOf(object) === REACT_FORWARD_REF_TYPE; - } - function isFragment(object) { - return typeOf(object) === REACT_FRAGMENT_TYPE; - } - function isProfiler(object) { - return typeOf(object) === REACT_PROFILER_TYPE; - } - function isPortal(object) { - return typeOf(object) === REACT_PORTAL_TYPE; - } - function isStrictMode(object) { - return typeOf(object) === REACT_STRICT_MODE_TYPE; - } - - exports.typeOf = typeOf; - exports.AsyncMode = AsyncMode; - exports.ConcurrentMode = ConcurrentMode; - exports.ContextConsumer = ContextConsumer; - exports.ContextProvider = ContextProvider; - exports.Element = Element; - exports.ForwardRef = ForwardRef; - exports.Fragment = Fragment; - exports.Profiler = Profiler; - exports.Portal = Portal; - exports.StrictMode = StrictMode; - exports.isValidElementType = isValidElementType; - exports.isAsyncMode = isAsyncMode; - exports.isConcurrentMode = isConcurrentMode; - exports.isContextConsumer = isContextConsumer; - exports.isContextProvider = isContextProvider; - exports.isElement = isElement; - exports.isForwardRef = isForwardRef; - exports.isFragment = isFragment; - exports.isProfiler = isProfiler; - exports.isPortal = isPortal; - exports.isStrictMode = isStrictMode; - })(); - } - }); - - unwrapExports(reactIs_development); - var reactIs_development_1 = reactIs_development.typeOf; - var reactIs_development_2 = reactIs_development.AsyncMode; - var reactIs_development_3 = reactIs_development.ConcurrentMode; - var reactIs_development_4 = reactIs_development.ContextConsumer; - var reactIs_development_5 = reactIs_development.ContextProvider; - var reactIs_development_6 = reactIs_development.Element; - var reactIs_development_7 = reactIs_development.ForwardRef; - var reactIs_development_8 = reactIs_development.Fragment; - var reactIs_development_9 = reactIs_development.Profiler; - var reactIs_development_10 = reactIs_development.Portal; - var reactIs_development_11 = reactIs_development.StrictMode; - var reactIs_development_12 = reactIs_development.isValidElementType; - var reactIs_development_13 = reactIs_development.isAsyncMode; - var reactIs_development_14 = reactIs_development.isConcurrentMode; - var reactIs_development_15 = reactIs_development.isContextConsumer; - var reactIs_development_16 = reactIs_development.isContextProvider; - var reactIs_development_17 = reactIs_development.isElement; - var reactIs_development_18 = reactIs_development.isForwardRef; - var reactIs_development_19 = reactIs_development.isFragment; - var reactIs_development_20 = reactIs_development.isProfiler; - var reactIs_development_21 = reactIs_development.isPortal; - var reactIs_development_22 = reactIs_development.isStrictMode; - - var reactIs = createCommonjsModule(function (module) { - - if (process.env.NODE_ENV === 'production') { - module.exports = reactIs_production_min; - } else { - module.exports = reactIs_development; - } - }); - - /** - * Copyright 2015, Yahoo! Inc. - * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms. - */ - - var REACT_STATICS = { - childContextTypes: true, - contextType: true, - contextTypes: true, - defaultProps: true, - displayName: true, - getDefaultProps: true, - getDerivedStateFromError: true, - getDerivedStateFromProps: true, - mixins: true, - propTypes: true, - type: true - }; - - var KNOWN_STATICS = { - name: true, - length: true, - prototype: true, - caller: true, - callee: true, - arguments: true, - arity: true - }; - - var FORWARD_REF_STATICS = { - '$$typeof': true, - render: true, - defaultProps: true, - displayName: true, - propTypes: true - }; - - var TYPE_STATICS = {}; - TYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS; - - var defineProperty = Object.defineProperty; - var getOwnPropertyNames = Object.getOwnPropertyNames; - var getOwnPropertySymbols = Object.getOwnPropertySymbols; - var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; - var getPrototypeOf = Object.getPrototypeOf; - var objectPrototype = Object.prototype; - - function hoistNonReactStatics(targetComponent, sourceComponent, blacklist) { - if (typeof sourceComponent !== 'string') { - // don't hoist over string (html) components - - if (objectPrototype) { - var inheritedComponent = getPrototypeOf(sourceComponent); - if (inheritedComponent && inheritedComponent !== objectPrototype) { - hoistNonReactStatics(targetComponent, inheritedComponent, blacklist); - } - } - - var keys = getOwnPropertyNames(sourceComponent); - - if (getOwnPropertySymbols) { - keys = keys.concat(getOwnPropertySymbols(sourceComponent)); - } - - var targetStatics = TYPE_STATICS[targetComponent['$$typeof']] || REACT_STATICS; - var sourceStatics = TYPE_STATICS[sourceComponent['$$typeof']] || REACT_STATICS; - - for (var i = 0; i < keys.length; ++i) { - var key = keys[i]; - if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) { - var descriptor = getOwnPropertyDescriptor(sourceComponent, key); - try { - // Avoid failures from read-only properties - defineProperty(targetComponent, key, descriptor); - } catch (e) {} - } - } - - return targetComponent; - } - - return targetComponent; - } - - var hoistNonReactStatics_cjs = hoistNonReactStatics; - - /** @typedef {import("./types").Definition} Definition */ - /** @typedef {import("./types").Token} Token */ - /** - * Bind type to specified class. - * @param {new (...args) => any} constructor - * @return {Function} - */ - function toClass(constructor) { - { - if (!isFunction(constructor)) { - logError("Class " + getDebugName(constructor) + " is not a valid dependency"); - } - } - return asBinding(function (injector) { - var instance = new constructor(); - if (!instance[INJECTOR]) { - instance[INJECTOR] = injector; - } - return instance; - }); - } - /** - * Bind type to specified factory funciton. - * @param {any} depsOrFactory Dependencies or factory - * @param {Function} [factory] Factory - * @return {Function} - */ - function toFactory(depsOrFactory, factory) { - { - if (factory) { - if (!Array.isArray(depsOrFactory)) { - logError("Dependency array " + getDebugName(depsOrFactory) + " is invalid"); - } - if (!isFunction(factory)) { - logError("Factory " + getDebugName(factory) + " is not a valid dependency"); - } - } - else if (!isFunction(depsOrFactory)) { - logError("Factory " + getDebugName(depsOrFactory) + " is not a valid dependency"); - } - } - return asBinding(factory - ? function (injector) { - return factory.apply(void 0, depsOrFactory.map(function (token) { return getInstance(injector, token); })); - } - : depsOrFactory); - } - /** - * Bind type to specified value. - * @param {any} value - * @return {Function} - */ - function toValue(value) { - { - if (value === undefined) { - logError("Please specify some value"); - } - } - return asBinding(function () { return value; }); - } - /** - * Bind type to existing instance located by token. - * @param {Token} token - * @return {Function} - */ - function toExisting(token) { - { - if (!isFunction(token)) { - logError("Token " + getDebugName(token) + " is not a valid dependency injection token"); - } - } - return asBinding(function (injector) { return getInstance(injector, token); }); - } - /* istanbul ignore next */ - var IS_BINDING = typeof Symbol === "function" ? Symbol() : "__binding__"; - /** - * Mark function as binding function. - * @internal - * @param {Function} binding - * @returns {Function} - */ - function asBinding(binding) { - binding[IS_BINDING] = true; - return binding; - } - /** - * Add bindings to bindings Map - * @internal - * @param {Map} bindingMap - * @param {Definition[]} definitions - */ - function addBindings(bindingMap, definitions) { - definitions.forEach(function (definition) { - var _a; - var token, binding; - if (Array.isArray(definition)) { - token = definition[0], _a = definition[1], binding = _a === void 0 ? token : _a; - } - else { - token = binding = definition; - } - { - if (!isToken(token) || !isFunction(binding)) { - logIncorrectBinding(token, binding); - } - } - // @ts-ignore - bindingMap.set(token, binding[IS_BINDING] ? binding : toClass(binding)); - }); - } - - /** @typedef {import("./types").Definition} Definition */ - /** @typedef {import("./types").Token} Token */ - /** - * HOC that registers dependency injection bindings in scope of decorated component - * @param {...Definition} definitions Dependency injection configuration - */ - var provider = function () { - var definitions = []; - for (var _i = 0; _i < arguments.length; _i++) { - definitions[_i] = arguments[_i]; - } - return function (Wrapped) { - /** @type {Map} */ - var bindingMap = new Map(); - addBindings(bindingMap, definitions); - var Provider = /** @class */ (function (_super) { - __extends(Provider, _super); - function Provider() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this._parent = _this.context; - _this._bindingMap = bindingMap; - _this._instanceMap = new Map(); - return _this; - } - Provider.prototype.componentWillUnmount = function () { - this._instanceMap.forEach(function (instance) { - if (isObject(instance) && isFunction(instance.dispose)) { - instance.dispose(); - } - }); - }; - Provider.prototype.render = function () { - return react.createElement(InjectorContext.Provider, { value: this }, react.createElement(Wrapped, this.props)); - }; - /** - * Register dependency injection bindings in scope of decorated class - * @param {...Definition} definitions Dependency injection configuration - */ - Provider.register = function () { - var definitions = []; - for (var _i = 0; _i < arguments.length; _i++) { - definitions[_i] = arguments[_i]; - } - addBindings(bindingMap, definitions); - }; - Provider.WrappedComponent = Wrapped; - return Provider; - }(Injector)); - { - Provider.displayName = "Provider(" + (Wrapped.displayName || Wrapped.name) + ")"; - Object.defineProperty(Provider, "contextType", { - get: function () { - return InjectorContext; - }, - set: function () { - logError("You are trying to overwrite " + Provider.displayName + ".contextType = InjectorContext"); - } - }); - } - // static fields from component should be visible on the generated Consumer - return hoistNonReactStatics_cjs(Provider, Wrapped); - }; - }; - /** - * Register class in specified provider. - * @typedef {{ register(constructor: Function): void }} Provider - * @param {() => Provider} getProvider Function that returns some provider - * @param {Function} [binding] Dependency injection binding - */ - var registerIn = function (getProvider, binding) { return function (constructor) { - registrationQueue.push(function () { - { - var provider_1 = getProvider(); - if (!isFunction(provider_1) || !(provider_1.prototype instanceof Injector)) { - logError(getDebugName(provider_1) + " is not a valid Provider. Please use:\n" + - "@registerIn(() => MyProvider)\n" + - ("class " + getDebugName(constructor) + " {}\n")); - } - else { - provider_1.register(binding ? [constructor, binding] : constructor); - } - } - }); - return constructor; - }; }; - - /** @typedef {import("./types").Token} Token */ - /** - * React hook for resolving a class instance that registered by some Provider in hierarchy. - * Instance is cached in Provider that registers it's class. - * @param {Token} token Dependency injection token - * @returns {Object} Resolved class instance - */ - function useInstance(token) { - var ref = react.useRef(null); - var injector = react.useContext(InjectorContext); - { - if (!injector) { - logNotFoundProvider(); - } - } - return ref.current || (ref.current = getInstance(injector, token)); - } - /** - * React hook for resolving a class instances that registered by some Provider in hierarchy. - * Instances are cached in Provider that registers it's classes. - * @param {...Token} tokens Dependency injection tokens - * @returns {Object[]} Resolved class instances - */ - function useInstances() { - var tokens = []; - for (var _i = 0; _i < arguments.length; _i++) { - tokens[_i] = arguments[_i]; - } - var ref = react.useRef(null); - var injector = react.useContext(InjectorContext); - { - if (!injector) { - logNotFoundProvider(); - } - } - return (ref.current || - (ref.current = tokens.map(function (token) { return getInstance(injector, token); }))); - } - - exports.inject = inject; - exports.provider = provider; - exports.registerIn = registerIn; - exports.Inject = inject; - exports.Provider = provider; - exports.RegisterIn = registerIn; - exports.InjectorContext = InjectorContext; - exports.toClass = toClass; - exports.toFactory = toFactory; - exports.toExisting = toExisting; - exports.toValue = toValue; - exports.useInstance = useInstance; - exports.useInstances = useInstances; - - Object.defineProperty(exports, '__esModule', { value: true }); - -}))); -//# sourceMappingURL=index.umd.js.map diff --git a/dist/index.umd.js.map b/dist/index.umd.js.map deleted file mode 100644 index 9fe9927..0000000 --- a/dist/index.umd.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.umd.js","sources":["../node_modules/reflect-metadata/Reflect.js","../node_modules/tslib/tslib.es6.js","../src/types.ts","../src/errors.js","../src/injector.js","../src/inject.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/cjs/react-is.development.js","../node_modules/react-is/index.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../src/bindings.js","../src/provider.js","../src/hooks.js"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (C) Microsoft. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\nvar Reflect;\r\n(function (Reflect) {\r\n // Metadata Proposal\r\n // https://rbuckton.github.io/reflect-metadata/\r\n (function (factory) {\r\n var root = typeof global === \"object\" ? global :\r\n typeof self === \"object\" ? self :\r\n typeof this === \"object\" ? this :\r\n Function(\"return this;\")();\r\n var exporter = makeExporter(Reflect);\r\n if (typeof root.Reflect === \"undefined\") {\r\n root.Reflect = Reflect;\r\n }\r\n else {\r\n exporter = makeExporter(root.Reflect, exporter);\r\n }\r\n factory(exporter);\r\n function makeExporter(target, previous) {\r\n return function (key, value) {\r\n if (typeof target[key] !== \"function\") {\r\n Object.defineProperty(target, key, { configurable: true, writable: true, value: value });\r\n }\r\n if (previous)\r\n previous(key, value);\r\n };\r\n }\r\n })(function (exporter) {\r\n var hasOwn = Object.prototype.hasOwnProperty;\r\n // feature test for Symbol support\r\n var supportsSymbol = typeof Symbol === \"function\";\r\n var toPrimitiveSymbol = supportsSymbol && typeof Symbol.toPrimitive !== \"undefined\" ? Symbol.toPrimitive : \"@@toPrimitive\";\r\n var iteratorSymbol = supportsSymbol && typeof Symbol.iterator !== \"undefined\" ? Symbol.iterator : \"@@iterator\";\r\n var supportsCreate = typeof Object.create === \"function\"; // feature test for Object.create support\r\n var supportsProto = { __proto__: [] } instanceof Array; // feature test for __proto__ support\r\n var downLevel = !supportsCreate && !supportsProto;\r\n var HashMap = {\r\n // create an object in dictionary mode (a.k.a. \"slow\" mode in v8)\r\n create: supportsCreate\r\n ? function () { return MakeDictionary(Object.create(null)); }\r\n : supportsProto\r\n ? function () { return MakeDictionary({ __proto__: null }); }\r\n : function () { return MakeDictionary({}); },\r\n has: downLevel\r\n ? function (map, key) { return hasOwn.call(map, key); }\r\n : function (map, key) { return key in map; },\r\n get: downLevel\r\n ? function (map, key) { return hasOwn.call(map, key) ? map[key] : undefined; }\r\n : function (map, key) { return map[key]; },\r\n };\r\n // Load global or shim versions of Map, Set, and WeakMap\r\n var functionPrototype = Object.getPrototypeOf(Function);\r\n var usePolyfill = typeof process === \"object\" && process.env && process.env[\"REFLECT_METADATA_USE_MAP_POLYFILL\"] === \"true\";\r\n var _Map = !usePolyfill && typeof Map === \"function\" && typeof Map.prototype.entries === \"function\" ? Map : CreateMapPolyfill();\r\n var _Set = !usePolyfill && typeof Set === \"function\" && typeof Set.prototype.entries === \"function\" ? Set : CreateSetPolyfill();\r\n var _WeakMap = !usePolyfill && typeof WeakMap === \"function\" ? WeakMap : CreateWeakMapPolyfill();\r\n // [[Metadata]] internal slot\r\n // https://rbuckton.github.io/reflect-metadata/#ordinary-object-internal-methods-and-internal-slots\r\n var Metadata = new _WeakMap();\r\n /**\r\n * Applies a set of decorators to a property of a target object.\r\n * @param decorators An array of decorators.\r\n * @param target The target object.\r\n * @param propertyKey (Optional) The property key to decorate.\r\n * @param attributes (Optional) The property descriptor for the target key.\r\n * @remarks Decorators are applied in reverse order.\r\n * @example\r\n *\r\n * class Example {\r\n * // property declarations are not part of ES6, though they are valid in TypeScript:\r\n * // static staticProperty;\r\n * // property;\r\n *\r\n * constructor(p) { }\r\n * static staticMethod(p) { }\r\n * method(p) { }\r\n * }\r\n *\r\n * // constructor\r\n * Example = Reflect.decorate(decoratorsArray, Example);\r\n *\r\n * // property (on constructor)\r\n * Reflect.decorate(decoratorsArray, Example, \"staticProperty\");\r\n *\r\n * // property (on prototype)\r\n * Reflect.decorate(decoratorsArray, Example.prototype, \"property\");\r\n *\r\n * // method (on constructor)\r\n * Object.defineProperty(Example, \"staticMethod\",\r\n * Reflect.decorate(decoratorsArray, Example, \"staticMethod\",\r\n * Object.getOwnPropertyDescriptor(Example, \"staticMethod\")));\r\n *\r\n * // method (on prototype)\r\n * Object.defineProperty(Example.prototype, \"method\",\r\n * Reflect.decorate(decoratorsArray, Example.prototype, \"method\",\r\n * Object.getOwnPropertyDescriptor(Example.prototype, \"method\")));\r\n *\r\n */\r\n function decorate(decorators, target, propertyKey, attributes) {\r\n if (!IsUndefined(propertyKey)) {\r\n if (!IsArray(decorators))\r\n throw new TypeError();\r\n if (!IsObject(target))\r\n throw new TypeError();\r\n if (!IsObject(attributes) && !IsUndefined(attributes) && !IsNull(attributes))\r\n throw new TypeError();\r\n if (IsNull(attributes))\r\n attributes = undefined;\r\n propertyKey = ToPropertyKey(propertyKey);\r\n return DecorateProperty(decorators, target, propertyKey, attributes);\r\n }\r\n else {\r\n if (!IsArray(decorators))\r\n throw new TypeError();\r\n if (!IsConstructor(target))\r\n throw new TypeError();\r\n return DecorateConstructor(decorators, target);\r\n }\r\n }\r\n exporter(\"decorate\", decorate);\r\n // 4.1.2 Reflect.metadata(metadataKey, metadataValue)\r\n // https://rbuckton.github.io/reflect-metadata/#reflect.metadata\r\n /**\r\n * A default metadata decorator factory that can be used on a class, class member, or parameter.\r\n * @param metadataKey The key for the metadata entry.\r\n * @param metadataValue The value for the metadata entry.\r\n * @returns A decorator function.\r\n * @remarks\r\n * If `metadataKey` is already defined for the target and target key, the\r\n * metadataValue for that key will be overwritten.\r\n * @example\r\n *\r\n * // constructor\r\n * @Reflect.metadata(key, value)\r\n * class Example {\r\n * }\r\n *\r\n * // property (on constructor, TypeScript only)\r\n * class Example {\r\n * @Reflect.metadata(key, value)\r\n * static staticProperty;\r\n * }\r\n *\r\n * // property (on prototype, TypeScript only)\r\n * class Example {\r\n * @Reflect.metadata(key, value)\r\n * property;\r\n * }\r\n *\r\n * // method (on constructor)\r\n * class Example {\r\n * @Reflect.metadata(key, value)\r\n * static staticMethod() { }\r\n * }\r\n *\r\n * // method (on prototype)\r\n * class Example {\r\n * @Reflect.metadata(key, value)\r\n * method() { }\r\n * }\r\n *\r\n */\r\n function metadata(metadataKey, metadataValue) {\r\n function decorator(target, propertyKey) {\r\n if (!IsObject(target))\r\n throw new TypeError();\r\n if (!IsUndefined(propertyKey) && !IsPropertyKey(propertyKey))\r\n throw new TypeError();\r\n OrdinaryDefineOwnMetadata(metadataKey, metadataValue, target, propertyKey);\r\n }\r\n return decorator;\r\n }\r\n exporter(\"metadata\", metadata);\r\n /**\r\n * Define a unique metadata entry on the target.\r\n * @param metadataKey A key used to store and retrieve metadata.\r\n * @param metadataValue A value that contains attached metadata.\r\n * @param target The target object on which to define metadata.\r\n * @param propertyKey (Optional) The property key for the target.\r\n * @example\r\n *\r\n * class Example {\r\n * // property declarations are not part of ES6, though they are valid in TypeScript:\r\n * // static staticProperty;\r\n * // property;\r\n *\r\n * constructor(p) { }\r\n * static staticMethod(p) { }\r\n * method(p) { }\r\n * }\r\n *\r\n * // constructor\r\n * Reflect.defineMetadata(\"custom:annotation\", options, Example);\r\n *\r\n * // property (on constructor)\r\n * Reflect.defineMetadata(\"custom:annotation\", options, Example, \"staticProperty\");\r\n *\r\n * // property (on prototype)\r\n * Reflect.defineMetadata(\"custom:annotation\", options, Example.prototype, \"property\");\r\n *\r\n * // method (on constructor)\r\n * Reflect.defineMetadata(\"custom:annotation\", options, Example, \"staticMethod\");\r\n *\r\n * // method (on prototype)\r\n * Reflect.defineMetadata(\"custom:annotation\", options, Example.prototype, \"method\");\r\n *\r\n * // decorator factory as metadata-producing annotation.\r\n * function MyAnnotation(options): Decorator {\r\n * return (target, key?) => Reflect.defineMetadata(\"custom:annotation\", options, target, key);\r\n * }\r\n *\r\n */\r\n function defineMetadata(metadataKey, metadataValue, target, propertyKey) {\r\n if (!IsObject(target))\r\n throw new TypeError();\r\n if (!IsUndefined(propertyKey))\r\n propertyKey = ToPropertyKey(propertyKey);\r\n return OrdinaryDefineOwnMetadata(metadataKey, metadataValue, target, propertyKey);\r\n }\r\n exporter(\"defineMetadata\", defineMetadata);\r\n /**\r\n * Gets a value indicating whether the target object or its prototype chain has the provided metadata key defined.\r\n * @param metadataKey A key used to store and retrieve metadata.\r\n * @param target The target object on which the metadata is defined.\r\n * @param propertyKey (Optional) The property key for the target.\r\n * @returns `true` if the metadata key was defined on the target object or its prototype chain; otherwise, `false`.\r\n * @example\r\n *\r\n * class Example {\r\n * // property declarations are not part of ES6, though they are valid in TypeScript:\r\n * // static staticProperty;\r\n * // property;\r\n *\r\n * constructor(p) { }\r\n * static staticMethod(p) { }\r\n * method(p) { }\r\n * }\r\n *\r\n * // constructor\r\n * result = Reflect.hasMetadata(\"custom:annotation\", Example);\r\n *\r\n * // property (on constructor)\r\n * result = Reflect.hasMetadata(\"custom:annotation\", Example, \"staticProperty\");\r\n *\r\n * // property (on prototype)\r\n * result = Reflect.hasMetadata(\"custom:annotation\", Example.prototype, \"property\");\r\n *\r\n * // method (on constructor)\r\n * result = Reflect.hasMetadata(\"custom:annotation\", Example, \"staticMethod\");\r\n *\r\n * // method (on prototype)\r\n * result = Reflect.hasMetadata(\"custom:annotation\", Example.prototype, \"method\");\r\n *\r\n */\r\n function hasMetadata(metadataKey, target, propertyKey) {\r\n if (!IsObject(target))\r\n throw new TypeError();\r\n if (!IsUndefined(propertyKey))\r\n propertyKey = ToPropertyKey(propertyKey);\r\n return OrdinaryHasMetadata(metadataKey, target, propertyKey);\r\n }\r\n exporter(\"hasMetadata\", hasMetadata);\r\n /**\r\n * Gets a value indicating whether the target object has the provided metadata key defined.\r\n * @param metadataKey A key used to store and retrieve metadata.\r\n * @param target The target object on which the metadata is defined.\r\n * @param propertyKey (Optional) The property key for the target.\r\n * @returns `true` if the metadata key was defined on the target object; otherwise, `false`.\r\n * @example\r\n *\r\n * class Example {\r\n * // property declarations are not part of ES6, though they are valid in TypeScript:\r\n * // static staticProperty;\r\n * // property;\r\n *\r\n * constructor(p) { }\r\n * static staticMethod(p) { }\r\n * method(p) { }\r\n * }\r\n *\r\n * // constructor\r\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example);\r\n *\r\n * // property (on constructor)\r\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example, \"staticProperty\");\r\n *\r\n * // property (on prototype)\r\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example.prototype, \"property\");\r\n *\r\n * // method (on constructor)\r\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example, \"staticMethod\");\r\n *\r\n * // method (on prototype)\r\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example.prototype, \"method\");\r\n *\r\n */\r\n function hasOwnMetadata(metadataKey, target, propertyKey) {\r\n if (!IsObject(target))\r\n throw new TypeError();\r\n if (!IsUndefined(propertyKey))\r\n propertyKey = ToPropertyKey(propertyKey);\r\n return OrdinaryHasOwnMetadata(metadataKey, target, propertyKey);\r\n }\r\n exporter(\"hasOwnMetadata\", hasOwnMetadata);\r\n /**\r\n * Gets the metadata value for the provided metadata key on the target object or its prototype chain.\r\n * @param metadataKey A key used to store and retrieve metadata.\r\n * @param target The target object on which the metadata is defined.\r\n * @param propertyKey (Optional) The property key for the target.\r\n * @returns The metadata value for the metadata key if found; otherwise, `undefined`.\r\n * @example\r\n *\r\n * class Example {\r\n * // property declarations are not part of ES6, though they are valid in TypeScript:\r\n * // static staticProperty;\r\n * // property;\r\n *\r\n * constructor(p) { }\r\n * static staticMethod(p) { }\r\n * method(p) { }\r\n * }\r\n *\r\n * // constructor\r\n * result = Reflect.getMetadata(\"custom:annotation\", Example);\r\n *\r\n * // property (on constructor)\r\n * result = Reflect.getMetadata(\"custom:annotation\", Example, \"staticProperty\");\r\n *\r\n * // property (on prototype)\r\n * result = Reflect.getMetadata(\"custom:annotation\", Example.prototype, \"property\");\r\n *\r\n * // method (on constructor)\r\n * result = Reflect.getMetadata(\"custom:annotation\", Example, \"staticMethod\");\r\n *\r\n * // method (on prototype)\r\n * result = Reflect.getMetadata(\"custom:annotation\", Example.prototype, \"method\");\r\n *\r\n */\r\n function getMetadata(metadataKey, target, propertyKey) {\r\n if (!IsObject(target))\r\n throw new TypeError();\r\n if (!IsUndefined(propertyKey))\r\n propertyKey = ToPropertyKey(propertyKey);\r\n return OrdinaryGetMetadata(metadataKey, target, propertyKey);\r\n }\r\n exporter(\"getMetadata\", getMetadata);\r\n /**\r\n * Gets the metadata value for the provided metadata key on the target object.\r\n * @param metadataKey A key used to store and retrieve metadata.\r\n * @param target The target object on which the metadata is defined.\r\n * @param propertyKey (Optional) The property key for the target.\r\n * @returns The metadata value for the metadata key if found; otherwise, `undefined`.\r\n * @example\r\n *\r\n * class Example {\r\n * // property declarations are not part of ES6, though they are valid in TypeScript:\r\n * // static staticProperty;\r\n * // property;\r\n *\r\n * constructor(p) { }\r\n * static staticMethod(p) { }\r\n * method(p) { }\r\n * }\r\n *\r\n * // constructor\r\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example);\r\n *\r\n * // property (on constructor)\r\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example, \"staticProperty\");\r\n *\r\n * // property (on prototype)\r\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example.prototype, \"property\");\r\n *\r\n * // method (on constructor)\r\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example, \"staticMethod\");\r\n *\r\n * // method (on prototype)\r\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example.prototype, \"method\");\r\n *\r\n */\r\n function getOwnMetadata(metadataKey, target, propertyKey) {\r\n if (!IsObject(target))\r\n throw new TypeError();\r\n if (!IsUndefined(propertyKey))\r\n propertyKey = ToPropertyKey(propertyKey);\r\n return OrdinaryGetOwnMetadata(metadataKey, target, propertyKey);\r\n }\r\n exporter(\"getOwnMetadata\", getOwnMetadata);\r\n /**\r\n * Gets the metadata keys defined on the target object or its prototype chain.\r\n * @param target The target object on which the metadata is defined.\r\n * @param propertyKey (Optional) The property key for the target.\r\n * @returns An array of unique metadata keys.\r\n * @example\r\n *\r\n * class Example {\r\n * // property declarations are not part of ES6, though they are valid in TypeScript:\r\n * // static staticProperty;\r\n * // property;\r\n *\r\n * constructor(p) { }\r\n * static staticMethod(p) { }\r\n * method(p) { }\r\n * }\r\n *\r\n * // constructor\r\n * result = Reflect.getMetadataKeys(Example);\r\n *\r\n * // property (on constructor)\r\n * result = Reflect.getMetadataKeys(Example, \"staticProperty\");\r\n *\r\n * // property (on prototype)\r\n * result = Reflect.getMetadataKeys(Example.prototype, \"property\");\r\n *\r\n * // method (on constructor)\r\n * result = Reflect.getMetadataKeys(Example, \"staticMethod\");\r\n *\r\n * // method (on prototype)\r\n * result = Reflect.getMetadataKeys(Example.prototype, \"method\");\r\n *\r\n */\r\n function getMetadataKeys(target, propertyKey) {\r\n if (!IsObject(target))\r\n throw new TypeError();\r\n if (!IsUndefined(propertyKey))\r\n propertyKey = ToPropertyKey(propertyKey);\r\n return OrdinaryMetadataKeys(target, propertyKey);\r\n }\r\n exporter(\"getMetadataKeys\", getMetadataKeys);\r\n /**\r\n * Gets the unique metadata keys defined on the target object.\r\n * @param target The target object on which the metadata is defined.\r\n * @param propertyKey (Optional) The property key for the target.\r\n * @returns An array of unique metadata keys.\r\n * @example\r\n *\r\n * class Example {\r\n * // property declarations are not part of ES6, though they are valid in TypeScript:\r\n * // static staticProperty;\r\n * // property;\r\n *\r\n * constructor(p) { }\r\n * static staticMethod(p) { }\r\n * method(p) { }\r\n * }\r\n *\r\n * // constructor\r\n * result = Reflect.getOwnMetadataKeys(Example);\r\n *\r\n * // property (on constructor)\r\n * result = Reflect.getOwnMetadataKeys(Example, \"staticProperty\");\r\n *\r\n * // property (on prototype)\r\n * result = Reflect.getOwnMetadataKeys(Example.prototype, \"property\");\r\n *\r\n * // method (on constructor)\r\n * result = Reflect.getOwnMetadataKeys(Example, \"staticMethod\");\r\n *\r\n * // method (on prototype)\r\n * result = Reflect.getOwnMetadataKeys(Example.prototype, \"method\");\r\n *\r\n */\r\n function getOwnMetadataKeys(target, propertyKey) {\r\n if (!IsObject(target))\r\n throw new TypeError();\r\n if (!IsUndefined(propertyKey))\r\n propertyKey = ToPropertyKey(propertyKey);\r\n return OrdinaryOwnMetadataKeys(target, propertyKey);\r\n }\r\n exporter(\"getOwnMetadataKeys\", getOwnMetadataKeys);\r\n /**\r\n * Deletes the metadata entry from the target object with the provided key.\r\n * @param metadataKey A key used to store and retrieve metadata.\r\n * @param target The target object on which the metadata is defined.\r\n * @param propertyKey (Optional) The property key for the target.\r\n * @returns `true` if the metadata entry was found and deleted; otherwise, false.\r\n * @example\r\n *\r\n * class Example {\r\n * // property declarations are not part of ES6, though they are valid in TypeScript:\r\n * // static staticProperty;\r\n * // property;\r\n *\r\n * constructor(p) { }\r\n * static staticMethod(p) { }\r\n * method(p) { }\r\n * }\r\n *\r\n * // constructor\r\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example);\r\n *\r\n * // property (on constructor)\r\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example, \"staticProperty\");\r\n *\r\n * // property (on prototype)\r\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example.prototype, \"property\");\r\n *\r\n * // method (on constructor)\r\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example, \"staticMethod\");\r\n *\r\n * // method (on prototype)\r\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example.prototype, \"method\");\r\n *\r\n */\r\n function deleteMetadata(metadataKey, target, propertyKey) {\r\n if (!IsObject(target))\r\n throw new TypeError();\r\n if (!IsUndefined(propertyKey))\r\n propertyKey = ToPropertyKey(propertyKey);\r\n var metadataMap = GetOrCreateMetadataMap(target, propertyKey, /*Create*/ false);\r\n if (IsUndefined(metadataMap))\r\n return false;\r\n if (!metadataMap.delete(metadataKey))\r\n return false;\r\n if (metadataMap.size > 0)\r\n return true;\r\n var targetMetadata = Metadata.get(target);\r\n targetMetadata.delete(propertyKey);\r\n if (targetMetadata.size > 0)\r\n return true;\r\n Metadata.delete(target);\r\n return true;\r\n }\r\n exporter(\"deleteMetadata\", deleteMetadata);\r\n function DecorateConstructor(decorators, target) {\r\n for (var i = decorators.length - 1; i >= 0; --i) {\r\n var decorator = decorators[i];\r\n var decorated = decorator(target);\r\n if (!IsUndefined(decorated) && !IsNull(decorated)) {\r\n if (!IsConstructor(decorated))\r\n throw new TypeError();\r\n target = decorated;\r\n }\r\n }\r\n return target;\r\n }\r\n function DecorateProperty(decorators, target, propertyKey, descriptor) {\r\n for (var i = decorators.length - 1; i >= 0; --i) {\r\n var decorator = decorators[i];\r\n var decorated = decorator(target, propertyKey, descriptor);\r\n if (!IsUndefined(decorated) && !IsNull(decorated)) {\r\n if (!IsObject(decorated))\r\n throw new TypeError();\r\n descriptor = decorated;\r\n }\r\n }\r\n return descriptor;\r\n }\r\n function GetOrCreateMetadataMap(O, P, Create) {\r\n var targetMetadata = Metadata.get(O);\r\n if (IsUndefined(targetMetadata)) {\r\n if (!Create)\r\n return undefined;\r\n targetMetadata = new _Map();\r\n Metadata.set(O, targetMetadata);\r\n }\r\n var metadataMap = targetMetadata.get(P);\r\n if (IsUndefined(metadataMap)) {\r\n if (!Create)\r\n return undefined;\r\n metadataMap = new _Map();\r\n targetMetadata.set(P, metadataMap);\r\n }\r\n return metadataMap;\r\n }\r\n // 3.1.1.1 OrdinaryHasMetadata(MetadataKey, O, P)\r\n // https://rbuckton.github.io/reflect-metadata/#ordinaryhasmetadata\r\n function OrdinaryHasMetadata(MetadataKey, O, P) {\r\n var hasOwn = OrdinaryHasOwnMetadata(MetadataKey, O, P);\r\n if (hasOwn)\r\n return true;\r\n var parent = OrdinaryGetPrototypeOf(O);\r\n if (!IsNull(parent))\r\n return OrdinaryHasMetadata(MetadataKey, parent, P);\r\n return false;\r\n }\r\n // 3.1.2.1 OrdinaryHasOwnMetadata(MetadataKey, O, P)\r\n // https://rbuckton.github.io/reflect-metadata/#ordinaryhasownmetadata\r\n function OrdinaryHasOwnMetadata(MetadataKey, O, P) {\r\n var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ false);\r\n if (IsUndefined(metadataMap))\r\n return false;\r\n return ToBoolean(metadataMap.has(MetadataKey));\r\n }\r\n // 3.1.3.1 OrdinaryGetMetadata(MetadataKey, O, P)\r\n // https://rbuckton.github.io/reflect-metadata/#ordinarygetmetadata\r\n function OrdinaryGetMetadata(MetadataKey, O, P) {\r\n var hasOwn = OrdinaryHasOwnMetadata(MetadataKey, O, P);\r\n if (hasOwn)\r\n return OrdinaryGetOwnMetadata(MetadataKey, O, P);\r\n var parent = OrdinaryGetPrototypeOf(O);\r\n if (!IsNull(parent))\r\n return OrdinaryGetMetadata(MetadataKey, parent, P);\r\n return undefined;\r\n }\r\n // 3.1.4.1 OrdinaryGetOwnMetadata(MetadataKey, O, P)\r\n // https://rbuckton.github.io/reflect-metadata/#ordinarygetownmetadata\r\n function OrdinaryGetOwnMetadata(MetadataKey, O, P) {\r\n var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ false);\r\n if (IsUndefined(metadataMap))\r\n return undefined;\r\n return metadataMap.get(MetadataKey);\r\n }\r\n // 3.1.5.1 OrdinaryDefineOwnMetadata(MetadataKey, MetadataValue, O, P)\r\n // https://rbuckton.github.io/reflect-metadata/#ordinarydefineownmetadata\r\n function OrdinaryDefineOwnMetadata(MetadataKey, MetadataValue, O, P) {\r\n var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ true);\r\n metadataMap.set(MetadataKey, MetadataValue);\r\n }\r\n // 3.1.6.1 OrdinaryMetadataKeys(O, P)\r\n // https://rbuckton.github.io/reflect-metadata/#ordinarymetadatakeys\r\n function OrdinaryMetadataKeys(O, P) {\r\n var ownKeys = OrdinaryOwnMetadataKeys(O, P);\r\n var parent = OrdinaryGetPrototypeOf(O);\r\n if (parent === null)\r\n return ownKeys;\r\n var parentKeys = OrdinaryMetadataKeys(parent, P);\r\n if (parentKeys.length <= 0)\r\n return ownKeys;\r\n if (ownKeys.length <= 0)\r\n return parentKeys;\r\n var set = new _Set();\r\n var keys = [];\r\n for (var _i = 0, ownKeys_1 = ownKeys; _i < ownKeys_1.length; _i++) {\r\n var key = ownKeys_1[_i];\r\n var hasKey = set.has(key);\r\n if (!hasKey) {\r\n set.add(key);\r\n keys.push(key);\r\n }\r\n }\r\n for (var _a = 0, parentKeys_1 = parentKeys; _a < parentKeys_1.length; _a++) {\r\n var key = parentKeys_1[_a];\r\n var hasKey = set.has(key);\r\n if (!hasKey) {\r\n set.add(key);\r\n keys.push(key);\r\n }\r\n }\r\n return keys;\r\n }\r\n // 3.1.7.1 OrdinaryOwnMetadataKeys(O, P)\r\n // https://rbuckton.github.io/reflect-metadata/#ordinaryownmetadatakeys\r\n function OrdinaryOwnMetadataKeys(O, P) {\r\n var keys = [];\r\n var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ false);\r\n if (IsUndefined(metadataMap))\r\n return keys;\r\n var keysObj = metadataMap.keys();\r\n var iterator = GetIterator(keysObj);\r\n var k = 0;\r\n while (true) {\r\n var next = IteratorStep(iterator);\r\n if (!next) {\r\n keys.length = k;\r\n return keys;\r\n }\r\n var nextValue = IteratorValue(next);\r\n try {\r\n keys[k] = nextValue;\r\n }\r\n catch (e) {\r\n try {\r\n IteratorClose(iterator);\r\n }\r\n finally {\r\n throw e;\r\n }\r\n }\r\n k++;\r\n }\r\n }\r\n // 6 ECMAScript Data Typ0es and Values\r\n // https://tc39.github.io/ecma262/#sec-ecmascript-data-types-and-values\r\n function Type(x) {\r\n if (x === null)\r\n return 1 /* Null */;\r\n switch (typeof x) {\r\n case \"undefined\": return 0 /* Undefined */;\r\n case \"boolean\": return 2 /* Boolean */;\r\n case \"string\": return 3 /* String */;\r\n case \"symbol\": return 4 /* Symbol */;\r\n case \"number\": return 5 /* Number */;\r\n case \"object\": return x === null ? 1 /* Null */ : 6 /* Object */;\r\n default: return 6 /* Object */;\r\n }\r\n }\r\n // 6.1.1 The Undefined Type\r\n // https://tc39.github.io/ecma262/#sec-ecmascript-language-types-undefined-type\r\n function IsUndefined(x) {\r\n return x === undefined;\r\n }\r\n // 6.1.2 The Null Type\r\n // https://tc39.github.io/ecma262/#sec-ecmascript-language-types-null-type\r\n function IsNull(x) {\r\n return x === null;\r\n }\r\n // 6.1.5 The Symbol Type\r\n // https://tc39.github.io/ecma262/#sec-ecmascript-language-types-symbol-type\r\n function IsSymbol(x) {\r\n return typeof x === \"symbol\";\r\n }\r\n // 6.1.7 The Object Type\r\n // https://tc39.github.io/ecma262/#sec-object-type\r\n function IsObject(x) {\r\n return typeof x === \"object\" ? x !== null : typeof x === \"function\";\r\n }\r\n // 7.1 Type Conversion\r\n // https://tc39.github.io/ecma262/#sec-type-conversion\r\n // 7.1.1 ToPrimitive(input [, PreferredType])\r\n // https://tc39.github.io/ecma262/#sec-toprimitive\r\n function ToPrimitive(input, PreferredType) {\r\n switch (Type(input)) {\r\n case 0 /* Undefined */: return input;\r\n case 1 /* Null */: return input;\r\n case 2 /* Boolean */: return input;\r\n case 3 /* String */: return input;\r\n case 4 /* Symbol */: return input;\r\n case 5 /* Number */: return input;\r\n }\r\n var hint = PreferredType === 3 /* String */ ? \"string\" : PreferredType === 5 /* Number */ ? \"number\" : \"default\";\r\n var exoticToPrim = GetMethod(input, toPrimitiveSymbol);\r\n if (exoticToPrim !== undefined) {\r\n var result = exoticToPrim.call(input, hint);\r\n if (IsObject(result))\r\n throw new TypeError();\r\n return result;\r\n }\r\n return OrdinaryToPrimitive(input, hint === \"default\" ? \"number\" : hint);\r\n }\r\n // 7.1.1.1 OrdinaryToPrimitive(O, hint)\r\n // https://tc39.github.io/ecma262/#sec-ordinarytoprimitive\r\n function OrdinaryToPrimitive(O, hint) {\r\n if (hint === \"string\") {\r\n var toString_1 = O.toString;\r\n if (IsCallable(toString_1)) {\r\n var result = toString_1.call(O);\r\n if (!IsObject(result))\r\n return result;\r\n }\r\n var valueOf = O.valueOf;\r\n if (IsCallable(valueOf)) {\r\n var result = valueOf.call(O);\r\n if (!IsObject(result))\r\n return result;\r\n }\r\n }\r\n else {\r\n var valueOf = O.valueOf;\r\n if (IsCallable(valueOf)) {\r\n var result = valueOf.call(O);\r\n if (!IsObject(result))\r\n return result;\r\n }\r\n var toString_2 = O.toString;\r\n if (IsCallable(toString_2)) {\r\n var result = toString_2.call(O);\r\n if (!IsObject(result))\r\n return result;\r\n }\r\n }\r\n throw new TypeError();\r\n }\r\n // 7.1.2 ToBoolean(argument)\r\n // https://tc39.github.io/ecma262/2016/#sec-toboolean\r\n function ToBoolean(argument) {\r\n return !!argument;\r\n }\r\n // 7.1.12 ToString(argument)\r\n // https://tc39.github.io/ecma262/#sec-tostring\r\n function ToString(argument) {\r\n return \"\" + argument;\r\n }\r\n // 7.1.14 ToPropertyKey(argument)\r\n // https://tc39.github.io/ecma262/#sec-topropertykey\r\n function ToPropertyKey(argument) {\r\n var key = ToPrimitive(argument, 3 /* String */);\r\n if (IsSymbol(key))\r\n return key;\r\n return ToString(key);\r\n }\r\n // 7.2 Testing and Comparison Operations\r\n // https://tc39.github.io/ecma262/#sec-testing-and-comparison-operations\r\n // 7.2.2 IsArray(argument)\r\n // https://tc39.github.io/ecma262/#sec-isarray\r\n function IsArray(argument) {\r\n return Array.isArray\r\n ? Array.isArray(argument)\r\n : argument instanceof Object\r\n ? argument instanceof Array\r\n : Object.prototype.toString.call(argument) === \"[object Array]\";\r\n }\r\n // 7.2.3 IsCallable(argument)\r\n // https://tc39.github.io/ecma262/#sec-iscallable\r\n function IsCallable(argument) {\r\n // NOTE: This is an approximation as we cannot check for [[Call]] internal method.\r\n return typeof argument === \"function\";\r\n }\r\n // 7.2.4 IsConstructor(argument)\r\n // https://tc39.github.io/ecma262/#sec-isconstructor\r\n function IsConstructor(argument) {\r\n // NOTE: This is an approximation as we cannot check for [[Construct]] internal method.\r\n return typeof argument === \"function\";\r\n }\r\n // 7.2.7 IsPropertyKey(argument)\r\n // https://tc39.github.io/ecma262/#sec-ispropertykey\r\n function IsPropertyKey(argument) {\r\n switch (Type(argument)) {\r\n case 3 /* String */: return true;\r\n case 4 /* Symbol */: return true;\r\n default: return false;\r\n }\r\n }\r\n // 7.3 Operations on Objects\r\n // https://tc39.github.io/ecma262/#sec-operations-on-objects\r\n // 7.3.9 GetMethod(V, P)\r\n // https://tc39.github.io/ecma262/#sec-getmethod\r\n function GetMethod(V, P) {\r\n var func = V[P];\r\n if (func === undefined || func === null)\r\n return undefined;\r\n if (!IsCallable(func))\r\n throw new TypeError();\r\n return func;\r\n }\r\n // 7.4 Operations on Iterator Objects\r\n // https://tc39.github.io/ecma262/#sec-operations-on-iterator-objects\r\n function GetIterator(obj) {\r\n var method = GetMethod(obj, iteratorSymbol);\r\n if (!IsCallable(method))\r\n throw new TypeError(); // from Call\r\n var iterator = method.call(obj);\r\n if (!IsObject(iterator))\r\n throw new TypeError();\r\n return iterator;\r\n }\r\n // 7.4.4 IteratorValue(iterResult)\r\n // https://tc39.github.io/ecma262/2016/#sec-iteratorvalue\r\n function IteratorValue(iterResult) {\r\n return iterResult.value;\r\n }\r\n // 7.4.5 IteratorStep(iterator)\r\n // https://tc39.github.io/ecma262/#sec-iteratorstep\r\n function IteratorStep(iterator) {\r\n var result = iterator.next();\r\n return result.done ? false : result;\r\n }\r\n // 7.4.6 IteratorClose(iterator, completion)\r\n // https://tc39.github.io/ecma262/#sec-iteratorclose\r\n function IteratorClose(iterator) {\r\n var f = iterator[\"return\"];\r\n if (f)\r\n f.call(iterator);\r\n }\r\n // 9.1 Ordinary Object Internal Methods and Internal Slots\r\n // https://tc39.github.io/ecma262/#sec-ordinary-object-internal-methods-and-internal-slots\r\n // 9.1.1.1 OrdinaryGetPrototypeOf(O)\r\n // https://tc39.github.io/ecma262/#sec-ordinarygetprototypeof\r\n function OrdinaryGetPrototypeOf(O) {\r\n var proto = Object.getPrototypeOf(O);\r\n if (typeof O !== \"function\" || O === functionPrototype)\r\n return proto;\r\n // TypeScript doesn't set __proto__ in ES5, as it's non-standard.\r\n // Try to determine the superclass constructor. Compatible implementations\r\n // must either set __proto__ on a subclass constructor to the superclass constructor,\r\n // or ensure each class has a valid `constructor` property on its prototype that\r\n // points back to the constructor.\r\n // If this is not the same as Function.[[Prototype]], then this is definately inherited.\r\n // This is the case when in ES6 or when using __proto__ in a compatible browser.\r\n if (proto !== functionPrototype)\r\n return proto;\r\n // If the super prototype is Object.prototype, null, or undefined, then we cannot determine the heritage.\r\n var prototype = O.prototype;\r\n var prototypeProto = prototype && Object.getPrototypeOf(prototype);\r\n if (prototypeProto == null || prototypeProto === Object.prototype)\r\n return proto;\r\n // If the constructor was not a function, then we cannot determine the heritage.\r\n var constructor = prototypeProto.constructor;\r\n if (typeof constructor !== \"function\")\r\n return proto;\r\n // If we have some kind of self-reference, then we cannot determine the heritage.\r\n if (constructor === O)\r\n return proto;\r\n // we have a pretty good guess at the heritage.\r\n return constructor;\r\n }\r\n // naive Map shim\r\n function CreateMapPolyfill() {\r\n var cacheSentinel = {};\r\n var arraySentinel = [];\r\n var MapIterator = (function () {\r\n function MapIterator(keys, values, selector) {\r\n this._index = 0;\r\n this._keys = keys;\r\n this._values = values;\r\n this._selector = selector;\r\n }\r\n MapIterator.prototype[\"@@iterator\"] = function () { return this; };\r\n MapIterator.prototype[iteratorSymbol] = function () { return this; };\r\n MapIterator.prototype.next = function () {\r\n var index = this._index;\r\n if (index >= 0 && index < this._keys.length) {\r\n var result = this._selector(this._keys[index], this._values[index]);\r\n if (index + 1 >= this._keys.length) {\r\n this._index = -1;\r\n this._keys = arraySentinel;\r\n this._values = arraySentinel;\r\n }\r\n else {\r\n this._index++;\r\n }\r\n return { value: result, done: false };\r\n }\r\n return { value: undefined, done: true };\r\n };\r\n MapIterator.prototype.throw = function (error) {\r\n if (this._index >= 0) {\r\n this._index = -1;\r\n this._keys = arraySentinel;\r\n this._values = arraySentinel;\r\n }\r\n throw error;\r\n };\r\n MapIterator.prototype.return = function (value) {\r\n if (this._index >= 0) {\r\n this._index = -1;\r\n this._keys = arraySentinel;\r\n this._values = arraySentinel;\r\n }\r\n return { value: value, done: true };\r\n };\r\n return MapIterator;\r\n }());\r\n return (function () {\r\n function Map() {\r\n this._keys = [];\r\n this._values = [];\r\n this._cacheKey = cacheSentinel;\r\n this._cacheIndex = -2;\r\n }\r\n Object.defineProperty(Map.prototype, \"size\", {\r\n get: function () { return this._keys.length; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Map.prototype.has = function (key) { return this._find(key, /*insert*/ false) >= 0; };\r\n Map.prototype.get = function (key) {\r\n var index = this._find(key, /*insert*/ false);\r\n return index >= 0 ? this._values[index] : undefined;\r\n };\r\n Map.prototype.set = function (key, value) {\r\n var index = this._find(key, /*insert*/ true);\r\n this._values[index] = value;\r\n return this;\r\n };\r\n Map.prototype.delete = function (key) {\r\n var index = this._find(key, /*insert*/ false);\r\n if (index >= 0) {\r\n var size = this._keys.length;\r\n for (var i = index + 1; i < size; i++) {\r\n this._keys[i - 1] = this._keys[i];\r\n this._values[i - 1] = this._values[i];\r\n }\r\n this._keys.length--;\r\n this._values.length--;\r\n if (key === this._cacheKey) {\r\n this._cacheKey = cacheSentinel;\r\n this._cacheIndex = -2;\r\n }\r\n return true;\r\n }\r\n return false;\r\n };\r\n Map.prototype.clear = function () {\r\n this._keys.length = 0;\r\n this._values.length = 0;\r\n this._cacheKey = cacheSentinel;\r\n this._cacheIndex = -2;\r\n };\r\n Map.prototype.keys = function () { return new MapIterator(this._keys, this._values, getKey); };\r\n Map.prototype.values = function () { return new MapIterator(this._keys, this._values, getValue); };\r\n Map.prototype.entries = function () { return new MapIterator(this._keys, this._values, getEntry); };\r\n Map.prototype[\"@@iterator\"] = function () { return this.entries(); };\r\n Map.prototype[iteratorSymbol] = function () { return this.entries(); };\r\n Map.prototype._find = function (key, insert) {\r\n if (this._cacheKey !== key) {\r\n this._cacheIndex = this._keys.indexOf(this._cacheKey = key);\r\n }\r\n if (this._cacheIndex < 0 && insert) {\r\n this._cacheIndex = this._keys.length;\r\n this._keys.push(key);\r\n this._values.push(undefined);\r\n }\r\n return this._cacheIndex;\r\n };\r\n return Map;\r\n }());\r\n function getKey(key, _) {\r\n return key;\r\n }\r\n function getValue(_, value) {\r\n return value;\r\n }\r\n function getEntry(key, value) {\r\n return [key, value];\r\n }\r\n }\r\n // naive Set shim\r\n function CreateSetPolyfill() {\r\n return (function () {\r\n function Set() {\r\n this._map = new _Map();\r\n }\r\n Object.defineProperty(Set.prototype, \"size\", {\r\n get: function () { return this._map.size; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Set.prototype.has = function (value) { return this._map.has(value); };\r\n Set.prototype.add = function (value) { return this._map.set(value, value), this; };\r\n Set.prototype.delete = function (value) { return this._map.delete(value); };\r\n Set.prototype.clear = function () { this._map.clear(); };\r\n Set.prototype.keys = function () { return this._map.keys(); };\r\n Set.prototype.values = function () { return this._map.values(); };\r\n Set.prototype.entries = function () { return this._map.entries(); };\r\n Set.prototype[\"@@iterator\"] = function () { return this.keys(); };\r\n Set.prototype[iteratorSymbol] = function () { return this.keys(); };\r\n return Set;\r\n }());\r\n }\r\n // naive WeakMap shim\r\n function CreateWeakMapPolyfill() {\r\n var UUID_SIZE = 16;\r\n var keys = HashMap.create();\r\n var rootKey = CreateUniqueKey();\r\n return (function () {\r\n function WeakMap() {\r\n this._key = CreateUniqueKey();\r\n }\r\n WeakMap.prototype.has = function (target) {\r\n var table = GetOrCreateWeakMapTable(target, /*create*/ false);\r\n return table !== undefined ? HashMap.has(table, this._key) : false;\r\n };\r\n WeakMap.prototype.get = function (target) {\r\n var table = GetOrCreateWeakMapTable(target, /*create*/ false);\r\n return table !== undefined ? HashMap.get(table, this._key) : undefined;\r\n };\r\n WeakMap.prototype.set = function (target, value) {\r\n var table = GetOrCreateWeakMapTable(target, /*create*/ true);\r\n table[this._key] = value;\r\n return this;\r\n };\r\n WeakMap.prototype.delete = function (target) {\r\n var table = GetOrCreateWeakMapTable(target, /*create*/ false);\r\n return table !== undefined ? delete table[this._key] : false;\r\n };\r\n WeakMap.prototype.clear = function () {\r\n // NOTE: not a real clear, just makes the previous data unreachable\r\n this._key = CreateUniqueKey();\r\n };\r\n return WeakMap;\r\n }());\r\n function CreateUniqueKey() {\r\n var key;\r\n do\r\n key = \"@@WeakMap@@\" + CreateUUID();\r\n while (HashMap.has(keys, key));\r\n keys[key] = true;\r\n return key;\r\n }\r\n function GetOrCreateWeakMapTable(target, create) {\r\n if (!hasOwn.call(target, rootKey)) {\r\n if (!create)\r\n return undefined;\r\n Object.defineProperty(target, rootKey, { value: HashMap.create() });\r\n }\r\n return target[rootKey];\r\n }\r\n function FillRandomBytes(buffer, size) {\r\n for (var i = 0; i < size; ++i)\r\n buffer[i] = Math.random() * 0xff | 0;\r\n return buffer;\r\n }\r\n function GenRandomBytes(size) {\r\n if (typeof Uint8Array === \"function\") {\r\n if (typeof crypto !== \"undefined\")\r\n return crypto.getRandomValues(new Uint8Array(size));\r\n if (typeof msCrypto !== \"undefined\")\r\n return msCrypto.getRandomValues(new Uint8Array(size));\r\n return FillRandomBytes(new Uint8Array(size), size);\r\n }\r\n return FillRandomBytes(new Array(size), size);\r\n }\r\n function CreateUUID() {\r\n var data = GenRandomBytes(UUID_SIZE);\r\n // mark as random - RFC 4122 § 4.4\r\n data[6] = data[6] & 0x4f | 0x40;\r\n data[8] = data[8] & 0xbf | 0x80;\r\n var result = \"\";\r\n for (var offset = 0; offset < UUID_SIZE; ++offset) {\r\n var byte = data[offset];\r\n if (offset === 4 || offset === 6 || offset === 8)\r\n result += \"-\";\r\n if (byte < 16)\r\n result += \"0\";\r\n result += byte.toString(16).toLowerCase();\r\n }\r\n return result;\r\n }\r\n }\r\n // uses a heuristic used by v8 and chakra to force an object into dictionary mode.\r\n function MakeDictionary(obj) {\r\n obj.__ = undefined;\r\n delete obj.__;\r\n return obj;\r\n }\r\n });\r\n})(Reflect || (Reflect = {}));\r\n//# sourceMappingURL=Reflect.js.map","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\r\n t[p[i]] = s[p[i]];\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","export type Token = Function | Object | string | symbol;\r\nexport type Definition = Function | [Function] | [Token, Function];\r\n\r\nexport function isFunction(arg): arg is Function {\r\n return typeof arg === \"function\";\r\n}\r\n\r\nexport function isObject(arg): arg is Object {\r\n return arg && typeof arg === \"object\";\r\n}\r\n\r\nexport function isString(arg): arg is string {\r\n return typeof arg === \"string\";\r\n}\r\n\r\nexport function isSymbol(arg): arg is symbol {\r\n return typeof arg === \"symbol\";\r\n}\r\n\r\nexport function isToken(arg): arg is Token {\r\n return isFunction(arg) || isObject(arg) || isString(arg) || isSymbol(arg);\r\n}\r\n\r\nexport function isReactComponent(prototype) {\r\n return isObject(prototype) && isObject(prototype.isReactComponent);\r\n}\r\n\r\nexport function isValidMetadata(arg): arg is Function {\r\n return (\r\n isFunction(arg) &&\r\n [Object, Function, Number, String, Boolean].indexOf(arg) === -1\r\n );\r\n}\r\n","import { isFunction, isObject, isReactComponent } from \"./types\";\r\n\r\nexport function getDebugName(value) {\r\n if (isFunction(value)) {\r\n return String(value.displayName || value.name);\r\n }\r\n if (isObject(value) && isFunction(value.constructor)) {\r\n return String(value.constructor.name);\r\n }\r\n return String(value);\r\n}\r\n\r\nexport function logError(message) {\r\n try {\r\n throw new Error(message);\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n}\r\n\r\nexport function logIncorrectBinding(token, binding) {\r\n const tokenName = getDebugName(token);\r\n const bindingName = getDebugName(binding);\r\n logError(`Binding [${tokenName}, ${bindingName}] is incorrect.`);\r\n}\r\n\r\nexport function logNotFoundDependency(token) {\r\n const name = getDebugName(token);\r\n logError(\r\n `Dependency ${name} is not found.\r\nPlease register ${name} in some Provider e.g.\r\n@provider([${name}, ${name}])\r\nclass App extends React.Component { /*...*/ }`\r\n );\r\n}\r\n\r\nexport function logNotFoundProvider(target) {\r\n if (isReactComponent(target)) {\r\n const name = getDebugName(target);\r\n logError(\r\n `Provider is not found.\r\n Please define Provider and set ${name}.contextType = InjectorContext e.g.\r\n @provider([MyService, MyService])\r\n class App extends React.Component { /*...*/ }\r\n class ${name} extends React.Component {\r\n static contextType = InjectorContext;\r\n }`\r\n );\r\n } else {\r\n logError(\r\n `Provider is not found.\r\n Please define Provider e.g.\r\n @provider([MyService, MyService])\r\n class App extends React.Component { /*...*/ }`\r\n );\r\n }\r\n}\r\n\r\nexport function logInvalidMetadata(target, token) {\r\n const tokenName = getDebugName(token);\r\n const targetName = getDebugName(target);\r\n logError(\r\n `${tokenName} is not a valid dependency.\r\nPlease specify ES6 class as property type e.g.\r\nclass MyService {}\r\nclass ${targetName} {\r\n @inject myService: MyService;\r\n}`\r\n );\r\n}\r\n","import { Component, createContext } from \"react\";\r\nimport { logNotFoundDependency } from \"./errors\";\r\n/** @typedef {import(\"./types\").Token} Token */\r\n\r\n/** React Context for Injector */\r\nexport const InjectorContext = createContext(null);\r\n\r\n/**\r\n * Dependency injection container\r\n * @internal\r\n */\r\nexport class Injector extends Component {\r\n /** @type {Injector} */\r\n _parent;\r\n /** @type {Map} */\r\n _bindingMap;\r\n /** @type {Map} */\r\n _instanceMap;\r\n}\r\n\r\n/**\r\n * Find Injector for passed object and cache it inside this object\r\n * @internal\r\n * @param {Object} target The object in which we inject value\r\n * @returns {Injector}\r\n */\r\nexport function getInjector(target) {\r\n let injector = target[INJECTOR];\r\n if (injector) {\r\n return injector;\r\n }\r\n injector = currentInjector || target.context;\r\n if (injector instanceof Injector) {\r\n target[INJECTOR] = injector;\r\n return injector;\r\n }\r\n return null;\r\n}\r\n\r\n/** @type {Injector} */\r\nlet currentInjector = null;\r\n\r\n/* istanbul ignore next */\r\nexport const INJECTOR =\r\n typeof Symbol === \"function\" ? Symbol() : \"__injector__\";\r\n\r\n/**\r\n * Resolve a class instance that registered by some Provider in hierarchy.\r\n * Instance is cached in Provider that registers it's class.\r\n * @internal\r\n * @param {Injector} injector Injector instance\r\n * @param {Token} token Dependency injection token\r\n * @returns {Object} Resolved class instance\r\n */\r\nexport function getInstance(injector, token) {\r\n if (registrationQueue.length > 0) {\r\n registrationQueue.forEach(registration => {\r\n registration();\r\n });\r\n registrationQueue.length = 0;\r\n }\r\n while (injector) {\r\n let instance = injector._instanceMap.get(token);\r\n if (instance !== undefined) {\r\n return instance;\r\n }\r\n const binding = injector._bindingMap.get(token);\r\n if (binding) {\r\n const prevInjector = currentInjector;\r\n currentInjector = injector;\r\n try {\r\n instance = binding(injector);\r\n } finally {\r\n currentInjector = prevInjector;\r\n }\r\n injector._instanceMap.set(token, instance);\r\n return instance;\r\n }\r\n injector = injector._parent;\r\n }\r\n if (__DEV__) {\r\n logNotFoundDependency(token);\r\n }\r\n return undefined;\r\n}\r\n\r\n/** @type {Function[]} */\r\nexport const registrationQueue = [];\r\n","import \"reflect-metadata\";\r\nimport { InjectorContext, getInjector, getInstance } from \"./injector\";\r\nimport { isValidMetadata, isReactComponent, isFunction } from \"./types\";\r\nimport {\r\n getDebugName,\r\n logInvalidMetadata,\r\n logNotFoundProvider,\r\n logError\r\n} from \"./errors\";\r\n/** @typedef {import(\"./types\").Token} Token */\r\n\r\n/**\r\n * Property decorator that resolves a class instance\r\n * which registered by some Provider in hierarchy.\r\n * Instance is cached in Provider that registers it's class.\r\n * @param {Token | Object} [targetOrToken] Object or Class prototype or dependency injection token\r\n * @param {string | symbol | Function} [keyOrToken] Property key or dependency injection token\r\n */\r\nexport function inject(targetOrToken, keyOrToken) {\r\n if (isFunction(keyOrToken)) {\r\n return injectFunction(targetOrToken, keyOrToken);\r\n }\r\n /** @type {Token} */\r\n let token;\r\n if (!keyOrToken) {\r\n token = targetOrToken;\r\n return injectDecorator;\r\n }\r\n return injectDecorator(targetOrToken, keyOrToken);\r\n\r\n function injectDecorator(prototype, key) {\r\n if (__DEV__) {\r\n defineContextType(prototype);\r\n } else {\r\n prototype.constructor.contextType = InjectorContext;\r\n }\r\n\r\n if (!token) {\r\n token = Reflect.getMetadata(\"design:type\", prototype, key);\r\n if (__DEV__) {\r\n if (!isValidMetadata(token)) {\r\n logInvalidMetadata(targetOrToken, token);\r\n }\r\n }\r\n }\r\n\r\n const descriptor = {\r\n configurable: true,\r\n enumerable: true,\r\n get() {\r\n const instance = injectFunction(this, token);\r\n Object.defineProperty(this, key, {\r\n enumerable: true,\r\n writable: true,\r\n value: instance\r\n });\r\n return instance;\r\n },\r\n set(instance) {\r\n Object.defineProperty(this, key, {\r\n enumerable: true,\r\n writable: true,\r\n value: instance\r\n });\r\n }\r\n };\r\n\r\n Object.defineProperty(prototype, key, descriptor);\r\n\r\n return descriptor;\r\n }\r\n}\r\n\r\n/**\r\n * Resolve a class instance that registered by some Provider in hierarchy.\r\n * Instance is cached in Provider that registers it's class.\r\n * @internal\r\n * @param {Object} target The object in which we inject class instance\r\n * @param {Token} token Dependency injection token\r\n * @returns {Object} Resolved class instance\r\n */\r\nfunction injectFunction(target, token) {\r\n const injector = getInjector(target);\r\n if (__DEV__) {\r\n if (!injector) {\r\n logNotFoundProvider(target);\r\n }\r\n }\r\n return getInstance(injector, token);\r\n}\r\n\r\n/**\r\n * Set Class.contextType = InjectorContext\r\n * @internal\r\n * @param {Object} prototype React Component prototype\r\n */\r\nfunction defineContextType(prototype) {\r\n if (isReactComponent(prototype)) {\r\n const { constructor } = prototype;\r\n const className = getDebugName(constructor);\r\n if (constructor.contextType !== InjectorContext) {\r\n if (constructor.contextType) {\r\n logError(\r\n `Decorator tries to overwrite existing ${className}.contextType`\r\n );\r\n } else {\r\n Object.defineProperty(constructor, \"contextType\", {\r\n get() {\r\n return InjectorContext;\r\n },\r\n set() {\r\n logError(\r\n `You are trying to overwrite ${className}.contextType = InjectorContext`\r\n );\r\n }\r\n });\r\n }\r\n }\r\n }\r\n}\r\n","/** @license React v16.6.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';Object.defineProperty(exports,\"__esModule\",{value:!0});\nvar b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,r=b?Symbol.for(\"react.memo\"):\n60115,t=b?Symbol.for(\"react.lazy\"):60116;function u(a){if(\"object\"===typeof a&&null!==a){var q=a.$$typeof;switch(q){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case h:return a;default:return q}}case d:return q}}}function v(a){return u(a)===m}exports.typeOf=u;exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;\nexports.Profiler=g;exports.Portal=d;exports.StrictMode=f;exports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n)};exports.isAsyncMode=function(a){return v(a)||u(a)===l};exports.isConcurrentMode=v;exports.isContextConsumer=function(a){return u(a)===k};exports.isContextProvider=function(a){return u(a)===h};\nexports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return u(a)===n};exports.isFragment=function(a){return u(a)===e};exports.isProfiler=function(a){return u(a)===g};exports.isPortal=function(a){return u(a)===d};exports.isStrictMode=function(a){return u(a)===f};\n","/** @license React v16.6.1\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\n\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace;\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' ||\n // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE);\n}\n\n/**\n * Forked from fbjs/warning:\n * https://github.com/facebook/fbjs/blob/e66ba20ad5be433eb54423f2b097d829324d9de6/packages/fbjs/src/__forks__/warning.js\n *\n * Only change is we use console.warn instead of console.error,\n * and do nothing when 'console' is not supported.\n * This really simplifies the code.\n * ---\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar lowPriorityWarning = function () {};\n\n{\n var printWarning = function (format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.warn(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n lowPriorityWarning = function (condition, format) {\n if (format === undefined) {\n throw new Error('`lowPriorityWarning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n}\n\nvar lowPriorityWarning$1 = lowPriorityWarning;\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n return type;\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n default:\n return $$typeof;\n }\n }\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n}\n\n// AsyncMode is deprecated along with isAsyncMode\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\n\nvar hasWarnedAboutDeprecatedIsAsyncMode = false;\n\n// AsyncMode should be deprecated\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true;\n lowPriorityWarning$1(false, 'The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\n\nexports.typeOf = typeOf;\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Profiler = Profiler;\nexports.Portal = Portal;\nexports.StrictMode = StrictMode;\nexports.isValidElementType = isValidElementType;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isProfiler = isProfiler;\nexports.isPortal = isPortal;\nexports.isStrictMode = isStrictMode;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","'use strict';\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar ReactIs = require('react-is');\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\n\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\n\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\n\nvar TYPE_STATICS = {};\nTYPE_STATICS[ReactIs.ForwardRef] = FORWARD_REF_STATICS;\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\n\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = TYPE_STATICS[targetComponent['$$typeof']] || REACT_STATICS;\n var sourceStatics = TYPE_STATICS[sourceComponent['$$typeof']] || REACT_STATICS;\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n\n return targetComponent;\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","import { INJECTOR, getInstance } from \"./injector\";\r\nimport { isFunction, isToken } from \"./types\";\r\nimport { logIncorrectBinding, logError, getDebugName } from \"./errors\";\r\n/** @typedef {import(\"./types\").Definition} Definition */\r\n/** @typedef {import(\"./types\").Token} Token */\r\n\r\n/**\r\n * Bind type to specified class.\r\n * @param {new (...args) => any} constructor\r\n * @return {Function}\r\n */\r\nexport function toClass(constructor) {\r\n if (__DEV__) {\r\n if (!isFunction(constructor)) {\r\n logError(`Class ${getDebugName(constructor)} is not a valid dependency`);\r\n }\r\n }\r\n return asBinding(injector => {\r\n const instance = new constructor();\r\n if (!instance[INJECTOR]) {\r\n instance[INJECTOR] = injector;\r\n }\r\n return instance;\r\n });\r\n}\r\n\r\n/**\r\n * Bind type to specified factory funciton.\r\n * @param {any} depsOrFactory Dependencies or factory\r\n * @param {Function} [factory] Factory\r\n * @return {Function}\r\n */\r\nexport function toFactory(depsOrFactory, factory) {\r\n if (__DEV__) {\r\n if (factory) {\r\n if (!Array.isArray(depsOrFactory)) {\r\n logError(`Dependency array ${getDebugName(depsOrFactory)} is invalid`);\r\n }\r\n if (!isFunction(factory)) {\r\n logError(`Factory ${getDebugName(factory)} is not a valid dependency`);\r\n }\r\n } else if (!isFunction(depsOrFactory)) {\r\n logError(\r\n `Factory ${getDebugName(depsOrFactory)} is not a valid dependency`\r\n );\r\n }\r\n }\r\n return asBinding(\r\n factory\r\n ? injector =>\r\n factory(...depsOrFactory.map(token => getInstance(injector, token)))\r\n : depsOrFactory\r\n );\r\n}\r\n\r\n/**\r\n * Bind type to specified value.\r\n * @param {any} value\r\n * @return {Function}\r\n */\r\nexport function toValue(value) {\r\n if (__DEV__) {\r\n if (value === undefined) {\r\n logError(`Please specify some value`);\r\n }\r\n }\r\n return asBinding(() => value);\r\n}\r\n\r\n/**\r\n * Bind type to existing instance located by token.\r\n * @param {Token} token\r\n * @return {Function}\r\n */\r\nexport function toExisting(token) {\r\n if (__DEV__) {\r\n if (!isFunction(token)) {\r\n logError(\r\n `Token ${getDebugName(token)} is not a valid dependency injection token`\r\n );\r\n }\r\n }\r\n return asBinding(injector => getInstance(injector, token));\r\n}\r\n\r\n/* istanbul ignore next */\r\nconst IS_BINDING = typeof Symbol === \"function\" ? Symbol() : \"__binding__\";\r\n\r\n/**\r\n * Mark function as binding function.\r\n * @internal\r\n * @param {Function} binding\r\n * @returns {Function}\r\n */\r\nfunction asBinding(binding) {\r\n binding[IS_BINDING] = true;\r\n return binding;\r\n}\r\n\r\n/**\r\n * Add bindings to bindings Map\r\n * @internal\r\n * @param {Map} bindingMap\r\n * @param {Definition[]} definitions\r\n */\r\nexport function addBindings(bindingMap, definitions) {\r\n definitions.forEach(definition => {\r\n let token, binding;\r\n if (Array.isArray(definition)) {\r\n [token, binding = token] = definition;\r\n } else {\r\n token = binding = definition;\r\n }\r\n if (__DEV__) {\r\n if (!isToken(token) || !isFunction(binding)) {\r\n logIncorrectBinding(token, binding);\r\n }\r\n }\r\n // @ts-ignore\r\n bindingMap.set(token, binding[IS_BINDING] ? binding : toClass(binding));\r\n });\r\n}\r\n","import { createElement } from \"react\";\r\nimport hoistNonReactStatics from \"hoist-non-react-statics\";\r\nimport { Injector, InjectorContext, registrationQueue } from \"./injector\";\r\nimport { addBindings } from \"./bindings\";\r\nimport { isObject, isFunction } from \"./types\";\r\nimport { logError, getDebugName } from \"./errors\";\r\n/** @typedef {import(\"./types\").Definition} Definition */\r\n/** @typedef {import(\"./types\").Token} Token */\r\n\r\n/**\r\n * HOC that registers dependency injection bindings in scope of decorated component\r\n * @param {...Definition} definitions Dependency injection configuration\r\n */\r\nexport const provider = (...definitions) => Wrapped => {\r\n /** @type {Map} */\r\n const bindingMap = new Map();\r\n\r\n addBindings(bindingMap, definitions);\r\n\r\n class Provider extends Injector {\r\n _parent = this.context;\r\n _bindingMap = bindingMap;\r\n _instanceMap = new Map();\r\n\r\n componentWillUnmount() {\r\n this._instanceMap.forEach(instance => {\r\n if (isObject(instance) && isFunction(instance.dispose)) {\r\n instance.dispose();\r\n }\r\n });\r\n }\r\n\r\n render() {\r\n return createElement(\r\n InjectorContext.Provider,\r\n { value: this },\r\n createElement(Wrapped, this.props)\r\n );\r\n }\r\n\r\n static WrappedComponent = Wrapped;\r\n\r\n /**\r\n * Register dependency injection bindings in scope of decorated class\r\n * @param {...Definition} definitions Dependency injection configuration\r\n */\r\n static register(...definitions) {\r\n addBindings(bindingMap, definitions);\r\n }\r\n }\r\n\r\n if (__DEV__) {\r\n Provider.displayName = `Provider(${Wrapped.displayName || Wrapped.name})`;\r\n\r\n Object.defineProperty(Provider, \"contextType\", {\r\n get() {\r\n return InjectorContext;\r\n },\r\n set() {\r\n logError(\r\n `You are trying to overwrite ${\r\n Provider.displayName\r\n }.contextType = InjectorContext`\r\n );\r\n }\r\n });\r\n } else {\r\n Provider.contextType = InjectorContext;\r\n }\r\n\r\n // static fields from component should be visible on the generated Consumer\r\n return hoistNonReactStatics(Provider, Wrapped);\r\n};\r\n\r\n/**\r\n * Register class in specified provider.\r\n * @typedef {{ register(constructor: Function): void }} Provider\r\n * @param {() => Provider} getProvider Function that returns some provider\r\n * @param {Function} [binding] Dependency injection binding\r\n */\r\nexport const registerIn = (getProvider, binding) => constructor => {\r\n registrationQueue.push(() => {\r\n if (__DEV__) {\r\n const provider = getProvider();\r\n if (!isFunction(provider) || !(provider.prototype instanceof Injector)) {\r\n logError(\r\n `${getDebugName(provider)} is not a valid Provider. Please use:\\n` +\r\n `@registerIn(() => MyProvider)\\n` +\r\n `class ${getDebugName(constructor)} {}\\n`\r\n );\r\n } else {\r\n provider.register(binding ? [constructor, binding] : constructor);\r\n }\r\n } else {\r\n getProvider().register(binding ? [constructor, binding] : constructor);\r\n }\r\n });\r\n return constructor;\r\n};\r\n","import { useContext, useRef } from \"react\";\r\nimport { InjectorContext, getInstance } from \"./injector\";\r\nimport { logNotFoundProvider } from \"./errors\";\r\n/** @typedef {import(\"./types\").Token} Token */\r\n\r\n/**\r\n * React hook for resolving a class instance that registered by some Provider in hierarchy.\r\n * Instance is cached in Provider that registers it's class.\r\n * @param {Token} token Dependency injection token\r\n * @returns {Object} Resolved class instance\r\n */\r\nexport function useInstance(token) {\r\n const ref = useRef(null);\r\n const injector = useContext(InjectorContext);\r\n if (__DEV__) {\r\n if (!injector) {\r\n logNotFoundProvider();\r\n }\r\n }\r\n return ref.current || (ref.current = getInstance(injector, token));\r\n}\r\n\r\n/**\r\n * React hook for resolving a class instances that registered by some Provider in hierarchy.\r\n * Instances are cached in Provider that registers it's classes.\r\n * @param {...Token} tokens Dependency injection tokens\r\n * @returns {Object[]} Resolved class instances\r\n */\r\nexport function useInstances(...tokens) {\r\n const ref = useRef(null);\r\n const injector = useContext(InjectorContext);\r\n if (__DEV__) {\r\n if (!injector) {\r\n logNotFoundProvider();\r\n }\r\n }\r\n return (\r\n ref.current ||\r\n (ref.current = tokens.map(token => getInstance(injector, token)))\r\n );\r\n}\r\n"],"names":["Reflect","global","createContext","tslib_1.__extends","Component","require$$0","require$$1","ReactIs","createElement","hoistNonReactStatics","useRef","useContext"],"mappings":"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"} \ No newline at end of file diff --git a/dist/index.umd.min.js b/dist/index.umd.min.js deleted file mode 100644 index 26bb856..0000000 --- a/dist/index.umd.min.js +++ /dev/null @@ -1,2 +0,0 @@ -!function(t,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports,require("react")):"function"==typeof define&&define.amd?define(["exports","react"],r):r(t.ReactIoC={},t.React)}(this,function(t,r){"use strict";var n,e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function o(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}function i(t,r){return t(r={exports:{}},r.exports),r.exports}!function(t){!function(r){var n="object"==typeof e?e:"object"==typeof self?self:"object"==typeof this?this:Function("return this;")(),o=i(t);function i(t,r){return function(n,e){"function"!=typeof t[n]&&Object.defineProperty(t,n,{configurable:!0,writable:!0,value:e}),r&&r(n,e)}}void 0===n.Reflect?n.Reflect=t:o=i(n.Reflect,o),function(t){var r=Object.prototype.hasOwnProperty,n="function"==typeof Symbol,e=n&&void 0!==Symbol.toPrimitive?Symbol.toPrimitive:"@@toPrimitive",o=n&&void 0!==Symbol.iterator?Symbol.iterator:"@@iterator",i="function"==typeof Object.create,u={__proto__:[]}instanceof Array,f=!i&&!u,c={create:i?function(){return W(Object.create(null))}:u?function(){return W({__proto__:null})}:function(){return W({})},has:f?function(t,n){return r.call(t,n)}:function(t,r){return r in t},get:f?function(t,n){return r.call(t,n)?t[n]:void 0}:function(t,r){return t[r]}},a=Object.getPrototypeOf(Function),s="object"==typeof process&&process.env&&"true"===process.env.REFLECT_METADATA_USE_MAP_POLYFILL,l=s||"function"!=typeof Map||"function"!=typeof Map.prototype.entries?function(){var t={},r=[],n=function(){function t(t,r,n){this.t=0,this.r=t,this.n=r,this.e=n}return t.prototype["@@iterator"]=function(){return this},t.prototype[o]=function(){return this},t.prototype.next=function(){var t=this.t;if(t>=0&&t=this.r.length?(this.t=-1,this.r=r,this.n=r):this.t++,{value:n,done:!1}}return{value:void 0,done:!0}},t.prototype.throw=function(t){throw this.t>=0&&(this.t=-1,this.r=r,this.n=r),t},t.prototype.return=function(t){return this.t>=0&&(this.t=-1,this.r=r,this.n=r),{value:t,done:!0}},t}();return function(){function r(){this.r=[],this.n=[],this.o=t,this.i=-2}return Object.defineProperty(r.prototype,"size",{get:function(){return this.r.length},enumerable:!0,configurable:!0}),r.prototype.has=function(t){return this.u(t,!1)>=0},r.prototype.get=function(t){var r=this.u(t,!1);return r>=0?this.n[r]:void 0},r.prototype.set=function(t,r){var n=this.u(t,!0);return this.n[n]=r,this},r.prototype.delete=function(r){var n=this.u(r,!1);if(n>=0){for(var e=this.r.length,o=n+1;o=0;--n){var e=t[n],o=e(r);if(!j(o)&&!S(o)){if(!M(o))throw new TypeError;r=o}}return r}(t,r)}if(!T(t))throw new TypeError;if(!g(r))throw new TypeError;if(!g(e)&&!j(e)&&!S(e))throw new TypeError;return S(e)&&(e=void 0),n=O(n),function(t,r,n,e){for(var o=t.length-1;o>=0;--o){var i=t[o],u=i(r,n,e);if(!j(u)&&!S(u)){if(!g(u))throw new TypeError;e=u}}return e}(t,r,n,e)}),t("metadata",function(t,r){return function(n,e){if(!g(n))throw new TypeError;if(!j(e)&&!function(t){switch(m(t)){case 3:case 4:return!0;default:return!1}}(e))throw new TypeError;d(t,r,n,e)}}),t("defineMetadata",function(t,r,n,e){if(!g(n))throw new TypeError;j(e)||(e=O(e));return d(t,r,n,e)}),t("hasMetadata",function(t,r,n){if(!g(r))throw new TypeError;j(n)||(n=O(n));return function t(r,n,e){var o=p(r,n,e);if(o)return!0;var i=U(n);if(!S(i))return t(r,i,e);return!1}(t,r,n)}),t("hasOwnMetadata",function(t,r,n){if(!g(r))throw new TypeError;j(n)||(n=O(n));return p(t,r,n)}),t("getMetadata",function(t,r,n){if(!g(r))throw new TypeError;j(n)||(n=O(n));return function t(r,n,e){var o=p(r,n,e);if(o)return b(r,n,e);var i=U(n);if(!S(i))return t(r,i,e);return}(t,r,n)}),t("getOwnMetadata",function(t,r,n){if(!g(r))throw new TypeError;j(n)||(n=O(n));return b(t,r,n)}),t("getMetadataKeys",function(t,r){if(!g(t))throw new TypeError;j(r)||(r=O(r));return function t(r,n){var e=w(r,n);var o=U(r);if(null===o)return e;var i=t(o,n);if(i.length<=0)return e;if(e.length<=0)return i;var u=new y;var f=[];for(var c=0,a=e;c0)return!0;var o=h.get(r);return o.delete(n),o.size>0||(h.delete(r),!0)})}(o)}()}(n||(n={}));var u=function(t,r){return(u=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,r){t.__proto__=r}||function(t,r){for(var n in r)r.hasOwnProperty(n)&&(t[n]=r[n])})(t,r)};function f(t,r){function n(){this.constructor=t}u(t,r),t.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}function c(t){return"function"==typeof t}var a=r.createContext(null),s=function(t){function r(){return null!==t&&t.apply(this,arguments)||this}return f(r,t),r}(r.Component);var l=null,y="function"==typeof Symbol?Symbol():"__injector__";function h(t,r){for(v.length>0&&(v.forEach(function(t){t()}),v.length=0);t;){var n=t.a.get(r);if(void 0!==n)return n;var e=t.s.get(r);if(e){var o=l;l=t;try{n=e(t)}finally{l=o}return t.a.set(r,n),n}t=t.l}}var v=[];function p(t,r){return c(r)?b(t,r):r?e(t,r):(n=t,e);var n;function e(t,r){t.constructor.contextType=a,n||(n=Reflect.getMetadata("design:type",t,r));var e={configurable:!0,enumerable:!0,get:function(){var t=b(this,n);return Object.defineProperty(this,r,{enumerable:!0,writable:!0,value:t}),t},set:function(t){Object.defineProperty(this,r,{enumerable:!0,writable:!0,value:t})}};return Object.defineProperty(t,r,e),e}}function b(t,r){return h(function(t){var r=t[y];return r||((r=l||t.context)instanceof s?(t[y]=r,r):null)}(t),r)}var d=i(function(t,r){Object.defineProperty(r,"__esModule",{value:!0});var n="function"==typeof Symbol&&Symbol.for,e=n?Symbol.for("react.element"):60103,o=n?Symbol.for("react.portal"):60106,i=n?Symbol.for("react.fragment"):60107,u=n?Symbol.for("react.strict_mode"):60108,f=n?Symbol.for("react.profiler"):60114,c=n?Symbol.for("react.provider"):60109,a=n?Symbol.for("react.context"):60110,s=n?Symbol.for("react.async_mode"):60111,l=n?Symbol.for("react.concurrent_mode"):60111,y=n?Symbol.for("react.forward_ref"):60112,h=n?Symbol.for("react.suspense"):60113,v=n?Symbol.for("react.memo"):60115,p=n?Symbol.for("react.lazy"):60116;function b(t){if("object"==typeof t&&null!==t){var r=t.$$typeof;switch(r){case e:switch(t=t.type){case s:case l:case i:case f:case u:return t;default:switch(t=t&&t.$$typeof){case a:case y:case c:return t;default:return r}}case o:return r}}}function d(t){return b(t)===l}r.typeOf=b,r.AsyncMode=s,r.ConcurrentMode=l,r.ContextConsumer=a,r.ContextProvider=c,r.Element=e,r.ForwardRef=y,r.Fragment=i,r.Profiler=f,r.Portal=o,r.StrictMode=u,r.isValidElementType=function(t){return"string"==typeof t||"function"==typeof t||t===i||t===l||t===f||t===u||t===h||"object"==typeof t&&null!==t&&(t.$$typeof===p||t.$$typeof===v||t.$$typeof===c||t.$$typeof===a||t.$$typeof===y)},r.isAsyncMode=function(t){return d(t)||b(t)===s},r.isConcurrentMode=d,r.isContextConsumer=function(t){return b(t)===a},r.isContextProvider=function(t){return b(t)===c},r.isElement=function(t){return"object"==typeof t&&null!==t&&t.$$typeof===e},r.isForwardRef=function(t){return b(t)===y},r.isFragment=function(t){return b(t)===i},r.isProfiler=function(t){return b(t)===f},r.isPortal=function(t){return b(t)===o},r.isStrictMode=function(t){return b(t)===u}});o(d);d.typeOf,d.AsyncMode,d.ConcurrentMode,d.ContextConsumer,d.ContextProvider,d.Element,d.ForwardRef,d.Fragment,d.Profiler,d.Portal,d.StrictMode,d.isValidElementType,d.isAsyncMode,d.isConcurrentMode,d.isContextConsumer,d.isContextProvider,d.isElement,d.isForwardRef,d.isFragment,d.isProfiler,d.isPortal,d.isStrictMode;var w=i(function(t,r){"production"!==process.env.NODE_ENV&&function(){Object.defineProperty(r,"__esModule",{value:!0});var t="function"==typeof Symbol&&Symbol.for,n=t?Symbol.for("react.element"):60103,e=t?Symbol.for("react.portal"):60106,o=t?Symbol.for("react.fragment"):60107,i=t?Symbol.for("react.strict_mode"):60108,u=t?Symbol.for("react.profiler"):60114,f=t?Symbol.for("react.provider"):60109,c=t?Symbol.for("react.context"):60110,a=t?Symbol.for("react.async_mode"):60111,s=t?Symbol.for("react.concurrent_mode"):60111,l=t?Symbol.for("react.forward_ref"):60112,y=t?Symbol.for("react.suspense"):60113,h=t?Symbol.for("react.memo"):60115,v=t?Symbol.for("react.lazy"):60116;var p=function(t,r){if(void 0===r)throw new Error("`lowPriorityWarning(condition, format, ...args)` requires a warning message argument");if(!t){for(var n=arguments.length,e=Array(n>2?n-2:0),o=2;o1?r-1:0),e=1;e Reflect.defineMetadata(\"custom:annotation\", options, target, key);\r\n * }\r\n *\r\n */\r\n function defineMetadata(metadataKey, metadataValue, target, propertyKey) {\r\n if (!IsObject(target))\r\n throw new TypeError();\r\n if (!IsUndefined(propertyKey))\r\n propertyKey = ToPropertyKey(propertyKey);\r\n return OrdinaryDefineOwnMetadata(metadataKey, metadataValue, target, propertyKey);\r\n }\r\n exporter(\"defineMetadata\", defineMetadata);\r\n /**\r\n * Gets a value indicating whether the target object or its prototype chain has the provided metadata key defined.\r\n * @param metadataKey A key used to store and retrieve metadata.\r\n * @param target The target object on which the metadata is defined.\r\n * @param propertyKey (Optional) The property key for the target.\r\n * @returns `true` if the metadata key was defined on the target object or its prototype chain; otherwise, `false`.\r\n * @example\r\n *\r\n * class Example {\r\n * // property declarations are not part of ES6, though they are valid in TypeScript:\r\n * // static staticProperty;\r\n * // property;\r\n *\r\n * constructor(p) { }\r\n * static staticMethod(p) { }\r\n * method(p) { }\r\n * }\r\n *\r\n * // constructor\r\n * result = Reflect.hasMetadata(\"custom:annotation\", Example);\r\n *\r\n * // property (on constructor)\r\n * result = Reflect.hasMetadata(\"custom:annotation\", Example, \"staticProperty\");\r\n *\r\n * // property (on prototype)\r\n * result = Reflect.hasMetadata(\"custom:annotation\", Example.prototype, \"property\");\r\n *\r\n * // method (on constructor)\r\n * result = Reflect.hasMetadata(\"custom:annotation\", Example, \"staticMethod\");\r\n *\r\n * // method (on prototype)\r\n * result = Reflect.hasMetadata(\"custom:annotation\", Example.prototype, \"method\");\r\n *\r\n */\r\n function hasMetadata(metadataKey, target, propertyKey) {\r\n if (!IsObject(target))\r\n throw new TypeError();\r\n if (!IsUndefined(propertyKey))\r\n propertyKey = ToPropertyKey(propertyKey);\r\n return OrdinaryHasMetadata(metadataKey, target, propertyKey);\r\n }\r\n exporter(\"hasMetadata\", hasMetadata);\r\n /**\r\n * Gets a value indicating whether the target object has the provided metadata key defined.\r\n * @param metadataKey A key used to store and retrieve metadata.\r\n * @param target The target object on which the metadata is defined.\r\n * @param propertyKey (Optional) The property key for the target.\r\n * @returns `true` if the metadata key was defined on the target object; otherwise, `false`.\r\n * @example\r\n *\r\n * class Example {\r\n * // property declarations are not part of ES6, though they are valid in TypeScript:\r\n * // static staticProperty;\r\n * // property;\r\n *\r\n * constructor(p) { }\r\n * static staticMethod(p) { }\r\n * method(p) { }\r\n * }\r\n *\r\n * // constructor\r\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example);\r\n *\r\n * // property (on constructor)\r\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example, \"staticProperty\");\r\n *\r\n * // property (on prototype)\r\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example.prototype, \"property\");\r\n *\r\n * // method (on constructor)\r\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example, \"staticMethod\");\r\n *\r\n * // method (on prototype)\r\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example.prototype, \"method\");\r\n *\r\n */\r\n function hasOwnMetadata(metadataKey, target, propertyKey) {\r\n if (!IsObject(target))\r\n throw new TypeError();\r\n if (!IsUndefined(propertyKey))\r\n propertyKey = ToPropertyKey(propertyKey);\r\n return OrdinaryHasOwnMetadata(metadataKey, target, propertyKey);\r\n }\r\n exporter(\"hasOwnMetadata\", hasOwnMetadata);\r\n /**\r\n * Gets the metadata value for the provided metadata key on the target object or its prototype chain.\r\n * @param metadataKey A key used to store and retrieve metadata.\r\n * @param target The target object on which the metadata is defined.\r\n * @param propertyKey (Optional) The property key for the target.\r\n * @returns The metadata value for the metadata key if found; otherwise, `undefined`.\r\n * @example\r\n *\r\n * class Example {\r\n * // property declarations are not part of ES6, though they are valid in TypeScript:\r\n * // static staticProperty;\r\n * // property;\r\n *\r\n * constructor(p) { }\r\n * static staticMethod(p) { }\r\n * method(p) { }\r\n * }\r\n *\r\n * // constructor\r\n * result = Reflect.getMetadata(\"custom:annotation\", Example);\r\n *\r\n * // property (on constructor)\r\n * result = Reflect.getMetadata(\"custom:annotation\", Example, \"staticProperty\");\r\n *\r\n * // property (on prototype)\r\n * result = Reflect.getMetadata(\"custom:annotation\", Example.prototype, \"property\");\r\n *\r\n * // method (on constructor)\r\n * result = Reflect.getMetadata(\"custom:annotation\", Example, \"staticMethod\");\r\n *\r\n * // method (on prototype)\r\n * result = Reflect.getMetadata(\"custom:annotation\", Example.prototype, \"method\");\r\n *\r\n */\r\n function getMetadata(metadataKey, target, propertyKey) {\r\n if (!IsObject(target))\r\n throw new TypeError();\r\n if (!IsUndefined(propertyKey))\r\n propertyKey = ToPropertyKey(propertyKey);\r\n return OrdinaryGetMetadata(metadataKey, target, propertyKey);\r\n }\r\n exporter(\"getMetadata\", getMetadata);\r\n /**\r\n * Gets the metadata value for the provided metadata key on the target object.\r\n * @param metadataKey A key used to store and retrieve metadata.\r\n * @param target The target object on which the metadata is defined.\r\n * @param propertyKey (Optional) The property key for the target.\r\n * @returns The metadata value for the metadata key if found; otherwise, `undefined`.\r\n * @example\r\n *\r\n * class Example {\r\n * // property declarations are not part of ES6, though they are valid in TypeScript:\r\n * // static staticProperty;\r\n * // property;\r\n *\r\n * constructor(p) { }\r\n * static staticMethod(p) { }\r\n * method(p) { }\r\n * }\r\n *\r\n * // constructor\r\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example);\r\n *\r\n * // property (on constructor)\r\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example, \"staticProperty\");\r\n *\r\n * // property (on prototype)\r\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example.prototype, \"property\");\r\n *\r\n * // method (on constructor)\r\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example, \"staticMethod\");\r\n *\r\n * // method (on prototype)\r\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example.prototype, \"method\");\r\n *\r\n */\r\n function getOwnMetadata(metadataKey, target, propertyKey) {\r\n if (!IsObject(target))\r\n throw new TypeError();\r\n if (!IsUndefined(propertyKey))\r\n propertyKey = ToPropertyKey(propertyKey);\r\n return OrdinaryGetOwnMetadata(metadataKey, target, propertyKey);\r\n }\r\n exporter(\"getOwnMetadata\", getOwnMetadata);\r\n /**\r\n * Gets the metadata keys defined on the target object or its prototype chain.\r\n * @param target The target object on which the metadata is defined.\r\n * @param propertyKey (Optional) The property key for the target.\r\n * @returns An array of unique metadata keys.\r\n * @example\r\n *\r\n * class Example {\r\n * // property declarations are not part of ES6, though they are valid in TypeScript:\r\n * // static staticProperty;\r\n * // property;\r\n *\r\n * constructor(p) { }\r\n * static staticMethod(p) { }\r\n * method(p) { }\r\n * }\r\n *\r\n * // constructor\r\n * result = Reflect.getMetadataKeys(Example);\r\n *\r\n * // property (on constructor)\r\n * result = Reflect.getMetadataKeys(Example, \"staticProperty\");\r\n *\r\n * // property (on prototype)\r\n * result = Reflect.getMetadataKeys(Example.prototype, \"property\");\r\n *\r\n * // method (on constructor)\r\n * result = Reflect.getMetadataKeys(Example, \"staticMethod\");\r\n *\r\n * // method (on prototype)\r\n * result = Reflect.getMetadataKeys(Example.prototype, \"method\");\r\n *\r\n */\r\n function getMetadataKeys(target, propertyKey) {\r\n if (!IsObject(target))\r\n throw new TypeError();\r\n if (!IsUndefined(propertyKey))\r\n propertyKey = ToPropertyKey(propertyKey);\r\n return OrdinaryMetadataKeys(target, propertyKey);\r\n }\r\n exporter(\"getMetadataKeys\", getMetadataKeys);\r\n /**\r\n * Gets the unique metadata keys defined on the target object.\r\n * @param target The target object on which the metadata is defined.\r\n * @param propertyKey (Optional) The property key for the target.\r\n * @returns An array of unique metadata keys.\r\n * @example\r\n *\r\n * class Example {\r\n * // property declarations are not part of ES6, though they are valid in TypeScript:\r\n * // static staticProperty;\r\n * // property;\r\n *\r\n * constructor(p) { }\r\n * static staticMethod(p) { }\r\n * method(p) { }\r\n * }\r\n *\r\n * // constructor\r\n * result = Reflect.getOwnMetadataKeys(Example);\r\n *\r\n * // property (on constructor)\r\n * result = Reflect.getOwnMetadataKeys(Example, \"staticProperty\");\r\n *\r\n * // property (on prototype)\r\n * result = Reflect.getOwnMetadataKeys(Example.prototype, \"property\");\r\n *\r\n * // method (on constructor)\r\n * result = Reflect.getOwnMetadataKeys(Example, \"staticMethod\");\r\n *\r\n * // method (on prototype)\r\n * result = Reflect.getOwnMetadataKeys(Example.prototype, \"method\");\r\n *\r\n */\r\n function getOwnMetadataKeys(target, propertyKey) {\r\n if (!IsObject(target))\r\n throw new TypeError();\r\n if (!IsUndefined(propertyKey))\r\n propertyKey = ToPropertyKey(propertyKey);\r\n return OrdinaryOwnMetadataKeys(target, propertyKey);\r\n }\r\n exporter(\"getOwnMetadataKeys\", getOwnMetadataKeys);\r\n /**\r\n * Deletes the metadata entry from the target object with the provided key.\r\n * @param metadataKey A key used to store and retrieve metadata.\r\n * @param target The target object on which the metadata is defined.\r\n * @param propertyKey (Optional) The property key for the target.\r\n * @returns `true` if the metadata entry was found and deleted; otherwise, false.\r\n * @example\r\n *\r\n * class Example {\r\n * // property declarations are not part of ES6, though they are valid in TypeScript:\r\n * // static staticProperty;\r\n * // property;\r\n *\r\n * constructor(p) { }\r\n * static staticMethod(p) { }\r\n * method(p) { }\r\n * }\r\n *\r\n * // constructor\r\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example);\r\n *\r\n * // property (on constructor)\r\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example, \"staticProperty\");\r\n *\r\n * // property (on prototype)\r\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example.prototype, \"property\");\r\n *\r\n * // method (on constructor)\r\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example, \"staticMethod\");\r\n *\r\n * // method (on prototype)\r\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example.prototype, \"method\");\r\n *\r\n */\r\n function deleteMetadata(metadataKey, target, propertyKey) {\r\n if (!IsObject(target))\r\n throw new TypeError();\r\n if (!IsUndefined(propertyKey))\r\n propertyKey = ToPropertyKey(propertyKey);\r\n var metadataMap = GetOrCreateMetadataMap(target, propertyKey, /*Create*/ false);\r\n if (IsUndefined(metadataMap))\r\n return false;\r\n if (!metadataMap.delete(metadataKey))\r\n return false;\r\n if (metadataMap.size > 0)\r\n return true;\r\n var targetMetadata = Metadata.get(target);\r\n targetMetadata.delete(propertyKey);\r\n if (targetMetadata.size > 0)\r\n return true;\r\n Metadata.delete(target);\r\n return true;\r\n }\r\n exporter(\"deleteMetadata\", deleteMetadata);\r\n function DecorateConstructor(decorators, target) {\r\n for (var i = decorators.length - 1; i >= 0; --i) {\r\n var decorator = decorators[i];\r\n var decorated = decorator(target);\r\n if (!IsUndefined(decorated) && !IsNull(decorated)) {\r\n if (!IsConstructor(decorated))\r\n throw new TypeError();\r\n target = decorated;\r\n }\r\n }\r\n return target;\r\n }\r\n function DecorateProperty(decorators, target, propertyKey, descriptor) {\r\n for (var i = decorators.length - 1; i >= 0; --i) {\r\n var decorator = decorators[i];\r\n var decorated = decorator(target, propertyKey, descriptor);\r\n if (!IsUndefined(decorated) && !IsNull(decorated)) {\r\n if (!IsObject(decorated))\r\n throw new TypeError();\r\n descriptor = decorated;\r\n }\r\n }\r\n return descriptor;\r\n }\r\n function GetOrCreateMetadataMap(O, P, Create) {\r\n var targetMetadata = Metadata.get(O);\r\n if (IsUndefined(targetMetadata)) {\r\n if (!Create)\r\n return undefined;\r\n targetMetadata = new _Map();\r\n Metadata.set(O, targetMetadata);\r\n }\r\n var metadataMap = targetMetadata.get(P);\r\n if (IsUndefined(metadataMap)) {\r\n if (!Create)\r\n return undefined;\r\n metadataMap = new _Map();\r\n targetMetadata.set(P, metadataMap);\r\n }\r\n return metadataMap;\r\n }\r\n // 3.1.1.1 OrdinaryHasMetadata(MetadataKey, O, P)\r\n // https://rbuckton.github.io/reflect-metadata/#ordinaryhasmetadata\r\n function OrdinaryHasMetadata(MetadataKey, O, P) {\r\n var hasOwn = OrdinaryHasOwnMetadata(MetadataKey, O, P);\r\n if (hasOwn)\r\n return true;\r\n var parent = OrdinaryGetPrototypeOf(O);\r\n if (!IsNull(parent))\r\n return OrdinaryHasMetadata(MetadataKey, parent, P);\r\n return false;\r\n }\r\n // 3.1.2.1 OrdinaryHasOwnMetadata(MetadataKey, O, P)\r\n // https://rbuckton.github.io/reflect-metadata/#ordinaryhasownmetadata\r\n function OrdinaryHasOwnMetadata(MetadataKey, O, P) {\r\n var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ false);\r\n if (IsUndefined(metadataMap))\r\n return false;\r\n return ToBoolean(metadataMap.has(MetadataKey));\r\n }\r\n // 3.1.3.1 OrdinaryGetMetadata(MetadataKey, O, P)\r\n // https://rbuckton.github.io/reflect-metadata/#ordinarygetmetadata\r\n function OrdinaryGetMetadata(MetadataKey, O, P) {\r\n var hasOwn = OrdinaryHasOwnMetadata(MetadataKey, O, P);\r\n if (hasOwn)\r\n return OrdinaryGetOwnMetadata(MetadataKey, O, P);\r\n var parent = OrdinaryGetPrototypeOf(O);\r\n if (!IsNull(parent))\r\n return OrdinaryGetMetadata(MetadataKey, parent, P);\r\n return undefined;\r\n }\r\n // 3.1.4.1 OrdinaryGetOwnMetadata(MetadataKey, O, P)\r\n // https://rbuckton.github.io/reflect-metadata/#ordinarygetownmetadata\r\n function OrdinaryGetOwnMetadata(MetadataKey, O, P) {\r\n var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ false);\r\n if (IsUndefined(metadataMap))\r\n return undefined;\r\n return metadataMap.get(MetadataKey);\r\n }\r\n // 3.1.5.1 OrdinaryDefineOwnMetadata(MetadataKey, MetadataValue, O, P)\r\n // https://rbuckton.github.io/reflect-metadata/#ordinarydefineownmetadata\r\n function OrdinaryDefineOwnMetadata(MetadataKey, MetadataValue, O, P) {\r\n var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ true);\r\n metadataMap.set(MetadataKey, MetadataValue);\r\n }\r\n // 3.1.6.1 OrdinaryMetadataKeys(O, P)\r\n // https://rbuckton.github.io/reflect-metadata/#ordinarymetadatakeys\r\n function OrdinaryMetadataKeys(O, P) {\r\n var ownKeys = OrdinaryOwnMetadataKeys(O, P);\r\n var parent = OrdinaryGetPrototypeOf(O);\r\n if (parent === null)\r\n return ownKeys;\r\n var parentKeys = OrdinaryMetadataKeys(parent, P);\r\n if (parentKeys.length <= 0)\r\n return ownKeys;\r\n if (ownKeys.length <= 0)\r\n return parentKeys;\r\n var set = new _Set();\r\n var keys = [];\r\n for (var _i = 0, ownKeys_1 = ownKeys; _i < ownKeys_1.length; _i++) {\r\n var key = ownKeys_1[_i];\r\n var hasKey = set.has(key);\r\n if (!hasKey) {\r\n set.add(key);\r\n keys.push(key);\r\n }\r\n }\r\n for (var _a = 0, parentKeys_1 = parentKeys; _a < parentKeys_1.length; _a++) {\r\n var key = parentKeys_1[_a];\r\n var hasKey = set.has(key);\r\n if (!hasKey) {\r\n set.add(key);\r\n keys.push(key);\r\n }\r\n }\r\n return keys;\r\n }\r\n // 3.1.7.1 OrdinaryOwnMetadataKeys(O, P)\r\n // https://rbuckton.github.io/reflect-metadata/#ordinaryownmetadatakeys\r\n function OrdinaryOwnMetadataKeys(O, P) {\r\n var keys = [];\r\n var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ false);\r\n if (IsUndefined(metadataMap))\r\n return keys;\r\n var keysObj = metadataMap.keys();\r\n var iterator = GetIterator(keysObj);\r\n var k = 0;\r\n while (true) {\r\n var next = IteratorStep(iterator);\r\n if (!next) {\r\n keys.length = k;\r\n return keys;\r\n }\r\n var nextValue = IteratorValue(next);\r\n try {\r\n keys[k] = nextValue;\r\n }\r\n catch (e) {\r\n try {\r\n IteratorClose(iterator);\r\n }\r\n finally {\r\n throw e;\r\n }\r\n }\r\n k++;\r\n }\r\n }\r\n // 6 ECMAScript Data Typ0es and Values\r\n // https://tc39.github.io/ecma262/#sec-ecmascript-data-types-and-values\r\n function Type(x) {\r\n if (x === null)\r\n return 1 /* Null */;\r\n switch (typeof x) {\r\n case \"undefined\": return 0 /* Undefined */;\r\n case \"boolean\": return 2 /* Boolean */;\r\n case \"string\": return 3 /* String */;\r\n case \"symbol\": return 4 /* Symbol */;\r\n case \"number\": return 5 /* Number */;\r\n case \"object\": return x === null ? 1 /* Null */ : 6 /* Object */;\r\n default: return 6 /* Object */;\r\n }\r\n }\r\n // 6.1.1 The Undefined Type\r\n // https://tc39.github.io/ecma262/#sec-ecmascript-language-types-undefined-type\r\n function IsUndefined(x) {\r\n return x === undefined;\r\n }\r\n // 6.1.2 The Null Type\r\n // https://tc39.github.io/ecma262/#sec-ecmascript-language-types-null-type\r\n function IsNull(x) {\r\n return x === null;\r\n }\r\n // 6.1.5 The Symbol Type\r\n // https://tc39.github.io/ecma262/#sec-ecmascript-language-types-symbol-type\r\n function IsSymbol(x) {\r\n return typeof x === \"symbol\";\r\n }\r\n // 6.1.7 The Object Type\r\n // https://tc39.github.io/ecma262/#sec-object-type\r\n function IsObject(x) {\r\n return typeof x === \"object\" ? x !== null : typeof x === \"function\";\r\n }\r\n // 7.1 Type Conversion\r\n // https://tc39.github.io/ecma262/#sec-type-conversion\r\n // 7.1.1 ToPrimitive(input [, PreferredType])\r\n // https://tc39.github.io/ecma262/#sec-toprimitive\r\n function ToPrimitive(input, PreferredType) {\r\n switch (Type(input)) {\r\n case 0 /* Undefined */: return input;\r\n case 1 /* Null */: return input;\r\n case 2 /* Boolean */: return input;\r\n case 3 /* String */: return input;\r\n case 4 /* Symbol */: return input;\r\n case 5 /* Number */: return input;\r\n }\r\n var hint = PreferredType === 3 /* String */ ? \"string\" : PreferredType === 5 /* Number */ ? \"number\" : \"default\";\r\n var exoticToPrim = GetMethod(input, toPrimitiveSymbol);\r\n if (exoticToPrim !== undefined) {\r\n var result = exoticToPrim.call(input, hint);\r\n if (IsObject(result))\r\n throw new TypeError();\r\n return result;\r\n }\r\n return OrdinaryToPrimitive(input, hint === \"default\" ? \"number\" : hint);\r\n }\r\n // 7.1.1.1 OrdinaryToPrimitive(O, hint)\r\n // https://tc39.github.io/ecma262/#sec-ordinarytoprimitive\r\n function OrdinaryToPrimitive(O, hint) {\r\n if (hint === \"string\") {\r\n var toString_1 = O.toString;\r\n if (IsCallable(toString_1)) {\r\n var result = toString_1.call(O);\r\n if (!IsObject(result))\r\n return result;\r\n }\r\n var valueOf = O.valueOf;\r\n if (IsCallable(valueOf)) {\r\n var result = valueOf.call(O);\r\n if (!IsObject(result))\r\n return result;\r\n }\r\n }\r\n else {\r\n var valueOf = O.valueOf;\r\n if (IsCallable(valueOf)) {\r\n var result = valueOf.call(O);\r\n if (!IsObject(result))\r\n return result;\r\n }\r\n var toString_2 = O.toString;\r\n if (IsCallable(toString_2)) {\r\n var result = toString_2.call(O);\r\n if (!IsObject(result))\r\n return result;\r\n }\r\n }\r\n throw new TypeError();\r\n }\r\n // 7.1.2 ToBoolean(argument)\r\n // https://tc39.github.io/ecma262/2016/#sec-toboolean\r\n function ToBoolean(argument) {\r\n return !!argument;\r\n }\r\n // 7.1.12 ToString(argument)\r\n // https://tc39.github.io/ecma262/#sec-tostring\r\n function ToString(argument) {\r\n return \"\" + argument;\r\n }\r\n // 7.1.14 ToPropertyKey(argument)\r\n // https://tc39.github.io/ecma262/#sec-topropertykey\r\n function ToPropertyKey(argument) {\r\n var key = ToPrimitive(argument, 3 /* String */);\r\n if (IsSymbol(key))\r\n return key;\r\n return ToString(key);\r\n }\r\n // 7.2 Testing and Comparison Operations\r\n // https://tc39.github.io/ecma262/#sec-testing-and-comparison-operations\r\n // 7.2.2 IsArray(argument)\r\n // https://tc39.github.io/ecma262/#sec-isarray\r\n function IsArray(argument) {\r\n return Array.isArray\r\n ? Array.isArray(argument)\r\n : argument instanceof Object\r\n ? argument instanceof Array\r\n : Object.prototype.toString.call(argument) === \"[object Array]\";\r\n }\r\n // 7.2.3 IsCallable(argument)\r\n // https://tc39.github.io/ecma262/#sec-iscallable\r\n function IsCallable(argument) {\r\n // NOTE: This is an approximation as we cannot check for [[Call]] internal method.\r\n return typeof argument === \"function\";\r\n }\r\n // 7.2.4 IsConstructor(argument)\r\n // https://tc39.github.io/ecma262/#sec-isconstructor\r\n function IsConstructor(argument) {\r\n // NOTE: This is an approximation as we cannot check for [[Construct]] internal method.\r\n return typeof argument === \"function\";\r\n }\r\n // 7.2.7 IsPropertyKey(argument)\r\n // https://tc39.github.io/ecma262/#sec-ispropertykey\r\n function IsPropertyKey(argument) {\r\n switch (Type(argument)) {\r\n case 3 /* String */: return true;\r\n case 4 /* Symbol */: return true;\r\n default: return false;\r\n }\r\n }\r\n // 7.3 Operations on Objects\r\n // https://tc39.github.io/ecma262/#sec-operations-on-objects\r\n // 7.3.9 GetMethod(V, P)\r\n // https://tc39.github.io/ecma262/#sec-getmethod\r\n function GetMethod(V, P) {\r\n var func = V[P];\r\n if (func === undefined || func === null)\r\n return undefined;\r\n if (!IsCallable(func))\r\n throw new TypeError();\r\n return func;\r\n }\r\n // 7.4 Operations on Iterator Objects\r\n // https://tc39.github.io/ecma262/#sec-operations-on-iterator-objects\r\n function GetIterator(obj) {\r\n var method = GetMethod(obj, iteratorSymbol);\r\n if (!IsCallable(method))\r\n throw new TypeError(); // from Call\r\n var iterator = method.call(obj);\r\n if (!IsObject(iterator))\r\n throw new TypeError();\r\n return iterator;\r\n }\r\n // 7.4.4 IteratorValue(iterResult)\r\n // https://tc39.github.io/ecma262/2016/#sec-iteratorvalue\r\n function IteratorValue(iterResult) {\r\n return iterResult.value;\r\n }\r\n // 7.4.5 IteratorStep(iterator)\r\n // https://tc39.github.io/ecma262/#sec-iteratorstep\r\n function IteratorStep(iterator) {\r\n var result = iterator.next();\r\n return result.done ? false : result;\r\n }\r\n // 7.4.6 IteratorClose(iterator, completion)\r\n // https://tc39.github.io/ecma262/#sec-iteratorclose\r\n function IteratorClose(iterator) {\r\n var f = iterator[\"return\"];\r\n if (f)\r\n f.call(iterator);\r\n }\r\n // 9.1 Ordinary Object Internal Methods and Internal Slots\r\n // https://tc39.github.io/ecma262/#sec-ordinary-object-internal-methods-and-internal-slots\r\n // 9.1.1.1 OrdinaryGetPrototypeOf(O)\r\n // https://tc39.github.io/ecma262/#sec-ordinarygetprototypeof\r\n function OrdinaryGetPrototypeOf(O) {\r\n var proto = Object.getPrototypeOf(O);\r\n if (typeof O !== \"function\" || O === functionPrototype)\r\n return proto;\r\n // TypeScript doesn't set __proto__ in ES5, as it's non-standard.\r\n // Try to determine the superclass constructor. Compatible implementations\r\n // must either set __proto__ on a subclass constructor to the superclass constructor,\r\n // or ensure each class has a valid `constructor` property on its prototype that\r\n // points back to the constructor.\r\n // If this is not the same as Function.[[Prototype]], then this is definately inherited.\r\n // This is the case when in ES6 or when using __proto__ in a compatible browser.\r\n if (proto !== functionPrototype)\r\n return proto;\r\n // If the super prototype is Object.prototype, null, or undefined, then we cannot determine the heritage.\r\n var prototype = O.prototype;\r\n var prototypeProto = prototype && Object.getPrototypeOf(prototype);\r\n if (prototypeProto == null || prototypeProto === Object.prototype)\r\n return proto;\r\n // If the constructor was not a function, then we cannot determine the heritage.\r\n var constructor = prototypeProto.constructor;\r\n if (typeof constructor !== \"function\")\r\n return proto;\r\n // If we have some kind of self-reference, then we cannot determine the heritage.\r\n if (constructor === O)\r\n return proto;\r\n // we have a pretty good guess at the heritage.\r\n return constructor;\r\n }\r\n // naive Map shim\r\n function CreateMapPolyfill() {\r\n var cacheSentinel = {};\r\n var arraySentinel = [];\r\n var MapIterator = (function () {\r\n function MapIterator(keys, values, selector) {\r\n this._index = 0;\r\n this._keys = keys;\r\n this._values = values;\r\n this._selector = selector;\r\n }\r\n MapIterator.prototype[\"@@iterator\"] = function () { return this; };\r\n MapIterator.prototype[iteratorSymbol] = function () { return this; };\r\n MapIterator.prototype.next = function () {\r\n var index = this._index;\r\n if (index >= 0 && index < this._keys.length) {\r\n var result = this._selector(this._keys[index], this._values[index]);\r\n if (index + 1 >= this._keys.length) {\r\n this._index = -1;\r\n this._keys = arraySentinel;\r\n this._values = arraySentinel;\r\n }\r\n else {\r\n this._index++;\r\n }\r\n return { value: result, done: false };\r\n }\r\n return { value: undefined, done: true };\r\n };\r\n MapIterator.prototype.throw = function (error) {\r\n if (this._index >= 0) {\r\n this._index = -1;\r\n this._keys = arraySentinel;\r\n this._values = arraySentinel;\r\n }\r\n throw error;\r\n };\r\n MapIterator.prototype.return = function (value) {\r\n if (this._index >= 0) {\r\n this._index = -1;\r\n this._keys = arraySentinel;\r\n this._values = arraySentinel;\r\n }\r\n return { value: value, done: true };\r\n };\r\n return MapIterator;\r\n }());\r\n return (function () {\r\n function Map() {\r\n this._keys = [];\r\n this._values = [];\r\n this._cacheKey = cacheSentinel;\r\n this._cacheIndex = -2;\r\n }\r\n Object.defineProperty(Map.prototype, \"size\", {\r\n get: function () { return this._keys.length; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Map.prototype.has = function (key) { return this._find(key, /*insert*/ false) >= 0; };\r\n Map.prototype.get = function (key) {\r\n var index = this._find(key, /*insert*/ false);\r\n return index >= 0 ? this._values[index] : undefined;\r\n };\r\n Map.prototype.set = function (key, value) {\r\n var index = this._find(key, /*insert*/ true);\r\n this._values[index] = value;\r\n return this;\r\n };\r\n Map.prototype.delete = function (key) {\r\n var index = this._find(key, /*insert*/ false);\r\n if (index >= 0) {\r\n var size = this._keys.length;\r\n for (var i = index + 1; i < size; i++) {\r\n this._keys[i - 1] = this._keys[i];\r\n this._values[i - 1] = this._values[i];\r\n }\r\n this._keys.length--;\r\n this._values.length--;\r\n if (key === this._cacheKey) {\r\n this._cacheKey = cacheSentinel;\r\n this._cacheIndex = -2;\r\n }\r\n return true;\r\n }\r\n return false;\r\n };\r\n Map.prototype.clear = function () {\r\n this._keys.length = 0;\r\n this._values.length = 0;\r\n this._cacheKey = cacheSentinel;\r\n this._cacheIndex = -2;\r\n };\r\n Map.prototype.keys = function () { return new MapIterator(this._keys, this._values, getKey); };\r\n Map.prototype.values = function () { return new MapIterator(this._keys, this._values, getValue); };\r\n Map.prototype.entries = function () { return new MapIterator(this._keys, this._values, getEntry); };\r\n Map.prototype[\"@@iterator\"] = function () { return this.entries(); };\r\n Map.prototype[iteratorSymbol] = function () { return this.entries(); };\r\n Map.prototype._find = function (key, insert) {\r\n if (this._cacheKey !== key) {\r\n this._cacheIndex = this._keys.indexOf(this._cacheKey = key);\r\n }\r\n if (this._cacheIndex < 0 && insert) {\r\n this._cacheIndex = this._keys.length;\r\n this._keys.push(key);\r\n this._values.push(undefined);\r\n }\r\n return this._cacheIndex;\r\n };\r\n return Map;\r\n }());\r\n function getKey(key, _) {\r\n return key;\r\n }\r\n function getValue(_, value) {\r\n return value;\r\n }\r\n function getEntry(key, value) {\r\n return [key, value];\r\n }\r\n }\r\n // naive Set shim\r\n function CreateSetPolyfill() {\r\n return (function () {\r\n function Set() {\r\n this._map = new _Map();\r\n }\r\n Object.defineProperty(Set.prototype, \"size\", {\r\n get: function () { return this._map.size; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Set.prototype.has = function (value) { return this._map.has(value); };\r\n Set.prototype.add = function (value) { return this._map.set(value, value), this; };\r\n Set.prototype.delete = function (value) { return this._map.delete(value); };\r\n Set.prototype.clear = function () { this._map.clear(); };\r\n Set.prototype.keys = function () { return this._map.keys(); };\r\n Set.prototype.values = function () { return this._map.values(); };\r\n Set.prototype.entries = function () { return this._map.entries(); };\r\n Set.prototype[\"@@iterator\"] = function () { return this.keys(); };\r\n Set.prototype[iteratorSymbol] = function () { return this.keys(); };\r\n return Set;\r\n }());\r\n }\r\n // naive WeakMap shim\r\n function CreateWeakMapPolyfill() {\r\n var UUID_SIZE = 16;\r\n var keys = HashMap.create();\r\n var rootKey = CreateUniqueKey();\r\n return (function () {\r\n function WeakMap() {\r\n this._key = CreateUniqueKey();\r\n }\r\n WeakMap.prototype.has = function (target) {\r\n var table = GetOrCreateWeakMapTable(target, /*create*/ false);\r\n return table !== undefined ? HashMap.has(table, this._key) : false;\r\n };\r\n WeakMap.prototype.get = function (target) {\r\n var table = GetOrCreateWeakMapTable(target, /*create*/ false);\r\n return table !== undefined ? HashMap.get(table, this._key) : undefined;\r\n };\r\n WeakMap.prototype.set = function (target, value) {\r\n var table = GetOrCreateWeakMapTable(target, /*create*/ true);\r\n table[this._key] = value;\r\n return this;\r\n };\r\n WeakMap.prototype.delete = function (target) {\r\n var table = GetOrCreateWeakMapTable(target, /*create*/ false);\r\n return table !== undefined ? delete table[this._key] : false;\r\n };\r\n WeakMap.prototype.clear = function () {\r\n // NOTE: not a real clear, just makes the previous data unreachable\r\n this._key = CreateUniqueKey();\r\n };\r\n return WeakMap;\r\n }());\r\n function CreateUniqueKey() {\r\n var key;\r\n do\r\n key = \"@@WeakMap@@\" + CreateUUID();\r\n while (HashMap.has(keys, key));\r\n keys[key] = true;\r\n return key;\r\n }\r\n function GetOrCreateWeakMapTable(target, create) {\r\n if (!hasOwn.call(target, rootKey)) {\r\n if (!create)\r\n return undefined;\r\n Object.defineProperty(target, rootKey, { value: HashMap.create() });\r\n }\r\n return target[rootKey];\r\n }\r\n function FillRandomBytes(buffer, size) {\r\n for (var i = 0; i < size; ++i)\r\n buffer[i] = Math.random() * 0xff | 0;\r\n return buffer;\r\n }\r\n function GenRandomBytes(size) {\r\n if (typeof Uint8Array === \"function\") {\r\n if (typeof crypto !== \"undefined\")\r\n return crypto.getRandomValues(new Uint8Array(size));\r\n if (typeof msCrypto !== \"undefined\")\r\n return msCrypto.getRandomValues(new Uint8Array(size));\r\n return FillRandomBytes(new Uint8Array(size), size);\r\n }\r\n return FillRandomBytes(new Array(size), size);\r\n }\r\n function CreateUUID() {\r\n var data = GenRandomBytes(UUID_SIZE);\r\n // mark as random - RFC 4122 § 4.4\r\n data[6] = data[6] & 0x4f | 0x40;\r\n data[8] = data[8] & 0xbf | 0x80;\r\n var result = \"\";\r\n for (var offset = 0; offset < UUID_SIZE; ++offset) {\r\n var byte = data[offset];\r\n if (offset === 4 || offset === 6 || offset === 8)\r\n result += \"-\";\r\n if (byte < 16)\r\n result += \"0\";\r\n result += byte.toString(16).toLowerCase();\r\n }\r\n return result;\r\n }\r\n }\r\n // uses a heuristic used by v8 and chakra to force an object into dictionary mode.\r\n function MakeDictionary(obj) {\r\n obj.__ = undefined;\r\n delete obj.__;\r\n return obj;\r\n }\r\n });\r\n})(Reflect || (Reflect = {}));\r\n//# sourceMappingURL=Reflect.js.map","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\r\n t[p[i]] = s[p[i]];\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","export type Token = Function | Object | string | symbol;\r\nexport type Definition = Function | [Function] | [Token, Function];\r\n\r\nexport function isFunction(arg): arg is Function {\r\n return typeof arg === \"function\";\r\n}\r\n\r\nexport function isObject(arg): arg is Object {\r\n return arg && typeof arg === \"object\";\r\n}\r\n\r\nexport function isString(arg): arg is string {\r\n return typeof arg === \"string\";\r\n}\r\n\r\nexport function isSymbol(arg): arg is symbol {\r\n return typeof arg === \"symbol\";\r\n}\r\n\r\nexport function isToken(arg): arg is Token {\r\n return isFunction(arg) || isObject(arg) || isString(arg) || isSymbol(arg);\r\n}\r\n\r\nexport function isReactComponent(prototype) {\r\n return isObject(prototype) && isObject(prototype.isReactComponent);\r\n}\r\n\r\nexport function isValidMetadata(arg): arg is Function {\r\n return (\r\n isFunction(arg) &&\r\n [Object, Function, Number, String, Boolean].indexOf(arg) === -1\r\n );\r\n}\r\n","import { Component, createContext } from \"react\";\r\nimport { logNotFoundDependency } from \"./errors\";\r\n/** @typedef {import(\"./types\").Token} Token */\r\n\r\n/** React Context for Injector */\r\nexport const InjectorContext = createContext(null);\r\n\r\n/**\r\n * Dependency injection container\r\n * @internal\r\n */\r\nexport class Injector extends Component {\r\n /** @type {Injector} */\r\n _parent;\r\n /** @type {Map} */\r\n _bindingMap;\r\n /** @type {Map} */\r\n _instanceMap;\r\n}\r\n\r\n/**\r\n * Find Injector for passed object and cache it inside this object\r\n * @internal\r\n * @param {Object} target The object in which we inject value\r\n * @returns {Injector}\r\n */\r\nexport function getInjector(target) {\r\n let injector = target[INJECTOR];\r\n if (injector) {\r\n return injector;\r\n }\r\n injector = currentInjector || target.context;\r\n if (injector instanceof Injector) {\r\n target[INJECTOR] = injector;\r\n return injector;\r\n }\r\n return null;\r\n}\r\n\r\n/** @type {Injector} */\r\nlet currentInjector = null;\r\n\r\n/* istanbul ignore next */\r\nexport const INJECTOR =\r\n typeof Symbol === \"function\" ? Symbol() : \"__injector__\";\r\n\r\n/**\r\n * Resolve a class instance that registered by some Provider in hierarchy.\r\n * Instance is cached in Provider that registers it's class.\r\n * @internal\r\n * @param {Injector} injector Injector instance\r\n * @param {Token} token Dependency injection token\r\n * @returns {Object} Resolved class instance\r\n */\r\nexport function getInstance(injector, token) {\r\n if (registrationQueue.length > 0) {\r\n registrationQueue.forEach(registration => {\r\n registration();\r\n });\r\n registrationQueue.length = 0;\r\n }\r\n while (injector) {\r\n let instance = injector._instanceMap.get(token);\r\n if (instance !== undefined) {\r\n return instance;\r\n }\r\n const binding = injector._bindingMap.get(token);\r\n if (binding) {\r\n const prevInjector = currentInjector;\r\n currentInjector = injector;\r\n try {\r\n instance = binding(injector);\r\n } finally {\r\n currentInjector = prevInjector;\r\n }\r\n injector._instanceMap.set(token, instance);\r\n return instance;\r\n }\r\n injector = injector._parent;\r\n }\r\n if (__DEV__) {\r\n logNotFoundDependency(token);\r\n }\r\n return undefined;\r\n}\r\n\r\n/** @type {Function[]} */\r\nexport const registrationQueue = [];\r\n","import \"reflect-metadata\";\r\nimport { InjectorContext, getInjector, getInstance } from \"./injector\";\r\nimport { isValidMetadata, isReactComponent, isFunction } from \"./types\";\r\nimport {\r\n getDebugName,\r\n logInvalidMetadata,\r\n logNotFoundProvider,\r\n logError\r\n} from \"./errors\";\r\n/** @typedef {import(\"./types\").Token} Token */\r\n\r\n/**\r\n * Property decorator that resolves a class instance\r\n * which registered by some Provider in hierarchy.\r\n * Instance is cached in Provider that registers it's class.\r\n * @param {Token | Object} [targetOrToken] Object or Class prototype or dependency injection token\r\n * @param {string | symbol | Function} [keyOrToken] Property key or dependency injection token\r\n */\r\nexport function inject(targetOrToken, keyOrToken) {\r\n if (isFunction(keyOrToken)) {\r\n return injectFunction(targetOrToken, keyOrToken);\r\n }\r\n /** @type {Token} */\r\n let token;\r\n if (!keyOrToken) {\r\n token = targetOrToken;\r\n return injectDecorator;\r\n }\r\n return injectDecorator(targetOrToken, keyOrToken);\r\n\r\n function injectDecorator(prototype, key) {\r\n if (__DEV__) {\r\n defineContextType(prototype);\r\n } else {\r\n prototype.constructor.contextType = InjectorContext;\r\n }\r\n\r\n if (!token) {\r\n token = Reflect.getMetadata(\"design:type\", prototype, key);\r\n if (__DEV__) {\r\n if (!isValidMetadata(token)) {\r\n logInvalidMetadata(targetOrToken, token);\r\n }\r\n }\r\n }\r\n\r\n const descriptor = {\r\n configurable: true,\r\n enumerable: true,\r\n get() {\r\n const instance = injectFunction(this, token);\r\n Object.defineProperty(this, key, {\r\n enumerable: true,\r\n writable: true,\r\n value: instance\r\n });\r\n return instance;\r\n },\r\n set(instance) {\r\n Object.defineProperty(this, key, {\r\n enumerable: true,\r\n writable: true,\r\n value: instance\r\n });\r\n }\r\n };\r\n\r\n Object.defineProperty(prototype, key, descriptor);\r\n\r\n return descriptor;\r\n }\r\n}\r\n\r\n/**\r\n * Resolve a class instance that registered by some Provider in hierarchy.\r\n * Instance is cached in Provider that registers it's class.\r\n * @internal\r\n * @param {Object} target The object in which we inject class instance\r\n * @param {Token} token Dependency injection token\r\n * @returns {Object} Resolved class instance\r\n */\r\nfunction injectFunction(target, token) {\r\n const injector = getInjector(target);\r\n if (__DEV__) {\r\n if (!injector) {\r\n logNotFoundProvider(target);\r\n }\r\n }\r\n return getInstance(injector, token);\r\n}\r\n\r\n/**\r\n * Set Class.contextType = InjectorContext\r\n * @internal\r\n * @param {Object} prototype React Component prototype\r\n */\r\nfunction defineContextType(prototype) {\r\n if (isReactComponent(prototype)) {\r\n const { constructor } = prototype;\r\n const className = getDebugName(constructor);\r\n if (constructor.contextType !== InjectorContext) {\r\n if (constructor.contextType) {\r\n logError(\r\n `Decorator tries to overwrite existing ${className}.contextType`\r\n );\r\n } else {\r\n Object.defineProperty(constructor, \"contextType\", {\r\n get() {\r\n return InjectorContext;\r\n },\r\n set() {\r\n logError(\r\n `You are trying to overwrite ${className}.contextType = InjectorContext`\r\n );\r\n }\r\n });\r\n }\r\n }\r\n }\r\n}\r\n","/** @license React v16.6.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';Object.defineProperty(exports,\"__esModule\",{value:!0});\nvar b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,r=b?Symbol.for(\"react.memo\"):\n60115,t=b?Symbol.for(\"react.lazy\"):60116;function u(a){if(\"object\"===typeof a&&null!==a){var q=a.$$typeof;switch(q){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case h:return a;default:return q}}case d:return q}}}function v(a){return u(a)===m}exports.typeOf=u;exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;\nexports.Profiler=g;exports.Portal=d;exports.StrictMode=f;exports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n)};exports.isAsyncMode=function(a){return v(a)||u(a)===l};exports.isConcurrentMode=v;exports.isContextConsumer=function(a){return u(a)===k};exports.isContextProvider=function(a){return u(a)===h};\nexports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return u(a)===n};exports.isFragment=function(a){return u(a)===e};exports.isProfiler=function(a){return u(a)===g};exports.isPortal=function(a){return u(a)===d};exports.isStrictMode=function(a){return u(a)===f};\n","/** @license React v16.6.1\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\n\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace;\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' ||\n // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE);\n}\n\n/**\n * Forked from fbjs/warning:\n * https://github.com/facebook/fbjs/blob/e66ba20ad5be433eb54423f2b097d829324d9de6/packages/fbjs/src/__forks__/warning.js\n *\n * Only change is we use console.warn instead of console.error,\n * and do nothing when 'console' is not supported.\n * This really simplifies the code.\n * ---\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar lowPriorityWarning = function () {};\n\n{\n var printWarning = function (format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.warn(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n lowPriorityWarning = function (condition, format) {\n if (format === undefined) {\n throw new Error('`lowPriorityWarning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n}\n\nvar lowPriorityWarning$1 = lowPriorityWarning;\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n return type;\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n default:\n return $$typeof;\n }\n }\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n}\n\n// AsyncMode is deprecated along with isAsyncMode\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\n\nvar hasWarnedAboutDeprecatedIsAsyncMode = false;\n\n// AsyncMode should be deprecated\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true;\n lowPriorityWarning$1(false, 'The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\n\nexports.typeOf = typeOf;\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Profiler = Profiler;\nexports.Portal = Portal;\nexports.StrictMode = StrictMode;\nexports.isValidElementType = isValidElementType;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isProfiler = isProfiler;\nexports.isPortal = isPortal;\nexports.isStrictMode = isStrictMode;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","'use strict';\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar ReactIs = require('react-is');\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\n\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\n\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\n\nvar TYPE_STATICS = {};\nTYPE_STATICS[ReactIs.ForwardRef] = FORWARD_REF_STATICS;\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\n\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = TYPE_STATICS[targetComponent['$$typeof']] || REACT_STATICS;\n var sourceStatics = TYPE_STATICS[sourceComponent['$$typeof']] || REACT_STATICS;\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n\n return targetComponent;\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","import { INJECTOR, getInstance } from \"./injector\";\r\nimport { isFunction, isToken } from \"./types\";\r\nimport { logIncorrectBinding, logError, getDebugName } from \"./errors\";\r\n/** @typedef {import(\"./types\").Definition} Definition */\r\n/** @typedef {import(\"./types\").Token} Token */\r\n\r\n/**\r\n * Bind type to specified class.\r\n * @param {new (...args) => any} constructor\r\n * @return {Function}\r\n */\r\nexport function toClass(constructor) {\r\n if (__DEV__) {\r\n if (!isFunction(constructor)) {\r\n logError(`Class ${getDebugName(constructor)} is not a valid dependency`);\r\n }\r\n }\r\n return asBinding(injector => {\r\n const instance = new constructor();\r\n if (!instance[INJECTOR]) {\r\n instance[INJECTOR] = injector;\r\n }\r\n return instance;\r\n });\r\n}\r\n\r\n/**\r\n * Bind type to specified factory funciton.\r\n * @param {any} depsOrFactory Dependencies or factory\r\n * @param {Function} [factory] Factory\r\n * @return {Function}\r\n */\r\nexport function toFactory(depsOrFactory, factory) {\r\n if (__DEV__) {\r\n if (factory) {\r\n if (!Array.isArray(depsOrFactory)) {\r\n logError(`Dependency array ${getDebugName(depsOrFactory)} is invalid`);\r\n }\r\n if (!isFunction(factory)) {\r\n logError(`Factory ${getDebugName(factory)} is not a valid dependency`);\r\n }\r\n } else if (!isFunction(depsOrFactory)) {\r\n logError(\r\n `Factory ${getDebugName(depsOrFactory)} is not a valid dependency`\r\n );\r\n }\r\n }\r\n return asBinding(\r\n factory\r\n ? injector =>\r\n factory(...depsOrFactory.map(token => getInstance(injector, token)))\r\n : depsOrFactory\r\n );\r\n}\r\n\r\n/**\r\n * Bind type to specified value.\r\n * @param {any} value\r\n * @return {Function}\r\n */\r\nexport function toValue(value) {\r\n if (__DEV__) {\r\n if (value === undefined) {\r\n logError(`Please specify some value`);\r\n }\r\n }\r\n return asBinding(() => value);\r\n}\r\n\r\n/**\r\n * Bind type to existing instance located by token.\r\n * @param {Token} token\r\n * @return {Function}\r\n */\r\nexport function toExisting(token) {\r\n if (__DEV__) {\r\n if (!isFunction(token)) {\r\n logError(\r\n `Token ${getDebugName(token)} is not a valid dependency injection token`\r\n );\r\n }\r\n }\r\n return asBinding(injector => getInstance(injector, token));\r\n}\r\n\r\n/* istanbul ignore next */\r\nconst IS_BINDING = typeof Symbol === \"function\" ? Symbol() : \"__binding__\";\r\n\r\n/**\r\n * Mark function as binding function.\r\n * @internal\r\n * @param {Function} binding\r\n * @returns {Function}\r\n */\r\nfunction asBinding(binding) {\r\n binding[IS_BINDING] = true;\r\n return binding;\r\n}\r\n\r\n/**\r\n * Add bindings to bindings Map\r\n * @internal\r\n * @param {Map} bindingMap\r\n * @param {Definition[]} definitions\r\n */\r\nexport function addBindings(bindingMap, definitions) {\r\n definitions.forEach(definition => {\r\n let token, binding;\r\n if (Array.isArray(definition)) {\r\n [token, binding = token] = definition;\r\n } else {\r\n token = binding = definition;\r\n }\r\n if (__DEV__) {\r\n if (!isToken(token) || !isFunction(binding)) {\r\n logIncorrectBinding(token, binding);\r\n }\r\n }\r\n // @ts-ignore\r\n bindingMap.set(token, binding[IS_BINDING] ? binding : toClass(binding));\r\n });\r\n}\r\n","import { createElement } from \"react\";\r\nimport hoistNonReactStatics from \"hoist-non-react-statics\";\r\nimport { Injector, InjectorContext, registrationQueue } from \"./injector\";\r\nimport { addBindings } from \"./bindings\";\r\nimport { isObject, isFunction } from \"./types\";\r\nimport { logError, getDebugName } from \"./errors\";\r\n/** @typedef {import(\"./types\").Definition} Definition */\r\n/** @typedef {import(\"./types\").Token} Token */\r\n\r\n/**\r\n * HOC that registers dependency injection bindings in scope of decorated component\r\n * @param {...Definition} definitions Dependency injection configuration\r\n */\r\nexport const provider = (...definitions) => Wrapped => {\r\n /** @type {Map} */\r\n const bindingMap = new Map();\r\n\r\n addBindings(bindingMap, definitions);\r\n\r\n class Provider extends Injector {\r\n _parent = this.context;\r\n _bindingMap = bindingMap;\r\n _instanceMap = new Map();\r\n\r\n componentWillUnmount() {\r\n this._instanceMap.forEach(instance => {\r\n if (isObject(instance) && isFunction(instance.dispose)) {\r\n instance.dispose();\r\n }\r\n });\r\n }\r\n\r\n render() {\r\n return createElement(\r\n InjectorContext.Provider,\r\n { value: this },\r\n createElement(Wrapped, this.props)\r\n );\r\n }\r\n\r\n static WrappedComponent = Wrapped;\r\n\r\n /**\r\n * Register dependency injection bindings in scope of decorated class\r\n * @param {...Definition} definitions Dependency injection configuration\r\n */\r\n static register(...definitions) {\r\n addBindings(bindingMap, definitions);\r\n }\r\n }\r\n\r\n if (__DEV__) {\r\n Provider.displayName = `Provider(${Wrapped.displayName || Wrapped.name})`;\r\n\r\n Object.defineProperty(Provider, \"contextType\", {\r\n get() {\r\n return InjectorContext;\r\n },\r\n set() {\r\n logError(\r\n `You are trying to overwrite ${\r\n Provider.displayName\r\n }.contextType = InjectorContext`\r\n );\r\n }\r\n });\r\n } else {\r\n Provider.contextType = InjectorContext;\r\n }\r\n\r\n // static fields from component should be visible on the generated Consumer\r\n return hoistNonReactStatics(Provider, Wrapped);\r\n};\r\n\r\n/**\r\n * Register class in specified provider.\r\n * @typedef {{ register(constructor: Function): void }} Provider\r\n * @param {() => Provider} getProvider Function that returns some provider\r\n * @param {Function} [binding] Dependency injection binding\r\n */\r\nexport const registerIn = (getProvider, binding) => constructor => {\r\n registrationQueue.push(() => {\r\n if (__DEV__) {\r\n const provider = getProvider();\r\n if (!isFunction(provider) || !(provider.prototype instanceof Injector)) {\r\n logError(\r\n `${getDebugName(provider)} is not a valid Provider. Please use:\\n` +\r\n `@registerIn(() => MyProvider)\\n` +\r\n `class ${getDebugName(constructor)} {}\\n`\r\n );\r\n } else {\r\n provider.register(binding ? [constructor, binding] : constructor);\r\n }\r\n } else {\r\n getProvider().register(binding ? [constructor, binding] : constructor);\r\n }\r\n });\r\n return constructor;\r\n};\r\n","import { useContext, useRef } from \"react\";\r\nimport { InjectorContext, getInstance } from \"./injector\";\r\nimport { logNotFoundProvider } from \"./errors\";\r\n/** @typedef {import(\"./types\").Token} Token */\r\n\r\n/**\r\n * React hook for resolving a class instance that registered by some Provider in hierarchy.\r\n * Instance is cached in Provider that registers it's class.\r\n * @param {Token} token Dependency injection token\r\n * @returns {Object} Resolved class instance\r\n */\r\nexport function useInstance(token) {\r\n const ref = useRef(null);\r\n const injector = useContext(InjectorContext);\r\n if (__DEV__) {\r\n if (!injector) {\r\n logNotFoundProvider();\r\n }\r\n }\r\n return ref.current || (ref.current = getInstance(injector, token));\r\n}\r\n\r\n/**\r\n * React hook for resolving a class instances that registered by some Provider in hierarchy.\r\n * Instances are cached in Provider that registers it's classes.\r\n * @param {...Token} tokens Dependency injection tokens\r\n * @returns {Object[]} Resolved class instances\r\n */\r\nexport function useInstances(...tokens) {\r\n const ref = useRef(null);\r\n const injector = useContext(InjectorContext);\r\n if (__DEV__) {\r\n if (!injector) {\r\n logNotFoundProvider();\r\n }\r\n }\r\n return (\r\n ref.current ||\r\n (ref.current = tokens.map(token => getInstance(injector, token)))\r\n );\r\n}\r\n"],"names":["Reflect","factory","root","global","self","this","Function","exporter","makeExporter","target","previous","key","value","Object","defineProperty","configurable","writable","hasOwn","prototype","hasOwnProperty","supportsSymbol","Symbol","toPrimitiveSymbol","toPrimitive","iteratorSymbol","iterator","supportsCreate","create","supportsProto","__proto__","Array","downLevel","HashMap","MakeDictionary","has","map","call","get","undefined","functionPrototype","getPrototypeOf","usePolyfill","process","env","_Map","Map","entries","cacheSentinel","arraySentinel","MapIterator","keys","values","selector","_index","_keys","_values","_selector","next","index","length","result","done","throw","error","return","_cacheKey","_cacheIndex","enumerable","_find","set","delete","size","i","clear","getKey","getValue","getEntry","insert","indexOf","push","_","CreateMapPolyfill","_Set","Set","_map","add","Metadata","WeakMap","UUID_SIZE","rootKey","CreateUniqueKey","_key","table","GetOrCreateWeakMapTable","CreateUUID","FillRandomBytes","buffer","Math","random","data","Uint8Array","crypto","getRandomValues","msCrypto","GenRandomBytes","offset","byte","toString","toLowerCase","CreateWeakMapPolyfill","GetOrCreateMetadataMap","O","P","Create","targetMetadata","IsUndefined","metadataMap","OrdinaryHasOwnMetadata","MetadataKey","OrdinaryGetOwnMetadata","OrdinaryDefineOwnMetadata","MetadataValue","OrdinaryOwnMetadataKeys","keysObj","obj","method","GetMethod","IsCallable","TypeError","IsObject","GetIterator","k","IteratorStep","nextValue","e","IteratorClose","Type","x","IsNull","ToPrimitive","input","PreferredType","hint","exoticToPrim","toString_1","valueOf","toString_2","OrdinaryToPrimitive","ToPropertyKey","argument","ToString","IsArray","isArray","IsConstructor","V","func","f","OrdinaryGetPrototypeOf","proto","prototypeProto","constructor","__","decorators","propertyKey","attributes","decorator","decorated","DecorateConstructor","descriptor","DecorateProperty","metadataKey","metadataValue","IsPropertyKey","OrdinaryHasMetadata","parent","OrdinaryGetMetadata","OrdinaryMetadataKeys","ownKeys","parentKeys","_i","ownKeys_1","hasKey","_a","parentKeys_1","extendStatics","d","b","setPrototypeOf","p","__extends","isFunction","arg","InjectorContext","createContext","tslib_1.__extends","Component","currentInjector","INJECTOR","getInstance","injector","token","registrationQueue","forEach","registration","instance","_instanceMap","binding","_bindingMap","prevInjector","_parent","inject","targetOrToken","keyOrToken","injectFunction","injectDecorator","contextType","getMetadata","context","Injector","getInjector","exports","for","c","g","h","l","m","n","r","t","u","a","q","$$typeof","type","v","NODE_ENV","hasSymbol","REACT_ELEMENT_TYPE","REACT_PORTAL_TYPE","REACT_FRAGMENT_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_PROVIDER_TYPE","REACT_CONTEXT_TYPE","REACT_ASYNC_MODE_TYPE","REACT_CONCURRENT_MODE_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","lowPriorityWarning$1","condition","format","Error","_len2","arguments","args","_key2","_len","argIndex","message","replace","console","warn","apply","concat","typeOf","object","$$typeofType","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","ForwardRef","Fragment","Profiler","Portal","StrictMode","hasWarnedAboutDeprecatedIsAsyncMode","isConcurrentMode","module","require$$0","require$$1","REACT_STATICS","childContextTypes","contextTypes","defaultProps","displayName","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","KNOWN_STATICS","name","caller","callee","arity","TYPE_STATICS","ReactIs","render","getOwnPropertyNames","getOwnPropertySymbols","getOwnPropertyDescriptor","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","toClass","asBinding","IS_BINDING","addBindings","bindingMap","definitions","definition","provider","Wrapped","_this","Provider","dispose","createElement","props","registerIn","getProvider","register","depsOrFactory","ref","useRef","useContext","current","tokens"],"mappings":"kOAcIA,2QACJ,SAAWA,IAGP,SAAWC,GACP,IAAIC,EAAyB,iBAAXC,EAAsBA,EACpB,iBAATC,KAAoBA,KACP,iBAATC,KAAoBA,KACvBC,SAAS,eAATA,GACRC,EAAWC,EAAaR,GAQ5B,SAASQ,EAAaC,EAAQC,GAC1B,OAAO,SAAUC,EAAKC,GACS,mBAAhBH,EAAOE,IACdE,OAAOC,eAAeL,EAAQE,EAAK,CAAEI,cAAc,EAAMC,UAAU,EAAMJ,MAAOA,IAEhFF,GACAA,EAASC,EAAKC,SAbE,IAAjBV,EAAKF,QACZE,EAAKF,QAAUA,EAGfO,EAAWC,EAAaN,EAAKF,QAASO,GAY3C,SAAUA,GACT,IAAIU,EAASJ,OAAOK,UAAUC,eAE1BC,EAAmC,mBAAXC,OACxBC,EAAoBF,QAAgD,IAAvBC,OAAOE,YAA8BF,OAAOE,YAAc,gBACvGC,EAAiBJ,QAA6C,IAApBC,OAAOI,SAA2BJ,OAAOI,SAAW,aAC9FC,EAA0C,mBAAlBb,OAAOc,OAC/BC,EAAgB,CAAEC,UAAW,cAAgBC,MAC7CC,GAAaL,IAAmBE,EAChCI,EAAU,CAEVL,OAAQD,EACF,WAAc,OAAOO,EAAepB,OAAOc,OAAO,QAClDC,EACI,WAAc,OAAOK,EAAe,CAAEJ,UAAW,QACjD,WAAc,OAAOI,EAAe,KAC9CC,IAAKH,EACC,SAAUI,EAAKxB,GAAO,OAAOM,EAAOmB,KAAKD,EAAKxB,IAC9C,SAAUwB,EAAKxB,GAAO,OAAOA,KAAOwB,GAC1CE,IAAKN,EACC,SAAUI,EAAKxB,GAAO,OAAOM,EAAOmB,KAAKD,EAAKxB,GAAOwB,EAAIxB,QAAO2B,GAChE,SAAUH,EAAKxB,GAAO,OAAOwB,EAAIxB,KAGvC4B,EAAoB1B,OAAO2B,eAAelC,UAC1CmC,EAAiC,iBAAZC,SAAwBA,QAAQC,KAA4D,SAArDD,QAAQC,IAAuC,kCAC3GC,EAAQH,GAA8B,mBAARI,KAAuD,mBAA1BA,IAAI3B,UAAU4B,QAk0B7E,WACI,IAAIC,EAAgB,GAChBC,EAAgB,GAChBC,EAAe,WACf,SAASA,EAAYC,EAAMC,EAAQC,GAC/B/C,KAAKgD,EAAS,EACdhD,KAAKiD,EAAQJ,EACb7C,KAAKkD,EAAUJ,EACf9C,KAAKmD,EAAYJ,EAoCrB,OAlCAH,EAAY/B,UAAU,cAAgB,WAAc,OAAOb,MAC3D4C,EAAY/B,UAAUM,GAAkB,WAAc,OAAOnB,MAC7D4C,EAAY/B,UAAUuC,KAAO,WACzB,IAAIC,EAAQrD,KAAKgD,EACjB,GAAIK,GAAS,GAAKA,EAAQrD,KAAKiD,EAAMK,OAAQ,CACzC,IAAIC,EAASvD,KAAKmD,EAAUnD,KAAKiD,EAAMI,GAAQrD,KAAKkD,EAAQG,IAS5D,OARIA,EAAQ,GAAKrD,KAAKiD,EAAMK,QACxBtD,KAAKgD,GAAU,EACfhD,KAAKiD,EAAQN,EACb3C,KAAKkD,EAAUP,GAGf3C,KAAKgD,IAEF,CAAEzC,MAAOgD,EAAQC,MAAM,GAElC,MAAO,CAAEjD,WAAO0B,EAAWuB,MAAM,IAErCZ,EAAY/B,UAAU4C,MAAQ,SAAUC,GAMpC,MALI1D,KAAKgD,GAAU,IACfhD,KAAKgD,GAAU,EACfhD,KAAKiD,EAAQN,EACb3C,KAAKkD,EAAUP,GAEbe,GAEVd,EAAY/B,UAAU8C,OAAS,SAAUpD,GAMrC,OALIP,KAAKgD,GAAU,IACfhD,KAAKgD,GAAU,EACfhD,KAAKiD,EAAQN,EACb3C,KAAKkD,EAAUP,GAEZ,CAAEpC,MAAOA,EAAOiD,MAAM,IAE1BZ,KAEX,OAAQ,WACJ,SAASJ,IACLxC,KAAKiD,EAAQ,GACbjD,KAAKkD,EAAU,GACflD,KAAK4D,EAAYlB,EACjB1C,KAAK6D,GAAe,EAyDxB,OAvDArD,OAAOC,eAAe+B,EAAI3B,UAAW,OAAQ,CACzCmB,IAAK,WAAc,OAAOhC,KAAKiD,EAAMK,QACrCQ,YAAY,EACZpD,cAAc,IAElB8B,EAAI3B,UAAUgB,IAAM,SAAUvB,GAAO,OAAON,KAAK+D,EAAMzD,GAAgB,IAAU,GACjFkC,EAAI3B,UAAUmB,IAAM,SAAU1B,GAC1B,IAAI+C,EAAQrD,KAAK+D,EAAMzD,GAAgB,GACvC,OAAO+C,GAAS,EAAIrD,KAAKkD,EAAQG,QAASpB,GAE9CO,EAAI3B,UAAUmD,IAAM,SAAU1D,EAAKC,GAC/B,IAAI8C,EAAQrD,KAAK+D,EAAMzD,GAAgB,GAEvC,OADAN,KAAKkD,EAAQG,GAAS9C,EACfP,MAEXwC,EAAI3B,UAAUoD,OAAS,SAAU3D,GAC7B,IAAI+C,EAAQrD,KAAK+D,EAAMzD,GAAgB,GACvC,GAAI+C,GAAS,EAAG,CAEZ,IADA,IAAIa,EAAOlE,KAAKiD,EAAMK,OACba,EAAId,EAAQ,EAAGc,EAAID,EAAMC,IAC9BnE,KAAKiD,EAAMkB,EAAI,GAAKnE,KAAKiD,EAAMkB,GAC/BnE,KAAKkD,EAAQiB,EAAI,GAAKnE,KAAKkD,EAAQiB,GAQvC,OANAnE,KAAKiD,EAAMK,SACXtD,KAAKkD,EAAQI,SACThD,IAAQN,KAAK4D,IACb5D,KAAK4D,EAAYlB,EACjB1C,KAAK6D,GAAe,IAEjB,EAEX,OAAO,GAEXrB,EAAI3B,UAAUuD,MAAQ,WAClBpE,KAAKiD,EAAMK,OAAS,EACpBtD,KAAKkD,EAAQI,OAAS,EACtBtD,KAAK4D,EAAYlB,EACjB1C,KAAK6D,GAAe,GAExBrB,EAAI3B,UAAUgC,KAAO,WAAc,OAAO,IAAID,EAAY5C,KAAKiD,EAAOjD,KAAKkD,EAASmB,IACpF7B,EAAI3B,UAAUiC,OAAS,WAAc,OAAO,IAAIF,EAAY5C,KAAKiD,EAAOjD,KAAKkD,EAASoB,IACtF9B,EAAI3B,UAAU4B,QAAU,WAAc,OAAO,IAAIG,EAAY5C,KAAKiD,EAAOjD,KAAKkD,EAASqB,IACvF/B,EAAI3B,UAAU,cAAgB,WAAc,OAAOb,KAAKyC,WACxDD,EAAI3B,UAAUM,GAAkB,WAAc,OAAOnB,KAAKyC,WAC1DD,EAAI3B,UAAUkD,EAAQ,SAAUzD,EAAKkE,GASjC,OARIxE,KAAK4D,IAActD,IACnBN,KAAK6D,EAAc7D,KAAKiD,EAAMwB,QAAQzE,KAAK4D,EAAYtD,IAEvDN,KAAK6D,EAAc,GAAKW,IACxBxE,KAAK6D,EAAc7D,KAAKiD,EAAMK,OAC9BtD,KAAKiD,EAAMyB,KAAKpE,GAChBN,KAAKkD,EAAQwB,UAAKzC,IAEfjC,KAAK6D,GAETrB,KAEX,SAAS6B,EAAO/D,EAAKqE,GACjB,OAAOrE,EAEX,SAASgE,EAASK,EAAGpE,GACjB,OAAOA,EAEX,SAASgE,EAASjE,EAAKC,GACnB,MAAO,CAACD,EAAKC,IAv7BuFqE,GAANpC,IAClGqC,EAAQzC,GAA8B,mBAAR0C,KAAuD,mBAA1BA,IAAIjE,UAAU4B,QA27BjE,WACJ,SAASqC,IACL9E,KAAK+E,EAAO,IAAIxC,EAgBpB,OAdA/B,OAAOC,eAAeqE,EAAIjE,UAAW,OAAQ,CACzCmB,IAAK,WAAc,OAAOhC,KAAK+E,EAAKb,MACpCJ,YAAY,EACZpD,cAAc,IAElBoE,EAAIjE,UAAUgB,IAAM,SAAUtB,GAAS,OAAOP,KAAK+E,EAAKlD,IAAItB,IAC5DuE,EAAIjE,UAAUmE,IAAM,SAAUzE,GAAS,OAAOP,KAAK+E,EAAKf,IAAIzD,EAAOA,GAAQP,MAC3E8E,EAAIjE,UAAUoD,OAAS,SAAU1D,GAAS,OAAOP,KAAK+E,EAAKd,OAAO1D,IAClEuE,EAAIjE,UAAUuD,MAAQ,WAAcpE,KAAK+E,EAAKX,SAC9CU,EAAIjE,UAAUgC,KAAO,WAAc,OAAO7C,KAAK+E,EAAKlC,QACpDiC,EAAIjE,UAAUiC,OAAS,WAAc,OAAO9C,KAAK+E,EAAKjC,UACtDgC,EAAIjE,UAAU4B,QAAU,WAAc,OAAOzC,KAAK+E,EAAKtC,WACvDqC,EAAIjE,UAAU,cAAgB,WAAc,OAAOb,KAAK6C,QACxDiC,EAAIjE,UAAUM,GAAkB,WAAc,OAAOnB,KAAK6C,QACnDiC,KA78BuFA,IAIlGG,EAAW,IAHC7C,GAAkC,mBAAZ8C,QAg9BtC,WACI,IAAIC,EAAY,GACZtC,EAAOlB,EAAQL,SACf8D,EAAUC,IACd,OAAQ,WACJ,SAASH,IACLlF,KAAKsF,EAAOD,IAuBhB,OArBAH,EAAQrE,UAAUgB,IAAM,SAAUzB,GAC9B,IAAImF,EAAQC,EAAwBpF,GAAmB,GACvD,YAAiB6B,IAAVsD,GAAsB5D,EAAQE,IAAI0D,EAAOvF,KAAKsF,IAEzDJ,EAAQrE,UAAUmB,IAAM,SAAU5B,GAC9B,IAAImF,EAAQC,EAAwBpF,GAAmB,GACvD,YAAiB6B,IAAVsD,EAAsB5D,EAAQK,IAAIuD,EAAOvF,KAAKsF,QAAQrD,GAEjEiD,EAAQrE,UAAUmD,IAAM,SAAU5D,EAAQG,GACtC,IAAIgF,EAAQC,EAAwBpF,GAAmB,GAEvD,OADAmF,EAAMvF,KAAKsF,GAAQ/E,EACZP,MAEXkF,EAAQrE,UAAUoD,OAAS,SAAU7D,GACjC,IAAImF,EAAQC,EAAwBpF,GAAmB,GACvD,YAAiB6B,IAAVsD,UAA6BA,EAAMvF,KAAKsF,IAEnDJ,EAAQrE,UAAUuD,MAAQ,WAEtBpE,KAAKsF,EAAOD,KAETH,KAEX,SAASG,IACL,IAAI/E,EACJ,GACIA,EAAM,cAAgBmF,UACnB9D,EAAQE,IAAIgB,EAAMvC,IAEzB,OADAuC,EAAKvC,IAAO,EACLA,EAEX,SAASkF,EAAwBpF,EAAQkB,GACrC,IAAKV,EAAOmB,KAAK3B,EAAQgF,GAAU,CAC/B,IAAK9D,EACD,OACJd,OAAOC,eAAeL,EAAQgF,EAAS,CAAE7E,MAAOoB,EAAQL,WAE5D,OAAOlB,EAAOgF,GAElB,SAASM,EAAgBC,EAAQzB,GAC7B,IAAK,IAAIC,EAAI,EAAGA,EAAID,IAAQC,EACxBwB,EAAOxB,GAAqB,IAAhByB,KAAKC,SAAkB,EACvC,OAAOF,EAYX,SAASF,IACL,IAAIK,EAXR,SAAwB5B,GACpB,GAA0B,mBAAf6B,WACP,MAAsB,oBAAXC,OACAA,OAAOC,gBAAgB,IAAIF,WAAW7B,IACzB,oBAAbgC,SACAA,SAASD,gBAAgB,IAAIF,WAAW7B,IAC5CwB,EAAgB,IAAIK,WAAW7B,GAAOA,GAEjD,OAAOwB,EAAgB,IAAIjE,MAAMyC,GAAOA,GAG7BiC,CAAehB,GAE1BW,EAAK,GAAe,GAAVA,EAAK,GAAY,GAC3BA,EAAK,GAAe,IAAVA,EAAK,GAAY,IAE3B,IADA,IAAIvC,EAAS,GACJ6C,EAAS,EAAGA,EAASjB,IAAaiB,EAAQ,CAC/C,IAAIC,EAAOP,EAAKM,GACD,IAAXA,GAA2B,IAAXA,GAA2B,IAAXA,IAChC7C,GAAU,KACV8C,EAAO,KACP9C,GAAU,KACdA,GAAU8C,EAAKC,SAAS,IAAIC,cAEhC,OAAOhD,GA5hC0DiD,GAAVtB,SA6e/D,SAASuB,EAAuBC,EAAGC,EAAGC,GAClC,IAAIC,EAAiB5B,EAASjD,IAAI0E,GAClC,GAAII,EAAYD,GAAiB,CAC7B,IAAKD,EACD,OACJC,EAAiB,IAAItE,EACrB0C,EAASjB,IAAI0C,EAAGG,GAEpB,IAAIE,EAAcF,EAAe7E,IAAI2E,GACrC,GAAIG,EAAYC,GAAc,CAC1B,IAAKH,EACD,OACJG,EAAc,IAAIxE,EAClBsE,EAAe7C,IAAI2C,EAAGI,GAE1B,OAAOA,EAeX,SAASC,EAAuBC,EAAaP,EAAGC,GAC5C,IAAII,EAAcN,EAAuBC,EAAGC,GAAc,GAC1D,OAAIG,EAAYC,MAECA,EAAYlF,IAAIoF,GAerC,SAASC,EAAuBD,EAAaP,EAAGC,GAC5C,IAAII,EAAcN,EAAuBC,EAAGC,GAAc,GAC1D,IAAIG,EAAYC,GAEhB,OAAOA,EAAY/E,IAAIiF,GAI3B,SAASE,EAA0BF,EAAaG,EAAeV,EAAGC,GAC9D,IAAII,EAAcN,EAAuBC,EAAGC,GAAc,GAC1DI,EAAY/C,IAAIiD,EAAaG,GAoCjC,SAASC,EAAwBX,EAAGC,GAChC,IAAI9D,EAAO,GACPkE,EAAcN,EAAuBC,EAAGC,GAAc,GAC1D,GAAIG,EAAYC,GACZ,OAAOlE,EAIX,IAHA,IAAIyE,EAAUP,EAAYlE,OACtBzB,EAkLR,SAAqBmG,GACjB,IAAIC,EAASC,EAAUF,EAAKpG,GAC5B,IAAKuG,EAAWF,GACZ,MAAM,IAAIG,UACd,IAAIvG,EAAWoG,EAAOzF,KAAKwF,GAC3B,IAAKK,EAASxG,GACV,MAAM,IAAIuG,UACd,OAAOvG,EAzLQyG,CAAYP,GACvBQ,EAAI,IACK,CACT,IAAI1E,EAAO2E,EAAa3G,GACxB,IAAKgC,EAED,OADAP,EAAKS,OAASwE,EACPjF,EAEX,IAAImF,EAA0B5E,EAsLhB7C,MArLd,IACIsC,EAAKiF,GAAKE,EAEd,MAAOC,GACH,IACIC,EAAc9G,WAGd,MAAM6G,GAGdH,KAKR,SAASK,EAAKC,GACV,GAAU,OAANA,EACA,OAAO,EACX,cAAeA,GACX,IAAK,YAAa,OAAO,EACzB,IAAK,UAAW,OAAO,EACvB,IAAK,SAAU,OAAO,EACtB,IAAK,SAAU,OAAO,EACtB,IAAK,SAAU,OAAO,EACtB,IAAK,SAAU,OAAa,OAANA,EAAa,EAAe,EAClD,QAAS,OAAO,GAKxB,SAAStB,EAAYsB,GACjB,YAAanG,IAANmG,EAIX,SAASC,EAAOD,GACZ,OAAa,OAANA,EASX,SAASR,EAASQ,GACd,MAAoB,iBAANA,EAAuB,OAANA,EAA0B,mBAANA,EAMvD,SAASE,EAAYC,EAAOC,GACxB,OAAQL,EAAKI,IACT,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EAAgB,OAAOA,EAEhC,IAAIE,EAAyB,IAAlBD,EAAmC,SAA6B,IAAlBA,EAAmC,SAAW,UACnGE,EAAejB,EAAUc,EAAOtH,GACpC,QAAqBgB,IAAjByG,EAA4B,CAC5B,IAAInF,EAASmF,EAAa3G,KAAKwG,EAAOE,GACtC,GAAIb,EAASrE,GACT,MAAM,IAAIoE,UACd,OAAOpE,EAEX,OAIJ,SAA6BmD,EAAG+B,GAC5B,GAAa,WAATA,EAAmB,CACnB,IAAIE,EAAajC,EAAEJ,SACnB,GAAIoB,EAAWiB,GAAa,CACxB,IAAIpF,EAASoF,EAAW5G,KAAK2E,GAC7B,IAAKkB,EAASrE,GACV,OAAOA,EAEf,IAAIqF,EAAUlC,EAAEkC,QAChB,GAAIlB,EAAWkB,GAAU,CACrB,IAAIrF,EAASqF,EAAQ7G,KAAK2E,GAC1B,IAAKkB,EAASrE,GACV,OAAOA,OAGd,CACD,IAAIqF,EAAUlC,EAAEkC,QAChB,GAAIlB,EAAWkB,GAAU,CACrB,IAAIrF,EAASqF,EAAQ7G,KAAK2E,GAC1B,IAAKkB,EAASrE,GACV,OAAOA,EAEf,IAAIsF,EAAanC,EAAEJ,SACnB,GAAIoB,EAAWmB,GAAa,CACxB,IAAItF,EAASsF,EAAW9G,KAAK2E,GAC7B,IAAKkB,EAASrE,GACV,OAAOA,GAGnB,MAAM,IAAIoE,UAjCHmB,CAAoBP,EAAgB,YAATE,EAAqB,SAAWA,GA+CtE,SAASM,EAAcC,GACnB,IAAI1I,EAAMgI,EAAYU,EAAU,GAChC,MA7EoB,iBA6EP1I,EACFA,EARf,SAAkB0I,GACd,MAAO,GAAKA,EAQLC,CAAS3I,GAMpB,SAAS4I,EAAQF,GACb,OAAOvH,MAAM0H,QACP1H,MAAM0H,QAAQH,GACdA,aAAoBxI,OAChBwI,aAAoBvH,MACyB,mBAA7CjB,OAAOK,UAAUyF,SAASvE,KAAKiH,GAI7C,SAAStB,EAAWsB,GAEhB,MAA2B,mBAAbA,EAIlB,SAASI,EAAcJ,GAEnB,MAA2B,mBAAbA,EAelB,SAASvB,EAAU4B,EAAG1C,GAClB,IAAI2C,EAAOD,EAAE1C,GACb,GAAI2C,MAAAA,EAAJ,CAEA,IAAK5B,EAAW4B,GACZ,MAAM,IAAI3B,UACd,OAAO2B,GAoBX,SAASvB,EAAa3G,GAClB,IAAImC,EAASnC,EAASgC,OACtB,OAAOG,EAAOC,MAAeD,EAIjC,SAAS2E,EAAc9G,GACnB,IAAImI,EAAInI,EAAiB,OACrBmI,GACAA,EAAExH,KAAKX,GAMf,SAASoI,EAAuB9C,GAC5B,IAAI+C,EAAQjJ,OAAO2B,eAAeuE,GAClC,GAAiB,mBAANA,GAAoBA,IAAMxE,EACjC,OAAOuH,EAQX,GAAIA,IAAUvH,EACV,OAAOuH,EAEX,IAAI5I,EAAY6F,EAAE7F,UACd6I,EAAiB7I,GAAaL,OAAO2B,eAAetB,GACxD,GAAsB,MAAlB6I,GAA0BA,IAAmBlJ,OAAOK,UACpD,OAAO4I,EAEX,IAAIE,EAAcD,EAAeC,YACjC,MAA2B,mBAAhBA,EACAF,EAEPE,IAAgBjD,EACT+C,EAEJE,EAmOX,SAAS/H,EAAe2F,GAGpB,OAFAA,EAAIqC,QAAK3H,SACFsF,EAAIqC,GACJrC,EAn+BXrH,EAAS,WArBT,SAAkB2J,EAAYzJ,EAAQ0J,EAAaC,GAC/C,GAAKjD,EAAYgD,GAYZ,CACD,IAAKZ,EAAQW,GACT,MAAM,IAAIlC,UACd,IAAKyB,EAAchJ,GACf,MAAM,IAAIuH,UACd,OAwZR,SAA6BkC,EAAYzJ,GACrC,IAAK,IAAI+D,EAAI0F,EAAWvG,OAAS,EAAGa,GAAK,IAAKA,EAAG,CAC7C,IAAI6F,EAAYH,EAAW1F,GACvB8F,EAAYD,EAAU5J,GAC1B,IAAK0G,EAAYmD,KAAe5B,EAAO4B,GAAY,CAC/C,IAAKb,EAAca,GACf,MAAM,IAAItC,UACdvH,EAAS6J,GAGjB,OAAO7J,EAlaI8J,CAAoBL,EAAYzJ,GAhBvC,IAAK8I,EAAQW,GACT,MAAM,IAAIlC,UACd,IAAKC,EAASxH,GACV,MAAM,IAAIuH,UACd,IAAKC,EAASmC,KAAgBjD,EAAYiD,KAAgB1B,EAAO0B,GAC7D,MAAM,IAAIpC,UAId,OAHIU,EAAO0B,KACPA,OAAa9H,GACjB6H,EAAcf,EAAce,GA4apC,SAA0BD,EAAYzJ,EAAQ0J,EAAaK,GACvD,IAAK,IAAIhG,EAAI0F,EAAWvG,OAAS,EAAGa,GAAK,IAAKA,EAAG,CAC7C,IAAI6F,EAAYH,EAAW1F,GACvB8F,EAAYD,EAAU5J,EAAQ0J,EAAaK,GAC/C,IAAKrD,EAAYmD,KAAe5B,EAAO4B,GAAY,CAC/C,IAAKrC,EAASqC,GACV,MAAM,IAAItC,UACdwC,EAAaF,GAGrB,OAAOE,EArbIC,CAAiBP,EAAYzJ,EAAQ0J,EAAaC,KA+DjE7J,EAAS,WAVT,SAAkBmK,EAAaC,GAQ3B,OAPA,SAAmBlK,EAAQ0J,GACvB,IAAKlC,EAASxH,GACV,MAAM,IAAIuH,UACd,IAAKb,EAAYgD,KAgoBzB,SAAuBd,GACnB,OAAQb,EAAKa,IACT,KAAK,EACL,KAAK,EAAgB,OAAO,EAC5B,QAAS,OAAO,GApoBkBuB,CAAcT,GAC5C,MAAM,IAAInC,UACdR,EAA0BkD,EAAaC,EAAelK,EAAQ0J,MAmDtE5J,EAAS,iBAPT,SAAwBmK,EAAaC,EAAelK,EAAQ0J,GACxD,IAAKlC,EAASxH,GACV,MAAM,IAAIuH,UACTb,EAAYgD,KACbA,EAAcf,EAAce,IAChC,OAAO3C,EAA0BkD,EAAaC,EAAelK,EAAQ0J,KA4CzE5J,EAAS,cAPT,SAAqBmK,EAAajK,EAAQ0J,GACtC,IAAKlC,EAASxH,GACV,MAAM,IAAIuH,UACTb,EAAYgD,KACbA,EAAcf,EAAce,IAChC,OAoTJ,SAASU,EAAoBvD,EAAaP,EAAGC,GACzC,IAAI/F,EAASoG,EAAuBC,EAAaP,EAAGC,GACpD,GAAI/F,EACA,OAAO,EACX,IAAI6J,EAASjB,EAAuB9C,GACpC,IAAK2B,EAAOoC,GACR,OAAOD,EAAoBvD,EAAawD,EAAQ9D,GACpD,OAAO,EA3TA6D,CAAoBH,EAAajK,EAAQ0J,KA4CpD5J,EAAS,iBAPT,SAAwBmK,EAAajK,EAAQ0J,GACzC,IAAKlC,EAASxH,GACV,MAAM,IAAIuH,UACTb,EAAYgD,KACbA,EAAcf,EAAce,IAChC,OAAO9C,EAAuBqD,EAAajK,EAAQ0J,KA4CvD5J,EAAS,cAPT,SAAqBmK,EAAajK,EAAQ0J,GACtC,IAAKlC,EAASxH,GACV,MAAM,IAAIuH,UACTb,EAAYgD,KACbA,EAAcf,EAAce,IAChC,OAmPJ,SAASY,EAAoBzD,EAAaP,EAAGC,GACzC,IAAI/F,EAASoG,EAAuBC,EAAaP,EAAGC,GACpD,GAAI/F,EACA,OAAOsG,EAAuBD,EAAaP,EAAGC,GAClD,IAAI8D,EAASjB,EAAuB9C,GACpC,IAAK2B,EAAOoC,GACR,OAAOC,EAAoBzD,EAAawD,EAAQ9D,GACpD,OA1PO+D,CAAoBL,EAAajK,EAAQ0J,KA4CpD5J,EAAS,iBAPT,SAAwBmK,EAAajK,EAAQ0J,GACzC,IAAKlC,EAASxH,GACV,MAAM,IAAIuH,UACTb,EAAYgD,KACbA,EAAcf,EAAce,IAChC,OAAO5C,EAAuBmD,EAAajK,EAAQ0J,KA2CvD5J,EAAS,kBAPT,SAAyBE,EAAQ0J,GAC7B,IAAKlC,EAASxH,GACV,MAAM,IAAIuH,UACTb,EAAYgD,KACbA,EAAcf,EAAce,IAChC,OAyLJ,SAASa,EAAqBjE,EAAGC,GAC7B,IAAIiE,EAAUvD,EAAwBX,EAAGC,GACzC,IAAI8D,EAASjB,EAAuB9C,GACpC,GAAe,OAAX+D,EACA,OAAOG,EACX,IAAIC,EAAaF,EAAqBF,EAAQ9D,GAC9C,GAAIkE,EAAWvH,QAAU,EACrB,OAAOsH,EACX,GAAIA,EAAQtH,QAAU,EAClB,OAAOuH,EACX,IAAI7G,EAAM,IAAIa,EACd,IAAIhC,EAAO,GACX,IAAK,IAAIiI,EAAK,EAAGC,EAAYH,EAASE,EAAKC,EAAUzH,OAAQwH,IAAM,CAC/D,IAAIxK,EAAMyK,EAAUD,GAChBE,EAAShH,EAAInC,IAAIvB,GAChB0K,IACDhH,EAAIgB,IAAI1E,GACRuC,EAAK6B,KAAKpE,IAGlB,IAAK,IAAI2K,EAAK,EAAGC,EAAeL,EAAYI,EAAKC,EAAa5H,OAAQ2H,IAAM,CACxE,IAAI3K,EAAM4K,EAAaD,GACnBD,EAAShH,EAAInC,IAAIvB,GAChB0K,IACDhH,EAAIgB,IAAI1E,GACRuC,EAAK6B,KAAKpE,IAGlB,OAAOuC,EArNA8H,CAAqBvK,EAAQ0J,KA2CxC5J,EAAS,qBAPT,SAA4BE,EAAQ0J,GAChC,IAAKlC,EAASxH,GACV,MAAM,IAAIuH,UACTb,EAAYgD,KACbA,EAAcf,EAAce,IAChC,OAAOzC,EAAwBjH,EAAQ0J,KAwD3C5J,EAAS,iBAnBT,SAAwBmK,EAAajK,EAAQ0J,GACzC,IAAKlC,EAASxH,GACV,MAAM,IAAIuH,UACTb,EAAYgD,KACbA,EAAcf,EAAce,IAChC,IAAI/C,EAAcN,EAAuBrG,EAAQ0J,GAAwB,GACzE,GAAIhD,EAAYC,GACZ,OAAO,EACX,IAAKA,EAAY9C,OAAOoG,GACpB,OAAO,EACX,GAAItD,EAAY7C,KAAO,EACnB,OAAO,EACX,IAAI2C,EAAiB5B,EAASjD,IAAI5B,GAElC,OADAyG,EAAe5C,OAAO6F,GAClBjD,EAAe3C,KAAO,IAE1Be,EAAShB,OAAO7D,IACT,KAxfXR,CAAQM,GAZZ,GAHJ,CA2lCGP,IAAYA,EAAU,KC1lCzB,IAAIwL,EAAgB,SAASC,EAAGC,GAI5B,OAHAF,EAAgB3K,OAAO8K,gBAClB,CAAE9J,UAAW,cAAgBC,OAAS,SAAU2J,EAAGC,GAAKD,EAAE5J,UAAY6J,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIE,KAAKF,EAAOA,EAAEvK,eAAeyK,KAAIH,EAAEG,GAAKF,EAAEE,MACpDH,EAAGC,IAGrB,SAASG,EAAUJ,EAAGC,GAEzB,SAASzB,IAAO5J,KAAK2J,YAAcyB,EADnCD,EAAcC,EAAGC,GAEjBD,EAAEvK,UAAkB,OAANwK,EAAa7K,OAAOc,OAAO+J,IAAMzB,EAAG/I,UAAYwK,EAAExK,UAAW,IAAI+I,YCvBnE6B,EAAWC,GACzB,MAAsB,mBAARA,MCCHC,EAAkBC,gBAAc,oBAM7C,4DAOA,OAP8BC,UAAAC,aA6B9B,IAAIC,EAAkB,KAGTC,EACO,mBAAXhL,OAAwBA,SAAW,wBAU5BiL,EAAYC,EAAUC,GAOpC,IANIC,EAAkB9I,OAAS,IAC7B8I,EAAkBC,QAAQ,SAAAC,GACxBA,MAEFF,EAAkB9I,OAAS,GAEtB4I,GAAU,CACf,IAAIK,EAAWL,EAASM,EAAaxK,IAAImK,GACzC,QAAiBlK,IAAbsK,EACF,OAAOA,EAET,IAAME,EAAUP,EAASQ,EAAY1K,IAAImK,GACzC,GAAIM,EAAS,CACX,IAAME,EAAeZ,EACrBA,EAAkBG,EAClB,IACEK,EAAWE,EAAQP,WAEnBH,EAAkBY,EAGpB,OADAT,EAASM,EAAaxI,IAAImI,EAAOI,GAC1BA,EAETL,EAAWA,EAASU,GASjB,IAAMR,EAAoB,YCrEjBS,EAAOC,EAAeC,GACpC,OAAItB,EAAWsB,GACNC,EAAeF,EAAeC,GAIlCA,EAIEE,EAAgBH,EAAeC,IAHpCZ,EAAQW,EACDG,GAHT,IAAId,EAOJ,SAASc,EAAgBpM,EAAWP,GAIhCO,EAAU8I,YAAYuD,YAAcvB,EAGjCQ,IACHA,EAAQxM,QAAQwN,YAAY,cAAetM,EAAWP,IAQxD,IAAM6J,EAAa,CACjBzJ,cAAc,EACdoD,YAAY,EACZ9B,eACE,IAAMuK,EAAWS,EAAehN,KAAMmM,GAMtC,OALA3L,OAAOC,eAAeT,KAAMM,EAAK,CAC/BwD,YAAY,EACZnD,UAAU,EACVJ,MAAOgM,IAEFA,GAETvI,aAAIuI,GACF/L,OAAOC,eAAeT,KAAMM,EAAK,CAC/BwD,YAAY,EACZnD,UAAU,EACVJ,MAAOgM,MAOb,OAFA/L,OAAOC,eAAeI,EAAWP,EAAK6J,GAE/BA,GAYX,SAAS6C,EAAe5M,EAAQ+L,GAO9B,OAAOF,WD9DmB7L,GAC1B,IAAI8L,EAAW9L,EAAO4L,GACtB,OAAIE,KAGJA,EAAWH,GAAmB3L,EAAOgN,mBACbC,GACtBjN,EAAO4L,GAAYE,EACZA,GAEF,MC8CUoB,CAAYlN,GAMA+L,yBC/ElB3L,OAAOC,eAAe8M,EAAQ,aAAa,CAAChN,OAAM,IAC/D,IAAI8K,EAAE,mBAAoBrK,QAAQA,OAAOwM,IAAIC,EAAEpC,EAAErK,OAAOwM,IAAI,iBAAiB,MAAMpC,EAAEC,EAAErK,OAAOwM,IAAI,gBAAgB,MAAMvF,EAAEoD,EAAErK,OAAOwM,IAAI,kBAAkB,MAAMjE,EAAE8B,EAAErK,OAAOwM,IAAI,qBAAqB,MAAME,EAAErC,EAAErK,OAAOwM,IAAI,kBAAkB,MAAMG,EAAEtC,EAAErK,OAAOwM,IAAI,kBAAkB,MAAM1F,EAAEuD,EAAErK,OAAOwM,IAAI,iBAAiB,MAAMI,EAAEvC,EAAErK,OAAOwM,IAAI,oBAAoB,MAAMK,EAAExC,EAAErK,OAAOwM,IAAI,yBAAyB,MAAMM,EAAEzC,EAAErK,OAAOwM,IAAI,qBAAqB,MAAMjC,EAAEF,EAAErK,OAAOwM,IAAI,kBAAkB,MAAMO,EAAE1C,EAAErK,OAAOwM,IAAI,cACpf,MAAMQ,EAAE3C,EAAErK,OAAOwM,IAAI,cAAc,MAAM,SAASS,EAAEC,GAAG,GAAG,iBAAkBA,GAAG,OAAOA,EAAE,CAAC,IAAIC,EAAED,EAAEE,SAAS,OAAOD,GAAG,KAAKV,EAAE,OAAOS,EAAEA,EAAEG,MAAQ,KAAKT,EAAE,KAAKC,EAAE,KAAK5F,EAAE,KAAKyF,EAAE,KAAKnE,EAAE,OAAO2E,EAAE,QAAQ,OAAOA,EAAEA,GAAGA,EAAEE,UAAY,KAAKtG,EAAE,KAAKgG,EAAE,KAAKH,EAAE,OAAOO,EAAE,QAAQ,OAAOC,GAAG,KAAK/C,EAAE,OAAO+C,IAAI,SAASG,EAAEJ,GAAG,OAAOD,EAAEC,KAAKL,EAAEN,SAAeU,EAAEV,YAAkBK,EAAEL,iBAAuBM,EAAEN,kBAAwBzF,EAAEyF,kBAAwBI,EAAEJ,UAAgBE,EAAEF,aAAmBO,EAAEP,WAAiBtF,EACtesF,WAAiBG,EAAEH,SAAenC,EAAEmC,aAAmBhE,EAAEgE,qBAA2B,SAASW,GAAG,MAAM,iBAAkBA,GAAG,mBAAoBA,GAAGA,IAAIjG,GAAGiG,IAAIL,GAAGK,IAAIR,GAAGQ,IAAI3E,GAAG2E,IAAI3C,GAAG,iBAAkB2C,GAAG,OAAOA,IAAIA,EAAEE,WAAWJ,GAAGE,EAAEE,WAAWL,GAAGG,EAAEE,WAAWT,GAAGO,EAAEE,WAAWtG,GAAGoG,EAAEE,WAAWN,IAAIP,cAAoB,SAASW,GAAG,OAAOI,EAAEJ,IAAID,EAAEC,KAAKN,GAAGL,mBAAyBe,EAAEf,oBAA0B,SAASW,GAAG,OAAOD,EAAEC,KAAKpG,GAAGyF,oBAA0B,SAASW,GAAG,OAAOD,EAAEC,KAAKP,GACneJ,YAAkB,SAASW,GAAG,MAAM,iBAAkBA,GAAG,OAAOA,GAAGA,EAAEE,WAAWX,GAAGF,eAAqB,SAASW,GAAG,OAAOD,EAAEC,KAAKJ,GAAGP,aAAmB,SAASW,GAAG,OAAOD,EAAEC,KAAKjG,GAAGsF,aAAmB,SAASW,GAAG,OAAOD,EAAEC,KAAKR,GAAGH,WAAiB,SAASW,GAAG,OAAOD,EAAEC,KAAK9C,GAAGmC,eAAqB,SAASW,GAAG,OAAOD,EAAEC,KAAK3E,0VCArS,eAAzBlH,QAAQC,IAAIiM,UACd,WAGF/N,OAAOC,eAAe8M,EAAS,aAAc,CAAEhN,OAAO,IAItD,IAAIiO,EAA8B,mBAAXxN,QAAyBA,OAAOwM,IAEnDiB,EAAqBD,EAAYxN,OAAOwM,IAAI,iBAAmB,MAC/DkB,EAAoBF,EAAYxN,OAAOwM,IAAI,gBAAkB,MAC7DmB,EAAsBH,EAAYxN,OAAOwM,IAAI,kBAAoB,MACjEoB,EAAyBJ,EAAYxN,OAAOwM,IAAI,qBAAuB,MACvEqB,EAAsBL,EAAYxN,OAAOwM,IAAI,kBAAoB,MACjEsB,EAAsBN,EAAYxN,OAAOwM,IAAI,kBAAoB,MACjEuB,EAAqBP,EAAYxN,OAAOwM,IAAI,iBAAmB,MAC/DwB,EAAwBR,EAAYxN,OAAOwM,IAAI,oBAAsB,MACrEyB,EAA6BT,EAAYxN,OAAOwM,IAAI,yBAA2B,MAC/E0B,EAAyBV,EAAYxN,OAAOwM,IAAI,qBAAuB,MACvE2B,EAAsBX,EAAYxN,OAAOwM,IAAI,kBAAoB,MACjE4B,EAAkBZ,EAAYxN,OAAOwM,IAAI,cAAgB,MACzD6B,EAAkBb,EAAYxN,OAAOwM,IAAI,cAAgB,MAsB7D,IAqCI8B,EAdmB,SAAUC,EAAWC,GACxC,QAAevN,IAAXuN,EACF,MAAM,IAAIC,MAAM,wFAElB,IAAKF,EAAW,CACd,IAAK,IAAIG,EAAQC,UAAUrM,OAAQsM,EAAOnO,MAAMiO,EAAQ,EAAIA,EAAQ,EAAI,GAAIG,EAAQ,EAAGA,EAAQH,EAAOG,IACpGD,EAAKC,EAAQ,GAAKF,UAAUE,IA1Bf,SAAUL,GAC3B,IAAK,IAAIM,EAAOH,UAAUrM,OAAQsM,EAAOnO,MAAMqO,EAAO,EAAIA,EAAO,EAAI,GAAIxK,EAAO,EAAGA,EAAOwK,EAAMxK,IAC9FsK,EAAKtK,EAAO,GAAKqK,UAAUrK,GAG7B,IAAIyK,EAAW,EACXC,EAAU,YAAcR,EAAOS,QAAQ,MAAO,WAChD,OAAOL,EAAKG,OAES,oBAAZG,SACTA,QAAQC,KAAKH,GAEf,IAIE,MAAM,IAAIP,MAAMO,GAChB,MAAO5H,OAYMgI,WAAMnO,EAAW,CAACuN,GAAQa,OAAOT,MAOpD,SAASU,EAAOC,GACd,GAAsB,iBAAXA,GAAkC,OAAXA,EAAiB,CACjD,IAAInC,EAAWmC,EAAOnC,SAEtB,OAAQA,GACN,KAAKK,EACH,IAAIJ,EAAOkC,EAAOlC,KAElB,OAAQA,GACN,KAAKW,EACL,KAAKC,EACL,KAAKN,EACL,KAAKE,EACL,KAAKD,EACH,OAAOP,EACT,QACE,IAAImC,EAAenC,GAAQA,EAAKD,SAEhC,OAAQoC,GACN,KAAKzB,EACL,KAAKG,EACL,KAAKJ,EACH,OAAO0B,EACT,QACE,OAAOpC,GAGjB,KAAKM,EACH,OAAON,IAQf,IAAIqC,EAAYzB,EACZ0B,EAAiBzB,EACjB0B,EAAkB5B,EAClB6B,EAAkB9B,EAClB+B,EAAUpC,EACVqC,EAAa5B,EACb6B,EAAWpC,EACXqC,EAAWnC,EACXoC,EAASvC,EACTwC,EAAatC,EAEbuC,GAAsC,EAY1C,SAASC,EAAiBb,GACxB,OAAOD,EAAOC,KAAYtB,EA2B5B1B,SAAiB+C,EACjB/C,YAAoBkD,EACpBlD,iBAAyBmD,EACzBnD,kBAA0BoD,EAC1BpD,kBAA0BqD,EAC1BrD,UAAkBsD,EAClBtD,aAAqBuD,EACrBvD,WAAmBwD,EACnBxD,WAAmByD,EACnBzD,SAAiB0D,EACjB1D,aAAqB2D,EACrB3D,qBA7JA,SAA4Bc,GAC1B,MAAuB,iBAATA,GAAqC,mBAATA,GAE1CA,IAASM,GAAuBN,IAASY,GAA8BZ,IAASQ,GAAuBR,IAASO,GAA0BP,IAASc,GAAuC,iBAATd,GAA8B,OAATA,IAAkBA,EAAKD,WAAaiB,GAAmBhB,EAAKD,WAAagB,GAAmBf,EAAKD,WAAaU,GAAuBT,EAAKD,WAAaW,GAAsBV,EAAKD,WAAac,IA2JvY3B,cAjDA,SAAqBgD,GAOnB,OALOY,IACHA,GAAsC,EACtC7B,GAAqB,EAAO,kLAGzB8B,EAAiBb,IAAWD,EAAOC,KAAYvB,GA2CxDzB,mBAA2B6D,EAC3B7D,oBAvCA,SAA2BgD,GACzB,OAAOD,EAAOC,KAAYxB,GAuC5BxB,oBArCA,SAA2BgD,GACzB,OAAOD,EAAOC,KAAYzB,GAqC5BvB,YAnCA,SAAmBgD,GACjB,MAAyB,iBAAXA,GAAkC,OAAXA,GAAmBA,EAAOnC,WAAaK,GAmC9ElB,eAjCA,SAAsBgD,GACpB,OAAOD,EAAOC,KAAYrB,GAiC5B3B,aA/BA,SAAoBgD,GAClB,OAAOD,EAAOC,KAAY5B,GA+B5BpB,aA7BA,SAAoBgD,GAClB,OAAOD,EAAOC,KAAY1B,GA6B5BtB,WA3BA,SAAkBgD,GAChB,OAAOD,EAAOC,KAAY7B,GA2B5BnB,eAzBA,SAAsBgD,GACpB,OAAOD,EAAOC,KAAY3B,GAtK1B,wVCZ2B,eAAzBvM,QAAQC,IAAIiM,SACd8C,UAAiBC,EAEjBD,UAAiBE,ICEfC,EAAgB,CAChBC,mBAAmB,EACnBvE,aAAa,EACbwE,cAAc,EACdC,cAAc,EACdC,aAAa,EACbC,iBAAiB,EACjBC,0BAA0B,EAC1BC,0BAA0B,EAC1BC,QAAQ,EACRC,WAAW,EACX5D,MAAM,GAGN6D,EAAgB,CAChBC,MAAM,EACN7O,QAAQ,EACRzC,WAAW,EACXuR,QAAQ,EACRC,QAAQ,EACR1C,WAAW,EACX2C,OAAO,GAWPC,EAAe,GACnBA,EAAaC,EAAQ1B,YATK,CACtB1C,UAAY,EACZqE,QAAQ,EACRd,cAAc,EACdC,aAAa,EACbK,WAAW,GAMf,IAAIxR,EAAiBD,OAAOC,eACxBiS,EAAsBlS,OAAOkS,oBAC7BC,EAAwBnS,OAAOmS,sBAC/BC,EAA2BpS,OAAOoS,yBAClCzQ,EAAiB3B,OAAO2B,eACxB0Q,EAAkBrS,OAAOK,UAuC7B,MArCA,SAASiS,EAAqBC,EAAiBC,EAAiBC,GAC5D,GAA+B,iBAApBD,EAA8B,CAGrC,GAAIH,EAAiB,CACjB,IAAIK,EAAqB/Q,EAAe6Q,GACpCE,GAAsBA,IAAuBL,GAC7CC,EAAqBC,EAAiBG,EAAoBD,GAIlE,IAAIpQ,EAAO6P,EAAoBM,GAE3BL,IACA9P,EAAOA,EAAKwN,OAAOsC,EAAsBK,KAM7C,IAHA,IAAIG,EAAgBZ,EAAaQ,EAA0B,WAAMvB,EAC7D4B,EAAgBb,EAAaS,EAA0B,WAAMxB,EAExDrN,EAAI,EAAGA,EAAItB,EAAKS,SAAUa,EAAG,CAClC,IAAI7D,EAAMuC,EAAKsB,GACf,KAAK+N,EAAc5R,IAAU2S,GAAaA,EAAU3S,IAAW8S,GAAiBA,EAAc9S,IAAW6S,GAAiBA,EAAc7S,IAAO,CAC3I,IAAI6J,EAAayI,EAAyBI,EAAiB1S,GAC3D,IAEIG,EAAesS,EAAiBzS,EAAK6J,GACvC,MAAOlC,MAIjB,OAAO8K,EAGX,OAAOA,YCxEKM,EAAQ1J,GAMtB,OAAO2J,EAAU,SAAApH,GACf,IAAMK,EAAW,IAAI5C,EAIrB,OAHK4C,EAASP,KACZO,EAASP,GAAYE,GAEhBK,IAgEX,IAAMgH,EAA+B,mBAAXvS,OAAwBA,SAAW,cAQ7D,SAASsS,EAAU7G,GAEjB,OADAA,EAAQ8G,IAAc,EACf9G,WASO+G,EAAYC,EAAYC,GACtCA,EAAYrH,QAAQ,SAAAsH,SACdxH,EAAOM,EACPhL,MAAM0H,QAAQwK,IACfxH,OAAOM,YAAAxB,aAERkB,EAAQM,EAAUkH,EAQpBF,EAAWzP,IAAImI,EAAOM,EAAQ8G,GAAc9G,EAAU4G,EAAQ5G,UC1GrDmH,EAAW,eAAC,aAAA9I,mBAAAA,IAAA4I,kBAAmB,OAAA,SAAAG,GAE1C,IAAMJ,EAAa,IAAIjR,IAEvBgR,EAAYC,EAAYC,GAExB,kBAAA,aAAA,qDACEI,IAAUA,EAAK1G,QACf0G,IAAcL,EACdK,IAAe,IAAItR,MA2BrB,OA9BuBqJ,OAKrBkI,iCAAA,WACE/T,KAAKwM,EAAaH,QAAQ,SAAAE,ORlBPb,GAAAA,EQmBJa,IRlBU,iBAARb,GQkBWD,EAAWc,EAASyH,UAC5CzH,EAASyH,aAKfD,mBAAA,WACE,OAAOE,gBACLtI,EAAgBoI,SAChB,CAAExT,MAAOP,MACTiU,gBAAcJ,EAAS7T,KAAKkU,SAUzBH,WAAP,eAAgB,aAAAjJ,mBAAAA,IAAA4I,kBACdF,EAAYC,EAAYC,IAPnBK,mBAAmBF,KArBLxG,GAoDvB,OAJE0G,EAAS7G,YAAcvB,EAIlBmH,EAAqBiB,EAAUF,KAS3BM,EAAa,SAACC,EAAa3H,GAAY,OAAA,SAAA9C,GAiBlD,OAhBAyC,EAAkB1H,KAAK,WAanB0P,IAAcC,SAAS5H,EAAU,CAAC9C,EAAa8C,GAAW9C,KAGvDA,uIDjEiB2K,EAAe1U,GAevC,OAAO0T,EACL1T,EACI,SAAAsM,GACE,OAAAtM,eAAW0U,EAAcxS,IAAI,SAAAqK,GAAS,OAAAF,EAAYC,EAAUC,OAC9DmI,0BAuBmBnI,GAQzB,OAAOmH,EAAU,SAAApH,GAAY,OAAAD,EAAYC,EAAUC,yBAtB7B5L,GAMtB,OAAO+S,EAAU,WAAM,OAAA/S,4BEvDG4L,GAC1B,IAAMoI,EAAMC,SAAO,MACbtI,EAAWuI,aAAW9I,GAM5B,OAAO4I,EAAIG,UAAYH,EAAIG,QAAUzI,EAAYC,EAAUC,mCAShC,aAAArB,mBAAAA,IAAA6J,kBAC3B,IAAMJ,EAAMC,SAAO,MACbtI,EAAWuI,aAAW9I,GAM5B,OACE4I,EAAIG,UACHH,EAAIG,QAAUC,EAAO7S,IAAI,SAAAqK,GAAS,OAAAF,EAAYC,EAAUC"} \ No newline at end of file diff --git a/src/injector.js b/src/injector.js index 525283f..bb01e5d 100644 --- a/src/injector.js +++ b/src/injector.js @@ -59,24 +59,26 @@ export function getInstance(injector, token) { }); registrationQueue.length = 0; } - while (injector) { - let instance = injector._instanceMap.get(token); + + let activeInjector = injector; + while (activeInjector) { + let instance = activeInjector._instanceMap.get(token); if (instance !== undefined) { return instance; } - const binding = injector._bindingMap.get(token); + const binding = activeInjector._bindingMap.get(token); if (binding) { const prevInjector = currentInjector; - currentInjector = injector; + currentInjector = activeInjector; try { instance = binding(injector); } finally { currentInjector = prevInjector; } - injector._instanceMap.set(token, instance); + activeInjector._instanceMap.set(token, instance); return instance; } - injector = injector._parent; + activeInjector = activeInjector._parent; } if (__DEV__) { logNotFoundDependency(token); diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 0000000..ffabcd2 --- /dev/null +++ b/yarn.lock @@ -0,0 +1,4998 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.0.0-beta.35": + version "7.0.0" + resolved "https://registry.npm.taobao.org/@babel/code-frame/download/@babel/code-frame-7.0.0.tgz#06e2ab19bdb535385559aabb5ba59729482800f8" + integrity sha1-BuKrGb21NThVWaq7W6WXKUgoAPg= + dependencies: + "@babel/highlight" "^7.0.0" + +"@babel/highlight@^7.0.0": + version "7.0.0" + resolved "https://registry.npm.taobao.org/@babel/highlight/download/@babel/highlight-7.0.0.tgz#f710c38c8d458e6dd9a201afb637fcb781ce99e4" + integrity sha1-9xDDjI1Fjm3ZogGvtjf8t4HOmeQ= + dependencies: + chalk "^2.0.0" + esutils "^2.0.2" + js-tokens "^4.0.0" + +"@babel/runtime@^7.0.0": + version "7.4.5" + resolved "https://registry.npm.taobao.org/@babel/runtime/download/@babel/runtime-7.4.5.tgz#582bb531f5f9dc67d2fcb682979894f75e253f12" + integrity sha1-WCu1MfX53GfS/LaCl5iU914lPxI= + dependencies: + regenerator-runtime "^0.13.2" + +"@samverschueren/stream-to-observable@^0.3.0": + version "0.3.0" + resolved "https://registry.npm.taobao.org/@samverschueren/stream-to-observable/download/@samverschueren/stream-to-observable-0.3.0.tgz#ecdf48d532c58ea477acfcab80348424f8d0662f" + integrity sha1-7N9I1TLFjqR3rPyrgDSEJPjQZi8= + dependencies: + any-observable "^0.3.0" + +"@types/classnames@^2.2.6": + version "2.2.8" + resolved "https://registry.npm.taobao.org/@types/classnames/download/@types/classnames-2.2.8.tgz#17139e1e1104203572caa4368f6796f6225b70b4" + integrity sha1-FxOeHhEEIDVyyqQ2j2eW9iJbcLQ= + +"@types/estree@0.0.39": + version "0.0.39" + resolved "https://registry.npm.taobao.org/@types/estree/download/@types/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" + integrity sha1-4Xfmme4bjCLSMXTKqnQiZEOJUJ8= + +"@types/hoist-non-react-statics@^3.0.1": + version "3.3.1" + resolved "https://registry.npm.taobao.org/@types/hoist-non-react-statics/download/@types/hoist-non-react-statics-3.3.1.tgz#1124aafe5118cb591977aeb1ceaaed1070eb039f" + integrity sha1-ESSq/lEYy1kZd66xzqrtEHDrA58= + dependencies: + "@types/react" "*" + hoist-non-react-statics "^3.3.0" + +"@types/jest@^23.3.10": + version "23.3.14" + resolved "https://registry.npm.taobao.org/@types/jest/download/@types/jest-23.3.14.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fjest%2Fdownload%2F%40types%2Fjest-23.3.14.tgz#37daaf78069e7948520474c87b80092ea912520a" + integrity sha1-N9qveAaeeUhSBHTIe4AJLqkSUgo= + +"@types/node@*": + version "12.0.10" + resolved "https://registry.npm.taobao.org/@types/node/download/@types/node-12.0.10.tgz#51babf9c7deadd5343620055fc8aff7995c8b031" + integrity sha1-Ubq/nH3q3VNDYgBV/Ir/eZXIsDE= + +"@types/node@^10.12.2": + version "10.14.10" + resolved "https://registry.npm.taobao.org/@types/node/download/@types/node-10.14.10.tgz#e491484c6060af8d461e12ec81c0da8a3282b8de" + integrity sha1-5JFITGBgr41GHhLsgcDaijKCuN4= + +"@types/prop-types@*": + version "15.7.1" + resolved "https://registry.npm.taobao.org/@types/prop-types/download/@types/prop-types-15.7.1.tgz#f1a11e7babb0c3cad68100be381d1e064c68f1f6" + integrity sha1-8aEee6uww8rWgQC+OB0eBkxo8fY= + +"@types/react-dom@^16.0.11": + version "16.8.4" + resolved "https://registry.npm.taobao.org/@types/react-dom/download/@types/react-dom-16.8.4.tgz#7fb7ba368857c7aa0f4e4511c4710ca2c5a12a88" + integrity sha1-f7e6NohXx6oPTkURxHEMosWhKog= + dependencies: + "@types/react" "*" + +"@types/react@*", "@types/react@^16.7.13": + version "16.8.22" + resolved "https://registry.npm.taobao.org/@types/react/download/@types/react-16.8.22.tgz#7f18bf5ea0c1cad73c46b6b1c804a3ce0eec6d54" + integrity sha1-fxi/XqDBytc8RraxyASjzg7sbVQ= + dependencies: + "@types/prop-types" "*" + csstype "^2.2.0" + +abab@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/abab/download/abab-2.0.0.tgz#aba0ab4c5eee2d4c79d3487d85450fb2376ebb0f" + integrity sha1-q6CrTF7uLUx500h9hUUPsjduuw8= + +abbrev@1: + version "1.1.1" + resolved "https://registry.npm.taobao.org/abbrev/download/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + integrity sha1-+PLIh60Qv2f2NPAFtph/7TF5qsg= + +acorn-globals@^4.1.0: + version "4.3.2" + resolved "https://registry.npm.taobao.org/acorn-globals/download/acorn-globals-4.3.2.tgz#4e2c2313a597fd589720395f6354b41cd5ec8006" + integrity sha1-TiwjE6WX/ViXIDlfY1S0HNXsgAY= + dependencies: + acorn "^6.0.1" + acorn-walk "^6.0.1" + +acorn-walk@^6.0.1: + version "6.1.1" + resolved "https://registry.npm.taobao.org/acorn-walk/download/acorn-walk-6.1.1.tgz#d363b66f5fac5f018ff9c3a1e7b6f8e310cc3913" + integrity sha1-02O2b1+sXwGP+cOh57b44xDMORM= + +acorn@^5.5.3: + version "5.7.3" + resolved "https://registry.npm.taobao.org/acorn/download/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279" + integrity sha1-Z6ojG/iBKXS4UjWpZ3Hra9B+onk= + +acorn@^6.0.1: + version "6.1.1" + resolved "https://registry.npm.taobao.org/acorn/download/acorn-6.1.1.tgz#7d25ae05bb8ad1f9b699108e1094ecd7884adc1f" + integrity sha1-fSWuBbuK0fm2mRCOEJTs14hK3B8= + +ajv@^6.5.5: + version "6.10.0" + resolved "https://registry.npm.taobao.org/ajv/download/ajv-6.10.0.tgz#90d0d54439da587cd7e843bfb7045f50bd22bdf1" + integrity sha1-kNDVRDnaWHzX6EO/twRfUL0ivfE= + dependencies: + fast-deep-equal "^2.0.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ansi-align@^3.0.0: + version "3.0.0" + resolved "https://registry.npm.taobao.org/ansi-align/download/ansi-align-3.0.0.tgz#b536b371cf687caaef236c18d3e21fe3797467cb" + integrity sha1-tTazcc9ofKrvI2wY0+If43l0Z8s= + dependencies: + string-width "^3.0.0" + +ansi-escapes@^3.0.0: + version "3.2.0" + resolved "https://registry.npm.taobao.org/ansi-escapes/download/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" + integrity sha1-h4C5j/nb9WOBUtHx/lwde0RCl2s= + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= + +ansi-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= + +ansi-regex@^4.1.0: + version "4.1.0" + resolved "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" + integrity sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc= + +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= + +ansi-styles@^3.2.0, ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0= + dependencies: + color-convert "^1.9.0" + +any-observable@^0.3.0: + version "0.3.0" + resolved "https://registry.npm.taobao.org/any-observable/download/any-observable-0.3.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fany-observable%2Fdownload%2Fany-observable-0.3.0.tgz#af933475e5806a67d0d7df090dd5e8bef65d119b" + integrity sha1-r5M0deWAamfQ198JDdXovvZdEZs= + +anymatch@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/anymatch/download/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" + integrity sha1-vLJLTzeTTZqnrBe0ra+J58du8us= + dependencies: + micromatch "^3.1.4" + normalize-path "^2.1.1" + +append-transform@^0.4.0: + version "0.4.0" + resolved "https://registry.npm.taobao.org/append-transform/download/append-transform-0.4.0.tgz#d76ebf8ca94d276e247a36bad44a4b74ab611991" + integrity sha1-126/jKlNJ24keja61EpLdKthGZE= + dependencies: + default-require-extensions "^1.0.0" + +aproba@^1.0.3: + version "1.2.0" + resolved "https://registry.npm.taobao.org/aproba/download/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" + integrity sha1-aALmJk79GMeQobDVF/DyYnvyyUo= + +are-we-there-yet@~1.1.2: + version "1.1.5" + resolved "https://registry.npm.taobao.org/are-we-there-yet/download/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" + integrity sha1-SzXClE8GKov82mZBB2A1D+nd/CE= + dependencies: + delegates "^1.0.0" + readable-stream "^2.0.6" + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.npm.taobao.org/argparse/download/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE= + dependencies: + sprintf-js "~1.0.2" + +arr-diff@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/arr-diff/download/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" + integrity sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8= + dependencies: + arr-flatten "^1.0.1" + +arr-diff@^4.0.0: + version "4.0.0" + resolved "https://registry.npm.taobao.org/arr-diff/download/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" + integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= + +arr-flatten@^1.0.1, arr-flatten@^1.1.0: + version "1.1.0" + resolved "https://registry.npm.taobao.org/arr-flatten/download/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + integrity sha1-NgSLv/TntH4TZkQxbJlmnqWukfE= + +arr-union@^3.1.0: + version "3.1.0" + resolved "https://registry.npm.taobao.org/arr-union/download/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" + integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= + +array-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/array-equal/download/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93" + integrity sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM= + +array-union@^1.0.1: + version "1.0.2" + resolved "https://registry.npm.taobao.org/array-union/download/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" + integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk= + dependencies: + array-uniq "^1.0.1" + +array-uniq@^1.0.1: + version "1.0.3" + resolved "https://registry.npm.taobao.org/array-uniq/download/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" + integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= + +array-unique@^0.2.1: + version "0.2.1" + resolved "https://registry.npm.taobao.org/array-unique/download/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" + integrity sha1-odl8yvy8JiXMcPrc6zalDFiwGlM= + +array-unique@^0.3.2: + version "0.3.2" + resolved "https://registry.npm.taobao.org/array-unique/download/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" + integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= + +arrify@^1.0.1: + version "1.0.1" + resolved "https://registry.npm.taobao.org/arrify/download/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= + +asn1@~0.2.3: + version "0.2.4" + resolved "https://registry.npm.taobao.org/asn1/download/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" + integrity sha1-jSR136tVO7M+d7VOWeiAu4ziMTY= + dependencies: + safer-buffer "~2.1.0" + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/assert-plus/download/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= + +assign-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/assign-symbols/download/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" + integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= + +astral-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/astral-regex/download/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" + integrity sha1-bIw/uCfdQ+45GPJ7gngqt2WKb9k= + +async-limiter@~1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/async-limiter/download/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8" + integrity sha1-ePrtjD0HSrgfIrTphdeehzj3IPg= + +async@^2.1.4: + version "2.6.2" + resolved "https://registry.npm.taobao.org/async/download/async-2.6.2.tgz#18330ea7e6e313887f5d2f2a904bac6fe4dd5381" + integrity sha1-GDMOp+bjE4h/XS8qkEusb+TdU4E= + dependencies: + lodash "^4.17.11" + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.npm.taobao.org/asynckit/download/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= + +atob@^2.1.1: + version "2.1.2" + resolved "https://registry.npm.taobao.org/atob/download/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" + integrity sha1-bZUX654DDSQ2ZmZR6GvZ9vE1M8k= + +aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://registry.npm.taobao.org/aws-sign2/download/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= + +aws4@^1.8.0: + version "1.8.0" + resolved "https://registry.npm.taobao.org/aws4/download/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f" + integrity sha1-8OAD2cqef1nHpQiUXXsu+aBKVC8= + +babel-code-frame@^6.26.0: + version "6.26.0" + resolved "https://registry.npm.taobao.org/babel-code-frame/download/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" + integrity sha1-Y/1D99weO7fONZR9uP42mj9Yx0s= + dependencies: + chalk "^1.1.3" + esutils "^2.0.2" + js-tokens "^3.0.2" + +babel-core@^6.0.0, babel-core@^6.26.0: + version "6.26.3" + resolved "https://registry.npm.taobao.org/babel-core/download/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207" + integrity sha1-suLwnjQtDwyI4vAuBneUEl51wgc= + dependencies: + babel-code-frame "^6.26.0" + babel-generator "^6.26.0" + babel-helpers "^6.24.1" + babel-messages "^6.23.0" + babel-register "^6.26.0" + babel-runtime "^6.26.0" + babel-template "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + convert-source-map "^1.5.1" + debug "^2.6.9" + json5 "^0.5.1" + lodash "^4.17.4" + minimatch "^3.0.4" + path-is-absolute "^1.0.1" + private "^0.1.8" + slash "^1.0.0" + source-map "^0.5.7" + +babel-generator@^6.18.0, babel-generator@^6.26.0: + version "6.26.1" + resolved "https://registry.npm.taobao.org/babel-generator/download/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" + integrity sha1-GERAjTuPDTWkBOp6wYDwh6YBvZA= + dependencies: + babel-messages "^6.23.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + detect-indent "^4.0.0" + jsesc "^1.3.0" + lodash "^4.17.4" + source-map "^0.5.7" + trim-right "^1.0.1" + +babel-helpers@^6.24.1: + version "6.24.1" + resolved "https://registry.npm.taobao.org/babel-helpers/download/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" + integrity sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI= + dependencies: + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-jest@^23.6.0: + version "23.6.0" + resolved "https://registry.npm.taobao.org/babel-jest/download/babel-jest-23.6.0.tgz#a644232366557a2240a0c083da6b25786185a2f1" + integrity sha1-pkQjI2ZVeiJAoMCD2msleGGFovE= + dependencies: + babel-plugin-istanbul "^4.1.6" + babel-preset-jest "^23.2.0" + +babel-messages@^6.23.0: + version "6.23.0" + resolved "https://registry.npm.taobao.org/babel-messages/download/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" + integrity sha1-8830cDhYA1sqKVHG7F7fbGLyYw4= + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-istanbul@^4.1.6: + version "4.1.6" + resolved "https://registry.npm.taobao.org/babel-plugin-istanbul/download/babel-plugin-istanbul-4.1.6.tgz#36c59b2192efce81c5b378321b74175add1c9a45" + integrity sha1-NsWbIZLvzoHFs3gyG3QXWt0cmkU= + dependencies: + babel-plugin-syntax-object-rest-spread "^6.13.0" + find-up "^2.1.0" + istanbul-lib-instrument "^1.10.1" + test-exclude "^4.2.1" + +babel-plugin-jest-hoist@^23.2.0: + version "23.2.0" + resolved "https://registry.npm.taobao.org/babel-plugin-jest-hoist/download/babel-plugin-jest-hoist-23.2.0.tgz#e61fae05a1ca8801aadee57a6d66b8cefaf44167" + integrity sha1-5h+uBaHKiAGq3uV6bWa4zvr0QWc= + +babel-plugin-syntax-object-rest-spread@^6.13.0: + version "6.13.0" + resolved "https://registry.npm.taobao.org/babel-plugin-syntax-object-rest-spread/download/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5" + integrity sha1-/WU28rzhODb/o6VFjEkDpZe7O/U= + +babel-preset-jest@^23.2.0: + version "23.2.0" + resolved "https://registry.npm.taobao.org/babel-preset-jest/download/babel-preset-jest-23.2.0.tgz#8ec7a03a138f001a1a8fb1e8113652bf1a55da46" + integrity sha1-jsegOhOPABoaj7HoETZSvxpV2kY= + dependencies: + babel-plugin-jest-hoist "^23.2.0" + babel-plugin-syntax-object-rest-spread "^6.13.0" + +babel-register@^6.26.0: + version "6.26.0" + resolved "https://registry.npm.taobao.org/babel-register/download/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" + integrity sha1-btAhFz4vy0htestFxgCahW9kcHE= + dependencies: + babel-core "^6.26.0" + babel-runtime "^6.26.0" + core-js "^2.5.0" + home-or-tmp "^2.0.0" + lodash "^4.17.4" + mkdirp "^0.5.1" + source-map-support "^0.4.15" + +babel-runtime@^6.22.0, babel-runtime@^6.26.0: + version "6.26.0" + resolved "https://registry.npm.taobao.org/babel-runtime/download/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" + integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= + dependencies: + core-js "^2.4.0" + regenerator-runtime "^0.11.0" + +babel-template@^6.16.0, babel-template@^6.24.1, babel-template@^6.26.0: + version "6.26.0" + resolved "https://registry.npm.taobao.org/babel-template/download/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" + integrity sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI= + dependencies: + babel-runtime "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + lodash "^4.17.4" + +babel-traverse@^6.0.0, babel-traverse@^6.18.0, babel-traverse@^6.26.0: + version "6.26.0" + resolved "https://registry.npm.taobao.org/babel-traverse/download/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" + integrity sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4= + dependencies: + babel-code-frame "^6.26.0" + babel-messages "^6.23.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + debug "^2.6.8" + globals "^9.18.0" + invariant "^2.2.2" + lodash "^4.17.4" + +babel-types@^6.0.0, babel-types@^6.18.0, babel-types@^6.26.0: + version "6.26.0" + resolved "https://registry.npm.taobao.org/babel-types/download/babel-types-6.26.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-types%2Fdownload%2Fbabel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" + integrity sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc= + dependencies: + babel-runtime "^6.26.0" + esutils "^2.0.2" + lodash "^4.17.4" + to-fast-properties "^1.0.3" + +babylon@^6.18.0: + version "6.18.0" + resolved "https://registry.npm.taobao.org/babylon/download/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" + integrity sha1-ry87iPpvXB5MY00aD46sT1WzleM= + +balanced-match@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/balanced-match/download/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= + +base@^0.11.1: + version "0.11.2" + resolved "https://registry.npm.taobao.org/base/download/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" + integrity sha1-e95c7RRbbVUakNuH+DxVi060io8= + dependencies: + cache-base "^1.0.1" + class-utils "^0.3.5" + component-emitter "^1.2.1" + define-property "^1.0.0" + isobject "^3.0.1" + mixin-deep "^1.2.0" + pascalcase "^0.1.1" + +bcrypt-pbkdf@^1.0.0: + version "1.0.2" + resolved "https://registry.npm.taobao.org/bcrypt-pbkdf/download/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= + dependencies: + tweetnacl "^0.14.3" + +bl@^1.0.0: + version "1.2.2" + resolved "https://registry.npm.taobao.org/bl/download/bl-1.2.2.tgz#a160911717103c07410cef63ef51b397c025af9c" + integrity sha1-oWCRFxcQPAdBDO9j71Gzl8Alr5w= + dependencies: + readable-stream "^2.3.5" + safe-buffer "^5.1.1" + +boxen@^2.0.0: + version "2.1.0" + resolved "https://registry.npm.taobao.org/boxen/download/boxen-2.1.0.tgz#8d576156e33fc26a34d6be8635fd16b1d745f0b2" + integrity sha1-jVdhVuM/wmo01r6GNf0WsddF8LI= + dependencies: + ansi-align "^3.0.0" + camelcase "^5.0.0" + chalk "^2.4.1" + cli-boxes "^1.0.0" + string-width "^3.0.0" + term-size "^1.2.0" + widest-line "^2.0.0" + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.npm.taobao.org/brace-expansion/download/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0= + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^1.8.2: + version "1.8.5" + resolved "https://registry.npm.taobao.org/braces/download/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" + integrity sha1-uneWLhLf+WnWt2cR6RS3N4V79qc= + dependencies: + expand-range "^1.8.1" + preserve "^0.2.0" + repeat-element "^1.1.2" + +braces@^2.3.1: + version "2.3.2" + resolved "https://registry.npm.taobao.org/braces/download/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" + integrity sha1-WXn9PxTNUxVl5fot8av/8d+u5yk= + dependencies: + arr-flatten "^1.1.0" + array-unique "^0.3.2" + extend-shallow "^2.0.1" + fill-range "^4.0.0" + isobject "^3.0.1" + repeat-element "^1.1.2" + snapdragon "^0.8.1" + snapdragon-node "^2.0.1" + split-string "^3.0.2" + to-regex "^3.0.1" + +brotli-size@0.0.3: + version "0.0.3" + resolved "https://registry.npm.taobao.org/brotli-size/download/brotli-size-0.0.3.tgz#1d3855b38f182591a6f69da1516131676e5f62f2" + integrity sha1-HThVs48YJZGm9p2hUWExZ25fYvI= + dependencies: + duplexer "^0.1.1" + iltorb "^2.0.5" + +browser-process-hrtime@^0.1.2: + version "0.1.3" + resolved "https://registry.npm.taobao.org/browser-process-hrtime/download/browser-process-hrtime-0.1.3.tgz#616f00faef1df7ec1b5bf9cfe2bdc3170f26c7b4" + integrity sha1-YW8A+u8d9+wbW/nP4r3DFw8mx7Q= + +browser-resolve@^1.11.3: + version "1.11.3" + resolved "https://registry.npm.taobao.org/browser-resolve/download/browser-resolve-1.11.3.tgz#9b7cbb3d0f510e4cb86bdbd796124d28b5890af6" + integrity sha1-m3y7PQ9RDky4a9vXlhJNKLWJCvY= + dependencies: + resolve "1.1.7" + +bs-logger@0.x: + version "0.2.6" + resolved "https://registry.npm.taobao.org/bs-logger/download/bs-logger-0.2.6.tgz#eb7d365307a72cf974cc6cda76b68354ad336bd8" + integrity sha1-6302UwenLPl0zGzadraDVK0za9g= + dependencies: + fast-json-stable-stringify "2.x" + +bser@^2.0.0: + version "2.1.0" + resolved "https://registry.npm.taobao.org/bser/download/bser-2.1.0.tgz#65fc784bf7f87c009b973c12db6546902fa9c7b5" + integrity sha1-Zfx4S/f4fACblzwS22VGkC+px7U= + dependencies: + node-int64 "^0.4.0" + +buffer-alloc-unsafe@^1.1.0: + version "1.1.0" + resolved "https://registry.npm.taobao.org/buffer-alloc-unsafe/download/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0" + integrity sha1-vX3CauKXLQ7aJTvgYdupkjScGfA= + +buffer-alloc@^1.2.0: + version "1.2.0" + resolved "https://registry.npm.taobao.org/buffer-alloc/download/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec" + integrity sha1-iQ3ZDZI6hz4I4Q5f1RpX5bfM4Ow= + dependencies: + buffer-alloc-unsafe "^1.1.0" + buffer-fill "^1.0.0" + +buffer-fill@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/buffer-fill/download/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" + integrity sha1-+PeLdniYiO858gXNY39o5wISKyw= + +buffer-from@1.x, buffer-from@^1.0.0: + version "1.1.1" + resolved "https://registry.npm.taobao.org/buffer-from/download/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" + integrity sha1-MnE7wCj3XAL9txDXx7zsHyxgcO8= + +builtin-modules@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/builtin-modules/download/builtin-modules-2.0.0.tgz#60b7ef5ae6546bd7deefa74b08b62a43a232648e" + integrity sha1-YLfvWuZUa9fe76dLCLYqQ6IyZI4= + +cache-base@^1.0.1: + version "1.0.1" + resolved "https://registry.npm.taobao.org/cache-base/download/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" + integrity sha1-Cn9GQWgxyLZi7jb+TnxZ129marI= + dependencies: + collection-visit "^1.0.0" + component-emitter "^1.2.1" + get-value "^2.0.6" + has-value "^1.0.0" + isobject "^3.0.1" + set-value "^2.0.0" + to-object-path "^0.3.0" + union-value "^1.0.0" + unset-value "^1.0.0" + +caller-callsite@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/caller-callsite/download/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" + integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ= + dependencies: + callsites "^2.0.0" + +caller-path@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/caller-path/download/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" + integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ= + dependencies: + caller-callsite "^2.0.0" + +callsites@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/callsites/download/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" + integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= + +camelcase@^4.1.0: + version "4.1.0" + resolved "https://registry.npm.taobao.org/camelcase/download/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" + integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0= + +camelcase@^5.0.0: + version "5.3.1" + resolved "https://registry.npm.taobao.org/camelcase/download/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA= + +capture-exit@^1.2.0: + version "1.2.0" + resolved "https://registry.npm.taobao.org/capture-exit/download/capture-exit-1.2.0.tgz#1c5fcc489fd0ab00d4f1ac7ae1072e3173fbab6f" + integrity sha1-HF/MSJ/QqwDU8ax64QcuMXP7q28= + dependencies: + rsvp "^3.3.3" + +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.npm.taobao.org/caseless/download/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= + +chalk@^1.0.0, chalk@^1.1.3: + version "1.1.3" + resolved "https://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= + dependencies: + ansi-styles "^2.2.1" + escape-string-regexp "^1.0.2" + has-ansi "^2.0.0" + strip-ansi "^3.0.0" + supports-color "^2.0.0" + +chalk@^2.0.0, chalk@^2.0.1, chalk@^2.3.1, chalk@^2.4.1: + version "2.4.2" + resolved "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ= + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chownr@^1.0.1, chownr@^1.1.1: + version "1.1.1" + resolved "https://registry.npm.taobao.org/chownr/download/chownr-1.1.1.tgz#54726b8b8fff4df053c42187e801fb4412df1494" + integrity sha1-VHJri4//TfBTxCGH6AH7RBLfFJQ= + +ci-info@^1.5.0: + version "1.6.0" + resolved "https://registry.npm.taobao.org/ci-info/download/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497" + integrity sha1-LKINu5zrMtRSSmgzAzE/AwSx5Jc= + +ci-info@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/ci-info/download/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" + integrity sha1-Z6npZL4xpR4V5QENWObxKDQAL0Y= + +class-utils@^0.3.5: + version "0.3.6" + resolved "https://registry.npm.taobao.org/class-utils/download/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" + integrity sha1-+TNprouafOAv1B+q0MqDAzGQxGM= + dependencies: + arr-union "^3.1.0" + define-property "^0.2.5" + isobject "^3.0.0" + static-extend "^0.1.1" + +classnames@^2.2.6: + version "2.2.6" + resolved "https://registry.npm.taobao.org/classnames/download/classnames-2.2.6.tgz#43935bffdd291f326dad0a205309b38d00f650ce" + integrity sha1-Q5Nb/90pHzJtrQogUwmzjQD2UM4= + +cli-boxes@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/cli-boxes/download/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143" + integrity sha1-T6kXw+WclKAEzWH47lCdplFocUM= + +cli-cursor@^2.0.0, cli-cursor@^2.1.0: + version "2.1.0" + resolved "https://registry.npm.taobao.org/cli-cursor/download/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" + integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU= + dependencies: + restore-cursor "^2.0.0" + +cli-truncate@^0.2.1: + version "0.2.1" + resolved "https://registry.npm.taobao.org/cli-truncate/download/cli-truncate-0.2.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcli-truncate%2Fdownload%2Fcli-truncate-0.2.1.tgz#9f15cfbb0705005369216c626ac7d05ab90dd574" + integrity sha1-nxXPuwcFAFNpIWxiasfQWrkN1XQ= + dependencies: + slice-ansi "0.0.4" + string-width "^1.0.1" + +cliui@^4.0.0: + version "4.1.0" + resolved "https://registry.npm.taobao.org/cliui/download/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49" + integrity sha1-NIQi2+gtgAswIu709qwQvy5NG0k= + dependencies: + string-width "^2.1.1" + strip-ansi "^4.0.0" + wrap-ansi "^2.0.0" + +co@^4.6.0: + version "4.6.0" + resolved "https://registry.npm.taobao.org/co/download/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= + +code-point-at@^1.0.0: + version "1.1.0" + resolved "https://registry.npm.taobao.org/code-point-at/download/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= + +collection-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/collection-visit/download/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" + integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= + dependencies: + map-visit "^1.0.0" + object-visit "^1.0.0" + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.npm.taobao.org/color-convert/download/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg= + dependencies: + color-name "1.1.3" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.npm.taobao.org/color-name/download/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + +colors@^1.3.2: + version "1.3.3" + resolved "https://registry.npm.taobao.org/colors/download/colors-1.3.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolors%2Fdownload%2Fcolors-1.3.3.tgz#39e005d546afe01e01f9c4ca8fa50f686a01205d" + integrity sha1-OeAF1Uav4B4B+cTKj6UPaGoBIF0= + +combined-stream@^1.0.6, combined-stream@~1.0.6: + version "1.0.8" + resolved "https://registry.npm.taobao.org/combined-stream/download/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha1-w9RaizT9cwYxoRCoolIGgrMdWn8= + dependencies: + delayed-stream "~1.0.0" + +commander@^2.14.1, commander@^2.19.0, commander@^2.9.0, commander@~2.20.0: + version "2.20.0" + resolved "https://registry.npm.taobao.org/commander/download/commander-2.20.0.tgz#d58bb2b5c1ee8f87b0d340027e9e94e222c5a422" + integrity sha1-1YuytcHuj4ew00ACfp6U4iLFpCI= + +component-emitter@^1.2.1: + version "1.3.0" + resolved "https://registry.npm.taobao.org/component-emitter/download/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" + integrity sha1-FuQHD7qK4ptnnyIVhT7hgasuq8A= + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.npm.taobao.org/concat-map/download/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + +console-control-strings@^1.0.0, console-control-strings@~1.1.0: + version "1.1.0" + resolved "https://registry.npm.taobao.org/console-control-strings/download/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= + +convert-source-map@^1.4.0, convert-source-map@^1.5.1: + version "1.6.0" + resolved "https://registry.npm.taobao.org/convert-source-map/download/convert-source-map-1.6.0.tgz#51b537a8c43e0f04dec1993bffcdd504e758ac20" + integrity sha1-UbU3qMQ+DwTewZk7/83VBOdYrCA= + dependencies: + safe-buffer "~5.1.1" + +copy-descriptor@^0.1.0: + version "0.1.1" + resolved "https://registry.npm.taobao.org/copy-descriptor/download/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" + integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= + +copyfiles@^2.1.0: + version "2.1.0" + resolved "https://registry.npm.taobao.org/copyfiles/download/copyfiles-2.1.0.tgz#0e2a4188162d6b2f3c5adfe34e9c0bd564d23164" + integrity sha1-DipBiBYtay88Wt/jTpwL1WTSMWQ= + dependencies: + glob "^7.0.5" + minimatch "^3.0.3" + mkdirp "^0.5.1" + noms "0.0.0" + through2 "^2.0.1" + yargs "^11.0.0" + +core-js@^2.4.0, core-js@^2.5.0: + version "2.6.9" + resolved "https://registry.npm.taobao.org/core-js/download/core-js-2.6.9.tgz?cache=0&sync_timestamp=1560599811627&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-2.6.9.tgz#6b4b214620c834152e179323727fc19741b084f2" + integrity sha1-a0shRiDINBUuF5Mjcn/Bl0GwhPI= + +core-util-is@1.0.2, core-util-is@~1.0.0: + version "1.0.2" + resolved "https://registry.npm.taobao.org/core-util-is/download/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= + +cosmiconfig@^5.0.7, cosmiconfig@^5.2.0: + version "5.2.1" + resolved "https://registry.npm.taobao.org/cosmiconfig/download/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" + integrity sha1-BA9yaAnFked6F8CjYmykW08Wixo= + dependencies: + import-fresh "^2.0.0" + is-directory "^0.3.1" + js-yaml "^3.13.1" + parse-json "^4.0.0" + +coveralls@^3.0.2: + version "3.0.4" + resolved "https://registry.npm.taobao.org/coveralls/download/coveralls-3.0.4.tgz#f50233c9c62fd0973f710fce85fd19dba24cff4b" + integrity sha1-9QIzycYv0Jc/cQ/Ohf0Z26JM/0s= + dependencies: + growl "~> 1.10.0" + js-yaml "^3.11.0" + lcov-parse "^0.0.10" + log-driver "^1.2.7" + minimist "^1.2.0" + request "^2.86.0" + +cross-spawn@^5.0.1: + version "5.1.0" + resolved "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-5.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcross-spawn%2Fdownload%2Fcross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" + integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk= + dependencies: + lru-cache "^4.0.1" + shebang-command "^1.2.0" + which "^1.2.9" + +cross-spawn@^6.0.0: + version "6.0.5" + resolved "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-6.0.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcross-spawn%2Fdownload%2Fcross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" + integrity sha1-Sl7Hxk364iw6FBJNus3uhG2Ay8Q= + dependencies: + nice-try "^1.0.4" + path-key "^2.0.1" + semver "^5.5.0" + shebang-command "^1.2.0" + which "^1.2.9" + +cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0": + version "0.3.6" + resolved "https://registry.npm.taobao.org/cssom/download/cssom-0.3.6.tgz#f85206cee04efa841f3c5982a74ba96ab20d65ad" + integrity sha1-+FIGzuBO+oQfPFmCp0uparINZa0= + +cssstyle@^1.0.0: + version "1.2.2" + resolved "https://registry.npm.taobao.org/cssstyle/download/cssstyle-1.2.2.tgz#427ea4d585b18624f6fdbf9de7a2a1a3ba713077" + integrity sha1-Qn6k1YWxhiT2/b+d56Kho7pxMHc= + dependencies: + cssom "0.3.x" + +csstype@^2.2.0: + version "2.6.5" + resolved "https://registry.npm.taobao.org/csstype/download/csstype-2.6.5.tgz#1cd1dff742ebf4d7c991470ae71e12bb6751e034" + integrity sha1-HNHf90Lr9NfJkUcK5x4Su2dR4DQ= + +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.npm.taobao.org/dashdash/download/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= + dependencies: + assert-plus "^1.0.0" + +data-urls@^1.0.0: + version "1.1.0" + resolved "https://registry.npm.taobao.org/data-urls/download/data-urls-1.1.0.tgz#15ee0582baa5e22bb59c77140da8f9c76963bbfe" + integrity sha1-Fe4Fgrql4iu1nHcUDaj5x2lju/4= + dependencies: + abab "^2.0.0" + whatwg-mimetype "^2.2.0" + whatwg-url "^7.0.0" + +date-fns@^1.27.2: + version "1.30.1" + resolved "https://registry.npm.taobao.org/date-fns/download/date-fns-1.30.1.tgz#2e71bf0b119153dbb4cc4e88d9ea5acfb50dc05c" + integrity sha1-LnG/CxGRU9u0zE6I2epaz7UNwFw= + +debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9: + version "2.6.9" + resolved "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8= + dependencies: + ms "2.0.0" + +debug@^3.1.0, debug@^3.2.6: + version "3.2.6" + resolved "https://registry.npm.taobao.org/debug/download/debug-3.2.6.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" + integrity sha1-6D0X3hbYp++3cX7b5fsQE17uYps= + dependencies: + ms "^2.1.1" + +debug@^4.0.1: + version "4.1.1" + resolved "https://registry.npm.taobao.org/debug/download/debug-4.1.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" + integrity sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E= + dependencies: + ms "^2.1.1" + +decamelize@^1.1.1: + version "1.2.0" + resolved "https://registry.npm.taobao.org/decamelize/download/decamelize-1.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdecamelize%2Fdownload%2Fdecamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= + +decode-uri-component@^0.2.0: + version "0.2.0" + resolved "https://registry.npm.taobao.org/decode-uri-component/download/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" + integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= + +decompress-response@^3.3.0: + version "3.3.0" + resolved "https://registry.npm.taobao.org/decompress-response/download/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" + integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= + dependencies: + mimic-response "^1.0.0" + +dedent@^0.7.0: + version "0.7.0" + resolved "https://registry.npm.taobao.org/dedent/download/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" + integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw= + +deep-assign@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/deep-assign/download/deep-assign-2.0.0.tgz#ebe06b1f07f08dae597620e3dd1622f371a1c572" + integrity sha1-6+BrHwfwja5ZdiDj3RYi83GhxXI= + dependencies: + is-obj "^1.0.0" + +deep-extend@^0.6.0: + version "0.6.0" + resolved "https://registry.npm.taobao.org/deep-extend/download/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + integrity sha1-xPp8lUBKF6nD6Mp+FTcxK3NjMKw= + +deep-is@~0.1.3: + version "0.1.3" + resolved "https://registry.npm.taobao.org/deep-is/download/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" + integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= + +deepmerge@^3.0.0: + version "3.3.0" + resolved "https://registry.npm.taobao.org/deepmerge/download/deepmerge-3.3.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdeepmerge%2Fdownload%2Fdeepmerge-3.3.0.tgz#d3c47fd6f3a93d517b14426b0628a17b0125f5f7" + integrity sha1-08R/1vOpPVF7FEJrBiihewEl9fc= + +default-require-extensions@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/default-require-extensions/download/default-require-extensions-1.0.0.tgz#f37ea15d3e13ffd9b437d33e1a75b5fb97874cb8" + integrity sha1-836hXT4T/9m0N9M+GnW1+5eHTLg= + dependencies: + strip-bom "^2.0.0" + +define-properties@^1.1.2: + version "1.1.3" + resolved "https://registry.npm.taobao.org/define-properties/download/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" + integrity sha1-z4jabL7ib+bbcJT2HYcMvYTO6fE= + dependencies: + object-keys "^1.0.12" + +define-property@^0.2.5: + version "0.2.5" + resolved "https://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" + integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= + dependencies: + is-descriptor "^0.1.0" + +define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/define-property/download/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" + integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= + dependencies: + is-descriptor "^1.0.0" + +define-property@^2.0.2: + version "2.0.2" + resolved "https://registry.npm.taobao.org/define-property/download/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" + integrity sha1-1Flono1lS6d+AqgX+HENcCyxbp0= + dependencies: + is-descriptor "^1.0.2" + isobject "^3.0.1" + +del@^3.0.0: + version "3.0.0" + resolved "https://registry.npm.taobao.org/del/download/del-3.0.0.tgz#53ecf699ffcbcb39637691ab13baf160819766e5" + integrity sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU= + dependencies: + globby "^6.1.0" + is-path-cwd "^1.0.0" + is-path-in-cwd "^1.0.0" + p-map "^1.1.1" + pify "^3.0.0" + rimraf "^2.2.8" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/delayed-stream/download/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= + +delegates@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/delegates/download/delegates-1.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdelegates%2Fdownload%2Fdelegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= + +detect-indent@^4.0.0: + version "4.0.0" + resolved "https://registry.npm.taobao.org/detect-indent/download/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" + integrity sha1-920GQ1LN9Docts5hnE7jqUdd4gg= + dependencies: + repeating "^2.0.0" + +detect-libc@^1.0.2, detect-libc@^1.0.3: + version "1.0.3" + resolved "https://registry.npm.taobao.org/detect-libc/download/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" + integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= + +detect-newline@^2.1.0: + version "2.1.0" + resolved "https://registry.npm.taobao.org/detect-newline/download/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2" + integrity sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I= + +diff@3.5.0, diff@^3.2.0: + version "3.5.0" + resolved "https://registry.npm.taobao.org/diff/download/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" + integrity sha1-gAwN0eCov7yVg1wgKtIg/jF+WhI= + +domexception@^1.0.1: + version "1.0.1" + resolved "https://registry.npm.taobao.org/domexception/download/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90" + integrity sha1-k3RCZEymoxJh7zbj7Gd/6AVYLJA= + dependencies: + webidl-conversions "^4.0.2" + +duplexer@^0.1.1: + version "0.1.1" + resolved "https://registry.npm.taobao.org/duplexer/download/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" + integrity sha1-rOb/gIwc5mtX0ev5eXessCM0z8E= + +ecc-jsbn@~0.1.1: + version "0.1.2" + resolved "https://registry.npm.taobao.org/ecc-jsbn/download/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" + integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= + dependencies: + jsbn "~0.1.0" + safer-buffer "^2.1.0" + +elegant-spinner@^1.0.1: + version "1.0.1" + resolved "https://registry.npm.taobao.org/elegant-spinner/download/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e" + integrity sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4= + +emoji-regex@^7.0.1: + version "7.0.3" + resolved "https://registry.npm.taobao.org/emoji-regex/download/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" + integrity sha1-kzoEBShgyF6DwSJHnEdIqOTHIVY= + +end-of-stream@^1.0.0, end-of-stream@^1.1.0: + version "1.4.1" + resolved "https://registry.npm.taobao.org/end-of-stream/download/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43" + integrity sha1-7SljTRm6ukY7bOa4CjchPqtx7EM= + dependencies: + once "^1.4.0" + +error-ex@^1.2.0, error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.npm.taobao.org/error-ex/download/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha1-tKxAZIEH/c3PriQvQovqihTU8b8= + dependencies: + is-arrayish "^0.2.1" + +es-abstract@^1.5.1: + version "1.13.0" + resolved "https://registry.npm.taobao.org/es-abstract/download/es-abstract-1.13.0.tgz#ac86145fdd5099d8dd49558ccba2eaf9b88e24e9" + integrity sha1-rIYUX91QmdjdSVWMy6Lq+biOJOk= + dependencies: + es-to-primitive "^1.2.0" + function-bind "^1.1.1" + has "^1.0.3" + is-callable "^1.1.4" + is-regex "^1.0.4" + object-keys "^1.0.12" + +es-to-primitive@^1.2.0: + version "1.2.0" + resolved "https://registry.npm.taobao.org/es-to-primitive/download/es-to-primitive-1.2.0.tgz#edf72478033456e8dda8ef09e00ad9650707f377" + integrity sha1-7fckeAM0VujdqO8J4ArZZQcH83c= + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.4, escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + +escodegen@^1.9.1: + version "1.11.1" + resolved "https://registry.npm.taobao.org/escodegen/download/escodegen-1.11.1.tgz#c485ff8d6b4cdb89e27f4a856e91f118401ca510" + integrity sha1-xIX/jWtM24nif0qFbpHxGEAcpRA= + dependencies: + esprima "^3.1.3" + estraverse "^4.2.0" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.6.1" + +esprima@^3.1.3: + version "3.1.3" + resolved "https://registry.npm.taobao.org/esprima/download/esprima-3.1.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fesprima%2Fdownload%2Fesprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" + integrity sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM= + +esprima@^4.0.0: + version "4.0.1" + resolved "https://registry.npm.taobao.org/esprima/download/esprima-4.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fesprima%2Fdownload%2Fesprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha1-E7BM2z5sXRnfkatph6hpVhmwqnE= + +estraverse@^4.2.0: + version "4.2.0" + resolved "https://registry.npm.taobao.org/estraverse/download/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" + integrity sha1-De4/7TH81GlhjOc0IJn8GvoL2xM= + +estree-walker@^0.5.2: + version "0.5.2" + resolved "https://registry.npm.taobao.org/estree-walker/download/estree-walker-0.5.2.tgz#d3850be7529c9580d815600b53126515e146dd39" + integrity sha1-04UL51KclYDYFWALUxJlFeFG3Tk= + +estree-walker@^0.6.0, estree-walker@^0.6.1: + version "0.6.1" + resolved "https://registry.npm.taobao.org/estree-walker/download/estree-walker-0.6.1.tgz#53049143f40c6eb918b23671d1fe3219f3a1b362" + integrity sha1-UwSRQ/QMbrkYsjZx0f4yGfOhs2I= + +esutils@^2.0.2: + version "2.0.2" + resolved "https://registry.npm.taobao.org/esutils/download/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" + integrity sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs= + +exec-sh@^0.2.0: + version "0.2.2" + resolved "https://registry.npm.taobao.org/exec-sh/download/exec-sh-0.2.2.tgz#2a5e7ffcbd7d0ba2755bdecb16e5a427dfbdec36" + integrity sha1-Kl5//L19C6J1W97LFuWkJ9+97DY= + dependencies: + merge "^1.2.0" + +execa@^0.7.0: + version "0.7.0" + resolved "https://registry.npm.taobao.org/execa/download/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" + integrity sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c= + dependencies: + cross-spawn "^5.0.1" + get-stream "^3.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +execa@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/execa/download/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" + integrity sha1-xiNqW7TfbW8V6I5/AXeYIWdJ3dg= + dependencies: + cross-spawn "^6.0.0" + get-stream "^4.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +exit@^0.1.2: + version "0.1.2" + resolved "https://registry.npm.taobao.org/exit/download/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" + integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= + +expand-brackets@^0.1.4: + version "0.1.5" + resolved "https://registry.npm.taobao.org/expand-brackets/download/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" + integrity sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s= + dependencies: + is-posix-bracket "^0.1.0" + +expand-brackets@^2.1.4: + version "2.1.4" + resolved "https://registry.npm.taobao.org/expand-brackets/download/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" + integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= + dependencies: + debug "^2.3.3" + define-property "^0.2.5" + extend-shallow "^2.0.1" + posix-character-classes "^0.1.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +expand-range@^1.8.1: + version "1.8.2" + resolved "https://registry.npm.taobao.org/expand-range/download/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" + integrity sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc= + dependencies: + fill-range "^2.1.0" + +expand-template@^2.0.3: + version "2.0.3" + resolved "https://registry.npm.taobao.org/expand-template/download/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c" + integrity sha1-bhSz/O4POmNA7LV9LokYaSBSpHw= + +expect@^23.6.0: + version "23.6.0" + resolved "https://registry.npm.taobao.org/expect/download/expect-23.6.0.tgz#1e0c8d3ba9a581c87bd71fb9bc8862d443425f98" + integrity sha1-HgyNO6mlgch71x+5vIhi1ENCX5g= + dependencies: + ansi-styles "^3.2.0" + jest-diff "^23.6.0" + jest-get-type "^22.1.0" + jest-matcher-utils "^23.6.0" + jest-message-util "^23.4.0" + jest-regex-util "^23.3.0" + +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= + dependencies: + is-extendable "^0.1.0" + +extend-shallow@^3.0.0, extend-shallow@^3.0.2: + version "3.0.2" + resolved "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" + integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= + dependencies: + assign-symbols "^1.0.0" + is-extendable "^1.0.1" + +extend@~3.0.2: + version "3.0.2" + resolved "https://registry.npm.taobao.org/extend/download/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha1-+LETa0Bx+9jrFAr/hYsQGewpFfo= + +extglob@^0.3.1: + version "0.3.2" + resolved "https://registry.npm.taobao.org/extglob/download/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" + integrity sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE= + dependencies: + is-extglob "^1.0.0" + +extglob@^2.0.4: + version "2.0.4" + resolved "https://registry.npm.taobao.org/extglob/download/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" + integrity sha1-rQD+TcYSqSMuhxhxHcXLWrAoVUM= + dependencies: + array-unique "^0.3.2" + define-property "^1.0.0" + expand-brackets "^2.1.4" + extend-shallow "^2.0.1" + fragment-cache "^0.2.1" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +extsprintf@1.3.0: + version "1.3.0" + resolved "https://registry.npm.taobao.org/extsprintf/download/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= + +extsprintf@^1.2.0: + version "1.4.0" + resolved "https://registry.npm.taobao.org/extsprintf/download/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" + integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= + +fast-deep-equal@^2.0.1: + version "2.0.1" + resolved "https://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-2.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-deep-equal%2Fdownload%2Ffast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" + integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk= + +fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/fast-json-stable-stringify/download/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" + integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I= + +fast-levenshtein@~2.0.4: + version "2.0.6" + resolved "https://registry.npm.taobao.org/fast-levenshtein/download/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= + +fb-watchman@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/fb-watchman/download/fb-watchman-2.0.0.tgz#54e9abf7dfa2f26cd9b1636c588c1afc05de5d58" + integrity sha1-VOmr99+i8mzZsWNsWIwa/AXeXVg= + dependencies: + bser "^2.0.0" + +figures@^1.7.0: + version "1.7.0" + resolved "https://registry.npm.taobao.org/figures/download/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" + integrity sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4= + dependencies: + escape-string-regexp "^1.0.5" + object-assign "^4.1.0" + +figures@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/figures/download/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" + integrity sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI= + dependencies: + escape-string-regexp "^1.0.5" + +filename-regex@^2.0.0: + version "2.0.1" + resolved "https://registry.npm.taobao.org/filename-regex/download/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" + integrity sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY= + +fileset@^2.0.2: + version "2.0.3" + resolved "https://registry.npm.taobao.org/fileset/download/fileset-2.0.3.tgz#8e7548a96d3cc2327ee5e674168723a333bba2a0" + integrity sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA= + dependencies: + glob "^7.0.3" + minimatch "^3.0.3" + +filesize@^3.6.1: + version "3.6.1" + resolved "https://registry.npm.taobao.org/filesize/download/filesize-3.6.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffilesize%2Fdownload%2Ffilesize-3.6.1.tgz#090bb3ee01b6f801a8a8be99d31710b3422bb317" + integrity sha1-CQuz7gG2+AGoqL6Z0xcQs0Irsxc= + +fill-range@^2.1.0: + version "2.2.4" + resolved "https://registry.npm.taobao.org/fill-range/download/fill-range-2.2.4.tgz#eb1e773abb056dcd8df2bfdf6af59b8b3a936565" + integrity sha1-6x53OrsFbc2N8r/favWbizqTZWU= + dependencies: + is-number "^2.1.0" + isobject "^2.0.0" + randomatic "^3.0.0" + repeat-element "^1.1.2" + repeat-string "^1.5.2" + +fill-range@^4.0.0: + version "4.0.0" + resolved "https://registry.npm.taobao.org/fill-range/download/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" + integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= + dependencies: + extend-shallow "^2.0.1" + is-number "^3.0.0" + repeat-string "^1.6.1" + to-regex-range "^2.1.0" + +find-up@^1.0.0: + version "1.1.2" + resolved "https://registry.npm.taobao.org/find-up/download/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" + integrity sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8= + dependencies: + path-exists "^2.0.0" + pinkie-promise "^2.0.0" + +find-up@^2.1.0: + version "2.1.0" + resolved "https://registry.npm.taobao.org/find-up/download/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.npm.taobao.org/find-up/download/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + integrity sha1-SRafHXmTQwZG2mHsxa41XCHJe3M= + dependencies: + locate-path "^3.0.0" + +fn-name@~2.0.1: + version "2.0.1" + resolved "https://registry.npm.taobao.org/fn-name/download/fn-name-2.0.1.tgz#5214d7537a4d06a4a301c0cc262feb84188002e7" + integrity sha1-UhTXU3pNBqSjAcDMJi/rhBiAAuc= + +for-in@^1.0.1, for-in@^1.0.2: + version "1.0.2" + resolved "https://registry.npm.taobao.org/for-in/download/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= + +for-own@^0.1.4: + version "0.1.5" + resolved "https://registry.npm.taobao.org/for-own/download/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" + integrity sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4= + dependencies: + for-in "^1.0.1" + +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.npm.taobao.org/forever-agent/download/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= + +form-data@~2.3.2: + version "2.3.3" + resolved "https://registry.npm.taobao.org/form-data/download/form-data-2.3.3.tgz?cache=0&sync_timestamp=1560929244634&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fform-data%2Fdownload%2Fform-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" + integrity sha1-3M5SwF9kTymManq5Nr1yTO/786Y= + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.6" + mime-types "^2.1.12" + +fragment-cache@^0.2.1: + version "0.2.1" + resolved "https://registry.npm.taobao.org/fragment-cache/download/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" + integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= + dependencies: + map-cache "^0.2.2" + +fs-constants@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/fs-constants/download/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" + integrity sha1-a+Dem+mYzhavivwkSXue6bfM2a0= + +fs-extra@7.0.0: + version "7.0.0" + resolved "https://registry.npm.taobao.org/fs-extra/download/fs-extra-7.0.0.tgz#8cc3f47ce07ef7b3593a11b9fb245f7e34c041d6" + integrity sha1-jMP0fOB+97NZOhG5+yRffjTAQdY= + dependencies: + graceful-fs "^4.1.2" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-minipass@^1.2.5: + version "1.2.6" + resolved "https://registry.npm.taobao.org/fs-minipass/download/fs-minipass-1.2.6.tgz#2c5cc30ded81282bfe8a0d7c7c1853ddeb102c07" + integrity sha1-LFzDDe2BKCv+ig18fBhT3esQLAc= + dependencies: + minipass "^2.2.1" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/fs.realpath/download/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + +fsevents@^1.2.3: + version "1.2.9" + resolved "https://registry.npm.taobao.org/fsevents/download/fsevents-1.2.9.tgz#3f5ed66583ccd6f400b5a00db6f7e861363e388f" + integrity sha1-P17WZYPM1vQAtaANtvfoYTY+OI8= + dependencies: + nan "^2.12.1" + node-pre-gyp "^0.12.0" + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.npm.taobao.org/function-bind/download/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0= + +g-status@^2.0.2: + version "2.0.2" + resolved "https://registry.npm.taobao.org/g-status/download/g-status-2.0.2.tgz#270fd32119e8fc9496f066fe5fe88e0a6bc78b97" + integrity sha1-Jw/TIRno/JSW8Gb+X+iOCmvHi5c= + dependencies: + arrify "^1.0.1" + matcher "^1.0.0" + simple-git "^1.85.0" + +gauge@~2.7.3: + version "2.7.4" + resolved "https://registry.npm.taobao.org/gauge/download/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" + integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= + dependencies: + aproba "^1.0.3" + console-control-strings "^1.0.0" + has-unicode "^2.0.0" + object-assign "^4.1.0" + signal-exit "^3.0.0" + string-width "^1.0.1" + strip-ansi "^3.0.1" + wide-align "^1.1.0" + +get-caller-file@^1.0.1: + version "1.0.3" + resolved "https://registry.npm.taobao.org/get-caller-file/download/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" + integrity sha1-+Xj6TJDR3+f/LWvtoqUV5xO9z0o= + +get-own-enumerable-property-symbols@^3.0.0: + version "3.0.0" + resolved "https://registry.npm.taobao.org/get-own-enumerable-property-symbols/download/get-own-enumerable-property-symbols-3.0.0.tgz#b877b49a5c16aefac3655f2ed2ea5b684df8d203" + integrity sha1-uHe0mlwWrvrDZV8u0upbaE340gM= + +get-stdin@^6.0.0: + version "6.0.0" + resolved "https://registry.npm.taobao.org/get-stdin/download/get-stdin-6.0.0.tgz#9e09bf712b360ab9225e812048f71fde9c89657b" + integrity sha1-ngm/cSs2CrkiXoEgSPcf3pyJZXs= + +get-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.npm.taobao.org/get-stream/download/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" + integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= + +get-stream@^4.0.0: + version "4.1.0" + resolved "https://registry.npm.taobao.org/get-stream/download/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" + integrity sha1-wbJVV189wh1Zv8ec09K0axw6VLU= + dependencies: + pump "^3.0.0" + +get-value@^2.0.3, get-value@^2.0.6: + version "2.0.6" + resolved "https://registry.npm.taobao.org/get-value/download/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" + integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= + +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.npm.taobao.org/getpass/download/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= + dependencies: + assert-plus "^1.0.0" + +github-from-package@0.0.0: + version "0.0.0" + resolved "https://registry.npm.taobao.org/github-from-package/download/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce" + integrity sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4= + +glob-base@^0.3.0: + version "0.3.0" + resolved "https://registry.npm.taobao.org/glob-base/download/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" + integrity sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q= + dependencies: + glob-parent "^2.0.0" + is-glob "^2.0.0" + +glob-parent@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/glob-parent/download/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" + integrity sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg= + dependencies: + is-glob "^2.0.0" + +glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3: + version "7.1.4" + resolved "https://registry.npm.taobao.org/glob/download/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255" + integrity sha1-qmCKL2xXetNX4a5aXCbZqNGWklU= + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +globals@^9.18.0: + version "9.18.0" + resolved "https://registry.npm.taobao.org/globals/download/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" + integrity sha1-qjiWs+abSH8X4x7SFD1pqOMMLYo= + +globby@^6.1.0: + version "6.1.0" + resolved "https://registry.npm.taobao.org/globby/download/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" + integrity sha1-9abXDoOV4hyFj7BInWTfAkJNUGw= + dependencies: + array-union "^1.0.1" + glob "^7.0.3" + object-assign "^4.0.1" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6: + version "4.1.15" + resolved "https://registry.npm.taobao.org/graceful-fs/download/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00" + integrity sha1-/7cD4QZuig7qpMi4C6klPu77+wA= + +"growl@~> 1.10.0": + version "1.10.5" + resolved "https://registry.npm.taobao.org/growl/download/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" + integrity sha1-8nNdwig2dPpnR4sQGBBZNVw2nl4= + +growly@^1.3.0: + version "1.3.0" + resolved "https://registry.npm.taobao.org/growly/download/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" + integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE= + +gzip-size@^5.0.0: + version "5.1.1" + resolved "https://registry.npm.taobao.org/gzip-size/download/gzip-size-5.1.1.tgz#cb9bee692f87c0612b232840a873904e4c135274" + integrity sha1-y5vuaS+HwGErIyhAqHOQTkwTUnQ= + dependencies: + duplexer "^0.1.1" + pify "^4.0.1" + +handlebars@^4.0.3: + version "4.1.2" + resolved "https://registry.npm.taobao.org/handlebars/download/handlebars-4.1.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhandlebars%2Fdownload%2Fhandlebars-4.1.2.tgz#b6b37c1ced0306b221e094fc7aca3ec23b131b67" + integrity sha1-trN8HO0DBrIh4JT8eso+wjsTG2c= + dependencies: + neo-async "^2.6.0" + optimist "^0.6.1" + source-map "^0.6.1" + optionalDependencies: + uglify-js "^3.1.4" + +har-schema@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/har-schema/download/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= + +har-validator@~5.1.0: + version "5.1.3" + resolved "https://registry.npm.taobao.org/har-validator/download/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080" + integrity sha1-HvievT5JllV2de7ZiTEQ3DUPoIA= + dependencies: + ajv "^6.5.5" + har-schema "^2.0.0" + +has-ansi@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/has-ansi/download/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= + dependencies: + ansi-regex "^2.0.0" + +has-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/has-flag/download/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" + integrity sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo= + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.npm.taobao.org/has-flag/download/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + +has-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/has-symbols/download/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" + integrity sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q= + +has-unicode@^2.0.0: + version "2.0.1" + resolved "https://registry.npm.taobao.org/has-unicode/download/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= + +has-value@^0.3.1: + version "0.3.1" + resolved "https://registry.npm.taobao.org/has-value/download/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" + integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= + dependencies: + get-value "^2.0.3" + has-values "^0.1.4" + isobject "^2.0.0" + +has-value@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/has-value/download/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" + integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= + dependencies: + get-value "^2.0.6" + has-values "^1.0.0" + isobject "^3.0.0" + +has-values@^0.1.4: + version "0.1.4" + resolved "https://registry.npm.taobao.org/has-values/download/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" + integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= + +has-values@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/has-values/download/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" + integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + +has@^1.0.1, has@^1.0.3: + version "1.0.3" + resolved "https://registry.npm.taobao.org/has/download/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y= + dependencies: + function-bind "^1.1.1" + +hoist-non-react-statics@^3.0.0, hoist-non-react-statics@^3.2.1, hoist-non-react-statics@^3.3.0: + version "3.3.0" + resolved "https://registry.npm.taobao.org/hoist-non-react-statics/download/hoist-non-react-statics-3.3.0.tgz#b09178f0122184fb95acf525daaecb4d8f45958b" + integrity sha1-sJF48BIhhPuVrPUl2q7LTY9FlYs= + dependencies: + react-is "^16.7.0" + +home-or-tmp@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/home-or-tmp/download/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" + integrity sha1-42w/LSyufXRqhX440Y1fMqeILbg= + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.1" + +hosted-git-info@^2.1.4: + version "2.7.1" + resolved "https://registry.npm.taobao.org/hosted-git-info/download/hosted-git-info-2.7.1.tgz#97f236977bd6e125408930ff6de3eec6281ec047" + integrity sha1-l/I2l3vW4SVAiTD/bePuxigewEc= + +html-encoding-sniffer@^1.0.2: + version "1.0.2" + resolved "https://registry.npm.taobao.org/html-encoding-sniffer/download/html-encoding-sniffer-1.0.2.tgz#e70d84b94da53aa375e11fe3a351be6642ca46f8" + integrity sha1-5w2EuU2lOqN14R/jo1G+ZkLKRvg= + dependencies: + whatwg-encoding "^1.0.1" + +http-signature@~1.2.0: + version "1.2.0" + resolved "https://registry.npm.taobao.org/http-signature/download/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= + dependencies: + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +husky@^1.2.0: + version "1.3.1" + resolved "https://registry.npm.taobao.org/husky/download/husky-1.3.1.tgz#26823e399300388ca2afff11cfa8a86b0033fae0" + integrity sha1-JoI+OZMAOIyir/8Rz6ioawAz+uA= + dependencies: + cosmiconfig "^5.0.7" + execa "^1.0.0" + find-up "^3.0.0" + get-stdin "^6.0.0" + is-ci "^2.0.0" + pkg-dir "^3.0.0" + please-upgrade-node "^3.1.1" + read-pkg "^4.0.1" + run-node "^1.0.0" + slash "^2.0.0" + +iconv-lite@0.4.24, iconv-lite@^0.4.4: + version "0.4.24" + resolved "https://registry.npm.taobao.org/iconv-lite/download/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha1-ICK0sl+93CHS9SSXSkdKr+czkIs= + dependencies: + safer-buffer ">= 2.1.2 < 3" + +ignore-walk@^3.0.1: + version "3.0.1" + resolved "https://registry.npm.taobao.org/ignore-walk/download/ignore-walk-3.0.1.tgz#a83e62e7d272ac0e3b551aaa82831a19b69f82f8" + integrity sha1-qD5i59JyrA47VRqqgoMaGbafgvg= + dependencies: + minimatch "^3.0.4" + +iltorb@^2.0.5: + version "2.4.3" + resolved "https://registry.npm.taobao.org/iltorb/download/iltorb-2.4.3.tgz#b489689d24c8a25a2cf170c515f97954edd45577" + integrity sha1-tIlonSTIolos8XDFFfl5VO3UVXc= + dependencies: + detect-libc "^1.0.3" + nan "^2.13.2" + npmlog "^4.1.2" + prebuild-install "^5.3.0" + which-pm-runs "^1.0.0" + +import-fresh@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/import-fresh/download/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" + integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY= + dependencies: + caller-path "^2.0.0" + resolve-from "^3.0.0" + +import-local@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/import-local/download/import-local-1.0.0.tgz#5e4ffdc03f4fe6c009c6729beb29631c2f8227bc" + integrity sha1-Xk/9wD9P5sAJxnKb6yljHC+CJ7w= + dependencies: + pkg-dir "^2.0.0" + resolve-cwd "^2.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.npm.taobao.org/imurmurhash/download/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + +indent-string@^3.0.0: + version "3.2.0" + resolved "https://registry.npm.taobao.org/indent-string/download/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" + integrity sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok= + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.npm.taobao.org/inflight/download/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@^2.0.1, inherits@~2.0.1, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.npm.taobao.org/inherits/download/inherits-2.0.4.tgz?cache=0&sync_timestamp=1560975547815&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finherits%2Fdownload%2Finherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w= + +ini@~1.3.0: + version "1.3.5" + resolved "https://registry.npm.taobao.org/ini/download/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" + integrity sha1-7uJfVtscnsYIXgwid4CD9Zar+Sc= + +invariant@^2.2.2, invariant@^2.2.4: + version "2.2.4" + resolved "https://registry.npm.taobao.org/invariant/download/invariant-2.2.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finvariant%2Fdownload%2Finvariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" + integrity sha1-YQ88ksk1nOHbYW5TgAjSP/NRWOY= + dependencies: + loose-envify "^1.0.0" + +invert-kv@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/invert-kv/download/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" + integrity sha1-EEqOSqym09jNFXqO+L+rLXo//bY= + +is-accessor-descriptor@^0.1.6: + version "0.1.6" + resolved "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" + integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= + dependencies: + kind-of "^3.0.2" + +is-accessor-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" + integrity sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY= + dependencies: + kind-of "^6.0.0" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.npm.taobao.org/is-arrayish/download/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= + +is-buffer@^1.1.5: + version "1.1.6" + resolved "https://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + integrity sha1-76ouqdqg16suoTqXsritUf776L4= + +is-callable@^1.1.4: + version "1.1.4" + resolved "https://registry.npm.taobao.org/is-callable/download/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" + integrity sha1-HhrfIZ4e62hNaR+dagX/DTCiTXU= + +is-ci@^1.0.10: + version "1.2.1" + resolved "https://registry.npm.taobao.org/is-ci/download/is-ci-1.2.1.tgz#e3779c8ee17fccf428488f6e281187f2e632841c" + integrity sha1-43ecjuF/zPQoSI9uKBGH8uYyhBw= + dependencies: + ci-info "^1.5.0" + +is-ci@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/is-ci/download/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" + integrity sha1-a8YzQYGBDgS1wis9WJ/cpVAmQEw= + dependencies: + ci-info "^2.0.0" + +is-data-descriptor@^0.1.4: + version "0.1.4" + resolved "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" + integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= + dependencies: + kind-of "^3.0.2" + +is-data-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" + integrity sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc= + dependencies: + kind-of "^6.0.0" + +is-date-object@^1.0.1: + version "1.0.1" + resolved "https://registry.npm.taobao.org/is-date-object/download/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" + integrity sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY= + +is-descriptor@^0.1.0: + version "0.1.6" + resolved "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" + integrity sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco= + dependencies: + is-accessor-descriptor "^0.1.6" + is-data-descriptor "^0.1.4" + kind-of "^5.0.0" + +is-descriptor@^1.0.0, is-descriptor@^1.0.2: + version "1.0.2" + resolved "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" + integrity sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw= + dependencies: + is-accessor-descriptor "^1.0.0" + is-data-descriptor "^1.0.0" + kind-of "^6.0.2" + +is-directory@^0.3.1: + version "0.3.1" + resolved "https://registry.npm.taobao.org/is-directory/download/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" + integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= + +is-dotfile@^1.0.0: + version "1.0.3" + resolved "https://registry.npm.taobao.org/is-dotfile/download/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" + integrity sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE= + +is-equal-shallow@^0.1.3: + version "0.1.3" + resolved "https://registry.npm.taobao.org/is-equal-shallow/download/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" + integrity sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ= + dependencies: + is-primitive "^2.0.0" + +is-extendable@^0.1.0, is-extendable@^0.1.1: + version "0.1.1" + resolved "https://registry.npm.taobao.org/is-extendable/download/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= + +is-extendable@^1.0.1: + version "1.0.1" + resolved "https://registry.npm.taobao.org/is-extendable/download/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" + integrity sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ= + dependencies: + is-plain-object "^2.0.4" + +is-extglob@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/is-extglob/download/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" + integrity sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA= + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.npm.taobao.org/is-extglob/download/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + +is-finite@^1.0.0: + version "1.0.2" + resolved "https://registry.npm.taobao.org/is-finite/download/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" + integrity sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko= + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= + +is-generator-fn@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/is-generator-fn/download/is-generator-fn-1.0.0.tgz#969d49e1bb3329f6bb7f09089be26578b2ddd46a" + integrity sha1-lp1J4bszKfa7fwkIm+JleLLd1Go= + +is-glob@^2.0.0, is-glob@^2.0.1: + version "2.0.1" + resolved "https://registry.npm.taobao.org/is-glob/download/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" + integrity sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM= + dependencies: + is-extglob "^1.0.0" + +is-glob@^4.0.0: + version "4.0.1" + resolved "https://registry.npm.taobao.org/is-glob/download/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" + integrity sha1-dWfb6fL14kZ7x3q4PEopSCQHpdw= + dependencies: + is-extglob "^2.1.1" + +is-module@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/is-module/download/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" + integrity sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE= + +is-number@^2.1.0: + version "2.1.0" + resolved "https://registry.npm.taobao.org/is-number/download/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" + integrity sha1-Afy7s5NGOlSPL0ZszhbezknbkI8= + dependencies: + kind-of "^3.0.2" + +is-number@^3.0.0: + version "3.0.0" + resolved "https://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= + dependencies: + kind-of "^3.0.2" + +is-number@^4.0.0: + version "4.0.0" + resolved "https://registry.npm.taobao.org/is-number/download/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff" + integrity sha1-ACbjf1RU1z41bf5lZGmYZ8an8P8= + +is-obj@^1.0.0, is-obj@^1.0.1: + version "1.0.1" + resolved "https://registry.npm.taobao.org/is-obj/download/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" + integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= + +is-observable@^1.1.0: + version "1.1.0" + resolved "https://registry.npm.taobao.org/is-observable/download/is-observable-1.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-observable%2Fdownload%2Fis-observable-1.1.0.tgz#b3e986c8f44de950867cab5403f5a3465005975e" + integrity sha1-s+mGyPRN6VCGfKtUA/WjRlAFl14= + dependencies: + symbol-observable "^1.1.0" + +is-path-cwd@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/is-path-cwd/download/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" + integrity sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0= + +is-path-in-cwd@^1.0.0: + version "1.0.1" + resolved "https://registry.npm.taobao.org/is-path-in-cwd/download/is-path-in-cwd-1.0.1.tgz#5ac48b345ef675339bd6c7a48a912110b241cf52" + integrity sha1-WsSLNF72dTOb1sekipEhELJBz1I= + dependencies: + is-path-inside "^1.0.0" + +is-path-inside@^1.0.0: + version "1.0.1" + resolved "https://registry.npm.taobao.org/is-path-inside/download/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" + integrity sha1-jvW33lBDej/cprToZe96pVy0gDY= + dependencies: + path-is-inside "^1.0.1" + +is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.npm.taobao.org/is-plain-object/download/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + integrity sha1-LBY7P6+xtgbZ0Xko8FwqHDjgdnc= + dependencies: + isobject "^3.0.1" + +is-posix-bracket@^0.1.0: + version "0.1.1" + resolved "https://registry.npm.taobao.org/is-posix-bracket/download/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" + integrity sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q= + +is-primitive@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/is-primitive/download/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" + integrity sha1-IHurkWOEmcB7Kt8kCkGochADRXU= + +is-promise@^2.1.0: + version "2.1.0" + resolved "https://registry.npm.taobao.org/is-promise/download/is-promise-2.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-promise%2Fdownload%2Fis-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" + integrity sha1-eaKp7OfwlugPNtKy87wWwf9L8/o= + +is-regex@^1.0.4: + version "1.0.4" + resolved "https://registry.npm.taobao.org/is-regex/download/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" + integrity sha1-VRdIm1RwkbCTDglWVM7SXul+lJE= + dependencies: + has "^1.0.1" + +is-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/is-regexp/download/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" + integrity sha1-/S2INUXEa6xaYz57mgnof6LLUGk= + +is-stream@^1.1.0: + version "1.1.0" + resolved "https://registry.npm.taobao.org/is-stream/download/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= + +is-symbol@^1.0.2: + version "1.0.2" + resolved "https://registry.npm.taobao.org/is-symbol/download/is-symbol-1.0.2.tgz#a055f6ae57192caee329e7a860118b497a950f38" + integrity sha1-oFX2rlcZLK7jKeeoYBGLSXqVDzg= + dependencies: + has-symbols "^1.0.0" + +is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/is-typedarray/download/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= + +is-utf8@^0.2.0: + version "0.2.1" + resolved "https://registry.npm.taobao.org/is-utf8/download/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" + integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= + +is-windows@^1.0.2: + version "1.0.2" + resolved "https://registry.npm.taobao.org/is-windows/download/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + integrity sha1-0YUOuXkezRjmGCzhKjDzlmNLsZ0= + +is-wsl@^1.1.0: + version "1.1.0" + resolved "https://registry.npm.taobao.org/is-wsl/download/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" + integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= + +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.npm.taobao.org/isarray/download/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= + +isarray@1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/isexe/download/isexe-2.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fisexe%2Fdownload%2Fisexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.npm.taobao.org/isobject/download/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= + dependencies: + isarray "1.0.0" + +isobject@^3.0.0, isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.npm.taobao.org/isobject/download/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= + +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.npm.taobao.org/isstream/download/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= + +istanbul-api@^1.3.1: + version "1.3.7" + resolved "https://registry.npm.taobao.org/istanbul-api/download/istanbul-api-1.3.7.tgz#a86c770d2b03e11e3f778cd7aedd82d2722092aa" + integrity sha1-qGx3DSsD4R4/d4zXrt2C0nIgkqo= + dependencies: + async "^2.1.4" + fileset "^2.0.2" + istanbul-lib-coverage "^1.2.1" + istanbul-lib-hook "^1.2.2" + istanbul-lib-instrument "^1.10.2" + istanbul-lib-report "^1.1.5" + istanbul-lib-source-maps "^1.2.6" + istanbul-reports "^1.5.1" + js-yaml "^3.7.0" + mkdirp "^0.5.1" + once "^1.4.0" + +istanbul-lib-coverage@^1.2.0, istanbul-lib-coverage@^1.2.1: + version "1.2.1" + resolved "https://registry.npm.taobao.org/istanbul-lib-coverage/download/istanbul-lib-coverage-1.2.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fistanbul-lib-coverage%2Fdownload%2Fistanbul-lib-coverage-1.2.1.tgz#ccf7edcd0a0bb9b8f729feeb0930470f9af664f0" + integrity sha1-zPftzQoLubj3Kf7rCTBHD5r2ZPA= + +istanbul-lib-hook@^1.2.2: + version "1.2.2" + resolved "https://registry.npm.taobao.org/istanbul-lib-hook/download/istanbul-lib-hook-1.2.2.tgz#bc6bf07f12a641fbf1c85391d0daa8f0aea6bf86" + integrity sha1-vGvwfxKmQfvxyFOR0Nqo8K6mv4Y= + dependencies: + append-transform "^0.4.0" + +istanbul-lib-instrument@^1.10.1, istanbul-lib-instrument@^1.10.2: + version "1.10.2" + resolved "https://registry.npm.taobao.org/istanbul-lib-instrument/download/istanbul-lib-instrument-1.10.2.tgz#1f55ed10ac3c47f2bdddd5307935126754d0a9ca" + integrity sha1-H1XtEKw8R/K93dUweTUSZ1TQqco= + dependencies: + babel-generator "^6.18.0" + babel-template "^6.16.0" + babel-traverse "^6.18.0" + babel-types "^6.18.0" + babylon "^6.18.0" + istanbul-lib-coverage "^1.2.1" + semver "^5.3.0" + +istanbul-lib-report@^1.1.5: + version "1.1.5" + resolved "https://registry.npm.taobao.org/istanbul-lib-report/download/istanbul-lib-report-1.1.5.tgz#f2a657fc6282f96170aaf281eb30a458f7f4170c" + integrity sha1-8qZX/GKC+WFwqvKB6zCkWPf0Fww= + dependencies: + istanbul-lib-coverage "^1.2.1" + mkdirp "^0.5.1" + path-parse "^1.0.5" + supports-color "^3.1.2" + +istanbul-lib-source-maps@^1.2.4, istanbul-lib-source-maps@^1.2.6: + version "1.2.6" + resolved "https://registry.npm.taobao.org/istanbul-lib-source-maps/download/istanbul-lib-source-maps-1.2.6.tgz#37b9ff661580f8fca11232752ee42e08c6675d8f" + integrity sha1-N7n/ZhWA+PyhEjJ1LuQuCMZnXY8= + dependencies: + debug "^3.1.0" + istanbul-lib-coverage "^1.2.1" + mkdirp "^0.5.1" + rimraf "^2.6.1" + source-map "^0.5.3" + +istanbul-reports@^1.5.1: + version "1.5.1" + resolved "https://registry.npm.taobao.org/istanbul-reports/download/istanbul-reports-1.5.1.tgz#97e4dbf3b515e8c484caea15d6524eebd3ff4e1a" + integrity sha1-l+Tb87UV6MSEyuoV1lJO69P/Tho= + dependencies: + handlebars "^4.0.3" + +jest-changed-files@^23.4.2: + version "23.4.2" + resolved "https://registry.npm.taobao.org/jest-changed-files/download/jest-changed-files-23.4.2.tgz#1eed688370cd5eebafe4ae93d34bb3b64968fe83" + integrity sha1-Hu1og3DNXuuv5K6T00uztklo/oM= + dependencies: + throat "^4.0.0" + +jest-cli@^23.6.0: + version "23.6.0" + resolved "https://registry.npm.taobao.org/jest-cli/download/jest-cli-23.6.0.tgz#61ab917744338f443ef2baa282ddffdd658a5da4" + integrity sha1-YauRd0Qzj0Q+8rqigt3/3WWKXaQ= + dependencies: + ansi-escapes "^3.0.0" + chalk "^2.0.1" + exit "^0.1.2" + glob "^7.1.2" + graceful-fs "^4.1.11" + import-local "^1.0.0" + is-ci "^1.0.10" + istanbul-api "^1.3.1" + istanbul-lib-coverage "^1.2.0" + istanbul-lib-instrument "^1.10.1" + istanbul-lib-source-maps "^1.2.4" + jest-changed-files "^23.4.2" + jest-config "^23.6.0" + jest-environment-jsdom "^23.4.0" + jest-get-type "^22.1.0" + jest-haste-map "^23.6.0" + jest-message-util "^23.4.0" + jest-regex-util "^23.3.0" + jest-resolve-dependencies "^23.6.0" + jest-runner "^23.6.0" + jest-runtime "^23.6.0" + jest-snapshot "^23.6.0" + jest-util "^23.4.0" + jest-validate "^23.6.0" + jest-watcher "^23.4.0" + jest-worker "^23.2.0" + micromatch "^2.3.11" + node-notifier "^5.2.1" + prompts "^0.1.9" + realpath-native "^1.0.0" + rimraf "^2.5.4" + slash "^1.0.0" + string-length "^2.0.0" + strip-ansi "^4.0.0" + which "^1.2.12" + yargs "^11.0.0" + +jest-config@^23.6.0: + version "23.6.0" + resolved "https://registry.npm.taobao.org/jest-config/download/jest-config-23.6.0.tgz#f82546a90ade2d8c7026fbf6ac5207fc22f8eb1d" + integrity sha1-+CVGqQreLYxwJvv2rFIH/CL46x0= + dependencies: + babel-core "^6.0.0" + babel-jest "^23.6.0" + chalk "^2.0.1" + glob "^7.1.1" + jest-environment-jsdom "^23.4.0" + jest-environment-node "^23.4.0" + jest-get-type "^22.1.0" + jest-jasmine2 "^23.6.0" + jest-regex-util "^23.3.0" + jest-resolve "^23.6.0" + jest-util "^23.4.0" + jest-validate "^23.6.0" + micromatch "^2.3.11" + pretty-format "^23.6.0" + +jest-diff@^23.6.0: + version "23.6.0" + resolved "https://registry.npm.taobao.org/jest-diff/download/jest-diff-23.6.0.tgz#1500f3f16e850bb3d71233408089be099f610c7d" + integrity sha1-FQDz8W6FC7PXEjNAgIm+CZ9hDH0= + dependencies: + chalk "^2.0.1" + diff "^3.2.0" + jest-get-type "^22.1.0" + pretty-format "^23.6.0" + +jest-docblock@^23.2.0: + version "23.2.0" + resolved "https://registry.npm.taobao.org/jest-docblock/download/jest-docblock-23.2.0.tgz#f085e1f18548d99fdd69b20207e6fd55d91383a7" + integrity sha1-8IXh8YVI2Z/dabICB+b9VdkTg6c= + dependencies: + detect-newline "^2.1.0" + +jest-each@^23.6.0: + version "23.6.0" + resolved "https://registry.npm.taobao.org/jest-each/download/jest-each-23.6.0.tgz#ba0c3a82a8054387016139c733a05242d3d71575" + integrity sha1-ugw6gqgFQ4cBYTnHM6BSQtPXFXU= + dependencies: + chalk "^2.0.1" + pretty-format "^23.6.0" + +jest-environment-jsdom@^23.4.0: + version "23.4.0" + resolved "https://registry.npm.taobao.org/jest-environment-jsdom/download/jest-environment-jsdom-23.4.0.tgz#056a7952b3fea513ac62a140a2c368c79d9e6023" + integrity sha1-BWp5UrP+pROsYqFAosNox52eYCM= + dependencies: + jest-mock "^23.2.0" + jest-util "^23.4.0" + jsdom "^11.5.1" + +jest-environment-node@^23.4.0: + version "23.4.0" + resolved "https://registry.npm.taobao.org/jest-environment-node/download/jest-environment-node-23.4.0.tgz#57e80ed0841dea303167cce8cd79521debafde10" + integrity sha1-V+gO0IQd6jAxZ8zozXlSHeuv3hA= + dependencies: + jest-mock "^23.2.0" + jest-util "^23.4.0" + +jest-get-type@^22.1.0: + version "22.4.3" + resolved "https://registry.npm.taobao.org/jest-get-type/download/jest-get-type-22.4.3.tgz#e3a8504d8479342dd4420236b322869f18900ce4" + integrity sha1-46hQTYR5NC3UQgI2syKGnxiQDOQ= + +jest-haste-map@^23.6.0: + version "23.6.0" + resolved "https://registry.npm.taobao.org/jest-haste-map/download/jest-haste-map-23.6.0.tgz?cache=0&sync_timestamp=1560416959289&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-haste-map%2Fdownload%2Fjest-haste-map-23.6.0.tgz#2e3eb997814ca696d62afdb3f2529f5bbc935e16" + integrity sha1-Lj65l4FMppbWKv2z8lKfW7yTXhY= + dependencies: + fb-watchman "^2.0.0" + graceful-fs "^4.1.11" + invariant "^2.2.4" + jest-docblock "^23.2.0" + jest-serializer "^23.0.1" + jest-worker "^23.2.0" + micromatch "^2.3.11" + sane "^2.0.0" + +jest-jasmine2@^23.6.0: + version "23.6.0" + resolved "https://registry.npm.taobao.org/jest-jasmine2/download/jest-jasmine2-23.6.0.tgz#840e937f848a6c8638df24360ab869cc718592e0" + integrity sha1-hA6Tf4SKbIY43yQ2CrhpzHGFkuA= + dependencies: + babel-traverse "^6.0.0" + chalk "^2.0.1" + co "^4.6.0" + expect "^23.6.0" + is-generator-fn "^1.0.0" + jest-diff "^23.6.0" + jest-each "^23.6.0" + jest-matcher-utils "^23.6.0" + jest-message-util "^23.4.0" + jest-snapshot "^23.6.0" + jest-util "^23.4.0" + pretty-format "^23.6.0" + +jest-leak-detector@^23.6.0: + version "23.6.0" + resolved "https://registry.npm.taobao.org/jest-leak-detector/download/jest-leak-detector-23.6.0.tgz#e4230fd42cf381a1a1971237ad56897de7e171de" + integrity sha1-5CMP1CzzgaGhlxI3rVaJfefhcd4= + dependencies: + pretty-format "^23.6.0" + +jest-matcher-utils@^23.6.0: + version "23.6.0" + resolved "https://registry.npm.taobao.org/jest-matcher-utils/download/jest-matcher-utils-23.6.0.tgz#726bcea0c5294261a7417afb6da3186b4b8cac80" + integrity sha1-cmvOoMUpQmGnQXr7baMYa0uMrIA= + dependencies: + chalk "^2.0.1" + jest-get-type "^22.1.0" + pretty-format "^23.6.0" + +jest-message-util@^23.4.0: + version "23.4.0" + resolved "https://registry.npm.taobao.org/jest-message-util/download/jest-message-util-23.4.0.tgz#17610c50942349508d01a3d1e0bda2c079086a9f" + integrity sha1-F2EMUJQjSVCNAaPR4L2iwHkIap8= + dependencies: + "@babel/code-frame" "^7.0.0-beta.35" + chalk "^2.0.1" + micromatch "^2.3.11" + slash "^1.0.0" + stack-utils "^1.0.1" + +jest-mock@^23.2.0: + version "23.2.0" + resolved "https://registry.npm.taobao.org/jest-mock/download/jest-mock-23.2.0.tgz#ad1c60f29e8719d47c26e1138098b6d18b261134" + integrity sha1-rRxg8p6HGdR8JuETgJi20YsmETQ= + +jest-regex-util@^23.3.0: + version "23.3.0" + resolved "https://registry.npm.taobao.org/jest-regex-util/download/jest-regex-util-23.3.0.tgz#5f86729547c2785c4002ceaa8f849fe8ca471bc5" + integrity sha1-X4ZylUfCeFxAAs6qj4Sf6MpHG8U= + +jest-resolve-dependencies@^23.6.0: + version "23.6.0" + resolved "https://registry.npm.taobao.org/jest-resolve-dependencies/download/jest-resolve-dependencies-23.6.0.tgz#b4526af24c8540d9a3fab102c15081cf509b723d" + integrity sha1-tFJq8kyFQNmj+rECwVCBz1Cbcj0= + dependencies: + jest-regex-util "^23.3.0" + jest-snapshot "^23.6.0" + +jest-resolve@^23.6.0: + version "23.6.0" + resolved "https://registry.npm.taobao.org/jest-resolve/download/jest-resolve-23.6.0.tgz#cf1d1a24ce7ee7b23d661c33ba2150f3aebfa0ae" + integrity sha1-zx0aJM5+57I9ZhwzuiFQ866/oK4= + dependencies: + browser-resolve "^1.11.3" + chalk "^2.0.1" + realpath-native "^1.0.0" + +jest-runner@^23.6.0: + version "23.6.0" + resolved "https://registry.npm.taobao.org/jest-runner/download/jest-runner-23.6.0.tgz#3894bd219ffc3f3cb94dc48a4170a2e6f23a5a38" + integrity sha1-OJS9IZ/8Pzy5TcSKQXCi5vI6Wjg= + dependencies: + exit "^0.1.2" + graceful-fs "^4.1.11" + jest-config "^23.6.0" + jest-docblock "^23.2.0" + jest-haste-map "^23.6.0" + jest-jasmine2 "^23.6.0" + jest-leak-detector "^23.6.0" + jest-message-util "^23.4.0" + jest-runtime "^23.6.0" + jest-util "^23.4.0" + jest-worker "^23.2.0" + source-map-support "^0.5.6" + throat "^4.0.0" + +jest-runtime@^23.6.0: + version "23.6.0" + resolved "https://registry.npm.taobao.org/jest-runtime/download/jest-runtime-23.6.0.tgz#059e58c8ab445917cd0e0d84ac2ba68de8f23082" + integrity sha1-BZ5YyKtEWRfNDg2ErCumjejyMII= + dependencies: + babel-core "^6.0.0" + babel-plugin-istanbul "^4.1.6" + chalk "^2.0.1" + convert-source-map "^1.4.0" + exit "^0.1.2" + fast-json-stable-stringify "^2.0.0" + graceful-fs "^4.1.11" + jest-config "^23.6.0" + jest-haste-map "^23.6.0" + jest-message-util "^23.4.0" + jest-regex-util "^23.3.0" + jest-resolve "^23.6.0" + jest-snapshot "^23.6.0" + jest-util "^23.4.0" + jest-validate "^23.6.0" + micromatch "^2.3.11" + realpath-native "^1.0.0" + slash "^1.0.0" + strip-bom "3.0.0" + write-file-atomic "^2.1.0" + yargs "^11.0.0" + +jest-serializer@^23.0.1: + version "23.0.1" + resolved "https://registry.npm.taobao.org/jest-serializer/download/jest-serializer-23.0.1.tgz#a3776aeb311e90fe83fab9e533e85102bd164165" + integrity sha1-o3dq6zEekP6D+rnlM+hRAr0WQWU= + +jest-snapshot@^23.6.0: + version "23.6.0" + resolved "https://registry.npm.taobao.org/jest-snapshot/download/jest-snapshot-23.6.0.tgz#f9c2625d1b18acda01ec2d2b826c0ce58a5aa17a" + integrity sha1-+cJiXRsYrNoB7C0rgmwM5YpaoXo= + dependencies: + babel-types "^6.0.0" + chalk "^2.0.1" + jest-diff "^23.6.0" + jest-matcher-utils "^23.6.0" + jest-message-util "^23.4.0" + jest-resolve "^23.6.0" + mkdirp "^0.5.1" + natural-compare "^1.4.0" + pretty-format "^23.6.0" + semver "^5.5.0" + +jest-util@^23.4.0: + version "23.4.0" + resolved "https://registry.npm.taobao.org/jest-util/download/jest-util-23.4.0.tgz#4d063cb927baf0a23831ff61bec2cbbf49793561" + integrity sha1-TQY8uSe68KI4Mf9hvsLLv0l5NWE= + dependencies: + callsites "^2.0.0" + chalk "^2.0.1" + graceful-fs "^4.1.11" + is-ci "^1.0.10" + jest-message-util "^23.4.0" + mkdirp "^0.5.1" + slash "^1.0.0" + source-map "^0.6.0" + +jest-validate@^23.6.0: + version "23.6.0" + resolved "https://registry.npm.taobao.org/jest-validate/download/jest-validate-23.6.0.tgz#36761f99d1ed33fcd425b4e4c5595d62b6597474" + integrity sha1-NnYfmdHtM/zUJbTkxVldYrZZdHQ= + dependencies: + chalk "^2.0.1" + jest-get-type "^22.1.0" + leven "^2.1.0" + pretty-format "^23.6.0" + +jest-watcher@^23.4.0: + version "23.4.0" + resolved "https://registry.npm.taobao.org/jest-watcher/download/jest-watcher-23.4.0.tgz#d2e28ce74f8dad6c6afc922b92cabef6ed05c91c" + integrity sha1-0uKM50+NrWxq/JIrksq+9u0FyRw= + dependencies: + ansi-escapes "^3.0.0" + chalk "^2.0.1" + string-length "^2.0.0" + +jest-worker@^23.2.0: + version "23.2.0" + resolved "https://registry.npm.taobao.org/jest-worker/download/jest-worker-23.2.0.tgz#faf706a8da36fae60eb26957257fa7b5d8ea02b9" + integrity sha1-+vcGqNo2+uYOsmlXJX+ntdjqArk= + dependencies: + merge-stream "^1.0.1" + +jest@^23.6.0: + version "23.6.0" + resolved "https://registry.npm.taobao.org/jest/download/jest-23.6.0.tgz#ad5835e923ebf6e19e7a1d7529a432edfee7813d" + integrity sha1-rVg16SPr9uGeeh11KaQy7f7ngT0= + dependencies: + import-local "^1.0.0" + jest-cli "^23.6.0" + +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.npm.taobao.org/js-tokens/download/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha1-GSA/tZmR35jjoocFDUZHzerzJJk= + +js-tokens@^3.0.2: + version "3.0.2" + resolved "https://registry.npm.taobao.org/js-tokens/download/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" + integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls= + +js-yaml@^3.11.0, js-yaml@^3.13.1, js-yaml@^3.7.0: + version "3.13.1" + resolved "https://registry.npm.taobao.org/js-yaml/download/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" + integrity sha1-r/FRswv9+o5J4F2iLnQV6d+jeEc= + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.npm.taobao.org/jsbn/download/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= + +jsdom@^11.5.1: + version "11.12.0" + resolved "https://registry.npm.taobao.org/jsdom/download/jsdom-11.12.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsdom%2Fdownload%2Fjsdom-11.12.0.tgz#1a80d40ddd378a1de59656e9e6dc5a3ba8657bc8" + integrity sha1-GoDUDd03ih3lllbp5txaO6hle8g= + dependencies: + abab "^2.0.0" + acorn "^5.5.3" + acorn-globals "^4.1.0" + array-equal "^1.0.0" + cssom ">= 0.3.2 < 0.4.0" + cssstyle "^1.0.0" + data-urls "^1.0.0" + domexception "^1.0.1" + escodegen "^1.9.1" + html-encoding-sniffer "^1.0.2" + left-pad "^1.3.0" + nwsapi "^2.0.7" + parse5 "4.0.0" + pn "^1.1.0" + request "^2.87.0" + request-promise-native "^1.0.5" + sax "^1.2.4" + symbol-tree "^3.2.2" + tough-cookie "^2.3.4" + w3c-hr-time "^1.0.1" + webidl-conversions "^4.0.2" + whatwg-encoding "^1.0.3" + whatwg-mimetype "^2.1.0" + whatwg-url "^6.4.1" + ws "^5.2.0" + xml-name-validator "^3.0.0" + +jsesc@^1.3.0: + version "1.3.0" + resolved "https://registry.npm.taobao.org/jsesc/download/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" + integrity sha1-RsP+yMGJKxKwgz25vHYiF226s0s= + +json-parse-better-errors@^1.0.1: + version "1.0.2" + resolved "https://registry.npm.taobao.org/json-parse-better-errors/download/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" + integrity sha1-u4Z8+zRQ5pEHwTHRxRS6s9yLyqk= + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha1-afaofZUTq4u4/mO9sJecRI5oRmA= + +json-schema@0.2.3: + version "0.2.3" + resolved "https://registry.npm.taobao.org/json-schema/download/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= + +json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.npm.taobao.org/json-stringify-safe/download/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= + +json5@2.x: + version "2.1.0" + resolved "https://registry.npm.taobao.org/json5/download/json5-2.1.0.tgz#e7a0c62c48285c628d20a10b85c89bb807c32850" + integrity sha1-56DGLEgoXGKNIKELhcibuAfDKFA= + dependencies: + minimist "^1.2.0" + +json5@^0.5.1: + version "0.5.1" + resolved "https://registry.npm.taobao.org/json5/download/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" + integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE= + +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.npm.taobao.org/jsonfile/download/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= + optionalDependencies: + graceful-fs "^4.1.6" + +jsprim@^1.2.2: + version "1.4.1" + resolved "https://registry.npm.taobao.org/jsprim/download/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" + integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.2.3" + verror "1.10.0" + +kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: + version "3.2.2" + resolved "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= + dependencies: + is-buffer "^1.1.5" + +kind-of@^4.0.0: + version "4.0.0" + resolved "https://registry.npm.taobao.org/kind-of/download/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" + integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= + dependencies: + is-buffer "^1.1.5" + +kind-of@^5.0.0: + version "5.1.0" + resolved "https://registry.npm.taobao.org/kind-of/download/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" + integrity sha1-cpyR4thXt6QZofmqZWhcTDP1hF0= + +kind-of@^6.0.0, kind-of@^6.0.2: + version "6.0.2" + resolved "https://registry.npm.taobao.org/kind-of/download/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" + integrity sha1-ARRrNqYhjmTljzqNZt5df8b20FE= + +kleur@^2.0.1: + version "2.0.2" + resolved "https://registry.npm.taobao.org/kleur/download/kleur-2.0.2.tgz#b704f4944d95e255d038f0cb05fb8a602c55a300" + integrity sha1-twT0lE2V4lXQOPDLBfuKYCxVowA= + +lcid@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/lcid/download/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" + integrity sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU= + dependencies: + invert-kv "^1.0.0" + +lcov-parse@^0.0.10: + version "0.0.10" + resolved "https://registry.npm.taobao.org/lcov-parse/download/lcov-parse-0.0.10.tgz#1b0b8ff9ac9c7889250582b70b71315d9da6d9a3" + integrity sha1-GwuP+ayceIklBYK3C3ExXZ2m2aM= + +left-pad@^1.3.0: + version "1.3.0" + resolved "https://registry.npm.taobao.org/left-pad/download/left-pad-1.3.0.tgz#5b8a3a7765dfe001261dde915589e782f8c94d1e" + integrity sha1-W4o6d2Xf4AEmHd6RVYnngvjJTR4= + +leven@^2.1.0: + version "2.1.0" + resolved "https://registry.npm.taobao.org/leven/download/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580" + integrity sha1-wuep93IJTe6dNCAq6KzORoeHVYA= + +levn@~0.3.0: + version "0.3.0" + resolved "https://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + +lint-staged@^8.1.0: + version "8.2.1" + resolved "https://registry.npm.taobao.org/lint-staged/download/lint-staged-8.2.1.tgz#752fcf222d9d28f323a3b80f1e668f3654ff221f" + integrity sha1-dS/PIi2dKPMjo7gPHmaPNlT/Ih8= + dependencies: + chalk "^2.3.1" + commander "^2.14.1" + cosmiconfig "^5.2.0" + debug "^3.1.0" + dedent "^0.7.0" + del "^3.0.0" + execa "^1.0.0" + g-status "^2.0.2" + is-glob "^4.0.0" + is-windows "^1.0.2" + listr "^0.14.2" + listr-update-renderer "^0.5.0" + lodash "^4.17.11" + log-symbols "^2.2.0" + micromatch "^3.1.8" + npm-which "^3.0.1" + p-map "^1.1.1" + path-is-inside "^1.0.2" + pify "^3.0.0" + please-upgrade-node "^3.0.2" + staged-git-files "1.1.2" + string-argv "^0.0.2" + stringify-object "^3.2.2" + yup "^0.27.0" + +listr-silent-renderer@^1.1.1: + version "1.1.1" + resolved "https://registry.npm.taobao.org/listr-silent-renderer/download/listr-silent-renderer-1.1.1.tgz#924b5a3757153770bf1a8e3fbf74b8bbf3f9242e" + integrity sha1-kktaN1cVN3C/Go4/v3S4u/P5JC4= + +listr-update-renderer@^0.5.0: + version "0.5.0" + resolved "https://registry.npm.taobao.org/listr-update-renderer/download/listr-update-renderer-0.5.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flistr-update-renderer%2Fdownload%2Flistr-update-renderer-0.5.0.tgz#4ea8368548a7b8aecb7e06d8c95cb45ae2ede6a2" + integrity sha1-Tqg2hUinuK7LfgbYyVy0WuLt5qI= + dependencies: + chalk "^1.1.3" + cli-truncate "^0.2.1" + elegant-spinner "^1.0.1" + figures "^1.7.0" + indent-string "^3.0.0" + log-symbols "^1.0.2" + log-update "^2.3.0" + strip-ansi "^3.0.1" + +listr-verbose-renderer@^0.5.0: + version "0.5.0" + resolved "https://registry.npm.taobao.org/listr-verbose-renderer/download/listr-verbose-renderer-0.5.0.tgz#f1132167535ea4c1261102b9f28dac7cba1e03db" + integrity sha1-8RMhZ1NepMEmEQK58o2sfLoeA9s= + dependencies: + chalk "^2.4.1" + cli-cursor "^2.1.0" + date-fns "^1.27.2" + figures "^2.0.0" + +listr@^0.14.2: + version "0.14.3" + resolved "https://registry.npm.taobao.org/listr/download/listr-0.14.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flistr%2Fdownload%2Flistr-0.14.3.tgz#2fea909604e434be464c50bddba0d496928fa586" + integrity sha1-L+qQlgTkNL5GTFC926DUlpKPpYY= + dependencies: + "@samverschueren/stream-to-observable" "^0.3.0" + is-observable "^1.1.0" + is-promise "^2.1.0" + is-stream "^1.1.0" + listr-silent-renderer "^1.1.1" + listr-update-renderer "^0.5.0" + listr-verbose-renderer "^0.5.0" + p-map "^2.0.0" + rxjs "^6.3.3" + +load-json-file@^1.0.0: + version "1.1.0" + resolved "https://registry.npm.taobao.org/load-json-file/download/load-json-file-1.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fload-json-file%2Fdownload%2Fload-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" + integrity sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA= + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + pinkie-promise "^2.0.0" + strip-bom "^2.0.0" + +locate-path@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/locate-path/download/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" + integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= + dependencies: + p-locate "^2.0.0" + path-exists "^3.0.0" + +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.npm.taobao.org/locate-path/download/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + integrity sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4= + dependencies: + p-locate "^3.0.0" + path-exists "^3.0.0" + +lodash.isempty@4.4.0: + version "4.4.0" + resolved "https://registry.npm.taobao.org/lodash.isempty/download/lodash.isempty-4.4.0.tgz#6f86cbedd8be4ec987be9aaf33c9684db1b31e7e" + integrity sha1-b4bL7di+TsmHvpqvM8loTbGzHn4= + +lodash.omitby@4.6.0: + version "4.6.0" + resolved "https://registry.npm.taobao.org/lodash.omitby/download/lodash.omitby-4.6.0.tgz#5c15ff4754ad555016b53c041311e8f079204791" + integrity sha1-XBX/R1StVVAWtTwEExHo8HkgR5E= + +lodash.sortby@^4.7.0: + version "4.7.0" + resolved "https://registry.npm.taobao.org/lodash.sortby/download/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" + integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= + +lodash@^4.17.11, lodash@^4.17.4: + version "4.17.11" + resolved "https://registry.npm.taobao.org/lodash/download/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" + integrity sha1-s56mIp72B+zYniyN8SU2iRysm40= + +log-driver@^1.2.7: + version "1.2.7" + resolved "https://registry.npm.taobao.org/log-driver/download/log-driver-1.2.7.tgz#63b95021f0702fedfa2c9bb0a24e7797d71871d8" + integrity sha1-Y7lQIfBwL+36LJuwok53l9cYcdg= + +log-symbols@^1.0.2: + version "1.0.2" + resolved "https://registry.npm.taobao.org/log-symbols/download/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18" + integrity sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg= + dependencies: + chalk "^1.0.0" + +log-symbols@^2.2.0: + version "2.2.0" + resolved "https://registry.npm.taobao.org/log-symbols/download/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a" + integrity sha1-V0Dhxdbw39pK2TI7UzIQfva0xAo= + dependencies: + chalk "^2.0.1" + +log-update@^2.3.0: + version "2.3.0" + resolved "https://registry.npm.taobao.org/log-update/download/log-update-2.3.0.tgz#88328fd7d1ce7938b29283746f0b1bc126b24708" + integrity sha1-iDKP19HOeTiykoN0bwsbwSayRwg= + dependencies: + ansi-escapes "^3.0.0" + cli-cursor "^2.0.0" + wrap-ansi "^3.0.1" + +loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: + version "1.4.0" + resolved "https://registry.npm.taobao.org/loose-envify/download/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + integrity sha1-ce5R+nvkyuwaY4OffmgtgTLTDK8= + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +lru-cache@^4.0.1: + version "4.1.5" + resolved "https://registry.npm.taobao.org/lru-cache/download/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" + integrity sha1-i75Q6oW+1ZvJ4z3KuCNe6bz0Q80= + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" + +magic-string@0.25.1: + version "0.25.1" + resolved "https://registry.npm.taobao.org/magic-string/download/magic-string-0.25.1.tgz#b1c248b399cd7485da0fe7385c2fc7011843266e" + integrity sha1-scJIs5nNdIXaD+c4XC/HARhDJm4= + dependencies: + sourcemap-codec "^1.4.1" + +magic-string@^0.25.2: + version "0.25.2" + resolved "https://registry.npm.taobao.org/magic-string/download/magic-string-0.25.2.tgz#139c3a729515ec55e96e69e82a11fe890a293ad9" + integrity sha1-E5w6cpUV7FXpbmnoKhH+iQopOtk= + dependencies: + sourcemap-codec "^1.4.4" + +make-error@1.x: + version "1.3.5" + resolved "https://registry.npm.taobao.org/make-error/download/make-error-1.3.5.tgz#efe4e81f6db28cadd605c70f29c831b58ef776c8" + integrity sha1-7+ToH22yjK3WBccPKcgxtY73dsg= + +makeerror@1.0.x: + version "1.0.11" + resolved "https://registry.npm.taobao.org/makeerror/download/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c" + integrity sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw= + dependencies: + tmpl "1.0.x" + +map-cache@^0.2.2: + version "0.2.2" + resolved "https://registry.npm.taobao.org/map-cache/download/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= + +map-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/map-visit/download/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" + integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= + dependencies: + object-visit "^1.0.0" + +matcher@^1.0.0: + version "1.1.1" + resolved "https://registry.npm.taobao.org/matcher/download/matcher-1.1.1.tgz#51d8301e138f840982b338b116bb0c09af62c1c2" + integrity sha1-UdgwHhOPhAmCszixFrsMCa9iwcI= + dependencies: + escape-string-regexp "^1.0.4" + +math-random@^1.0.1: + version "1.0.4" + resolved "https://registry.npm.taobao.org/math-random/download/math-random-1.0.4.tgz#5dd6943c938548267016d4e34f057583080c514c" + integrity sha1-XdaUPJOFSCZwFtTjTwV1gwgMUUw= + +mem@^1.1.0: + version "1.1.0" + resolved "https://registry.npm.taobao.org/mem/download/mem-1.1.0.tgz?cache=0&sync_timestamp=1560604491560&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmem%2Fdownload%2Fmem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76" + integrity sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y= + dependencies: + mimic-fn "^1.0.0" + +merge-stream@^1.0.1: + version "1.0.1" + resolved "https://registry.npm.taobao.org/merge-stream/download/merge-stream-1.0.1.tgz#4041202d508a342ba00174008df0c251b8c135e1" + integrity sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE= + dependencies: + readable-stream "^2.0.1" + +merge@^1.2.0: + version "1.2.1" + resolved "https://registry.npm.taobao.org/merge/download/merge-1.2.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmerge%2Fdownload%2Fmerge-1.2.1.tgz#38bebf80c3220a8a487b6fcfb3941bb11720c145" + integrity sha1-OL6/gMMiCopIe2/Ps5QbsRcgwUU= + +micromatch@^2.3.11: + version "2.3.11" + resolved "https://registry.npm.taobao.org/micromatch/download/micromatch-2.3.11.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmicromatch%2Fdownload%2Fmicromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" + integrity sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU= + dependencies: + arr-diff "^2.0.0" + array-unique "^0.2.1" + braces "^1.8.2" + expand-brackets "^0.1.4" + extglob "^0.3.1" + filename-regex "^2.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.1" + kind-of "^3.0.2" + normalize-path "^2.0.1" + object.omit "^2.0.0" + parse-glob "^3.0.4" + regex-cache "^0.4.2" + +micromatch@^3.1.4, micromatch@^3.1.8: + version "3.1.10" + resolved "https://registry.npm.taobao.org/micromatch/download/micromatch-3.1.10.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmicromatch%2Fdownload%2Fmicromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" + integrity sha1-cIWbyVyYQJUvNZoGij/En57PrCM= + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + braces "^2.3.1" + define-property "^2.0.2" + extend-shallow "^3.0.2" + extglob "^2.0.4" + fragment-cache "^0.2.1" + kind-of "^6.0.2" + nanomatch "^1.2.9" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.2" + +mime-db@1.40.0: + version "1.40.0" + resolved "https://registry.npm.taobao.org/mime-db/download/mime-db-1.40.0.tgz#a65057e998db090f732a68f6c276d387d4126c32" + integrity sha1-plBX6ZjbCQ9zKmj2wnbTh9QSbDI= + +mime-types@^2.1.12, mime-types@~2.1.19: + version "2.1.24" + resolved "https://registry.npm.taobao.org/mime-types/download/mime-types-2.1.24.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime-types%2Fdownload%2Fmime-types-2.1.24.tgz#b6f8d0b3e951efb77dedeca194cff6d16f676f81" + integrity sha1-tvjQs+lR77d97eyhlM/20W9nb4E= + dependencies: + mime-db "1.40.0" + +mimic-fn@^1.0.0: + version "1.2.0" + resolved "https://registry.npm.taobao.org/mimic-fn/download/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" + integrity sha1-ggyGo5M0ZA6ZUWkovQP8qIBX0CI= + +mimic-response@^1.0.0: + version "1.0.1" + resolved "https://registry.npm.taobao.org/mimic-response/download/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" + integrity sha1-SSNTiHju9CBjy4o+OweYeBSHqxs= + +minimatch@^3.0.3, minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.npm.taobao.org/minimatch/download/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM= + dependencies: + brace-expansion "^1.1.7" + +minimist@0.0.8: + version "0.0.8" + resolved "https://registry.npm.taobao.org/minimist/download/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= + +minimist@^1.1.1, minimist@^1.2.0: + version "1.2.0" + resolved "https://registry.npm.taobao.org/minimist/download/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" + integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= + +minimist@~0.0.1: + version "0.0.10" + resolved "https://registry.npm.taobao.org/minimist/download/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" + integrity sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8= + +minipass@^2.2.1, minipass@^2.3.5: + version "2.3.5" + resolved "https://registry.npm.taobao.org/minipass/download/minipass-2.3.5.tgz#cacebe492022497f656b0f0f51e2682a9ed2d848" + integrity sha1-ys6+SSAiSX9law8PUeJoKp7S2Eg= + dependencies: + safe-buffer "^5.1.2" + yallist "^3.0.0" + +minizlib@^1.2.1: + version "1.2.1" + resolved "https://registry.npm.taobao.org/minizlib/download/minizlib-1.2.1.tgz#dd27ea6136243c7c880684e8672bb3a45fd9b614" + integrity sha1-3SfqYTYkPHyIBoToZyuzpF/ZthQ= + dependencies: + minipass "^2.2.1" + +mixin-deep@^1.2.0: + version "1.3.1" + resolved "https://registry.npm.taobao.org/mixin-deep/download/mixin-deep-1.3.1.tgz#a49e7268dce1a0d9698e45326c5626df3543d0fe" + integrity sha1-pJ5yaNzhoNlpjkUybFYm3zVD0P4= + dependencies: + for-in "^1.0.2" + is-extendable "^1.0.1" + +mkdirp@0.x, mkdirp@^0.5.0, mkdirp@^0.5.1: + version "0.5.1" + resolved "https://registry.npm.taobao.org/mkdirp/download/mkdirp-0.5.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmkdirp%2Fdownload%2Fmkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" + integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= + dependencies: + minimist "0.0.8" + +mobx-react@^5.4.2: + version "5.4.4" + resolved "https://registry.npm.taobao.org/mobx-react/download/mobx-react-5.4.4.tgz#b3de9c6eabcd0ed8a40036888cb0221ab9568b80" + integrity sha1-s96cbqvNDtikADaIjLAiGrlWi4A= + dependencies: + hoist-non-react-statics "^3.0.0" + react-lifecycles-compat "^3.0.2" + +mobx@^4.7.0: + version "4.11.0" + resolved "https://registry.npm.taobao.org/mobx/download/mobx-4.11.0.tgz#c3bfcab96623d1f2f2eb4d1f01199c225f62361e" + integrity sha1-w7/KuWYj0fLy600fARmcIl9iNh4= + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + +ms@^2.1.1: + version "2.1.2" + resolved "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk= + +nan@^2.12.1, nan@^2.13.2: + version "2.14.0" + resolved "https://registry.npm.taobao.org/nan/download/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c" + integrity sha1-eBj3IgJ7JFmobwKV1DTR/CM2xSw= + +nanomatch@^1.2.9: + version "1.2.13" + resolved "https://registry.npm.taobao.org/nanomatch/download/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" + integrity sha1-uHqKpPwN6P5r6IiVs4mD/yZb0Rk= + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + define-property "^2.0.2" + extend-shallow "^3.0.2" + fragment-cache "^0.2.1" + is-windows "^1.0.2" + kind-of "^6.0.2" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +napi-build-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.npm.taobao.org/napi-build-utils/download/napi-build-utils-1.0.1.tgz#1381a0f92c39d66bf19852e7873432fc2123e508" + integrity sha1-E4Gg+Sw51mvxmFLnhzQy/CEj5Qg= + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.npm.taobao.org/natural-compare/download/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= + +needle@^2.2.1: + version "2.4.0" + resolved "https://registry.npm.taobao.org/needle/download/needle-2.4.0.tgz#6833e74975c444642590e15a750288c5f939b57c" + integrity sha1-aDPnSXXERGQlkOFadQKIxfk5tXw= + dependencies: + debug "^3.2.6" + iconv-lite "^0.4.4" + sax "^1.2.4" + +neo-async@^2.6.0: + version "2.6.1" + resolved "https://registry.npm.taobao.org/neo-async/download/neo-async-2.6.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fneo-async%2Fdownload%2Fneo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c" + integrity sha1-rCetpmFn+ohJpq3dg39rGJrSCBw= + +nice-try@^1.0.4: + version "1.0.5" + resolved "https://registry.npm.taobao.org/nice-try/download/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" + integrity sha1-ozeKdpbOfSI+iPybdkvX7xCJ42Y= + +node-abi@^2.7.0: + version "2.9.0" + resolved "https://registry.npm.taobao.org/node-abi/download/node-abi-2.9.0.tgz#ae4075b298dab2d92dd1e22c48ccc7ffd7f06200" + integrity sha1-rkB1spjastkt0eIsSMzH/9fwYgA= + dependencies: + semver "^5.4.1" + +node-int64@^0.4.0: + version "0.4.0" + resolved "https://registry.npm.taobao.org/node-int64/download/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" + integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= + +node-notifier@^5.2.1: + version "5.4.0" + resolved "https://registry.npm.taobao.org/node-notifier/download/node-notifier-5.4.0.tgz#7b455fdce9f7de0c63538297354f3db468426e6a" + integrity sha1-e0Vf3On33gxjU4KXNU89tGhCbmo= + dependencies: + growly "^1.3.0" + is-wsl "^1.1.0" + semver "^5.5.0" + shellwords "^0.1.1" + which "^1.3.0" + +node-pre-gyp@^0.12.0: + version "0.12.0" + resolved "https://registry.npm.taobao.org/node-pre-gyp/download/node-pre-gyp-0.12.0.tgz#39ba4bb1439da030295f899e3b520b7785766149" + integrity sha1-ObpLsUOdoDApX4meO1ILd4V2YUk= + dependencies: + detect-libc "^1.0.2" + mkdirp "^0.5.1" + needle "^2.2.1" + nopt "^4.0.1" + npm-packlist "^1.1.6" + npmlog "^4.0.2" + rc "^1.2.7" + rimraf "^2.6.1" + semver "^5.3.0" + tar "^4" + +noms@0.0.0: + version "0.0.0" + resolved "https://registry.npm.taobao.org/noms/download/noms-0.0.0.tgz#da8ebd9f3af9d6760919b27d9cdc8092a7332859" + integrity sha1-2o69nzr51nYJGbJ9nNyAkqczKFk= + dependencies: + inherits "^2.0.1" + readable-stream "~1.0.31" + +noop-logger@^0.1.1: + version "0.1.1" + resolved "https://registry.npm.taobao.org/noop-logger/download/noop-logger-0.1.1.tgz#94a2b1633c4f1317553007d8966fd0e841b6a4c2" + integrity sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI= + +nopt@^4.0.1: + version "4.0.1" + resolved "https://registry.npm.taobao.org/nopt/download/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" + integrity sha1-0NRoWv1UFRk8jHUFYC0NF81kR00= + dependencies: + abbrev "1" + osenv "^0.1.4" + +normalize-package-data@^2.3.2: + version "2.5.0" + resolved "https://registry.npm.taobao.org/normalize-package-data/download/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + integrity sha1-5m2xg4sgDB38IzIl0SyzZSDiNKg= + dependencies: + hosted-git-info "^2.1.4" + resolve "^1.10.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +normalize-path@^2.0.1, normalize-path@^2.1.1: + version "2.1.1" + resolved "https://registry.npm.taobao.org/normalize-path/download/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= + dependencies: + remove-trailing-separator "^1.0.1" + +npm-bundled@^1.0.1: + version "1.0.6" + resolved "https://registry.npm.taobao.org/npm-bundled/download/npm-bundled-1.0.6.tgz#e7ba9aadcef962bb61248f91721cd932b3fe6bdd" + integrity sha1-57qarc75YrthJI+RchzZMrP+a90= + +npm-packlist@^1.1.6: + version "1.4.1" + resolved "https://registry.npm.taobao.org/npm-packlist/download/npm-packlist-1.4.1.tgz#19064cdf988da80ea3cee45533879d90192bbfbc" + integrity sha1-GQZM35iNqA6jzuRVM4edkBkrv7w= + dependencies: + ignore-walk "^3.0.1" + npm-bundled "^1.0.1" + +npm-path@^2.0.2: + version "2.0.4" + resolved "https://registry.npm.taobao.org/npm-path/download/npm-path-2.0.4.tgz#c641347a5ff9d6a09e4d9bce5580c4f505278e64" + integrity sha1-xkE0el/51qCeTZvOVYDE9QUnjmQ= + dependencies: + which "^1.2.10" + +npm-run-path@^2.0.0: + version "2.0.2" + resolved "https://registry.npm.taobao.org/npm-run-path/download/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= + dependencies: + path-key "^2.0.0" + +npm-which@^3.0.1: + version "3.0.1" + resolved "https://registry.npm.taobao.org/npm-which/download/npm-which-3.0.1.tgz#9225f26ec3a285c209cae67c3b11a6b4ab7140aa" + integrity sha1-kiXybsOihcIJyuZ8OxGmtKtxQKo= + dependencies: + commander "^2.9.0" + npm-path "^2.0.2" + which "^1.2.10" + +npmlog@^4.0.1, npmlog@^4.0.2, npmlog@^4.1.2: + version "4.1.2" + resolved "https://registry.npm.taobao.org/npmlog/download/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" + integrity sha1-CKfyqL9zRgR3mp76StXMcXq7lUs= + dependencies: + are-we-there-yet "~1.1.2" + console-control-strings "~1.1.0" + gauge "~2.7.3" + set-blocking "~2.0.0" + +number-is-nan@^1.0.0: + version "1.0.1" + resolved "https://registry.npm.taobao.org/number-is-nan/download/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= + +nwsapi@^2.0.7: + version "2.1.4" + resolved "https://registry.npm.taobao.org/nwsapi/download/nwsapi-2.1.4.tgz#e006a878db23636f8e8a67d33ca0e4edf61a842f" + integrity sha1-4AaoeNsjY2+OimfTPKDk7fYahC8= + +oauth-sign@~0.9.0: + version "0.9.0" + resolved "https://registry.npm.taobao.org/oauth-sign/download/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" + integrity sha1-R6ewFrqmi1+g7PPe4IqFxnmsZFU= + +object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.npm.taobao.org/object-assign/download/object-assign-4.1.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-assign%2Fdownload%2Fobject-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + +object-copy@^0.1.0: + version "0.1.0" + resolved "https://registry.npm.taobao.org/object-copy/download/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" + integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= + dependencies: + copy-descriptor "^0.1.0" + define-property "^0.2.5" + kind-of "^3.0.3" + +object-keys@^1.0.12: + version "1.1.1" + resolved "https://registry.npm.taobao.org/object-keys/download/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha1-HEfyct8nfzsdrwYWd9nILiMixg4= + +object-visit@^1.0.0: + version "1.0.1" + resolved "https://registry.npm.taobao.org/object-visit/download/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" + integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= + dependencies: + isobject "^3.0.0" + +object.getownpropertydescriptors@^2.0.3: + version "2.0.3" + resolved "https://registry.npm.taobao.org/object.getownpropertydescriptors/download/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16" + integrity sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY= + dependencies: + define-properties "^1.1.2" + es-abstract "^1.5.1" + +object.omit@^2.0.0: + version "2.0.1" + resolved "https://registry.npm.taobao.org/object.omit/download/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" + integrity sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo= + dependencies: + for-own "^0.1.4" + is-extendable "^0.1.1" + +object.pick@^1.3.0: + version "1.3.0" + resolved "https://registry.npm.taobao.org/object.pick/download/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" + integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= + dependencies: + isobject "^3.0.1" + +once@^1.3.0, once@^1.3.1, once@^1.4.0: + version "1.4.0" + resolved "https://registry.npm.taobao.org/once/download/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + dependencies: + wrappy "1" + +onetime@^2.0.0: + version "2.0.1" + resolved "https://registry.npm.taobao.org/onetime/download/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" + integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ= + dependencies: + mimic-fn "^1.0.0" + +optimist@^0.6.1: + version "0.6.1" + resolved "https://registry.npm.taobao.org/optimist/download/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" + integrity sha1-2j6nRob6IaGaERwybpDrFaAZZoY= + dependencies: + minimist "~0.0.1" + wordwrap "~0.0.2" + +optionator@^0.8.1: + version "0.8.2" + resolved "https://registry.npm.taobao.org/optionator/download/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" + integrity sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q= + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.4" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + wordwrap "~1.0.0" + +os-homedir@^1.0.0, os-homedir@^1.0.1: + version "1.0.2" + resolved "https://registry.npm.taobao.org/os-homedir/download/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= + +os-locale@^2.0.0: + version "2.1.0" + resolved "https://registry.npm.taobao.org/os-locale/download/os-locale-2.1.0.tgz?cache=0&sync_timestamp=1560274285880&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fos-locale%2Fdownload%2Fos-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2" + integrity sha1-QrwpAKa1uL0XN2yOiCtlr8zyS/I= + dependencies: + execa "^0.7.0" + lcid "^1.0.0" + mem "^1.1.0" + +os-tmpdir@^1.0.0, os-tmpdir@^1.0.1: + version "1.0.2" + resolved "https://registry.npm.taobao.org/os-tmpdir/download/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= + +osenv@^0.1.4: + version "0.1.5" + resolved "https://registry.npm.taobao.org/osenv/download/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" + integrity sha1-hc36+uso6Gd/QW4odZK18/SepBA= + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.0" + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/p-finally/download/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= + +p-limit@^1.1.0: + version "1.3.0" + resolved "https://registry.npm.taobao.org/p-limit/download/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" + integrity sha1-uGvV8MJWkJEcdZD8v8IBDVSzzLg= + dependencies: + p-try "^1.0.0" + +p-limit@^2.0.0: + version "2.2.0" + resolved "https://registry.npm.taobao.org/p-limit/download/p-limit-2.2.0.tgz#417c9941e6027a9abcba5092dd2904e255b5fbc2" + integrity sha1-QXyZQeYCepq8ulCS3SkE4lW1+8I= + dependencies: + p-try "^2.0.0" + +p-locate@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/p-locate/download/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" + integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= + dependencies: + p-limit "^1.1.0" + +p-locate@^3.0.0: + version "3.0.0" + resolved "https://registry.npm.taobao.org/p-locate/download/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + integrity sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ= + dependencies: + p-limit "^2.0.0" + +p-map@^1.1.1: + version "1.2.0" + resolved "https://registry.npm.taobao.org/p-map/download/p-map-1.2.0.tgz#e4e94f311eabbc8633a1e79908165fca26241b6b" + integrity sha1-5OlPMR6rvIYzoeeZCBZfyiYkG2s= + +p-map@^2.0.0: + version "2.1.0" + resolved "https://registry.npm.taobao.org/p-map/download/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" + integrity sha1-MQko/u+cnsxltosXaTAYpmXOoXU= + +p-try@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/p-try/download/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" + integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.npm.taobao.org/p-try/download/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha1-yyhoVA4xPWHeWPr741zpAE1VQOY= + +parse-glob@^3.0.4: + version "3.0.4" + resolved "https://registry.npm.taobao.org/parse-glob/download/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" + integrity sha1-ssN2z7EfNVE7rdFz7wu246OIORw= + dependencies: + glob-base "^0.3.0" + is-dotfile "^1.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.0" + +parse-json@^2.2.0: + version "2.2.0" + resolved "https://registry.npm.taobao.org/parse-json/download/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" + integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= + dependencies: + error-ex "^1.2.0" + +parse-json@^4.0.0: + version "4.0.0" + resolved "https://registry.npm.taobao.org/parse-json/download/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" + integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= + dependencies: + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" + +parse5@4.0.0: + version "4.0.0" + resolved "https://registry.npm.taobao.org/parse5/download/parse5-4.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fparse5%2Fdownload%2Fparse5-4.0.0.tgz#6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608" + integrity sha1-bXhlbj2o14tOwLkG98CO8d/j9gg= + +pascalcase@^0.1.1: + version "0.1.1" + resolved "https://registry.npm.taobao.org/pascalcase/download/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" + integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= + +path-exists@^2.0.0: + version "2.1.0" + resolved "https://registry.npm.taobao.org/path-exists/download/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" + integrity sha1-D+tsZPD8UY2adU3V77YscCJ2H0s= + dependencies: + pinkie-promise "^2.0.0" + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.npm.taobao.org/path-exists/download/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= + +path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: + version "1.0.1" + resolved "https://registry.npm.taobao.org/path-is-absolute/download/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + +path-is-inside@^1.0.1, path-is-inside@^1.0.2: + version "1.0.2" + resolved "https://registry.npm.taobao.org/path-is-inside/download/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" + integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= + +path-key@^2.0.0, path-key@^2.0.1: + version "2.0.1" + resolved "https://registry.npm.taobao.org/path-key/download/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= + +path-parse@^1.0.5, path-parse@^1.0.6: + version "1.0.6" + resolved "https://registry.npm.taobao.org/path-parse/download/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" + integrity sha1-1i27VnlAXXLEc37FhgDp3c8G0kw= + +path-type@^1.0.0: + version "1.1.0" + resolved "https://registry.npm.taobao.org/path-type/download/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" + integrity sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE= + dependencies: + graceful-fs "^4.1.2" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.npm.taobao.org/performance-now/download/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= + +pify@^2.0.0: + version "2.3.0" + resolved "https://registry.npm.taobao.org/pify/download/pify-2.3.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpify%2Fdownload%2Fpify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= + +pify@^3.0.0: + version "3.0.0" + resolved "https://registry.npm.taobao.org/pify/download/pify-3.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpify%2Fdownload%2Fpify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= + +pify@^4.0.1: + version "4.0.1" + resolved "https://registry.npm.taobao.org/pify/download/pify-4.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpify%2Fdownload%2Fpify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" + integrity sha1-SyzSXFDVmHNcUCkiJP2MbfQeMjE= + +pinkie-promise@^2.0.0: + version "2.0.1" + resolved "https://registry.npm.taobao.org/pinkie-promise/download/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= + dependencies: + pinkie "^2.0.0" + +pinkie@^2.0.0: + version "2.0.4" + resolved "https://registry.npm.taobao.org/pinkie/download/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= + +pkg-dir@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" + integrity sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s= + dependencies: + find-up "^2.1.0" + +pkg-dir@^3.0.0: + version "3.0.0" + resolved "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" + integrity sha1-J0kCDyOe2ZCIGx9xIQ1R62UjvqM= + dependencies: + find-up "^3.0.0" + +please-upgrade-node@^3.0.2, please-upgrade-node@^3.1.1: + version "3.1.1" + resolved "https://registry.npm.taobao.org/please-upgrade-node/download/please-upgrade-node-3.1.1.tgz#ed320051dfcc5024fae696712c8288993595e8ac" + integrity sha1-7TIAUd/MUCT65pZxLIKImTWV6Kw= + dependencies: + semver-compare "^1.0.0" + +pn@^1.1.0: + version "1.1.0" + resolved "https://registry.npm.taobao.org/pn/download/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb" + integrity sha1-4vTO8OIZ9GPBeas3Rj5OHs3Muvs= + +posix-character-classes@^0.1.0: + version "0.1.1" + resolved "https://registry.npm.taobao.org/posix-character-classes/download/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" + integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= + +prebuild-install@^5.3.0: + version "5.3.0" + resolved "https://registry.npm.taobao.org/prebuild-install/download/prebuild-install-5.3.0.tgz#58b4d8344e03590990931ee088dd5401b03004c8" + integrity sha1-WLTYNE4DWQmQkx7giN1UAbAwBMg= + dependencies: + detect-libc "^1.0.3" + expand-template "^2.0.3" + github-from-package "0.0.0" + minimist "^1.2.0" + mkdirp "^0.5.1" + napi-build-utils "^1.0.1" + node-abi "^2.7.0" + noop-logger "^0.1.1" + npmlog "^4.0.1" + os-homedir "^1.0.1" + pump "^2.0.1" + rc "^1.2.7" + simple-get "^2.7.0" + tar-fs "^1.13.0" + tunnel-agent "^0.6.0" + which-pm-runs "^1.0.0" + +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.npm.taobao.org/prelude-ls/download/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= + +preserve@^0.2.0: + version "0.2.0" + resolved "https://registry.npm.taobao.org/preserve/download/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" + integrity sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks= + +prettier@^1.0.0, prettier@^1.15.3: + version "1.18.2" + resolved "https://registry.npm.taobao.org/prettier/download/prettier-1.18.2.tgz#6823e7c5900017b4bd3acf46fe9ac4b4d7bda9ea" + integrity sha1-aCPnxZAAF7S9Os9G/prEtNe9qeo= + +pretty-format@^23.6.0: + version "23.6.0" + resolved "https://registry.npm.taobao.org/pretty-format/download/pretty-format-23.6.0.tgz#5eaac8eeb6b33b987b7fe6097ea6a8a146ab5760" + integrity sha1-XqrI7razO5h7f+YJfqaooUarV2A= + dependencies: + ansi-regex "^3.0.0" + ansi-styles "^3.2.0" + +private@^0.1.8: + version "0.1.8" + resolved "https://registry.npm.taobao.org/private/download/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" + integrity sha1-I4Hts2ifelPWUxkAYPz4ItLzaP8= + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.npm.taobao.org/process-nextick-args/download/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha1-eCDZsWEgzFXKmud5JoCufbptf+I= + +prompts@^0.1.9: + version "0.1.14" + resolved "https://registry.npm.taobao.org/prompts/download/prompts-0.1.14.tgz#a8e15c612c5c9ec8f8111847df3337c9cbd443b2" + integrity sha1-qOFcYSxcnsj4ERhH3zM3ycvUQ7I= + dependencies: + kleur "^2.0.1" + sisteransi "^0.1.1" + +prop-types@^15.6.2: + version "15.7.2" + resolved "https://registry.npm.taobao.org/prop-types/download/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" + integrity sha1-UsQedbjIfnK52TYOAga5ncv/psU= + dependencies: + loose-envify "^1.4.0" + object-assign "^4.1.1" + react-is "^16.8.1" + +property-expr@^1.5.0: + version "1.5.1" + resolved "https://registry.npm.taobao.org/property-expr/download/property-expr-1.5.1.tgz#22e8706894a0c8e28d58735804f6ba3a3673314f" + integrity sha1-IuhwaJSgyOKNWHNYBPa6OjZzMU8= + +pseudomap@^1.0.2: + version "1.0.2" + resolved "https://registry.npm.taobao.org/pseudomap/download/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= + +psl@^1.1.24, psl@^1.1.28: + version "1.1.33" + resolved "https://registry.npm.taobao.org/psl/download/psl-1.1.33.tgz#5533d9384ca7aab86425198e10e8053ebfeab661" + integrity sha1-VTPZOEynqrhkJRmOEOgFPr/qtmE= + +pump@^1.0.0: + version "1.0.3" + resolved "https://registry.npm.taobao.org/pump/download/pump-1.0.3.tgz#5dfe8311c33bbf6fc18261f9f34702c47c08a954" + integrity sha1-Xf6DEcM7v2/BgmH580cCxHwIqVQ= + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pump@^2.0.1: + version "2.0.1" + resolved "https://registry.npm.taobao.org/pump/download/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" + integrity sha1-Ejma3W5M91Jtlzy8i1zi4pCLOQk= + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.npm.taobao.org/pump/download/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha1-tKIRaBW94vTh6mAjVOjHVWUQemQ= + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +punycode@^1.4.1: + version "1.4.1" + resolved "https://registry.npm.taobao.org/punycode/download/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= + +punycode@^2.1.0, punycode@^2.1.1: + version "2.1.1" + resolved "https://registry.npm.taobao.org/punycode/download/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha1-tYsBCsQMIsVldhbI0sLALHv0eew= + +qs@~6.5.2: + version "6.5.2" + resolved "https://registry.npm.taobao.org/qs/download/qs-6.5.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fqs%2Fdownload%2Fqs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" + integrity sha1-yzroBuh0BERYTvFUzo7pjUA/PjY= + +randomatic@^3.0.0: + version "3.1.1" + resolved "https://registry.npm.taobao.org/randomatic/download/randomatic-3.1.1.tgz#b776efc59375984e36c537b2f51a1f0aff0da1ed" + integrity sha1-t3bvxZN1mE42xTey9RofCv8Noe0= + dependencies: + is-number "^4.0.0" + kind-of "^6.0.0" + math-random "^1.0.1" + +rc@^1.2.7: + version "1.2.8" + resolved "https://registry.npm.taobao.org/rc/download/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + integrity sha1-zZJL9SAKB1uDwYjNa54hG3/A0+0= + dependencies: + deep-extend "^0.6.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +react-dom@next: + version "16.8.6" + resolved "https://registry.npm.taobao.org/react-dom/download/react-dom-16.8.6.tgz#71d6303f631e8b0097f56165ef608f051ff6e10f" + integrity sha1-cdYwP2MeiwCX9WFl72CPBR/24Q8= + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + prop-types "^15.6.2" + scheduler "^0.13.6" + +react-is@^16.7.0, react-is@^16.8.1: + version "16.8.6" + resolved "https://registry.npm.taobao.org/react-is/download/react-is-16.8.6.tgz#5bbc1e2d29141c9fbdfed456343fe2bc430a6a16" + integrity sha1-W7weLSkUHJ+9/tRWND/ivEMKahY= + +react-lifecycles-compat@^3.0.2: + version "3.0.4" + resolved "https://registry.npm.taobao.org/react-lifecycles-compat/download/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" + integrity sha1-TxonOv38jzSIqMUWv9p4+HI1I2I= + +react@next: + version "16.8.6" + resolved "https://registry.npm.taobao.org/react/download/react-16.8.6.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freact%2Fdownload%2Freact-16.8.6.tgz#ad6c3a9614fd3a4e9ef51117f54d888da01f2bbe" + integrity sha1-rWw6lhT9Ok6e9REX9U2IjaAfK74= + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + prop-types "^15.6.2" + scheduler "^0.13.6" + +read-pkg-up@^1.0.1: + version "1.0.1" + resolved "https://registry.npm.taobao.org/read-pkg-up/download/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" + integrity sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI= + dependencies: + find-up "^1.0.0" + read-pkg "^1.0.0" + +read-pkg@^1.0.0: + version "1.1.0" + resolved "https://registry.npm.taobao.org/read-pkg/download/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" + integrity sha1-9f+qXs0pyzHAR0vKfXVra7KePyg= + dependencies: + load-json-file "^1.0.0" + normalize-package-data "^2.3.2" + path-type "^1.0.0" + +read-pkg@^4.0.1: + version "4.0.1" + resolved "https://registry.npm.taobao.org/read-pkg/download/read-pkg-4.0.1.tgz#963625378f3e1c4d48c85872b5a6ec7d5d093237" + integrity sha1-ljYlN48+HE1IyFhytabsfV0JMjc= + dependencies: + normalize-package-data "^2.3.2" + parse-json "^4.0.0" + pify "^3.0.0" + +readable-stream@^2.0.1, readable-stream@^2.0.6, readable-stream@^2.3.0, readable-stream@^2.3.5, readable-stream@~2.3.6: + version "2.3.6" + resolved "https://registry.npm.taobao.org/readable-stream/download/readable-stream-2.3.6.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freadable-stream%2Fdownload%2Freadable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" + integrity sha1-sRwn2IuP8fvgcGQ8+UsMea4bCq8= + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@~1.0.31: + version "1.0.34" + resolved "https://registry.npm.taobao.org/readable-stream/download/readable-stream-1.0.34.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freadable-stream%2Fdownload%2Freadable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" + integrity sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw= + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +realpath-native@^1.0.0: + version "1.1.0" + resolved "https://registry.npm.taobao.org/realpath-native/download/realpath-native-1.1.0.tgz#2003294fea23fb0672f2476ebe22fcf498a2d65c" + integrity sha1-IAMpT+oj+wZy8kduviL89Jii1lw= + dependencies: + util.promisify "^1.0.0" + +reflect-metadata@^0.1.12: + version "0.1.13" + resolved "https://registry.npm.taobao.org/reflect-metadata/download/reflect-metadata-0.1.13.tgz#67ae3ca57c972a2aa1642b10fe363fe32d49dc08" + integrity sha1-Z648pXyXKiqhZCsQ/jY/4y1J3Ag= + +regenerator-runtime@^0.11.0: + version "0.11.1" + resolved "https://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.11.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" + integrity sha1-vgWtf5v30i4Fb5cmzuUBf78Z4uk= + +regenerator-runtime@^0.13.2: + version "0.13.2" + resolved "https://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.13.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.13.2.tgz#32e59c9a6fb9b1a4aff09b4930ca2d4477343447" + integrity sha1-MuWcmm+5saSv8JtJMMotRHc0NEc= + +regex-cache@^0.4.2: + version "0.4.4" + resolved "https://registry.npm.taobao.org/regex-cache/download/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd" + integrity sha1-db3FiioUls7EihKDW8VMjVYjNt0= + dependencies: + is-equal-shallow "^0.1.3" + +regex-not@^1.0.0, regex-not@^1.0.2: + version "1.0.2" + resolved "https://registry.npm.taobao.org/regex-not/download/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" + integrity sha1-H07OJ+ALC2XgJHpoEOaoXYOldSw= + dependencies: + extend-shallow "^3.0.2" + safe-regex "^1.1.0" + +remove-trailing-separator@^1.0.1: + version "1.1.0" + resolved "https://registry.npm.taobao.org/remove-trailing-separator/download/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= + +repeat-element@^1.1.2: + version "1.1.3" + resolved "https://registry.npm.taobao.org/repeat-element/download/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" + integrity sha1-eC4NglwMWjuzlzH4Tv7mt0Lmsc4= + +repeat-string@^1.5.2, repeat-string@^1.6.1: + version "1.6.1" + resolved "https://registry.npm.taobao.org/repeat-string/download/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= + +repeating@^2.0.0: + version "2.0.1" + resolved "https://registry.npm.taobao.org/repeating/download/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" + integrity sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo= + dependencies: + is-finite "^1.0.0" + +request-promise-core@1.1.2: + version "1.1.2" + resolved "https://registry.npm.taobao.org/request-promise-core/download/request-promise-core-1.1.2.tgz#339f6aababcafdb31c799ff158700336301d3346" + integrity sha1-M59qq6vK/bMceZ/xWHADNjAdM0Y= + dependencies: + lodash "^4.17.11" + +request-promise-native@^1.0.5: + version "1.0.7" + resolved "https://registry.npm.taobao.org/request-promise-native/download/request-promise-native-1.0.7.tgz#a49868a624bdea5069f1251d0a836e0d89aa2c59" + integrity sha1-pJhopiS96lBp8SUdCoNuDYmqLFk= + dependencies: + request-promise-core "1.1.2" + stealthy-require "^1.1.1" + tough-cookie "^2.3.3" + +request@^2.86.0, request@^2.87.0: + version "2.88.0" + resolved "https://registry.npm.taobao.org/request/download/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef" + integrity sha1-nC/KT301tZLv5Xx/ClXoEFIST+8= + 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.0" + 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.4.3" + tunnel-agent "^0.6.0" + uuid "^3.3.2" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.npm.taobao.org/require-directory/download/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + +require-main-filename@^1.0.1: + version "1.0.1" + resolved "https://registry.npm.taobao.org/require-main-filename/download/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" + integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE= + +resolve-cwd@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/resolve-cwd/download/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" + integrity sha1-AKn3OHVW4nA46uIyyqNypqWbZlo= + dependencies: + resolve-from "^3.0.0" + +resolve-from@^3.0.0: + version "3.0.0" + resolved "https://registry.npm.taobao.org/resolve-from/download/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" + integrity sha1-six699nWiBvItuZTM17rywoYh0g= + +resolve-url@^0.2.1: + version "0.2.1" + resolved "https://registry.npm.taobao.org/resolve-url/download/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" + integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= + +resolve@1.1.7: + version "1.1.7" + resolved "https://registry.npm.taobao.org/resolve/download/resolve-1.1.7.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve%2Fdownload%2Fresolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" + integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= + +resolve@1.8.1: + version "1.8.1" + resolved "https://registry.npm.taobao.org/resolve/download/resolve-1.8.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve%2Fdownload%2Fresolve-1.8.1.tgz#82f1ec19a423ac1fbd080b0bab06ba36e84a7a26" + integrity sha1-gvHsGaQjrB+9CAsLqwa6NuhKeiY= + dependencies: + path-parse "^1.0.5" + +resolve@1.x, resolve@^1.1.6, resolve@^1.10.0: + version "1.11.1" + resolved "https://registry.npm.taobao.org/resolve/download/resolve-1.11.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve%2Fdownload%2Fresolve-1.11.1.tgz#ea10d8110376982fef578df8fc30b9ac30a07a3e" + integrity sha1-6hDYEQN2mC/vV434/DC5rDCgej4= + dependencies: + path-parse "^1.0.6" + +restore-cursor@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/restore-cursor/download/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" + integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368= + dependencies: + onetime "^2.0.0" + signal-exit "^3.0.2" + +ret@~0.1.10: + version "0.1.15" + resolved "https://registry.npm.taobao.org/ret/download/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" + integrity sha1-uKSCXVvbH8P29Twrwz+BOIaBx7w= + +rimraf@^2.2.8, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2: + version "2.6.3" + resolved "https://registry.npm.taobao.org/rimraf/download/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" + integrity sha1-stEE/g2Psnz54KHNqCYt04M8bKs= + dependencies: + glob "^7.1.3" + +rollup-plugin-commonjs@^9.2.0: + version "9.3.4" + resolved "https://registry.npm.taobao.org/rollup-plugin-commonjs/download/rollup-plugin-commonjs-9.3.4.tgz#2b3dddbbbded83d45c36ff101cdd29e924fd23bc" + integrity sha1-Kz3du73tg9RcNv8QHN0p6ST9I7w= + dependencies: + estree-walker "^0.6.0" + magic-string "^0.25.2" + resolve "^1.10.0" + rollup-pluginutils "^2.6.0" + +rollup-plugin-filesize@^5.0.1: + version "5.0.1" + resolved "https://registry.npm.taobao.org/rollup-plugin-filesize/download/rollup-plugin-filesize-5.0.1.tgz#442a994465abf4f4f63ea20ac3267c3e0d05ee5d" + integrity sha1-RCqZRGWr9PT2PqIKwyZ8Pg0F7l0= + dependencies: + boxen "^2.0.0" + brotli-size "0.0.3" + colors "^1.3.2" + deep-assign "^2.0.0" + filesize "^3.6.1" + gzip-size "^5.0.0" + terser "^3.10.0" + +rollup-plugin-node-resolve@^3.4.0: + version "3.4.0" + resolved "https://registry.npm.taobao.org/rollup-plugin-node-resolve/download/rollup-plugin-node-resolve-3.4.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frollup-plugin-node-resolve%2Fdownload%2Frollup-plugin-node-resolve-3.4.0.tgz#908585eda12e393caac7498715a01e08606abc89" + integrity sha1-kIWF7aEuOTyqx0mHFaAeCGBqvIk= + dependencies: + builtin-modules "^2.0.0" + is-module "^1.0.0" + resolve "^1.1.6" + +rollup-plugin-prettier@^0.5.0: + version "0.5.0" + resolved "https://registry.npm.taobao.org/rollup-plugin-prettier/download/rollup-plugin-prettier-0.5.0.tgz#25950b990a8f521206d44ee911486229b91a86bf" + integrity sha1-JZULmQqPUhIG1E7pEUhiKbkahr8= + dependencies: + diff "3.5.0" + lodash.isempty "4.4.0" + lodash.omitby "4.6.0" + magic-string "0.25.1" + prettier "^1.0.0" + +rollup-plugin-replace@^2.1.0: + version "2.2.0" + resolved "https://registry.npm.taobao.org/rollup-plugin-replace/download/rollup-plugin-replace-2.2.0.tgz#f41ae5372e11e7a217cde349c8b5d5fd115e70e3" + integrity sha1-9BrlNy4R56IXzeNJyLXV/RFecOM= + dependencies: + magic-string "^0.25.2" + rollup-pluginutils "^2.6.0" + +rollup-plugin-terser@^3.0.0: + version "3.0.0" + resolved "https://registry.npm.taobao.org/rollup-plugin-terser/download/rollup-plugin-terser-3.0.0.tgz#045bd7cf625ee1affcfe6971dab6fffe6fb48c65" + integrity sha1-BFvXz2Je4a/8/mlx2rb//m+0jGU= + dependencies: + "@babel/code-frame" "^7.0.0" + jest-worker "^23.2.0" + serialize-javascript "^1.5.0" + terser "^3.8.2" + +rollup-plugin-typescript2@^0.18.0: + version "0.18.1" + resolved "https://registry.npm.taobao.org/rollup-plugin-typescript2/download/rollup-plugin-typescript2-0.18.1.tgz#921865828080a254c088c6bc181ca654e5ef73c6" + integrity sha1-khhlgoCAolTAiMa8GBymVOXvc8Y= + dependencies: + fs-extra "7.0.0" + resolve "1.8.1" + rollup-pluginutils "2.3.3" + tslib "1.9.3" + +rollup-pluginutils@2.3.3: + version "2.3.3" + resolved "https://registry.npm.taobao.org/rollup-pluginutils/download/rollup-pluginutils-2.3.3.tgz#3aad9b1eb3e7fe8262820818840bf091e5ae6794" + integrity sha1-Oq2bHrPn/oJigggYhAvwkeWuZ5Q= + dependencies: + estree-walker "^0.5.2" + micromatch "^2.3.11" + +rollup-pluginutils@^2.6.0: + version "2.8.1" + resolved "https://registry.npm.taobao.org/rollup-pluginutils/download/rollup-pluginutils-2.8.1.tgz#8fa6dd0697344938ef26c2c09d2488ce9e33ce97" + integrity sha1-j6bdBpc0STjvJsLAnSSIzp4zzpc= + dependencies: + estree-walker "^0.6.1" + +rollup@^0.67.4: + version "0.67.4" + resolved "https://registry.npm.taobao.org/rollup/download/rollup-0.67.4.tgz#8ed6b0993337f84ec8a0387f824fa6c197e833ec" + integrity sha1-jtawmTM3+E7IoDh/gk+mwZfoM+w= + dependencies: + "@types/estree" "0.0.39" + "@types/node" "*" + +rsvp@^3.3.3: + version "3.6.2" + resolved "https://registry.npm.taobao.org/rsvp/download/rsvp-3.6.2.tgz#2e96491599a96cde1b515d5674a8f7a91452926a" + integrity sha1-LpZJFZmpbN4bUV1WdKj3qRRSkmo= + +run-node@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/run-node/download/run-node-1.0.0.tgz#46b50b946a2aa2d4947ae1d886e9856fd9cabe5e" + integrity sha1-RrULlGoqotSUeuHYhumFb9nKvl4= + +rxjs@^6.3.3: + version "6.5.2" + resolved "https://registry.npm.taobao.org/rxjs/download/rxjs-6.5.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frxjs%2Fdownload%2Frxjs-6.5.2.tgz#2e35ce815cd46d84d02a209fb4e5921e051dbec7" + integrity sha1-LjXOgVzUbYTQKiCftOWSHgUdvsc= + dependencies: + tslib "^1.9.0" + +safe-buffer@^5.0.1, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha1-mR7GnSluAxN0fVm9/St0XDX4go0= + +safe-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.npm.taobao.org/safe-regex/download/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" + integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= + dependencies: + ret "~0.1.10" + +"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: + version "2.1.2" + resolved "https://registry.npm.taobao.org/safer-buffer/download/safer-buffer-2.1.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafer-buffer%2Fdownload%2Fsafer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo= + +sane@^2.0.0: + version "2.5.2" + resolved "https://registry.npm.taobao.org/sane/download/sane-2.5.2.tgz#b4dc1861c21b427e929507a3e751e2a2cb8ab3fa" + integrity sha1-tNwYYcIbQn6SlQej51HiosuKs/o= + dependencies: + anymatch "^2.0.0" + capture-exit "^1.2.0" + exec-sh "^0.2.0" + fb-watchman "^2.0.0" + micromatch "^3.1.4" + minimist "^1.1.1" + walker "~1.0.5" + watch "~0.18.0" + optionalDependencies: + fsevents "^1.2.3" + +sax@^1.2.4: + version "1.2.4" + resolved "https://registry.npm.taobao.org/sax/download/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" + integrity sha1-KBYjTiN4vdxOU1T6tcqold9xANk= + +scheduler@^0.13.6: + version "0.13.6" + resolved "https://registry.npm.taobao.org/scheduler/download/scheduler-0.13.6.tgz?cache=0&sync_timestamp=1559596534856&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fscheduler%2Fdownload%2Fscheduler-0.13.6.tgz#466a4ec332467b31a91b9bf74e5347072e4cd889" + integrity sha1-RmpOwzJGezGpG5v3TlNHBy5M2Ik= + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + +semver-compare@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/semver-compare/download/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" + integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w= + +"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.5, semver@^5.5.0: + version "5.7.0" + resolved "https://registry.npm.taobao.org/semver/download/semver-5.7.0.tgz?cache=0&sync_timestamp=1559063729249&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.0.tgz#790a7cf6fea5459bac96110b29b60412dc8ff96b" + integrity sha1-eQp89v6lRZuslhELKbYEEtyP+Ws= + +serialize-javascript@^1.5.0: + version "1.7.0" + resolved "https://registry.npm.taobao.org/serialize-javascript/download/serialize-javascript-1.7.0.tgz#d6e0dfb2a3832a8c94468e6eb1db97e55a192a65" + integrity sha1-1uDfsqODKoyURo5usduX5VoZKmU= + +set-blocking@^2.0.0, set-blocking@~2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/set-blocking/download/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= + +set-value@^0.4.3: + version "0.4.3" + resolved "https://registry.npm.taobao.org/set-value/download/set-value-0.4.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fset-value%2Fdownload%2Fset-value-0.4.3.tgz#7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1" + integrity sha1-fbCPnT0i3H945Trzw79GZuzfzPE= + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.1" + to-object-path "^0.3.0" + +set-value@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/set-value/download/set-value-2.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fset-value%2Fdownload%2Fset-value-2.0.0.tgz#71ae4a88f0feefbbf52d1ea604f3fb315ebb6274" + integrity sha1-ca5KiPD+77v1LR6mBPP7MV67YnQ= + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.3" + split-string "^3.0.1" + +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.npm.taobao.org/shebang-command/download/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= + dependencies: + shebang-regex "^1.0.0" + +shebang-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/shebang-regex/download/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= + +shellwords@^0.1.1: + version "0.1.1" + resolved "https://registry.npm.taobao.org/shellwords/download/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" + integrity sha1-1rkYHBpI05cyTISHHvvPxz/AZUs= + +signal-exit@^3.0.0, signal-exit@^3.0.2: + version "3.0.2" + resolved "https://registry.npm.taobao.org/signal-exit/download/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" + integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= + +simple-concat@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/simple-concat/download/simple-concat-1.0.0.tgz#7344cbb8b6e26fb27d66b2fc86f9f6d5997521c6" + integrity sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY= + +simple-get@^2.7.0: + version "2.8.1" + resolved "https://registry.npm.taobao.org/simple-get/download/simple-get-2.8.1.tgz#0e22e91d4575d87620620bc91308d57a77f44b5d" + integrity sha1-DiLpHUV12HYgYgvJEwjVenf0S10= + dependencies: + decompress-response "^3.3.0" + once "^1.3.1" + simple-concat "^1.0.0" + +simple-git@^1.85.0: + version "1.116.0" + resolved "https://registry.npm.taobao.org/simple-git/download/simple-git-1.116.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsimple-git%2Fdownload%2Fsimple-git-1.116.0.tgz#ea6e533466f1e0152186e306e004d4eefa6e3e00" + integrity sha1-6m5TNGbx4BUhhuMG4ATU7vpuPgA= + dependencies: + debug "^4.0.1" + +sisteransi@^0.1.1: + version "0.1.1" + resolved "https://registry.npm.taobao.org/sisteransi/download/sisteransi-0.1.1.tgz#5431447d5f7d1675aac667ccd0b865a4994cb3ce" + integrity sha1-VDFEfV99FnWqxmfM0LhlpJlMs84= + +slash@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/slash/download/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" + integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU= + +slash@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/slash/download/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" + integrity sha1-3lUoUaF1nfOo8gZTVEL17E3eq0Q= + +slice-ansi@0.0.4: + version "0.0.4" + resolved "https://registry.npm.taobao.org/slice-ansi/download/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" + integrity sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU= + +snapdragon-node@^2.0.1: + version "2.1.1" + resolved "https://registry.npm.taobao.org/snapdragon-node/download/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" + integrity sha1-bBdfhv8UvbByRWPo88GwIaKGhTs= + dependencies: + define-property "^1.0.0" + isobject "^3.0.0" + snapdragon-util "^3.0.1" + +snapdragon-util@^3.0.1: + version "3.0.1" + resolved "https://registry.npm.taobao.org/snapdragon-util/download/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" + integrity sha1-+VZHlIbyrNeXAGk/b3uAXkWrVuI= + dependencies: + kind-of "^3.2.0" + +snapdragon@^0.8.1: + version "0.8.2" + resolved "https://registry.npm.taobao.org/snapdragon/download/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" + integrity sha1-ZJIufFZbDhQgS6GqfWlkJ40lGC0= + dependencies: + base "^0.11.1" + debug "^2.2.0" + define-property "^0.2.5" + extend-shallow "^2.0.1" + map-cache "^0.2.2" + source-map "^0.5.6" + source-map-resolve "^0.5.0" + use "^3.1.0" + +source-map-resolve@^0.5.0: + version "0.5.2" + resolved "https://registry.npm.taobao.org/source-map-resolve/download/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259" + integrity sha1-cuLMNAlVQ+Q7LGKyxMENSpBU8lk= + dependencies: + atob "^2.1.1" + decode-uri-component "^0.2.0" + resolve-url "^0.2.1" + source-map-url "^0.4.0" + urix "^0.1.0" + +source-map-support@^0.4.15: + version "0.4.18" + resolved "https://registry.npm.taobao.org/source-map-support/download/source-map-support-0.4.18.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map-support%2Fdownload%2Fsource-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" + integrity sha1-Aoam3ovkJkEzhZTpfM6nXwosWF8= + dependencies: + source-map "^0.5.6" + +source-map-support@^0.5.6, source-map-support@~0.5.10: + version "0.5.12" + resolved "https://registry.npm.taobao.org/source-map-support/download/source-map-support-0.5.12.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map-support%2Fdownload%2Fsource-map-support-0.5.12.tgz#b4f3b10d51857a5af0138d3ce8003b201613d599" + integrity sha1-tPOxDVGFelrwE4086AA7IBYT1Zk= + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map-url@^0.4.0: + version "0.4.0" + resolved "https://registry.npm.taobao.org/source-map-url/download/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" + integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= + +source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7: + version "0.5.7" + resolved "https://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= + +source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha1-dHIq8y6WFOnCh6jQu95IteLxomM= + +sourcemap-codec@^1.4.1, sourcemap-codec@^1.4.4: + version "1.4.4" + resolved "https://registry.npm.taobao.org/sourcemap-codec/download/sourcemap-codec-1.4.4.tgz#c63ea927c029dd6bd9a2b7fa03b3fec02ad56e9f" + integrity sha1-xj6pJ8Ap3WvZorf6A7P+wCrVbp8= + +spdx-correct@^3.0.0: + version "3.1.0" + resolved "https://registry.npm.taobao.org/spdx-correct/download/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4" + integrity sha1-+4PlBERSaPFUsHTiGMh8ADzTHfQ= + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.2.0" + resolved "https://registry.npm.taobao.org/spdx-exceptions/download/spdx-exceptions-2.2.0.tgz#2ea450aee74f2a89bfb94519c07fcd6f41322977" + integrity sha1-LqRQrudPKom/uUUZwH/Nb0EyKXc= + +spdx-expression-parse@^3.0.0: + version "3.0.0" + resolved "https://registry.npm.taobao.org/spdx-expression-parse/download/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" + integrity sha1-meEZt6XaAOBUkcn6M4t5BII7QdA= + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.4" + resolved "https://registry.npm.taobao.org/spdx-license-ids/download/spdx-license-ids-3.0.4.tgz#75ecd1a88de8c184ef015eafb51b5b48bfd11bb1" + integrity sha1-dezRqI3owYTvAV6vtRtbSL/RG7E= + +split-string@^3.0.1, split-string@^3.0.2: + version "3.1.0" + resolved "https://registry.npm.taobao.org/split-string/download/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" + integrity sha1-fLCd2jqGWFcFxks5pkZgOGguj+I= + dependencies: + extend-shallow "^3.0.0" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.npm.taobao.org/sprintf-js/download/sprintf-js-1.0.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsprintf-js%2Fdownload%2Fsprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + +sshpk@^1.7.0: + version "1.16.1" + resolved "https://registry.npm.taobao.org/sshpk/download/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" + integrity sha1-+2YcC+8ps520B2nuOfpwCT1vaHc= + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + bcrypt-pbkdf "^1.0.0" + dashdash "^1.12.0" + ecc-jsbn "~0.1.1" + getpass "^0.1.1" + jsbn "~0.1.0" + safer-buffer "^2.0.2" + tweetnacl "~0.14.0" + +stack-utils@^1.0.1: + version "1.0.2" + resolved "https://registry.npm.taobao.org/stack-utils/download/stack-utils-1.0.2.tgz#33eba3897788558bebfc2db059dc158ec36cebb8" + integrity sha1-M+ujiXeIVYvr/C2wWdwVjsNs67g= + +staged-git-files@1.1.2: + version "1.1.2" + resolved "https://registry.npm.taobao.org/staged-git-files/download/staged-git-files-1.1.2.tgz#4326d33886dc9ecfa29a6193bf511ba90a46454b" + integrity sha1-QybTOIbcns+immGTv1EbqQpGRUs= + +static-extend@^0.1.1: + version "0.1.2" + resolved "https://registry.npm.taobao.org/static-extend/download/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" + integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= + dependencies: + define-property "^0.2.5" + object-copy "^0.1.0" + +stealthy-require@^1.1.1: + version "1.1.1" + resolved "https://registry.npm.taobao.org/stealthy-require/download/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" + integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks= + +string-argv@^0.0.2: + version "0.0.2" + resolved "https://registry.npm.taobao.org/string-argv/download/string-argv-0.0.2.tgz#dac30408690c21f3c3630a3ff3a05877bdcbd736" + integrity sha1-2sMECGkMIfPDYwo/86BYd73L1zY= + +string-length@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/string-length/download/string-length-2.0.0.tgz#d40dbb686a3ace960c1cffca562bf2c45f8363ed" + integrity sha1-1A27aGo6zpYMHP/KVivyxF+DY+0= + dependencies: + astral-regex "^1.0.0" + strip-ansi "^4.0.0" + +string-width@^1.0.1: + version "1.0.2" + resolved "https://registry.npm.taobao.org/string-width/download/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + strip-ansi "^3.0.0" + +"string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.1: + version "2.1.1" + resolved "https://registry.npm.taobao.org/string-width/download/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + integrity sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4= + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + +string-width@^3.0.0: + version "3.1.0" + resolved "https://registry.npm.taobao.org/string-width/download/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" + integrity sha1-InZ74htirxCBV0MG9prFG2IgOWE= + dependencies: + emoji-regex "^7.0.1" + is-fullwidth-code-point "^2.0.0" + strip-ansi "^5.1.0" + +string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.npm.taobao.org/string_decoder/download/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.npm.taobao.org/string_decoder/download/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha1-nPFhG6YmhdcDCunkujQUnDrwP8g= + dependencies: + safe-buffer "~5.1.0" + +stringify-object@^3.2.2: + version "3.3.0" + resolved "https://registry.npm.taobao.org/stringify-object/download/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629" + integrity sha1-cDBlrvyhkwDTzoivT1s5VtdVZik= + dependencies: + get-own-enumerable-property-symbols "^3.0.0" + is-obj "^1.0.1" + is-regexp "^1.0.0" + +strip-ansi@^3.0.0, strip-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= + dependencies: + ansi-regex "^2.0.0" + +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= + dependencies: + ansi-regex "^3.0.0" + +strip-ansi@^5.1.0: + version "5.2.0" + resolved "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + integrity sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4= + dependencies: + ansi-regex "^4.1.0" + +strip-bom@3.0.0: + version "3.0.0" + resolved "https://registry.npm.taobao.org/strip-bom/download/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= + +strip-bom@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/strip-bom/download/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" + integrity sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4= + dependencies: + is-utf8 "^0.2.0" + +strip-eof@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/strip-eof/download/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= + +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.npm.taobao.org/strip-json-comments/download/strip-json-comments-2.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-json-comments%2Fdownload%2Fstrip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= + +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= + +supports-color@^3.1.2: + version "3.2.3" + resolved "https://registry.npm.taobao.org/supports-color/download/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" + integrity sha1-ZawFBLOVQXHYpklGsq48u4pfVPY= + dependencies: + has-flag "^1.0.0" + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha1-4uaaRKyHcveKHsCzW2id9lMO/I8= + dependencies: + has-flag "^3.0.0" + +symbol-observable@^1.1.0: + version "1.2.0" + resolved "https://registry.npm.taobao.org/symbol-observable/download/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" + integrity sha1-wiaIrtTqs83C3+rLtWFmBWCgCAQ= + +symbol-tree@^3.2.2: + version "3.2.4" + resolved "https://registry.npm.taobao.org/symbol-tree/download/symbol-tree-3.2.4.tgz?cache=0&sync_timestamp=1560363067941&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsymbol-tree%2Fdownload%2Fsymbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" + integrity sha1-QwY30ki6d+B4iDlR+5qg7tfGP6I= + +synchronous-promise@^2.0.6: + version "2.0.9" + resolved "https://registry.npm.taobao.org/synchronous-promise/download/synchronous-promise-2.0.9.tgz#b83db98e9e7ae826bf9c8261fd8ac859126c780a" + integrity sha1-uD25jp566Ca/nIJh/YrIWRJseAo= + +tar-fs@^1.13.0: + version "1.16.3" + resolved "https://registry.npm.taobao.org/tar-fs/download/tar-fs-1.16.3.tgz#966a628841da2c4010406a82167cbd5e0c72d509" + integrity sha1-lmpiiEHaLEAQQGqCFny9Xgxy1Qk= + dependencies: + chownr "^1.0.1" + mkdirp "^0.5.1" + pump "^1.0.0" + tar-stream "^1.1.2" + +tar-stream@^1.1.2: + version "1.6.2" + resolved "https://registry.npm.taobao.org/tar-stream/download/tar-stream-1.6.2.tgz#8ea55dab37972253d9a9af90fdcd559ae435c555" + integrity sha1-jqVdqzeXIlPZqa+Q/c1VmuQ1xVU= + dependencies: + bl "^1.0.0" + buffer-alloc "^1.2.0" + end-of-stream "^1.0.0" + fs-constants "^1.0.0" + readable-stream "^2.3.0" + to-buffer "^1.1.1" + xtend "^4.0.0" + +tar@^4: + version "4.4.10" + resolved "https://registry.npm.taobao.org/tar/download/tar-4.4.10.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftar%2Fdownload%2Ftar-4.4.10.tgz#946b2810b9a5e0b26140cf78bea6b0b0d689eba1" + integrity sha1-lGsoELml4LJhQM94vqawsNaJ66E= + dependencies: + chownr "^1.1.1" + fs-minipass "^1.2.5" + minipass "^2.3.5" + minizlib "^1.2.1" + mkdirp "^0.5.0" + safe-buffer "^5.1.2" + yallist "^3.0.3" + +term-size@^1.2.0: + version "1.2.0" + resolved "https://registry.npm.taobao.org/term-size/download/term-size-1.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fterm-size%2Fdownload%2Fterm-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69" + integrity sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk= + dependencies: + execa "^0.7.0" + +terser@^3.10.0, terser@^3.8.2: + version "3.17.0" + resolved "https://registry.npm.taobao.org/terser/download/terser-3.17.0.tgz#f88ffbeda0deb5637f9d24b0da66f4e15ab10cb2" + integrity sha1-+I/77aDetWN/nSSw2mb04VqxDLI= + dependencies: + commander "^2.19.0" + source-map "~0.6.1" + source-map-support "~0.5.10" + +test-exclude@^4.2.1: + version "4.2.3" + resolved "https://registry.npm.taobao.org/test-exclude/download/test-exclude-4.2.3.tgz#a9a5e64474e4398339245a0a769ad7c2f4a97c20" + integrity sha1-qaXmRHTkOYM5JFoKdprXwvSpfCA= + dependencies: + arrify "^1.0.1" + micromatch "^2.3.11" + object-assign "^4.1.0" + read-pkg-up "^1.0.1" + require-main-filename "^1.0.1" + +throat@^4.0.0: + version "4.1.0" + resolved "https://registry.npm.taobao.org/throat/download/throat-4.1.0.tgz#89037cbc92c56ab18926e6ba4cbb200e15672a6a" + integrity sha1-iQN8vJLFarGJJua6TLsgDhVnKmo= + +through2@^2.0.1: + version "2.0.5" + resolved "https://registry.npm.taobao.org/through2/download/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" + integrity sha1-AcHjnrMdB8t9A6lqcIIyYLIxMs0= + dependencies: + readable-stream "~2.3.6" + xtend "~4.0.1" + +tmpl@1.0.x: + version "1.0.4" + resolved "https://registry.npm.taobao.org/tmpl/download/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1" + integrity sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE= + +to-buffer@^1.1.1: + version "1.1.1" + resolved "https://registry.npm.taobao.org/to-buffer/download/to-buffer-1.1.1.tgz#493bd48f62d7c43fcded313a03dcadb2e1213a80" + integrity sha1-STvUj2LXxD/N7TE6A9ytsuEhOoA= + +to-fast-properties@^1.0.3: + version "1.0.3" + resolved "https://registry.npm.taobao.org/to-fast-properties/download/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" + integrity sha1-uDVx+k2MJbguIxsG46MFXeTKGkc= + +to-object-path@^0.3.0: + version "0.3.0" + resolved "https://registry.npm.taobao.org/to-object-path/download/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" + integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= + dependencies: + kind-of "^3.0.2" + +to-regex-range@^2.1.0: + version "2.1.1" + resolved "https://registry.npm.taobao.org/to-regex-range/download/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" + integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= + dependencies: + is-number "^3.0.0" + repeat-string "^1.6.1" + +to-regex@^3.0.1, to-regex@^3.0.2: + version "3.0.2" + resolved "https://registry.npm.taobao.org/to-regex/download/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" + integrity sha1-E8/dmzNlUvMLUfM6iuG0Knp1mc4= + dependencies: + define-property "^2.0.2" + extend-shallow "^3.0.2" + regex-not "^1.0.2" + safe-regex "^1.1.0" + +toposort@^2.0.2: + version "2.0.2" + resolved "https://registry.npm.taobao.org/toposort/download/toposort-2.0.2.tgz#ae21768175d1559d48bef35420b2f4962f09c330" + integrity sha1-riF2gXXRVZ1IvvNUILL0li8JwzA= + +tough-cookie@^2.3.3, tough-cookie@^2.3.4: + version "2.5.0" + resolved "https://registry.npm.taobao.org/tough-cookie/download/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" + integrity sha1-zZ+yoKodWhK0c72fuW+j3P9lreI= + dependencies: + psl "^1.1.28" + punycode "^2.1.1" + +tough-cookie@~2.4.3: + version "2.4.3" + resolved "https://registry.npm.taobao.org/tough-cookie/download/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781" + integrity sha1-U/Nto/R3g7CSWvoG/587FlKA94E= + dependencies: + psl "^1.1.24" + punycode "^1.4.1" + +tr46@^1.0.1: + version "1.0.1" + resolved "https://registry.npm.taobao.org/tr46/download/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" + integrity sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk= + dependencies: + punycode "^2.1.0" + +trim-right@^1.0.1: + version "1.0.1" + resolved "https://registry.npm.taobao.org/trim-right/download/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" + integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM= + +ts-jest@^23.10.5: + version "23.10.5" + resolved "https://registry.npm.taobao.org/ts-jest/download/ts-jest-23.10.5.tgz#cdb550df4466a30489bf70ba867615799f388dd5" + integrity sha1-zbVQ30RmowSJv3C6hnYVeZ84jdU= + dependencies: + bs-logger "0.x" + buffer-from "1.x" + fast-json-stable-stringify "2.x" + json5 "2.x" + make-error "1.x" + mkdirp "0.x" + resolve "1.x" + semver "^5.5" + yargs-parser "10.x" + +tslib@1.9.3: + version "1.9.3" + resolved "https://registry.npm.taobao.org/tslib/download/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286" + integrity sha1-1+TdeSRdhUKMTX5IIqeZF5VMooY= + +tslib@^1.9.0, tslib@^1.9.3: + version "1.10.0" + resolved "https://registry.npm.taobao.org/tslib/download/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a" + integrity sha1-w8GflZc/sKYpc/sJ2Q2WHuQ+XIo= + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.npm.taobao.org/tunnel-agent/download/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= + dependencies: + safe-buffer "^5.0.1" + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.npm.taobao.org/tweetnacl/download/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= + +type-check@~0.3.2: + version "0.3.2" + resolved "https://registry.npm.taobao.org/type-check/download/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= + dependencies: + prelude-ls "~1.1.2" + +typescript@^3.2.2: + version "3.5.2" + resolved "https://registry.npm.taobao.org/typescript/download/typescript-3.5.2.tgz#a09e1dc69bc9551cadf17dba10ee42cf55e5d56c" + integrity sha1-oJ4dxpvJVRyt8X26EO5Cz1Xl1Ww= + +uglify-js@^3.1.4: + version "3.6.0" + resolved "https://registry.npm.taobao.org/uglify-js/download/uglify-js-3.6.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fuglify-js%2Fdownload%2Fuglify-js-3.6.0.tgz#704681345c53a8b2079fb6cec294b05ead242ff5" + integrity sha1-cEaBNFxTqLIHn7bOwpSwXq0kL/U= + dependencies: + commander "~2.20.0" + source-map "~0.6.1" + +union-value@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/union-value/download/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4" + integrity sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ= + dependencies: + arr-union "^3.1.0" + get-value "^2.0.6" + is-extendable "^0.1.1" + set-value "^0.4.3" + +universalify@^0.1.0: + version "0.1.2" + resolved "https://registry.npm.taobao.org/universalify/download/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + integrity sha1-tkb2m+OULavOzJ1mOcgNwQXvqmY= + +unset-value@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/unset-value/download/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" + integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= + dependencies: + has-value "^0.3.1" + isobject "^3.0.0" + +uri-js@^4.2.2: + version "4.2.2" + resolved "https://registry.npm.taobao.org/uri-js/download/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" + integrity sha1-lMVA4f93KVbiKZUHwBCupsiDjrA= + dependencies: + punycode "^2.1.0" + +urix@^0.1.0: + version "0.1.0" + resolved "https://registry.npm.taobao.org/urix/download/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" + integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= + +use@^3.1.0: + version "3.1.1" + resolved "https://registry.npm.taobao.org/use/download/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" + integrity sha1-1QyMrHmhn7wg8pEfVuuXP04QBw8= + +util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.npm.taobao.org/util-deprecate/download/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + +util.promisify@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/util.promisify/download/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030" + integrity sha1-RA9xZaRZyaFtwUXrjnLzVocJcDA= + dependencies: + define-properties "^1.1.2" + object.getownpropertydescriptors "^2.0.3" + +uuid@^3.3.2: + version "3.3.2" + resolved "https://registry.npm.taobao.org/uuid/download/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" + integrity sha1-G0r0lV6zB3xQHCOHL8ZROBFYcTE= + +validate-npm-package-license@^3.0.1: + version "3.0.4" + resolved "https://registry.npm.taobao.org/validate-npm-package-license/download/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha1-/JH2uce6FchX9MssXe/uw51PQQo= + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + +verror@1.10.0: + version "1.10.0" + resolved "https://registry.npm.taobao.org/verror/download/verror-1.10.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fverror%2Fdownload%2Fverror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + +w3c-hr-time@^1.0.1: + version "1.0.1" + resolved "https://registry.npm.taobao.org/w3c-hr-time/download/w3c-hr-time-1.0.1.tgz#82ac2bff63d950ea9e3189a58a65625fedf19045" + integrity sha1-gqwr/2PZUOqeMYmlimViX+3xkEU= + dependencies: + browser-process-hrtime "^0.1.2" + +walker@~1.0.5: + version "1.0.7" + resolved "https://registry.npm.taobao.org/walker/download/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" + integrity sha1-L3+bj9ENZ3JisYqITijRlhjgKPs= + dependencies: + makeerror "1.0.x" + +watch@~0.18.0: + version "0.18.0" + resolved "https://registry.npm.taobao.org/watch/download/watch-0.18.0.tgz#28095476c6df7c90c963138990c0a5423eb4b986" + integrity sha1-KAlUdsbffJDJYxOJkMClQj60uYY= + dependencies: + exec-sh "^0.2.0" + minimist "^1.2.0" + +webidl-conversions@^4.0.2: + version "4.0.2" + resolved "https://registry.npm.taobao.org/webidl-conversions/download/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" + integrity sha1-qFWYCx8LazWbodXZ+zmulB+qY60= + +whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3: + version "1.0.5" + resolved "https://registry.npm.taobao.org/whatwg-encoding/download/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" + integrity sha1-WrrPd3wyFmpR0IXWtPPn0nET3bA= + dependencies: + iconv-lite "0.4.24" + +whatwg-mimetype@^2.1.0, whatwg-mimetype@^2.2.0: + version "2.3.0" + resolved "https://registry.npm.taobao.org/whatwg-mimetype/download/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" + integrity sha1-PUseAxLSB5h5+Cav8Y2+7KWWD78= + +whatwg-url@^6.4.1: + version "6.5.0" + resolved "https://registry.npm.taobao.org/whatwg-url/download/whatwg-url-6.5.0.tgz#f2df02bff176fd65070df74ad5ccbb5a199965a8" + integrity sha1-8t8Cv/F2/WUHDfdK1cy7WhmZZag= + dependencies: + lodash.sortby "^4.7.0" + tr46 "^1.0.1" + webidl-conversions "^4.0.2" + +whatwg-url@^7.0.0: + version "7.0.0" + resolved "https://registry.npm.taobao.org/whatwg-url/download/whatwg-url-7.0.0.tgz#fde926fa54a599f3adf82dff25a9f7be02dc6edd" + integrity sha1-/ekm+lSlmfOt+C3/Jan3vgLcbt0= + dependencies: + lodash.sortby "^4.7.0" + tr46 "^1.0.1" + webidl-conversions "^4.0.2" + +which-module@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/which-module/download/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= + +which-pm-runs@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/which-pm-runs/download/which-pm-runs-1.0.0.tgz#670b3afbc552e0b55df6b7780ca74615f23ad1cb" + integrity sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs= + +which@^1.2.10, which@^1.2.12, which@^1.2.9, which@^1.3.0: + version "1.3.1" + resolved "https://registry.npm.taobao.org/which/download/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + integrity sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo= + dependencies: + isexe "^2.0.0" + +wide-align@^1.1.0: + version "1.1.3" + resolved "https://registry.npm.taobao.org/wide-align/download/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" + integrity sha1-rgdOa9wMFKQx6ATmJFScYzsABFc= + dependencies: + string-width "^1.0.2 || 2" + +widest-line@^2.0.0: + version "2.0.1" + resolved "https://registry.npm.taobao.org/widest-line/download/widest-line-2.0.1.tgz#7438764730ec7ef4381ce4df82fb98a53142a3fc" + integrity sha1-dDh2RzDsfvQ4HOTfgvuYpTFCo/w= + dependencies: + string-width "^2.1.1" + +wordwrap@~0.0.2: + version "0.0.3" + resolved "https://registry.npm.taobao.org/wordwrap/download/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" + integrity sha1-o9XabNXAvAAI03I0u68b7WMFkQc= + +wordwrap@~1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/wordwrap/download/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= + +wrap-ansi@^2.0.0: + version "2.1.0" + resolved "https://registry.npm.taobao.org/wrap-ansi/download/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" + integrity sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU= + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + +wrap-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.npm.taobao.org/wrap-ansi/download/wrap-ansi-3.0.1.tgz#288a04d87eda5c286e060dfe8f135ce8d007f8ba" + integrity sha1-KIoE2H7aXChuBg3+jxNc6NAH+Lo= + dependencies: + string-width "^2.1.1" + strip-ansi "^4.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.npm.taobao.org/wrappy/download/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + +write-file-atomic@^2.1.0: + version "2.4.3" + resolved "https://registry.npm.taobao.org/write-file-atomic/download/write-file-atomic-2.4.3.tgz#1fd2e9ae1df3e75b8d8c367443c692d4ca81f481" + integrity sha1-H9Lprh3z51uNjDZ0Q8aS1MqB9IE= + dependencies: + graceful-fs "^4.1.11" + imurmurhash "^0.1.4" + signal-exit "^3.0.2" + +ws@^5.2.0: + version "5.2.2" + resolved "https://registry.npm.taobao.org/ws/download/ws-5.2.2.tgz?cache=0&sync_timestamp=1560788200711&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fws%2Fdownload%2Fws-5.2.2.tgz#dffef14866b8e8dc9133582514d1befaf96e980f" + integrity sha1-3/7xSGa46NyRM1glFNG++vlumA8= + dependencies: + async-limiter "~1.0.0" + +xml-name-validator@^3.0.0: + version "3.0.0" + resolved "https://registry.npm.taobao.org/xml-name-validator/download/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" + integrity sha1-auc+Bt5NjG5H+fsYH3jWSK1FfGo= + +xtend@^4.0.0, xtend@~4.0.1: + version "4.0.1" + resolved "https://registry.npm.taobao.org/xtend/download/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" + integrity sha1-pcbVMr5lbiPbgg77lDofBJmNY68= + +y18n@^3.2.1: + version "3.2.1" + resolved "https://registry.npm.taobao.org/y18n/download/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" + integrity sha1-bRX7qITAhnnA136I53WegR4H+kE= + +yallist@^2.1.2: + version "2.1.2" + resolved "https://registry.npm.taobao.org/yallist/download/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= + +yallist@^3.0.0, yallist@^3.0.3: + version "3.0.3" + resolved "https://registry.npm.taobao.org/yallist/download/yallist-3.0.3.tgz#b4b049e314be545e3ce802236d6cd22cd91c3de9" + integrity sha1-tLBJ4xS+VF486AIjbWzSLNkcPek= + +yargs-parser@10.x: + version "10.1.0" + resolved "https://registry.npm.taobao.org/yargs-parser/download/yargs-parser-10.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs-parser%2Fdownload%2Fyargs-parser-10.1.0.tgz#7202265b89f7e9e9f2e5765e0fe735a905edbaa8" + integrity sha1-cgImW4n36eny5XZeD+c1qQXtuqg= + dependencies: + camelcase "^4.1.0" + +yargs-parser@^9.0.2: + version "9.0.2" + resolved "https://registry.npm.taobao.org/yargs-parser/download/yargs-parser-9.0.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs-parser%2Fdownload%2Fyargs-parser-9.0.2.tgz#9ccf6a43460fe4ed40a9bb68f48d43b8a68cc077" + integrity sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc= + dependencies: + camelcase "^4.1.0" + +yargs@^11.0.0: + version "11.1.0" + resolved "https://registry.npm.taobao.org/yargs/download/yargs-11.1.0.tgz#90b869934ed6e871115ea2ff58b03f4724ed2d77" + integrity sha1-kLhpk07W6HERXqL/WLA/RyTtLXc= + dependencies: + cliui "^4.0.0" + decamelize "^1.1.1" + find-up "^2.1.0" + get-caller-file "^1.0.1" + os-locale "^2.0.0" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^2.0.0" + which-module "^2.0.0" + y18n "^3.2.1" + yargs-parser "^9.0.2" + +yup@^0.27.0: + version "0.27.0" + resolved "https://registry.npm.taobao.org/yup/download/yup-0.27.0.tgz#f8cb198c8e7dd2124beddc2457571329096b06e7" + integrity sha1-+MsZjI590hJL7dwkV1cTKQlrBuc= + dependencies: + "@babel/runtime" "^7.0.0" + fn-name "~2.0.1" + lodash "^4.17.11" + property-expr "^1.5.0" + synchronous-promise "^2.0.6" + toposort "^2.0.2"